2016-03-04 75 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 有權限,您也可以操縱這些權限。 (如果它是一個不同的用戶,您可能沒有權限—是那些其他程序的點,其中可以被授予權限)。

進一步閱讀: