一  命令

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. 第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作、增、删、改、查

    第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作.增.删.改.查 elasticsearch(搜索引擎)基本的索引 ...

  2. (转) s-video vs. composite video vs. component video 几种视频格式详细说明和比较

    之前对着几种视频格式认识不是很清晰,所以看数据手册的时候,看的也是稀里糊涂的. 因为项目中需要用到cvbs做视频输入,在元器件选型上,看到tw2867的数据手册上,有这么一句话: The TW2867 ...

  3. SQL Server 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过

    存储过程 创建存储过程 use pubs --pubs为数据库 go create procedure MyPRO --procedure为创建存储过程关键字,也可以简写proc,MyPRO为存储过程 ...

  4. 通过 Service 访问 Pod

    我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉.Deployment 等 controller 会通过动态创建和销毁 Pod 来保 ...

  5. c++ A类包含B类指针,B类包含A类指针的情况

    #include<stdio.h> class Bclass; class Aclass { public: friend Bclass; void func() { pB->fun ...

  6. unity3d 资源打包加密 整理

    资源打包脚本,放到Assets\Editor 文件夹下 using UnityEngine; using System.Collections; using UnityEditor; using Sy ...

  7. [原创]解决jQuery.live在mobile safari(iphone / ipad / ipod)绑定失败的问题

    解决方案: 给要使用live绑定事件的元素,添加“cursor:pointer”样式即可! 如: a,input,td{cursor:pointer;} 原文链接:http://bugs.jquery ...

  8. CentOS 65 java 访问 MS SQL

    #install unixODBC sudo yum install unixODBC unixODBC-devel -y #install freetds #1st download freetds ...

  9. 无插件用Terminal/TotalTerminal的开当前finder位置

    从win7开始,在资源管理器内按住shift再右键,是可以选择“在当前位置打开命令行”的,相当有用,这个命令在mac下是如何实现的呢? 前提:我讲的是TotalTerminal下的方案,原生的term ...

  10. js粘贴事件paste简单解析及遇到的坑

    在用户执行粘贴操作的时候,js能够获得剪切板的内容,本文讨论一下这个问题. 目前只有Chrome支持获取剪切板中的图片数据.还好需要这个功能的产品目前只支持Chrome和Safari,一些Chrome ...