你是否需要迅速向所有已登录系统的用户发送通知? 在这种情况下,Linux 的 “wall” 命令比电子邮件更直接有效,它能够自动将消息定向到所有当前登录的用户终端。 这个命令会直接在他们的终端屏幕上广播消息。
理解 “wall” 命令
当需要快速通知计算机上的所有已登录用户时,你会选择什么方法? 电子邮件并非理想选择,因为你无法确定消息何时会被阅读。 如果你需要立即传达重要信息,电子邮件的延迟性就显得不切实际。 此外,你也不希望未登录的用户收到这些不必要的通知而塞满他们的邮箱。
若不花费额外精力,你很难知道哪些用户已登录以及他们的登录位置。 你的系统可能位于华盛顿州的某个地点,但同时可能有用户从苏格兰的某个地方远程登录。 那么,如何确保消息仅发送给当前登录的用户呢?
Linux 和其他类 Unix 系统提供了一种简单的解决方案。“wall” 命令就像一个强大的电报系统,能够将消息直接发送到所有终端用户,确保他们能够立即看到信息。 用户不会错过消息,并且你可以确信他们已经接收到了。你无需让他们打开特定的应用程序来查看是否有新消息等待。
信息传递的方式就像一个迎面而来的奶油派,直接而有效。
如何使用 “wall” 发送消息
本文的测试系统基于 Fedora Linux,但 “wall” 命令在其他 Linux 发行版上的运行方式基本一致。
值得注意的是,某些 Linux 发行版可能要求你使用 `sudo` 来通过文本文件发送消息,而其他发行版则可能始终要求你使用 `sudo wall`。 这实际上是不同 Linux 发行版之间的差异,而不是 “wall” 命令本身的功能差异。
要向所有用户广播消息,只需输入 `wall`,加上一个空格,然后输入你想要发送的消息。 在 Fedora Linux 中,你通常需要使用 `sudo` 命令:
sudo wall Main printer offline until further notice.
你的消息会立即发送给所有打开终端窗口的用户。
本地用户 Ria 和 Tom,以及远程用户 Dick(他正在运行 Ubuntu 的计算机上工作)都将收到此消息。
他们会在同一时间收到消息,你无需担心他们是否已经看到。
从文件发送消息
你还可以将消息事先准备在文本文件中,并将其存储起来以便日后发送。 对于那些需要重复发送的消息,你可以创建消息库,避免重复输入。
通过 `cat` 命令在终端窗口中显示文本文件 `message.txt` 中的内容,以确认这是你希望发送的消息。
然后,通过将文本文件名作为命令行参数传递给 `wall` 命令来发送消息:
cat message.txt
sudo wall message.txt
和之前一样,本地用户 Ria 和 Tom(以及其他所有使用已打开终端窗口登录的用户)和远程用户 Dick 都会收到消息。
使用 “wall” 命令的礼仪
由于 “wall” 命令会将消息强制推送给所有终端用户,因此突然收到消息可能会令人不悦。 使用 “wall” 命令应尽量谨慎,仅在真正必要时使用,否则容易引起反感。
“wall” 命令发送的消息会覆盖用户终端上的任何现有内容,尽管实际上并没有修改任何文本,只是暂时遮挡了它们。 对于不熟悉此行为的用户来说,这可能会有些震惊。
想象一下,如果一个本地用户正在 Vi 中编辑一个重要的文件,这时 “wall” 命令的消息突然出现。
消息会直接显示在她的文件中间。
用户只需在文件中上下滚动即可恢复文件的原始视图。
虽然恢复显示并继续工作并不困难,但如果这种中断过于频繁,可能会激怒你的用户。
因此,尽管 “wall” 命令非常方便,但请谨慎使用。
图形桌面用户的情况
“wall” 命令适用于所有通过终端窗口登录的用户,但不会影响那些没有打开终端窗口而仅使用图形桌面环境的用户。
如果有人使用图形桌面并打开了一个终端窗口,他们会在该终端窗口中看到消息,仅此而已。 不要指望 “wall” 命令能够联系到终端之外的任何用户。
尽管它不算是微妙的方法,但不可否认它确实能够有效传达信息——尤其是在传统的终端环境中。