我们可以向着主机上所有用户或者特定用户的终端发送消息

wall命令可以用来向着所有当前登录用户的终端发送消息,我们将消息传递给一台服务器中所有的当前登录用户或者多个分散主机的用户,

打开的终端在/dev/pts/中都有对应的设备节点文件,我们可以以一种向着特定的终端写入信息方式显示消息

我们向着当前所有的登录用户发送消息

cat message | wall

或者

wall < message

这个消息概要会显示是谁发送了这条消息,启动的时候,会将写入的消息显示出来,而且也是默认启用的,当然可以写入操作可以关闭,但是即使关闭了,超级管理员也可以写出来

允许写入消息,可以用

mesg y

禁止则是

mesg n

如果想要向指定的用户发送消息,则可以利用如下的脚本

#! /bin/bash

USER=$1

devices=`ls /dev/pts/* -l | awk ‘{print $3,$9}’

| grep $USER | awk ‘{print $2}’`

for dev in $devices;

do

cat /dev/stdin > $dev

done

这样的使用方式如下

./message.sh Username < message.txt

其原理很简单

/dev/pts包含了对应终端中每个用户的字符设备,我们可以查看设备文件的属于者来知道谁登陆了哪个设备,我们提取出来了之后,进行匹配

匹配上了之后,进行循环遍历

遍历中,我们将/dev/stdin的输入传递给对应的设备TTY上,得以显示消息

发表评论

邮箱地址不会被公开。 必填项已用*标注