在Linux命令行里与其他用户通信
大家好,我是良许
在 Linux 命令行里向其他用户发送信息很简单,很多命令都可以做到这点,麻烦的是你需要从众多命令中挑选一个合适的命令来使用。因此,我挑选了四种常用的 Linux 用户通信命令分享给大家并为你们讲解这四种命令是如何工作的。
wall
wall 命令(意为 write all )允许你向所有在系统已登录的用户发送信息。 任何用户都可以使用 wall 命令,但 wall 命令通常是系统管理员用来向用户发送公告通知的(比如服务器将关闭维护)。
一个系统管理员可能会发送如下信息:
$ wall The system will be going down in 15 minutes to address a serious problem
然后,所有已登录的用户都能看到类似这样的通知:
Broadcast message from admin@dragonfly (pts/0) (Thu Mar 5 08:56:42 2020):
The system is going down in 15 minutes to address a serious problem
如果你要发送的信息里有单引号,就需要用双引号将要发送的信息括起来,如下所示:
$ wall "Don't forget to save your work before logging off"
上例所示的命令里,最外层的引号在信息传送时不会显示出来,但如果没有最外层的引号,这条命令执行时会一直等待一个和句中单引号配对的引号以结束句子。
mesg
如果因为某些原因你想拒绝某位用户发送来的信息,就可以使用 mesg 命令。该命令使用时应携带参数 n 或者 y,分别表示拒绝或接受某用户来信,其用例如下( alvin 为用户名):
$ mesg n alvin
$ mesg y alvin
值得注意的是,使用 mesg 命令屏蔽用户后,被屏蔽的用户并不会收到自己已被屏蔽的通知,也就是说,被屏蔽的用户并不会知道自己已经被屏蔽了。
你也可以使用这个命令来接受或屏蔽所有用户的通信,只需把用户名参数省略掉即可:
$ mesg y
$ mesg n
write
另一个可以直接发送文本信息而不需要转换成电邮的命令是 write。这个命令能被用于和特定用户的通信中,比如你要向用户名为 alvin 的用户发送信息,可以用如下命令:
$ write alvin
Are you still at your desk?
I need to talk with you right away.
^C
写完发送信息后按 ctrl+C 退出。这个命令允许你传送信息,但不是开启一个双工通道,它仅仅只能用于送出信息。如果接收用户在不止一个终端上登录,你能选择一个你想传输的终端或者依靠系统选择一个耗时最少的终端传输,如下所示:
$ write alvin#1
如果你被用户 alvin 屏蔽了,你会看到如下提示:
$ write alvin
write: alvin has messages disabled
talk / ytalk
talk 和 ytalk 命令让你可以和一个或多个用户建立交互通信,其中 talk 命令只允许你和一个用户建立交互通信。talk 与 ytalk 命令都会启动一个双版面的窗口,通信的每一方都可以在窗口的上部版面输入信息并在下部版面看到回应信息。
被请求加入通信的一方可以通过输入 talk 并在其后跟上通信发起方的用户名即可回应通信,如下所示:
Message from Talk_Daemon@dragonfly at 10:10 ...
talk: connection requested by alvin@127.0.0.1.
talk: respond with: talk alvin@127.0.0.1
$ talk alvin
值得注意的是,当系统既安装了 talk 也安装了 ytalk 时, talk 命令默认会与 ytalk 命令相关联,所以当你输入 talk alvin 后,系统实际上执行的是 ytalk alvin 。由于我的系统两个命令都安装了,所以执行以上命令后看到的输出实际上是 ytalk alvin 的:
----------------------------= YTalk version 3.3.0 =--------------------------
Is the report ready?
-------------------------------= root@lxlinux =----------------------------
Just finished it
以上为用户 alvin 看到的窗口信息,而通信另一方的 root 看到的窗口内容则是反过来的:
----------------------------= YTalk version 3.3.0 =--------------------------
Just finished it
-------------------------------= alvin@lxlinux =----------------------------
Is the report ready?
同样,这个命令也用 ctrl+C 来终止。
要用此命令和其他系统的用户通信则需要加上 -h 的参数,参数值为主机名或IP地址。其用例如下:
$ talk -h 192.168.0.11 alvin
总结
Linux 系统有很多可用于向已登录的用户发送信息的命令,这些命令在某些情景中是非常有用的,比如用 wall 广播信息,用 talk 进行两用户间的交互式会谈,它们都可以让用户快速地交换信息,学会使用这些常用的命令可以让用户间通信更加方便,提高了沟通的效率。
最后希望本文的内容对你的工作有所帮助,如果你还对这些命令有任何疑问,请留言告诉我呗!
公众号:良许Linux

