如何在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 进行两用户间的交互式会谈,它们都可以让用户快速地交换信息,学会使用这些常用的命令可以让用户间通信更加方便,提高了沟通的效率。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 教你隐藏Linux的命令行历史

    Linux操作系统默认都会保存用户操作的历史命令,如果你是 Linux 命令行的用户,有的时候你可能不希望某些命令记录在你的命令行历史中.原因可能很多,例如,你在公司担任某个职位,你有一些不希望被其它人滥用的特权.亦或者有些特别重要的命令,你不希望在你浏览历史列表时误执行.然而,有方法可以控制哪些命令进入历史列表,哪些不进入吗?或者换句话说,我们在 Linux 终端中可以开启像浏览器一样的无痕模式吗?答案是肯定的,而且根据你想要的具体目标,有很多实现方法. 在这篇文章中,我们将讨论一些行之有效的

  • Linux telnet命令的使用

    1.简介 telnet命令用于登录远程主机,是基于Telnet协议的远程登录程序,对远程主机进行管理.telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了.但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的. telnet命令还可做别的用途,比如确定远程服务器的某个端口是否能访问. 此外,Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标

  • linux中无make命令的问题(make: *** 没有指明目标并且找不到 makefile及make命令安装方法)

    注意!!! 这种情况其实可以在安装虚拟机过程中进行避免得,下次测试装虚拟机的时候直接选择开发工具就可以了 好啦言归正传,这次是帮助大家解决问题得,首先输入make会有下图的显示 这种情况下如果是有网环境直接输入yum -y install make 就可以解决,若是无网环境则需要上网上下载源码包进行上传 yum -y install make 无网环境下在下面这个网址进行下载,在通过xftp上传到linux系统中 http://ftp.gnu.org/gnu/make/make-4.2.tar.

  • Linux 查看历史命令并执行的方法

    查看历史命令,并执行指定命令 owen@owen:~/owen/software/nginx-1.10.1$ history | grep 'configure' 1083 ./configure 1109 ./configure --prefix=/usr/nginx 1110 ./configure --prefix=/usr/nginx 2058 ./configure --prefix=/usr/local/nginx --with-openssl=/home/owen/owen/sof

  • linux中 shell 历史命令记录功能

    在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中.通过这个文件可以查询 shell 命令的执行历史,有助于运维人员进行系统审计和问题排查,同时在服务器遭受黑客攻击后,也可以查询黑客登录服务器的历史命令操作.但是黑客在入侵后,为了抹除痕迹,会删除 .bash_history 文件,这个就需要合理备份这个文件了. 默认的 history 命令只能查看用户的历史操作记录,但是不能区分每个用户

  • Linux调整命令历史方法详解

    Linux 系统中的 bash history 命令有助于记住你以前运行过的命令,并重复这些命令,而不必重新输入. 如果可以的话,你肯定会很高兴不用翻阅十几页的手册,每过一会再次列出你的文件,而是通过输入 history 查看以前运行的命令.在这篇文章中,我们将探讨如何让 history 命令记住你希望它记住的内容,并忘记那些可能没有什么"历史价值"的命令. 查看你的命令历史 要查看以前运行过的命令,你只需输入 history.你可能会看到一长串命令.记忆的命令数量取决于在 ~/.ba

  • Linux gzip命令压缩文件实现原理及代码实例

    gzip 是 Linux 系统中经常用来对文件进行压缩和解压缩的命令,通过此命令压缩得到的新文件,其扩展名通常标记为".gz". 再强调一下,gzip 命令只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩目录内的所有文件. gzip 命令的基本格式如下: [root@localhost ~]# gzip [选项] 源文件 命令中的源文件,当进行压缩操作时,指的是普通文件:当进行解压缩操作时,指的是压缩文件.该命令常用的选项及含义如表 1 所示. 表 1 gzip 命令常用选项

  • 如何在Linux命令行与其他用户通信

    在 Linux 命令行里向其他用户发送信息很简单,很多命令都可以做到这点,麻烦的是你需要从众多命令中挑选一个合适的命令来使用.因此,我挑选了四种常用的 Linux 用户通信命令分享给大家并为你们讲解这四种命令是如何工作的. wall wall 命令(意为 write all )允许你向所有在系统已登录的用户发送信息.任何用户都可以使用 wall 命令,但 wall 命令通常是系统管理员用来向用户发送公告通知的(比如服务器将关闭维护). 一个系统管理员可能会发送如下信息: $ wall The s

  • 在 Linux 命令行发送邮件的 5 种方法(推荐)

    当你需要在 shell 脚本中创建邮件时,就需要用到命令行发送邮件的知识.Linux 中有很多命令可以实现发送邮件.本教程中包含了最流行的 5 个命令行邮件客户端,你可以选择其中一个.这 5 个命令分别是: mail / mailx mutt mpack sendmail ssmtp 工作原理 我先从整体上来解释下 Linux 中邮件命令怎么把邮件传递给收件人的.邮件命令撰写邮件并发送给一个本地邮件传输代理(MTA,如 sendmail.Postfix).邮件服务器和远程邮件服务器之间通信以实际

  • 如何在Linux下修改Mysql的用户(root)密码

    下面给大家分享下在Linux下如何修改Mysql的用户(root)的密码,分两种情况:第一种当拥有原来的mysql的root密码,第二种情况忘记原来的mysql的root的密码. 修改的用户都以root为列. 一.拥有原来的mysql的root的密码: 方法一: 在mysql系统外,使用mysqladmin 复制代码 代码如下: # mysqladmin -u root -p password "test123" Enter password: [输入原来的密码] 方法二: 通过登录m

  • Linux 命令行工具解析和格式化输出 JSON的方法

    JSON 是一种轻量级且与语言无关的数据存储格式,易于与大多数编程语言集成,也易于人类理解 -- 当然,如果格式正确的话.JSON 这个词代表 J ava S cript O bject N otation,虽然它以 JavaScript 开头,而且主要用于在服务器和浏览器之间交换数据,但现在正在用于许多领域,包括嵌入式系统.在这里,我们将使用 Linux 上的命令行工具解析并格式化打印 JSON.它对于在 shell 脚本中处理大型 JSON 数据或在 shell 脚本中处理 JSON 数据非

  • 在Linux命令行中使用计算器的5个命令详解

    大家好,我是良许. 在使用 Linux 时,我们有时会需要做一些计算,那么我们就可能需要用到计算器.在 Linux 命令行里,有许多计算器工具,这些命令行计算器可以让我们执行科学计算.财务计算或者一些简单的计算.当然,我们也可以在 Shell 脚本中使用这些命令执行更为复杂的数学运算. 这里我们主要介绍5种命令行计算器: bc calc expr gcalccmd qalc 1. 如何在 Linux 中使用 bc 执行计算 bc 是一种以交互式语句执行的方式支持任意精度的数字的语言,它的语法和

  • 详解Linux命令行快捷键

    Ctrl+a:光标移到行首. Ctrl+e:光标移到行尾. Ctrl+l:清除终端.该快捷操作与在命令行键入clear作用相同. Ctrl+d:删除光标后一个字符: Ctrl+u:清除当前行.假如在命令行下工作,使用这一快捷操作可以清除从光标处到行首的字符. Ctrl+Alt+功能键之一会显示一个新屏幕.根据默认设置,从F1到F6是Shell提示屏幕. Ctrl+K:删除从光标到行末所有字符. 向上和向下箭头:显示命令历史. bash保存着以前键入过的命令的列表,这一列表被称为命令历史表. Ta

  • 在Linux命令行终端中使用python的简单方法(推荐)

    Linux终端中的操作均是使用命令行来进行的.因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来. 打开命令行窗口 打开命令行窗口的快捷键如下: Ctrl + Alt + t 关闭名命令行窗口 关闭命令行窗口的快捷键如下: Ctrl + d 进入python环境 在命令行中直接输入python即进入了python的编辑环境.进入环境后最明显的提示是:光标由-$变成>>>. 退出python环境 使用ctrl +d的方式退出python

  • linux命令行批量创建目录详解

    linux命令行批量创建目录详解 以前一直用-p创建目录链,觉得很方便了. 在空目录/opt/app/myapp里创建src,再创建main,再创建java mkdir -p /opt/app/myapp/src/main/java 没想到还可以这样玩##¥%--&*( root@vm1:~/tmp# mkdir -p src/{{main,test}/{java,resources},main/webapp} root@vm1:~/tmp# tree . └── src ├── main │

  • linux命令行下使用curl命令查看自己机器的外网ip

    Linux命令行下如何查看自己机器的外网ip?可以在命令行下使用curl命令实现这个功能,试一下下面的命令吧 复制代码 代码如下: curl ifconfig.me 输入此条命令,就可以获取到本机的外网ip.

  • 在 Linux 命令行中使用 tcpdump 抓包的一些功能

    tcpdump 是一款灵活.功能强大的抓包工具,能有效地帮助排查网络故障问题. 以我作为管理员的经验,在网络连接中经常遇到十分难以排查的故障问题.对于这类情况, tcpdump 便能派上用场. tcpdump 是一个命令行实用工具,允许你抓取和分析经过系统的流量数据包.它通常被用作于网络故障分析工具以及安全工具. tcpdump 是一款强大的工具,支持多种选项和过滤规则,适用场景十分广泛.由于它是命令行工具,因此适用于在远程服务器或者没有图形界面的设备中收集数据包以便于事后分析.它可以在后台启动

随机推荐