当用户在linux / unix中使用write user [ttyname]
命令发送终端文本时,有没有办法trap
或捕获自动写入终端的文本并改变它的颜色,这样更明显?
来自man write
:
Write allows you to communicate with other users, by copying lines from your terminal to theirs.
我添加了一个别名,所以当我使用write
时,我的文字会改变颜色,即:
alias write='echo -e "\033[1;31m\c" ; write '
但这只会改变终端上的所有文字。
基本上,我想要一种简单的方法来读取从另一个用户发送到我的终端的文本。有什么建议吗?
我尝试使用1-60的所有信号设置trap
但似乎没有任何内容可以捕获文本?
答案 0 :(得分:0)
如果该文本已写入您的shell 输入,则只能捕获该文本。终端的方向不同(您的shell 输出)。还有其他程序旨在使文本更加可见以及记录会话(查找irc
个客户端)。
在中间没有一些(相对)智能服务器的情况下,您通常从write
(或talk
)得到的所有内容都是终端驱动程序无需协调消息外观即可处理的低级内容。您可以使用/proc
文件系统(并且知道进程ID)将消息直接写入用户的伪终端特殊设备。
在Linux上,给定进程可以使用/dev/stdin
等引用自身,/proc
等是lrwxrwxrwx 1 root 15 Fri 04:19:34 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root 15 Fri 04:19:34 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root 15 Fri 04:19:34 stdout -> /proc/self/fd/1
文件系统的符号链接,例如,
ArrayList<ArrayList<String>> districts=new ArrayList<ArrayList<String>>();
如果您知道其他用户的终端和的进程ID具有权限,您也可以对其进行操作。 (如果它是不同的用户,您可能没有权限 - 这是其他程序的重点,可以被授予权限。)
进一步阅读: