write 向单个用户发送消息

作用

write 命令的作用是某个登录本地主机系统用户 A 执行 write 命令,从标准输入读取数据,直到标准输入数据读取到结束符号EOF,然后 write 将读取到信息传递给另一个登录本地主机系统的用户 B。

如果接收信息的用户 B 多次登录本地主机,可以指定接收信息的终端机编号以示区别。

注意:使用 write 命令发送消息给登录本地主机的其他用户时,要确保当前这个用户在线,否则系统将会提示“write: x is not logged in”。要确保登录当前主机系统的用户有哪些,以及这些主机分别是在哪个终端上线,只要执行 who 命令即可。例如:

[snow@hxstrive ~]$ who
root     pts/0        2022-05-21 11:27 (192.168.116.1)
root     pts/1        2022-05-21 15:53 (192.168.116.1)
snow     pts/2        2022-05-21 15:55 (192.168.116.1)
snow     pts/3        2022-05-21 15:59 (192.168.116.1)

上面输出信息中,pts/0~3 即为用登录的终端号。

每次执行 write 命令只能给一个登录用户发送消息,不能使用 write 命令同时向多个用户发送消息。

语法

write [用户名称] [终端编号]

参数

  • 用户名称:待接收信息的用户的账号

  • 终端编号:如果待接收信息的用户有两个以上的终端连线,可以自行选择合适的终端传输信息

示例

(1)假如当前主机有两个用户登录,分别为 root 用户和 snow 用户,下面将使用 write 命令在 root 登录下给 snow 用户发送消息。命令如下:

a、在 root 用户登录的终端下面输入如下命令:

[root@hxstrive ~]# write snow
hello world

注:执行 write snow 命令需要保证 snow 用户已经成功登录到本地主机。输入完成“hello wrold”消息后,按“Ctrl + D”发送消息。

b、在 snow 用户终端下面接收消息,命令如下:

[snow@hxstrive ~]$
Message from root@hxstrive on pts/1 at 15:55 ...
hello world
EOF

(2)如果 snow 用户登录了多次,使用 write 命令为指定的终端号发送消息,命令如下:

a、查看登录多次 snow 用户的终端号

[snow@hxstrive ~]$ who am i
snow     pts/2        2022-05-21 15:55 (192.168.116.1)

[snow@hxstrive ~]$ who am i
snow     pts/3        2022-05-21 15:59 (192.168.116.1)

b、在 root 用户下使用 write 命令给 snow 用户且终端号为 pts/3 发送消息

[root@hxstrive ~]# write snow pts/3
hello world pts/3

c、snow 用户接收消息

[snow@hxstrive ~]$
Message from root@hxstrive on pts/1 at 16:01 ...
hello world pts/3
EOF

更多关于命令详细参考手册,请使用 man 命令或者 --help 参数获取帮助信息

关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号