2012-04-08 68 views
1

一旦我有一个文件,看到我使用cat命令的内容,比如cat文件名,它的内容显示在终端上,也自动在我的终端上键入一些随机字符和enter键也得到键入,然后终端提示command not found。 我想知道是否可以在文件中编写命令并使用cat命令执行这些命令。 我无法再次获取该文件,而且搜索也没有帮助。但我肯定有人在这里必须知道这一点。unix - 使用“cat foo”命令执行输出

回答

3

这听起来像一个文件,它具有转义序列,导致终端读取下面的字符串作为输入。现在这些功能往往不被终端程序支持,因为这是一个相当明显的安全问题。

这曾经是可行

一个办法是通过编程DEC“应答”序列,其终端将响应于嵌入在文件中一个Ctrl键 + ë发送。

+0

xterm,gnome-terminal和linux控制台有这个“功能”到现在为止。我通过捕获一些大的二进制文件来测试它。所以我认为这个“特性”嵌入在内核中。但是什么序列_exactly_触发这个......我不知道。 – 2012-04-08 10:03:00

+0

还是?那很不好。 (但只有一个Linux控制台在内核中;其他的,它们是这些程序的一部分。)我无法及时告诉你触发它的顺序是什么;历史上对于不同的终端有许多可能性。 – geekosaur 2012-04-08 10:04:47

+0

*所有*终端(甚至是xterm&co)都使用内核进行TTY处理 - 无论是以“伪终端”(xterm&co)还是“虚拟控制台”的形式。我猜这是这里的罪魁祸首。 – 2012-04-08 10:17:47