为什么cat / dev / urandom`会破坏您的终端?


Answers:


21

虽然在终端上来回发送了正常的,可打印的ASCII字符,但是还有许多不可打印的字符用于系统与终端进行通信。例如,如果程序发送了字符0x07(“ ASCII Bell字符”),则您的终端应发出蜂鸣声。

其他特殊顺序可用于更改显示文本的颜色,显示方向,窗口标题,窗口大小等。

当你

cat /dev/urandom

一堆随机字符转储到您的终端,终端无法分辨出它不是真正的控制代码。

由于程序实际上是在向终端发送随机命令,因此终端最终会处于随机(通常不可用)的状态。


4

一些随机输出将是ANSI转义码(http://en.wikipedia.org/wiki/ANSI_escape_code),它可以做一些有趣的事情,例如隐藏光标或选择其他字体。另一种可能是unicode序列:随机字节流将不是有效的UTF-8,并且可能不是所有支持unicode的终端都能正常处理该问题。


1

cat /dev/urandom将为您提供介于0和之间的随机字节流255,并非所有这些值都是有效的文本字符。由于终端窗口提供了无效数据,因此从未期望过处理它会导致终端应用程序进入“中断”状态。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.