2016-03-04 74 views
1

当用户用linux/unix中的write user [ttyname]命令发送我的终端文本时,是否有办法让trap或捕获自动写入我的终端的文本并更改它的颜色,以便更明显?linux消息其他用户的终端:改变文本颜色?

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

如果将文本写入您的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 

如果你知道其他用户的终端的进程ID 有权限,您也可以操纵这些权限。 (如果它是一个不同的用户,您可能没有权限—是那些其他程序的点,其中可以被授予权限)。

进一步阅读: