在 Linux 命令行里向其他用户发送信息很简单,很多命令都可以做到这点,麻烦的是你需要从众多命令中挑选一个合适的命令来使用。因此,我挑选了四种常用的 Linux 用户通信命令分享给大家并为你们讲解这四种命令是如何工作的。
wall命令(意为write all)允许你向所有在系统已登录的用户发送信息。 任何用户都可以使用wall命令,但wall命令通常是系统管理员用来向用户发送公告通知的(比如服务器将关闭维护)。
上例所示的命令里,最外层的引号在信息传送时不会显示出来,但如果没有最外层的引号,这条命令执行时会一直等待一个和句中单引号配对的引号以结束句子。
如果因为某些原因你想拒绝某位用户发送来的信息,就可以使用mesg命令。该命令使用时应携带参数n或者y,分别表示拒绝或接受某用户来信,其用例如下( alvin 为用户名):
值得注意的是,使用mesg命令屏蔽用户后,被屏蔽的用户并不会收到自己已被屏蔽的通知,也就是说,被屏蔽的用户并不会知道自己已经被屏蔽了。
另一个可以直接发送文本信息而不需要转换成电邮的命令是write。这个命令能被用于和特定用户的通信中,比如你要向用户名为alvin的用户发送信息,可以用如下命令:
写完发送信息后按ctrl+C退出。这个命令允许你传送信息,但不是开启一个双工通道,它仅仅只能用于送出信息。如果接收用户在不止一个终端上登录,你能选择一个你想传输的终端或者依靠系统选择一个耗时最少的终端传输,如下所示:
talk和ytalk命令让你可以和一个或多个用户建立交互通信,其中talk命令只允许你和一个用户建立交互通信。
talk与ytalk命令都会启动一个双版面的窗口,通信的每一方都可以在窗口的上部版面输入信息并在下部版面看到回应信息。
被请求加入通信的一方可以通过输入talk并在其后跟上通信发起方的用户名即可回应通信,如下所示:
值得注意的是,当系统既安装了talk也安装了ytalk时,talk命令默认会与ytalk命令相关联,所以当你输入talk alvin后,系统实际上执行的是ytalk alvin。由于我的系统两个命令都安装了,所以执行以上命令后看到的输出实际上是ytalk alvin的:
同样,这个命令也用ctrl+C来终止。要用此命令和其他系统的用户通信则需要加上-h的参数,参数值为主机名或IP地址。其用例如下:
Linux 系统有很多可用于向已登录的用户发送信息的命令,这些命令在某些情景中是非常有用的,比如用wall广播信息,用talk进行两用户间的交互式会谈,它们都可以让用户快速地交换信息,学会使用这些常用的命令可以让用户间通信更加方便,提高了沟通的效率。

