使用Linux命令行與其他用戶進(jìn)行通信
使用 Linux 命令行向其他用戶發(fā)送消息或許非常容易,這里有一些相關(guān)的命令你可以考慮使用。在這篇文章中,我們會考察 4 個(gè)這樣的命令,看看它們是怎么工作的。
wall
wall
(“Write ALL” 的簡稱)命令允許你向所有系統(tǒng)中已登錄的用戶發(fā)送一條信息。這里我們假設(shè)用戶都使用命令行在同一臺服務(wù)器上工作。雖然 wall
命令最常被系統(tǒng)管理員用于向用戶發(fā)布公告和傳遞信息(比如說,服務(wù)器即將因維護(hù)而關(guān)閉),但它可以被任何用戶使用。
系統(tǒng)管理員可能會用類似下面的方式發(fā)送信息:
$ wall The system will be going down in 15 minutes to address a serious problem
而所有登錄的用戶都將看到類似這樣的信息:
Broadcast message from admin@dragonfly (pts/0) (Thu Mar 5 08:56:42 2020):
The system is going down in 15 minutes to address a serious problem
如果希望在消息中使用單引號,你可以像這樣將信息用雙引號括起來:
$ wall "Don't forget to save your work before logging off"
最外層的雙引號不會出現(xiàn)在發(fā)出的消息中,但是如果沒有它們,wall
會停下并等待輸入一個(gè)配對的單引號。
mesg
如果出于某種理由你不想接收來自另一個(gè)用戶的消息,你可以使用 mesg
命令來屏蔽這些消息。這個(gè)命令可以接受一個(gè) n
作為參數(shù)來拒絕某用戶的消息,或者接收一個(gè) y
作為參數(shù)來接收用戶發(fā)來的消息。
$ mesg n doug
$ mesg y doug
被屏蔽的用戶不會被告知這一事實(shí)。你也可以像這樣使用 mesg
來屏蔽或者接收所有消息:
$ mesg y
$ mesg n
write
另一個(gè)在不使用電子郵件的情況下發(fā)送文本的命令是 write
,這個(gè)命令可以用來和一個(gè)特定的用戶通信。
$ write nemo
Are you still at your desk?
I need to talk with you right away.
^C
輸入你的信息后用 ctrl-c
退出,這樣就完成了通信。這個(gè)命令允許你發(fā)送文本,但并不會建立一個(gè)雙向的通話。它只是將文本發(fā)送過去而已。如果目標(biāo)用戶在多個(gè)終端上登錄,你可以指定你想將消息發(fā)送到哪一個(gè)終端,否則系統(tǒng)會選擇空閑時(shí)間最短的那個(gè)終端。
$ write nemo#1
如果你試圖向一個(gè)將消息屏蔽了的用戶發(fā)送信息,你應(yīng)該會看到這樣的輸出:
$ write nemo
write: nemo has messages disabled
talk/ytalk
talk
和 ytalk
命令讓你可以和一個(gè)或多個(gè)用戶進(jìn)行交互式的聊天。它們會展示一個(gè)有上下兩個(gè)子窗口的界面,每個(gè)用戶向顯示在他們屏幕上方的窗口內(nèi)輸入內(nèi)容,并在下方的窗口看到回復(fù)信息。要回復(fù)一個(gè)talk
請求,接收方可以輸入 talk
,在后面加上請求方的用戶名。
Message from Talk_Daemon@dragonfly at 10:10 ...
talk: connection requested by dory@127.0.0.1.
talk: respond with: talk dory@127.0.0.1
$ talk dory
如果使用的是 ytalk
,那么窗口中可以包含多于兩個(gè)參與者。正如下面的例子所展示的(這是上面 talk dory
命令的結(jié)果),talk
通常指向 ytalk
。
----------------------------= YTalk version 3.3.0 =--------------------------
Is the report ready?
-------------------------------= nemo@dragonfly =----------------------------
Just finished it
如上所述,在通話的另一側(cè),talk
會話界面的窗口是相反的:
----------------------------= YTalk version 3.3.0 =--------------------------
Just finished it
-------------------------------= dory@dragonfly =----------------------------
Is the report ready?
同樣的,使用 ctrl-c
來退出。
如果要和非本機(jī)的用戶通訊,你需要加上 -h
選項(xiàng)和目標(biāo)主機(jī)名或IP地址,就像這樣:
$ talk -h 192.168.0.11 nemo
總結(jié)
Linux 上有若干基本的命令可以用來向其他登錄的用戶發(fā)送消息。如果你需要向所有用戶快速發(fā)送信息或是需要便捷的電話替代品,又或是希望能簡單地開始一個(gè)多用戶快速通訊會話,這些命令會十分實(shí)用。
一些命令如 wall
允許廣播消息但卻不是交互式的。另外的一些命令如 talk
允許多用戶進(jìn)行長時(shí)間通訊,當(dāng)你只需要非常快速地交換一些信息,它們可以你你避免建立一個(gè)電話會議。