我可以将控制字符写入别人的终端吗?

我可以将控制字符写入别人的终端吗?

很多人都像我一样使用终端仿真器登录到同一台 AIX 6.1 服务器,该仿真器会自动解释并运行由某些控制字符封装的代码作为 VBA 脚本,而不是将其写入显示器。因此,作为一个恶作剧,我有一个包含一系列字符的文件,该文件在弹出框中显示一条消息,我想将其写入终端。

$ cat msgbox.txt  
*message box pops up*

但当我写给某人时,效果就消失了:

$ cat msgbox.txt | write *my other sesssion*

在另一场会议上:
Message from *myself* [*datetime*] \o 33 *code to show a msgbox* \o 33\<EOT>

其中“\o 33”替换了 ASCII 字符 27。是否可以通过 write 发送控制字符,或者我需要做一些不同的事情?

答案1

我不太了解 AIX,但在大多数 unice 上,根据设计,您不能这样做。你不能在别人的终端上读写,那里发生的事情与你无关。该write计划有额外特权( setuid root 或 setgid tty,具体取决于系统)。它会小心地清理你输入的内容,以免过多干扰他人。

如果您确实想将控制字符发送到用户的终端,您需要是 root。

答案2

您需要将cat其直接连接到他们正在使用的tty/设备。pty您还需要确保他们的终端对角色执行的操作与您的终端执行的操作相同;您可能需要注意 tty 模式(注意换行符扩展)。

相关内容