在 Linux 环境中,存在多个用户通过 SSH 同时在服务器上工作的情况。 但是,有时系统 admin 由于系统维护、内核升级、从服务器添加或删除硬件等原因需要重新启动或关闭系统。 如果是这种情况,系统 admin 应该通知所有登录的用户保存他们的工作。 电子邮件不适合这种情况,因为您首先必须找出谁登录,然后向他们发送电子邮件。 此外,您不知道用户何时会阅读电子邮件。 幸运的是,有一个 Linux 命令“wall”可以让你轻松做到这一点。
在这里,我们将描述在 Linux 中 wall 命令的用法。 请记住,wall 命令对所有 Linux 发行版都一样。
笔记: Wall 命令仅在已登录用户的终端窗口中显示消息。 仅在 GUI 上工作且未打开终端窗口的用户将无法看到消息。
Linux 墙命令
Linux Wall 命令允许您向所有当前登录的用户发送消息或文件内容。 如果没有指定文件或消息,wall 命令从标准输入(标准输入)读取消息。
墙命令语法
wall 命令的语法如下:
$ wall [options] [message-or-filename]
向所有用户发送消息
要向所有当前登录的用户发送消息,请键入 wall,然后键入要发送的消息。
$ wall System is going down for 1-hour maintenance.
此命令将在终端窗口打开的情况下将消息发送给所有登录用户。
笔记: 对于某些 Linux 发行版,您必须以超级用户身份执行上述命令。 此外,如果用户选择拒绝向其终端发送消息(例如使用 mesg 命令),则只有 sudo 用户将能够向他们的终端发送消息。
以下是显示给通过 SSH 登录到服务器的两个用户“linuxways”和“ummara”的输出。 这些用户在运行 Ubuntu 和 Debian 的系统上工作。
wall 命令还从 标准输入 (标准输入)。 为此,只需键入 wall 并点击 Enter.
$ wall
之后,键入要发送给登录用户的任何消息。 输入完信息后,按 Ctrl+D 发送这些消息。
this is first line this is second line .
这是所有登录用户在其终端上收到的输出。
从文件发送消息
如果您必须经常重复某些消息,您只需将它们键入文件即可。 当您必须将这些消息发送给登录用户时,只需使用 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
以下输出显示墙实用程序的版本是 2.34。
Wall 是一个方便的实用程序,可帮助多用户系统 admin 在系统关闭或重新启动之前快速通知其他用户保存他们的工作。 在本文中,我们介绍了如何使用 wall 命令与登录用户进行通信。 希望你觉得它有趣且有用。