Linux 多使用者環境下,write 與 wall 提供簡易即時通訊。本文詳解雙指令語法、權限控制、實戰場景與現代替代方案。
write 使用者 [終端機]
# 例
write alice
# 輸入訊息,按 Enter 發送
# 結束:Ctrl+D
write bob 後,雙方進入會話模式Message from alice@host on pts/1 at 10:30 ...write alice 回應,否則無法回傳訊息mesg y # 允許他人 write 給我 (預設)
mesg n # 拒絕 write (顯示 "Permission denied")
# 查看當前狀態
mesg
mesg n 強制發送mesg y (在目標使用者 shell 執行)wall
# 輸入訊息內容 (可多行)
# 結束:Ctrl+D
# 所有登入使用者終端即時顯示
# 或直接管線
echo "系統將於 5 分鐘後重啟維護" | wall
| 場景 | 推薦工具 | 原因 |
|---|---|---|
| 管理員通知單一使用者 | write | 點對點、可雙向對話 |
| 緊急廣播全站用戶 | wall | 一對多、即時送達 |
| 自動化腳本通知 | wall + 管線 | 非互動式、可整合 cron |
| 長期協作/離線訊息 | 現代替代方案 | write/wall 無歷史、無離線 |
tmux new -s chat → 另一終端 tmux attach -t chat 共享終端、可捲動歷史ssh user@host "notify-send '標題' '內容'" (需圖形環境)systemd-notify、dbus-send 整合桌面通知write 適合臨時雙向文字會話,wall 適合系統級廣播。兩者均為無持久化、無加密、僅限同機器登入使用者的傳統工具。現代運維環境請採用 tmux 共享會話 或 企業級 IM 平台 替代。