当我 'cat' 'ksh' 时会发生什么?

当我 'cat' 'ksh' 时会发生什么?

我在我的unix机器中使用了以下命令。

$ cat ksh

然后它就滚动显示拉丁文和希腊文字母和符号,而且一直显示,没有停止的迹象。最后我不得不关闭我的连接工具来停止它。

我只是想知道它显示的是什么?

答案1

如果您在实际的 ksh 二进制文件上运行cat,那么您会看到 ksh 程序的原始机器代码被解释为人类可读的文本。当然,事实并非如此,因此显示的字符是来自终端字符集的随机字符,加上控制字符和其他不可打印字符。

二进制文件中的某些控制字符可能会扰乱终端的状态。如果您关闭连接,那没问题,但您也可以在不关闭连接的情况下恢复,方法是按 Control-C 停止进程,然后输入“reset”并按 Enter。

答案2

二进制可执行文件和其他文件一样;它的内容不能保证对人类有意义,通常也没有意义。 cat不会阻止你显示它,因为它无法真正区分可执行文件和(比如说)包含大量非 ISO-8859-1 Unicode 的文本文件。

答案3

这是因为您试图打印二进制文件的内容。我以前无意中做过几次,但几乎总是导致 Putty 崩溃。现在,为了真正的乐趣,继续做吧cat /dev/urandom:总是很开心。(urandom为诸如生成密码、抛硬币等操作制作一个很棒的随机数据生成器,而且它是“真正的”随机数据,因为这些数据是从熵池中提取的(熵池基于服务器监控的诸如电噪声等因素)。)

相关内容