linux中wall向所有在線用戶廣播消息
VSole2022-03-27 22:29:26
wall是一個命令行程序,可在所有已登錄用戶的終端上顯示一條消息。可以在終端上鍵入消息,也可以在文件內容中讀取消息。wall代表全部寫入,使用write命令僅向特定用戶發送消息。
通常,系統管理員發送消息以宣布維護,并要求用戶注銷并關閉所有打開的程序。在終端打開的情況下,消息將顯示給所有登錄用戶。使用沒有終端打開的圖形桌面環境的用戶將看不到該消息。每個用戶都可以使用mesg程序控制對其終端的寫訪問。超級用戶調用wall命令時,無論其mesg設置如何,所有用戶都會收到消息。
廣播消息
wall命令的語法如下:wall [OPTIONS] [|]
如果未指定文件,則wall從標準輸入中讀取消息。廣播消息的最直接方法是使用消息作為參數來調用wall命令:wall "The system will be restarted in 10 minutes." Broadcast message from root@rumenz (pts/0) (Sat Dec 25 21:11:39 2021): The system will be restarted in 10 minutes.
該消息將廣播給當前登錄的所有用戶。
要查看所有已登錄用戶,請運行w或who命令。
要隱藏橫幅并僅顯示您輸入的文本給登錄用戶,請使用-n(--nobanner)選項調用命令:
wall -n "The system will be restarted in 10 minutes." The system will be restarted in 10 minutes.
如果要編寫多行消息,請在不帶參數的情況下調用命令:
wall
wall命令將等待您輸入文本。輸入完信息后,請按Ctrl+D結束程序并廣播信息。
您也可以使用here doc or here-string重定向或將另一個命令的輸出通過管道傳遞到wall。這是顯示如何使用echo命令廣播多行消息的示例:
echo "The system will be restarted in 10 minutes. \Please save your work." | wall
廣播文件中的消息
如果您要定期發送相同的郵件,則可以將其中的每一封郵件都寫入一個文件,這樣就無需重新輸入相同的文本。wall僅當以root身份調用時才從文件讀取。要廣播文件的內容,請調用wall命令,后跟文件名:message1_file.txt
The system will be restarted in 10 minutes. wall message1_file.txt Broadcast message from root@rumenz (pts/0) (Sat Dec 25 21:11:39 2021): The system will be restarted in 10 minutes.
向群組廣播消息
要僅向給定組的成員發送消息,請運行帶有-g(--group)選項的命令,然后輸入組名。例如,要只在 devs組的成員的終端上寫,可以運行:
wall -g devs "The system will be restarted in 10 minutes."
也可以通過其GID(組ID)指定該組。
VSole
網絡安全專家