Linux终端多用户通信实用命令

一  命令

1.1 write

该命令将当前终端(源)输入的字符拷贝至目标用户的终端,从而发送消息给系统中某个用户。用法如下:


#write <user>

<msg>

[Ctrl+D]或[Ctrl+C]

当执行write命令时,目标用户将得到如下格式的标题:


Message from 源用户名@源主机 on 源字符终端 at 时:分 ...

随后输入的字符文本将被拷贝至指定用户的终端。目标用户若想回应,也必须执行write命令。

输入结束后,键入EOF(Ctrl+D)字符或中断(Ctrl+C)指令。目标用户将看到EOF消息,表明本次对话结束。

当目标用户登录多个终端时,可使用"write <user> <tty>"命令显式地指定目标终端名称。或者,交由write命令自动选择空闲时间最短的那个终端(该终端通常当前在用)。

注意,与write命令类似的还有talk命令。该命令为一个可视化通信程序,用法更为复杂。

1.2 wall

该命令发送消息给系统中所有登录用户。用法如下:


# wall <msg> 或

# wall

<msg>

[Ctrl+D]

其中,消息可作为wall命令的参数直接发送,也可写入wall命令的标准输入(此时消息长度限制为22行,且必须以EOF键结束)。

消息发送完毕时,目标用户将得到如下格式的标题和消息:


Broadcast message from 源用户名 (源字符终端) (星期 月 日 时:分:秒 年):

<空行>

消息内容

该命令忽略时区变量,即标题中打印的时间基于系统本地时间。

1.3 mesg

该命令控制其他非root用户对当前终端的写访问权,如是否允许其他用户发来消息。用法如下:

该命令发送消息给系统中所有登录用户。用法如下:


# mesg [y|n]

其中,y允许写入当前终端,n则禁止写入。若不指定选项y|n,则mesg命令输出该终端的当前访问状态。

二  示例

上节命令使用示例如下(wall命令未列出其他用户的终端显示):

 1 [[email protected] ~]$ w
 2  11:30:58 up 85 days,  3:45, 20 users,  load average: 0.12, 1.82, 2.77
 3 USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT
 4 wangxiao pts/1    10.46.44.16      Mon09    0.00s 23.57s  0.00s sshd: wangxiaoyuan_ [priv]
 5 root     pts/12   10.46.51.170     Mon15   19:49m  0.00s  0.00s -bash
 6 litianch pts/15   10.46.44.16      10:42    9:52   0.02s  0.02s -bash
 7 litianch pts/22   10.46.44.29      Fri17   20:39m  0.09s  0.09s -bash
 8 [[email protected] ~]$ write litianchi
 9 write: litianchi is logged in more than once; writing to pts/15
10 hello tianchi, type ‘write wangxiaoyuan_‘ and press ENTER
11 then enter ‘welcome!‘ and press Ctrl+D to send the message to me.
12 //Ctrl+C
13 [[email protected] ~]$
14 Message from [email protected] on pts/1 at 10:43 ...
15 hello tianchi, type ‘write wangxiaoyuan_‘ and press ENTER
16 then enter ‘welcome!‘ and press Ctrl+D to send the message to me.
17 EOF
18 //Enter
19 [[email protected] ~]$ write wangxiaoyuan_
20 welcome!
21 //Ctrl+D
22
23 [[email protected] ~]$
24 Message from [email protected] on pts/15 at 10:44 ...
25 welcome!
26 EOF
27 //Enter
28 [[email protected] ~] wall hello everyone!
29
30 Broadcast message from wangxiaoyuan_ (pts/21) (Fri Oct 31 16:54:56 2014):
31
32 hello everyone!
33
34 [[email protected] ~]$ wall
35 world!
36 //Ctrl+C
37 Broadcast message from wangxiaoyuan_ (pts/1) (Tue Nov 25 11:38:12 2014):
38
39 world!
40
41 [[email protected] ~]$ wall "Who‘s compling, please terminate! Just a test, pls go on..."
42 [[email protected] ~]$
43 Broadcast message from wangxiaoyuan_ (pts/21) (Fri Oct 31 17:25:03 2014):
44
45 Who‘s compling, please terminate! Just a test, pls go on...
46
47 [[email protected] ~]$ mesg
48 is y
49 [[email protected] ~]$ mesg n
50 [[email protected] ~]$ mesg
51 is n
52 [[email protected] ~]$ write litianchi pts/15
53 write: litianchi has messages disabled on pts/15

三  总结

本文所述的write和wall命令可能用于下述情况:

1) 需要独占编译资源时,可发送消息通知不要再执行编译任务;

2) 急需编译资源,而其他用户又在编译版本时,可发送消息通知暂停;

3) 遇到某用户执行死循环占用大量CPU时,可发送消息提醒退出。

