首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Shell编程中关于主机使用者的通信传递

Shell编程中关于主机使用者的通信传递

原创
作者头像
哎呀_编号89757
发布2025-02-06 15:47:07
发布2025-02-06 15:47:07
1601
举报

这一块内容相对来说,对于初学者其中用的比较少,但是确实比较有意思的一块内容——学习毕竟大部分时间是枯燥的,能从学习中得到乐趣,我觉得还是挺有意义的。

通信传递意思是对于登录在同一个系统上的用户进行信息传递,即有点微信聊天的意思,不过这种聊天仅支持单向的。具体下文会涉及如下的命令使用:whowritemesgwall。看起来多,但是用起来比较容易。

who 命令

who命令主要是查看即时系统上有多少用户在登录,语法如下:

代码语言:javascript
复制
 who

案例:

代码语言:javascript
复制
 [linc@instance-jgzzg4xl ~]$ who
 songj    pts/0        2025-02-06 14:44 (222.71.10.10)
 root     pts/1        2025-02-06 14:50 (222.71.10.10)
 linc     pts/2        2025-02-06 14:50 (222.71.10.10)

上述可以看到目前系统上合计有三个用户处于登录状态,而字段分别是使用者账号,使用者所在终端接口和登录的时间。这里请注意黑体字部分,下文还会用到,也是who这个命令的主要作用。

write 命令

write 命令可以理解为像其他登录用户传递信息,语法如下:

代码语言:javascript
复制
 write 登录者账号 [登录者所在终端接口]

案例:

代码语言:javascript
复制
 [songj@instance-jgzzg4xl ~]$ write linc pts/2
 hello
 ===> 在linc界面
 [linc@instance-jgzzg4xl ~]$ 
 Message from songj@instance-jgzzg4xl on pts/0 at 15:24 ...
 hello
 EOF

可以看到linc账号登录界面出现了消息,并且正在运行的界面被打断。

可以想这样一个场景,如果某一个用户不想要被打断,也就是说他不想要接受通信,可不可以?当然可以了,这时就需要mesg命令出场了。

mesg 命令

mesg 命令可以理解为是否允许被动通信,语法如下:

代码语言:javascript
复制
 mseg n 
 ==> 不允许通信,即无法收到信息,也无法发送信息
 mesg y
 ==> 允许通信
 ***》 但是上述的是否允许都无法拒绝root用户的通信

案例:

代码语言:javascript
复制
 ==》 对于账号songj
 [songj@instance-jgzzg4xl ~]$ mesg n
 [songj@instance-jgzzg4xl ~]$ mesg
 is n
 ==> 对于账号linc
 [linc@instance-jgzzg4xl ~]$ write songj
 write: songj has messages disabled

因为此时的songj账号已经被设置了拒绝通信,那么普通账号linc是无法对其发起通信的。而将songj账号通信打开,那么就可以继续发送消息了。

代码语言:javascript
复制
 [songj@instance-jgzzg4xl ~]$ write linc
 write: you have write permission turned off
 [songj@instance-jgzzg4xl ~]$ mesg y
 [songj@instance-jgzzg4xl ~]$ write linc
 hello

wall 命令

如果想同时对系统上已登录用户进行通信,那么就可以使用wall 命令,具体语法如下:

代码语言:javascript
复制
 wall 通信信息

案例:

代码语言:javascript
复制
 [root@instance-jgzzg4xl ~]# wall "I will send your messages,Plase be cautions"
 [root@instance-jgzzg4xl ~]# 
 Broadcast message from root@instance-jgzzg4xl (pts/1) (Thu Feb  6 15:36:33 2025):
 ​
 I will send your messages,Plase be cautions

我们在xshell界面可以发现,不仅仅账号songj和linc账号收到了信息,其自身root账号也收到了信息,如下:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • who 命令
  • write 命令
  • mesg 命令
  • wall 命令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档