Linux Wall命令

wall是一个命令行实用程序,可在所有已登录用户的终端上显示一条消息。 可以在终端上或文件内容中输入消息。 wall表示编写所有内容,仅向特定用户发送消息,请使用write命令。

通常,系统管理员发送服务消息并要求用户注销并关闭所有打开的程序。 将为所有具有打开终端的登录用户显示消息。 使用没有开放终端的图形桌面环境的用户将看不到该消息。 每个用户都可以使用mesg实用程序来控制对其终端的写访问。 当超级用户调用wall命令时,所有用户都会收到消息,无论其mesg设置如何。

广播消息

wall命令的语法如下:

wall [OPTIONS] [<FILE>|<MESSAGE>]

如果未指定文件,则将从标准输入中读取消息。

传递消息的最简单方法是使用消息作为参数来调用wall命令:

wall "The system will be restarted in 10 minutes."
Broadcast message from [email protected] (pts/0) (Sun Oct  4 19:22:07 2020):

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终止程序并发送消息。

您还可以使用此处行重定向或将另一个命令的输出重定向到wall。 这是显示如何使用echo命令广播多行消息的示例:

echo "The system will be restarted in 10 minutes. nPlease 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 [email protected] (pts/0) (Sun Oct  4 19:25:06 2020):

The system will be restarted in 10 minutes.

向群组发送消息

要将消息仅发送给给定组的成员,请运行带有-g(–group)参数和组名的命令。 例如,要仅写入“ devs”组成员的终端,可以运行:

wall -g devs "The system will be restarted in 10 minutes."

组也可以通过其GID(组标识符)表示。

输出量

wall命令将一条消息写入所有已登录用户的终端。

如有任何疑问,请随时发表评论。

Sidebar