关于Linux服务器中的Wall命令及示例介绍

在Linux服务器环境中,有一些场景是多个用户通过SSH同时在服务器上工作。然而,有时系统管理员由于系统维护、内核升级、从服务器上添加或移除硬件等原因,需要重启或关闭系统。如果是这种情况,系统管理员应该通知所有已登录的用户保存工作。电子邮件不适合这种情况,因为你首先要找出谁在登录,然后给他们发邮件。另外,你也不知道用户什么时候会阅读邮件。幸运的是,有一个Linux命令 "Wall "可以让你很轻松的做到这一点。
在这里,我们要介绍的是Linux系统服务器中wall命令的用法。记住,wall命令对所有Linux发行版的工作原理都是一样的。
注意:wall命令只在已登录的用户的终端窗口上显示信息,只在GUI上工作,没有打开终端窗口的用户将无法看到信息。
Linux wall 命令
Linux Wall 命令允许你向所有当前登录的用户发送一条消息或文件内容,如果没有指定文件或消息,wall 命令会从 stdin(标准输入)读取消息。
wall命令的语法如下。
$ wall [options] [message-or-filename]
给所有用户发消息
要向所有当前登录的用户发送消息,请输入wall,然后键入要发送的消息。
$ wall System is going down for 1-hour maintenance.
该命令将在终端窗口打开的情况下将消息发送给所有已登录的用户。
注意:对于某些Linux发行版,您必须以超级用户身份执行上述命令。同样,如果用户选择拒绝向其终端发送消息(例如使用mesg命令),则只有sudo用户将能够向其终端发送消息。
wall命令还从标准输入(标准输入)读取消息。为此,只需键入wall并点击Enter即可。
wall
之后,键入任何你想发送给已登录用户的信息或消息。一旦你完成了输入信息,按Ctrl+D发送这些信息。
从文件发送消息
如果有一些需要经常重复的消息,你可以简单地把它们输入到一个文件中,当你需要把这些消息发送给登录的用户时,只需用wall命令调用该文件即可。当你需要将这些消息发送给已登录的用户时,只需用 wall 命令调用该文件即可。记住,如果你想从一个文件中发送消息,你将需要sudo权限。
$ sudo wall <filename>
例如,首先使用cat命令显示了文件内容,然后为了发送文件中的信息,将文件名传给wall命令。
这些是已登录的用户收到的输出(来自文件msg.txt)。
向组发送消息
您可以仅将消息发送给当前已登录系统的组成员,而不必将消息发送给所有已登录的用户。语法如下
$ wall -g [group] [message]
例如,要将消息发送到名为“ sshusers”的组,命令将是:
$ wall -g sshusers System is going down for 1 hour maintenance.
当前登录到服务器的“ sshusers”组的所有成员都将收到指定的消息。
禁止横幅
wall命令在显示消息之前会显示一条横幅,如下面的屏幕截图所示。

要取消显示此横幅,请在wall命令中使用-n选项:
$ wall -n <message>
例如,以下命令将仅显示指定的消息,同时禁止显示横幅。
$ wall -n System is going down for 1 hour maintenance.
所有已登录的终端用户都会收到没有横幅的信息。
查看版本信息
要查看wall命令的版本,请使用以下命令:
$ wall -V
Wall是一个方便的实用工具,它可以帮助多用户系统管理员在系统关机或重启前快速通知其他用户保存工作。在这篇文章中,我们介绍了如何使用wall命令与登录的用户进行通信。