通过 SSH 连接到远端主机,一般会打开一个伪终端(pts)。Linux 系统是可进行多用户访问,当你访问远端主机时,别人也可能正在进行访问,当我们需要进行远端主机重启等一些影响别人使用远端主机的行为时,我们需要把重启的消失广播给其他用户。

write 消息聊天

使用 write 能够在终端上互相聊天,方法如下:

1
2
3
4
5
6
7
8
9
10
# 查看当前登录用户
who

jinzhongxu pts/2 2022-01-20 19:08 (127.0.0.1)
jinzhongxu pts/3 2022-01-20 15:37 (10.2.28.40)

# 我当前登录使用的是伪终端 pts/3,想发给 pts/2 实时消息
# 发送消息,类似于写信,先写发送对象,回车后写内容,一行回车将直接发送信息给对方
write jinzhongxu pts/2
hello, I will reboot this computer!!!

此时,登录在伪终端 pts/3 的用户终端上就会显示我发生的信息。

查看伪终端的方法还有

1
2
3
tty
# 显示伪终端
/dev/pts/2

注意

  1. write 消息不支持中文;
  2. ctrl + c 结束消息发送;
  3. 当看到 EOF 说明对方停止发送,退出 write。

wall 广播

wall (write all) 就是给所有人发生消息,包括自己。常用的方式如下:

1
2
3
4
5
6
# 方法1
echo "hello everyone, I will reboot this computer!!!" | wall
# 方法2
wall <<< "hello everyone, I will reboot this computer!!!"
# 方法3
wall hello everyone, I will reboot this computer!!!

禁止和开启消息

当一个用户正在编辑文档时,你给他发送消息,则消息会自动插入其文档中(只是显示到文档上,保持文档不会保持消息内容),因此,不要随便发送消息。

禁止别人把信息显示在我的终端

1
mesg n

当别人给你发送消息时,将显示如下信息:

1
write: jinzhongxu has messages disabled on pts/2

但不能组织广播信息,即 wall 发送的广播信息。

允许别人把信息显示在我的终端

1
mesg y

参考链接

  1. linux下 write/wall 给其它用户/终端 发送即时文本消息