Linux命令wall详解


wall是一个命令行实用程序,可在所有已登录用户的终端上显示一条消息或者在文件中写入消息。本篇文章详解如何使用wall向所有登录系统的用户发送信息。

wall是一个命令行实用程序,可在所有已登录用户的终端上显示一条消息。这些消息可以在终端上键入,也可以在文件内容中键入。wall代表全部可写,只向使用特定write命令的用户发送消息。

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

广播消息

wall命令的语法如下:

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

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

广播消息的最直接方法是调用wall以消息为参数的命令:

wall "The system will be restarted in 10 minutes."

输出:

Broadcast message from root@linuxize.host (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结束程序并广播消息。

您还可以使用here-string重定向或将另一个命令的输出通过管道传递给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 root@linuxize.host (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(组ID)指定该组。

结论

wall命令在所有当前登录用户的终端上写一条消息。

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



评论

{{ errors.content }}

Enter+Ctrl