![](/img/trans.png)
[英]Is it possible to change Linux Terminal text and background color using C?
[英]linux message other users' terminal: change text color?
當用戶使用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
,但似乎什么也看不到?
僅當將文本寫入到shell的input中時 ,您才能捕獲該文本。 終端的方向不同(外殼的輸出 )。 還有其他一些程序旨在使文本更加可見並記錄會話(查找irc
客戶端)。
在兩者之間沒有一些(相對)智能服務器的情況下,您通常從write
(或talk
)中獲得的只是底層驅動程序,它們可以由終端驅動程序處理而無需協調消息的外觀。 您可以使用/proc
文件系統將消息直接寫到用戶的偽終端專用設備(並知道process-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 並具有權限,則也可以對其進行操作。 (如果是其他用戶,則您可能沒有權限-這就是那些可以被授予權限的其他程序的目的)。
進一步閱讀:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.