不建议用于Linux系统用户间聊天通信(包括talk命令),毕竟过于原始。

时间: 2024-10-09 14:36:33

Linux终端多用户通信实用命令的相关文章

Linux终端概念及相关命令

Linux中终端的概念: 在使用Linux操作系统的过程中,我们可以通过终端(terminal)来输入命令和接收信息,用户如果想与计算机进行交互,就会使用到终端,所以说,显示器和键盘就是一种终端,我们接收显示器输出的信息,通过键盘向电脑输入信息,显示器和键盘是真实存在的物理设备,我们可以称之为物理终端. 刚才提到物理终端,除了物理终端,还有虚拟终端.图形终端.模拟终端等终端类型. 虚拟终端:虚拟终端是基于物理终端之上,以软件的方式虚拟实现的终端,虚拟终端称之为tty,我们可以在同一个物理终端上虚

Linux Tomcat日志查看实用命令

实用命令: 查看tomcat运行日志 tail -f catalina.out 通过关键字搜索查看日志 cat jeewx-2015-09-20.log | grep 验证码 查看固定时间日志 cat jeewx-2015-09-20.log | grep   '2015-09-20 18:50:15' 查看最近50行日志 tail -n 50 -f catalina.out Linux查看日志命令总结: cat 显示整个文件 tail tail 命令用于显示文本文件的末尾几行 head 从文本

Linux终端:用cat命令查看不可见字符

时常,某个程序或软件并没有语法错误,并且你检查它的相关内容也确实没有发现问题.这是因为你用普通文本编辑器软件来查看的时候,有许多字符没有显示出来,但在终端使用cat命令可以很容易地检测出是否存在这些字符. ~首先,我们创建一个简单的文本文件,写入一些特殊字符.打开终端,运行命令: printf 'testing\012\011\011testing\014\010\012more testing\012\011\000\013\000even more testing\012\011\011\0

Linux中的vim实用命令 -- (转)

VI 有2个模式.我自己定义的 1. 命令模式,一开始进去的模式.一些指定的键盘输入会产生不同的效果 2. 输入模式,在命令模式下输入冒号(:) 就可以进入输入模式.按Esc键即可退出命令模式. 命令模式 用键盘的一些制定的键可以完成一些操作(经常用到的),如下: i,I (顾名思义:insert插入).小写i表示在光标所在字符的前面插入,小写I表示在光标所在行的最开头处插入. a,A (顾名思义:append 接在后面,或者叫after在之后).小写a表示在光标所在字符的后面插入,大写A表示在

Linux vi下常用实用命令

查看文件编码: :set fileencoding 文件添加行号: :set number

20个Linux命令及Linux终端的趣事

20个Linux命令及Linux终端的趣事 1. 命令:sl (蒸汽机车) 你可能了解 ‘ls’ 命令,并经常使用它来查看文件夹的内容.但是,有些时候你可能会拼写成 ‘sl’ ,这时我们应该如何获得一些乐趣而不是看见“command not found”呢? 安装 sl [email protected]:~# apt-get install sl (In Debian like OS) [email protected]:~# yum -y install sl (In Red Hat lik

在linux终端下快速删除输错的命令小技巧

有时候在linux终端中执行某个命令时,往往会输错命令,想删除掉重敲可以按backspace键,但这样较慢,一种简便技巧是,按住esc键同时按backspace键会较快删除[esc+backspace]组合键.或者[ctrl+u]组合键 当然,直接回车更直接,但可能会产生一堆的错误提示. 作者:xingguang 链接:原文链接:https://www.tiance.club/post/2329327795.html 原文地址:https://www.cnblogs.com/yizhidaozu

[转]Linux新手必备:8个实用的Linux终端命令

使用Linux终端不仅仅是只输入命令.学习这些基本的技巧,你就会逐渐掌握Bash shell,这个在大多数Linux发行版上默认使用的终端工具. 这篇文章面向新手,我相信大多数高级用户已经知道了所有的这些技巧,但是,你仍然可以看看,也许能学到你一直以来都忽略了的东西. Tab键自动补全 使用Tab键自动补全是基本的技巧.它能节省你很多时间,而且当你不确定一个文件名或者命令怎么拼写时,它也及其有用. 举个例子,比如在当前目录你有一个文件,文件名是“really long file nam”,你想删

Linux 项目实用命令

总结一下Linux下常用的命令 nc nc命令,这是Linux一般都带有的,被誉为“瑞士军刀”.windows和Linux都有,可以下载安装对应的平台工具.使用UDP和TCP协议的网络连接去读写数据,是一个稳定的后门工具.同时它也是一个功能强大的网络调试和嗅探工具. 使用格式: nc [-options] hostname port[s] [ports] ... 连接到某个地方 nc -l -p port [options] [hostname] [port] 绑定端口等待连接 参数有下: -e