在 Linux 命令行裡向其他用戶發送信息很簡單,很多命令都可以做到這點,麻煩的是你需要從眾多命令中挑選一個合適的命令來使用。因此,我挑選了四種常用的 Linux 用戶通信命令分享給大家並為你們講解這四種命令是如何工作的。
wall
wall命令(意為 write all)允許你向所有在系統已登錄的用戶發送信息。 任何用戶都可以使用wall命令,但wall命令通常是系統管理員用來向用戶發送公告通知的(比如伺服器將關閉維護)。
一個系統管理員可能會發送如下信息:
$ wall The system will be going down in 15 minutes to address a serious problem
然後,所有已登錄的用戶都能看到類似這樣的通知:
如果你要發送的信息裡有單引號,就需要用雙引號將要發送的信息括起來,如下所示:
$ wall "Don't forget to save your work before logging off"
上例所示的命令裡,最外層的引號在信息傳送時不會顯示出來,但如果沒有最外層的引號,這條命令執行時會一直等待一個和句中單引號配對的引號以結束句子。
mesg
如果因為某些原因你想拒絕某位用戶發送來的信息,就可以使用mesg命令。該命令使用時應攜帶參數n或者y,分別表示拒絕或接受某用戶來信,其用例如下( alvin 為用戶名):
$ mesg n alvin$ mesg y alvin
值得注意的是,使用mesg命令屏蔽用戶後,被屏蔽的用戶並不會收到自己已被屏蔽的通知,也就是說,被屏蔽的用戶並不會知道自己已經被屏蔽了。
你也可以使用這個命令來接受或屏蔽所有用戶的通信,只需把用戶名參數省略掉即可:
$ mesg y$ mesg n
write
另一個可以直接發送文本信息而不需要轉換成電郵的命令是write。這個命令能被用於和特定用戶的通信中,比如你要向用戶名為alvin的用戶發送信息,可以用如下命令:
寫完發送信息後按ctrl+C退出。這個命令允許你傳送信息,但不是開啟一個雙工通道,它僅僅只能用於送出信息。如果接收用戶在不止一個終端上登錄,你能選擇一個你想傳輸的終端或者依靠系統選擇一個耗時最少的終端傳輸,如下所示:
$ write alvin#1
如果你被用戶alvin屏蔽了,你會看到如下提示:
$ write alvinwrite: alvin has messages disabled
talk / ytalk
talk和ytalk命令讓你可以和一個或多個用戶建立交互通信,其中talk命令只允許你和一個用戶建立交互通信。
talk與ytalk命令都會啟動一個雙版面的窗口,通信的每一方都可以在窗口的上部版面輸入信息並在下部版面看到回應信息。
被請求加入通信的一方可以通過輸入talk並在其後跟上通信發起方的用戶名即可回應通信,如下所示:
值得注意的是,當系統既安裝了talk也安裝了ytalk時,talk命令默認會與ytalk命令相關聯,所以當你輸入talk alvin後,系統實際上執行的是ytalk alvin。由於我的系統兩個命令都安裝了,所以執行以上命令後看到的輸出實際上是ytalk alvin的:
以上為用戶alvin看到的窗口信息,而通信另一方的root看到的窗口內容則是反過來的:
同樣,這個命令也用ctrl+C來終止。要用此命令和其他系統的用戶通信則需要加上-h的參數,參數值為主機名或IP位址。其用例如下:
$ talk -h 192.168.0.11 alvin
總結
Linux 系統有很多可用於向已登錄的用戶發送信息的命令,這些命令在某些情景中是非常有用的,比如用wall廣播信息,用talk進行兩用戶間的交互式會談,它們都可以讓用戶快速地交換信息,學會使用這些常用的命令可以讓用戶間通信更加方便,提高了溝通的效率。
最後希望本文的內容對你的工作有所幫助,如果你還對這些命令有任何疑問,請留言告訴我唄!