有收获?希望老铁们来个三连击,给更多的人看到这篇文章
在Linux命令行里与其他用户通信的更多相关文章
- Linux命令----su(切换用户)以及passwd(修改用户密码)
一.su命令登录root 用户在使用telnet命令可以远程登录,但不可以登录root,这样就需要使用su命令来登录root用户. telnet登录(不能登录root)--- 1.启动终端 输入 te ...
- linux命令创建和修改用户及密码
linux下创建用户 1.添加ftp用户 useradd ftpname -d /home/ftp passwd ftppwd 以下操作都以root权限进行: service vsftpd start ...
- Linux命令(二十六) 用户管理命令
一.添加用户 useradd useradd 命令用于创建新用户,格式为useradd [选项] 用户名. 可以使用 useradd 命令创建用户帐户,使用该命令创建账户时,默认的用户目录在 /hom ...
- Linux命令(三)——用户、群组管理命令
一.用户和群组的配置文件 1./etc/passwd文件 该文件存储了所有用户的一些基本属性. /etc/passwd文件中所存信息的具体含义如下: 用户名:x表示必须使用密码登录:uid用户标识符: ...
- Linux命令(19)用户权限管理:chown
linux用户权限: Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者.利用 chown 可以将档案的拥有者加以改变. 一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者 ...
- Linux命令之文件与用户权限
1.文件管理 在Linux里,任何软件和I/O设备都被视为文件.Linux中的文件名最大支持256个字符,分别可以用A-Z.a-z.0-9等字符来命名. 和Windows不同,Linux中文件是区分大 ...
- Linux 命令 - su: 以其他用户和组 ID 的身份来运行 shell
在 shell 会话状态下,使用 su 命令将允许你假定为另一个用户的身份,既可以以这个用户的 ID 来启动一个新的 shell 会话,也可以以这个用户的身份来发布一个命令. 命令格式 su [OPT ...
- 每天一个linux命令-id,输出用户的uid、gid
id命令可以输出用户真实有效的uid和gid,uid代表用户的唯一标识,gid代表用户组id,与用户是一对多的关系. 命令格式: id [-gGnru] [用户名称] 除了id命令之外,还 ...
- Linux命令:查看登录用户
查看所有用户: # w 查看当前用户: # who am i 结束用户进程:# pkill -9 -t pts/0
随机推荐
- 代码生成器插件与Creator预制体文件解析
前言 之前写过一篇自动生成脚本的工具,但是我给它起名叫半自动代码生成器.之所以称之为半自动,因为我觉得全自动代码生成器应该做到两点:代码生成+自动绑定.之前的工具只做了代码生成,并没有做自动绑定,所以 ...
- IOS - ACL (访问控制列表)
ACL 介绍 ACL 是一款 IOS 软件工具,而不是某种协议.从名字上来看,ACL 的主要功能是控制对网络资源的访问.事实上这是 ACL 最早的用途.现在 ACL 除了能够限制访问外,更多时候,我们 ...
- ALGEBRA-前言
“当你读一页不到一个小时的话,可能是你读太快了” 哈哈 可以 慢慢品
- 听说同学你搞不懂Java的LinkedHashMap,可笑
先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个有颜值却假装靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题 ...
- js中几种常用的数组处理方法的总结
一.filter()用法 功能:用于筛选数组中满足条件的元素,返回一个筛选后的新数组. <script> $(function(){ var arr = [1,-2,3,4,-5]; va ...
- Express Response 之 end /send 傻傻分不清楚
Express是一个轻量的经典的Node.js开启服务和快速路由管理的库.开启服务的方式也是非常的简单 只需要简单的,安装 $ npm install express -------> 引入 ...
- 【java】java获取JVM启动参数 System.getProperty
java获取JVM启动参数 System.getProperty取 -D后的key即可 public class Test { public static void main(String[] arg ...
- Microsoft Remote Desktop 10.3.12 下载
下载地址:https://mac.softpedia.com/
- flink创建视图的几种方式
import org.apache.flink.api.common.typeinfo.BasicTypeInfo; import org.apache.flink.api.java.typeutil ...
- java面向对象(封装,继承,多态,抽象,接口的定义和实现)
1.封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定 ...