Linux中的Wall命令

时间:2020-03-05 15:30:09  来源:igfitidea点击:

“ 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 [email protected] (pts/0) (Sun Oct  4 19:22:07 2017):
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

从文件中广播消息

如果我们定期发送相同的邮件,则可以将其中的每一封邮件都写入一个文件中,这样就无需重新输入相同的文本。
仅当以root身份调用时,“ wall”才从文件读取。

要广播文件的内容,请调用“ 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 2017):
The system will be restarted in 10 minutes.

向群组广播消息

要仅向给定组的成员发送消息,请在命令中使用'-g'('--group')选项,然后输入组名。
例如,要仅在“ devs”组的成员的终端上编写,可以运行:

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

也可以通过其GID(组ID)指定该组。