大家好,我是良许

在 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

talkytalk 命令让你可以和一个或多个用户建立交互通信,其中 talk 命令只允许你和一个用户建立交互通信。talkytalk 命令都会启动一个双版面的窗口,通信的每一方都可以在窗口的上部版面输入信息并在下部版面看到回应信息。

被请求加入通信的一方可以通过输入 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命令行里与其他用户通信的更多相关文章

  1. Linux命令----su(切换用户)以及passwd(修改用户密码)

    一.su命令登录root 用户在使用telnet命令可以远程登录,但不可以登录root,这样就需要使用su命令来登录root用户. telnet登录(不能登录root)--- 1.启动终端 输入 te ...

  2. linux命令创建和修改用户及密码

    linux下创建用户 1.添加ftp用户 useradd ftpname -d /home/ftp passwd ftppwd 以下操作都以root权限进行: service vsftpd start ...

  3. Linux命令(二十六) 用户管理命令

    一.添加用户 useradd useradd 命令用于创建新用户,格式为useradd [选项] 用户名. 可以使用 useradd 命令创建用户帐户,使用该命令创建账户时,默认的用户目录在 /hom ...

  4. Linux命令(三)——用户、群组管理命令

    一.用户和群组的配置文件 1./etc/passwd文件 该文件存储了所有用户的一些基本属性. /etc/passwd文件中所存信息的具体含义如下: 用户名:x表示必须使用密码登录:uid用户标识符: ...

  5. Linux命令(19)用户权限管理:chown

    linux用户权限: Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者.利用 chown 可以将档案的拥有者加以改变. 一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者 ...

  6. Linux命令之文件与用户权限

    1.文件管理 在Linux里,任何软件和I/O设备都被视为文件.Linux中的文件名最大支持256个字符,分别可以用A-Z.a-z.0-9等字符来命名. 和Windows不同,Linux中文件是区分大 ...

  7. Linux 命令 - su: 以其他用户和组 ID 的身份来运行 shell

    在 shell 会话状态下,使用 su 命令将允许你假定为另一个用户的身份,既可以以这个用户的 ID 来启动一个新的 shell 会话,也可以以这个用户的身份来发布一个命令. 命令格式 su [OPT ...

  8. 每天一个linux命令-id,输出用户的uid、gid

    id命令可以输出用户真实有效的uid和gid,uid代表用户的唯一标识,gid代表用户组id,与用户是一对多的关系. 命令格式:     id [-gGnru] [用户名称]   除了id命令之外,还 ...

  9. Linux命令:查看登录用户

    查看所有用户: # w 查看当前用户: # who am i 结束用户进程:# pkill -9 -t pts/0

随机推荐

  1. 从零开始,Windows操作系统下的超详细的阿里云发布项目过程

    ==================== 步骤0: 购买阿里云服务器 ==================== 0.1 从来没有搞过外网部署的我,当然是先买服务器了,感谢很多小伙伴的帮忙 0.2 登录 ...

  2. 解决 EntityFrameworkCore tool 3.1 init.ps1 is not recognized 问题

    昨天将项目升级到.net core 3.1后, 打开vs2019 Package Manager Console后突然发生了错误,如下 最终导致EntityFramework 迁移相关命令都不能正常使 ...

  3. 报错:org.apache.ibatis.type.TypeException: Could not resolve type alias 'com.deppon.gis.module.job.server.server.impl.HaoDuanEntity'.

  4. 【NOIP必备攻略】 基本noilinux使用方法

    现在linux系统已经成为了NOIP竞赛的一大操作系统,如果连最基础的操作都不会,那就更别提怎么得分了,万一操作失误,可就爆零了.所以小编特意发这样一篇博客,教你快速上手noilinux! ▎ 常用操 ...

  5. topic相关问题

    1.下面是一个topic数据出现堵塞的情况示图. 如图所示,delta列表示当前分区未处理的数据条数,kafka current表示推送到topic的数据量,spout current表示已经处理的数 ...

  6. 第3篇 Scrum 冲刺博客

    1.站立会议 照骗 进度 成员 昨日完成任务 今日计划任务 遇到的困难 钟智锋 确定客户端和服务器通信的形式 重新设计项目执行流程 我的规划过于混乱,对应难以同步开发 庄诗楷 绘制棋盘 游戏窗口的制作 ...

  7. Alpha阶段项目复审(小菜鸡联盟)

    Alpha项目复审 小队:小菜鸡联盟 团队名称 项目名称 评价 排名 『S.L.N』 OnTime 优点:团队分工合理明确,每个成员有一定的开发经验,能用到自己较为熟悉的技术进行开发:在开发初期制定了 ...

  8. computed&watch

    computed 定义:根据其他属性被计算出来的值 computed :{ [key: string]: Function | { get: Function, set: Function } } 是 ...

  9. 多线程std::cout 深入研究

    1.研究背景 在测试时发现mingw版本的gcc编译出来的程序,一个主程序新建20个线程,每个线程都循环向cout输出信息,几分钟程序就崩了,而用msvc和gcc-linaro版gcc交叉编译器编译出 ...

  10. 微信小程序——导航栏组件

    组件内属性详解   属性 类型 默认值 必填 说明 nav-postion String relative 否 导航栏(包含导航栏以及状态栏)的position,可取值relative.fixed.a ...