为什么管道二进制文本到屏幕经常Horck一个终端

Ala*_*orm 5 mysql unix shell blob cat

虚构情况:您已经使用mysqldump创建了一个mysql数据库的备份.此数据库具有blob列.这意味着你的"文本"转储文件包含字符串和二进制数据(二进制数据存储为字符串?)

如果你将此文件捕获到屏幕上

$ cat dump.mysql
Run Code Online (Sandbox Code Playgroud)

你会经常得到意想不到的结果.终端将开始发出哔哔声,然后输出完成滚动,你通常会在终端上输入垃圾字符,就像你输入它们一样,有时你的提示和你输入的任何东西都是垃圾字符.

为什么会这样?换句话说,我想我正在寻找将二进制字符串存储到文件中时,以及当您捕获这些文件时,以及将cat的结果报告给终端时的实际情况以及任何其他步骤的概述我迷路了.

Byr*_*ock 6

当您捕获二进制文件时,您可能会无意中将控制字符发送到终端.

例如,如果终端应用程序想要发送蜂鸣声,它会将以下二进制文件发送到终端:0x007(仅限SYS V).

颜色,光标位置等也是如此.


Dan*_*tin 5

从这里开始:http://www.faqs.org/docs/Linux-HOWTO/Keyboard-and-Console-HOWTO.html

特别是第3节(控制台通用性)和第4节(重置终端).

它涵盖的内容比你所说的多一点,但应该给你你需要的东西.