一  命令

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命令未列出其他用户的终端显示):

 [wangxiaoyuan_@localhost ~]$ w
11:30:58 up 85 days, 3:45, 20 users, load average: 0.12, 1.82, 2.77
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
wangxiao pts/1 10.46.44.16 Mon09 0.00s 23.57s 0.00s sshd: wangxiaoyuan_ [priv]
root pts/12 10.46.51.170 Mon15 19:49m 0.00s 0.00s -bash
litianch pts/15 10.46.44.16 10:42 9:52 0.02s 0.02s -bash
litianch pts/22 10.46.44.29 Fri17 20:39m 0.09s 0.09s -bash
[wangxiaoyuan_@localhost ~]$ write litianchi
write: litianchi is logged in more than once; writing to pts/15
hello tianchi, type 'write wangxiaoyuan_' and press ENTER
then enter 'welcome!' and press Ctrl+D to send the message to me.
//Ctrl+C
[litianchi@localhost ~]$
Message from wangxiaoyuan_@localhost.localdomain on pts/1 at 10:43 ...
hello tianchi, type 'write wangxiaoyuan_' and press ENTER
then enter 'welcome!' and press Ctrl+D to send the message to me.
EOF
//Enter
[litianchi@localhost ~]$ write wangxiaoyuan_
welcome!
//Ctrl+D [wangxiaoyuan_@localhost ~]$
Message from litianchi@localhost.localdomain on pts/15 at 10:44 ...
welcome!
EOF
//Enter
[wangxiaoyuan_@localhost ~] wall hello everyone!

Broadcast message from wangxiaoyuan_ (pts/21) (Fri Oct 31 16:54:56 2014): hello everyone! [wangxiaoyuan_@localhost ~]$ wall
world!
//Ctrl+C
Broadcast message from wangxiaoyuan_ (pts/1) (Tue Nov 25 11:38:12 2014): world! [wangxiaoyuan_@localhost ~]$ wall "Who's compling, please terminate! Just a test, pls go on..."
[wangxiaoyuan_@localhost ~]$
Broadcast message from wangxiaoyuan_ (pts/21) (Fri Oct 31 17:25:03 2014): Who's compling, please terminate! Just a test, pls go on... [litianchi@localhost ~]$ mesg
is y
[litianchi@localhost ~]$ mesg n
[litianchi@localhost ~]$ mesg
is n
[wangxiaoyuan_@localhost ~]$ write litianchi pts/15
write: litianchi has messages disabled on pts/15

三  总结

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

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

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

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

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

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

  1. 像Linux终端一样使用windows命令行【cmder】

    像Linux终端一样使用windows命令行[cmder] 下载cmder 我下载的是full版,下载之后是个压缩包,解压之后点击cmder.exe即可运行. 需要解决的几个问题 默认的是λ,当然还是 ...

  2. Linux Tomcat日志查看实用命令

    实用命令: 查看tomcat运行日志 tail -f catalina.out 通过关键字搜索查看日志 cat jeewx-2015-09-20.log | grep 验证码 查看固定时间日志 cat ...

  3. Linux终端(terminal)清屏命令

    windows CMD终端的清屏命令是cls Linux终端中的清屏命令有 1) clear 2) reset

  4. Linux终端的一些快捷键命令

    一.初识linux的终端种类:本地.远程 查看本终端命令: #tty 命令,看到当前所处的终端 #(w)who 命令,看到系统中所有登录的用户 其中,tty 终端为表示在本地命令行模式下打开的终端:p ...

  5. linux终端下为什么用命令打开软件后,要关闭软件才能继续下一条命令?

    用终端打开chromium浏览器(命令:chromium-browser)的时候发现打开浏览器之后无法继续在终端输入命令,只能关闭浏览器或者在终端按下Ctrl+c,此时系统将退出浏览器并可以继续在终端 ...

  6. Linux重器之 Vim 实用命令

    Vim 常用的命令 光标定位; hjkl  上下左右移动 0 $ 跳到行首或行尾 gg   shift+G 跳到整个文件的开头行或者结尾行 1G ,2G,3G........NG ,跳到第1.2.3 ...

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

    VI 有2个模式.我自己定义的   1. 命令模式,一开始进去的模式.一些指定的键盘输入会产生不同的效果 2. 输入模式,在命令模式下输入冒号(:) 就可以进入输入模式.按Esc键即可退出命令模式. ...

  8. 「LINUX资料」简单实用命令less和vi(三)

  9. Linux终端 Tab 补全命令

    1. vi编辑器打开 /etc/bash.bashrc文件 vi /etc/bash.bashrc 2.找到文件中的下列代码 3.将注释符号#去掉,即改成 4.最后 source一下 /etc/bas ...

随机推荐

  1. 嵌入式驱动开发只设备数---dts

    http://blog.sina.com.cn/s/blog_ad64b8200101e7q0.html

  2. (转)ffmpeg 中 av_read_frame_internal分析

    作者: chenwei1983    时间: 2012-3-5 04:21 PM标题: ffmpeg 中 av_read_frame_internal分析                       ...

  3. python_smtplib

    import smtplib smtpserver = 'smtp.qq.com' fromaddr = 'fromaddr@qq.com' toaddrs = 'toaddr@qq.com' msg ...

  4. HttpClient后台post 请求webapi

    1.请求方法 /// <summary> /// httpClient 请求接口 /// </summary> /// <param name="url&quo ...

  5. [SQL Server] 复制数据库任务

    假设你要生产环境下的数据做相应的测试,比如修改及测试存储过程.更改和优化索引等.但是你用户在连接数据库的情况下,你又不能断开数据库的连接.如何取得数据库的副本呢? 一.  利用数据库任务中的复制数据库 ...

  6. Web打印控件Lodop实现证件套打

    第一次接触Lodop大概是在两年前了,那时候研究Lodop主要是为了验证它能不能实现打印时在不修改内容的前提下调整样式,结果是ok的,如今又一次接触它,是因为工作中需要使用它了,于是再一次碰面 Lod ...

  7. SqlException with message "Caught java.io.CharConversionException." and ERRORCODE=-4220

    Technote (troubleshooting) Problem(Abstract) When an application uses the IBM Data Server Driver for ...

  8. Single Pattern(单例模式)

    单例模式是一种常用的软件设计模式.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果希望在系统中某个类的实例只能存在一个,单例模式是最好的 ...

  9. Lua常用时间函数

    常用时间函数 print(os.time()) --当前系统时间值 print(os.date( print(os.date("*t"), os.time()) --当前系统时间表 ...

  10. 【jmeter】jmeter 压力测试

    1.添加线程组,添加CSV Data set config 设置要读取的文件的路径,内容. 指定文件名称,文件编码,变量名,分割符等. 2.添加HTTP请求,注意参数 3.添加监听信息 模拟高并发 , ...