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命令未列出其他用户的终端显示):
[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终端多用户通信实用命令的更多相关文章
- 像Linux终端一样使用windows命令行【cmder】
像Linux终端一样使用windows命令行[cmder] 下载cmder 我下载的是full版,下载之后是个压缩包,解压之后点击cmder.exe即可运行. 需要解决的几个问题 默认的是λ,当然还是 ...
- Linux Tomcat日志查看实用命令
实用命令: 查看tomcat运行日志 tail -f catalina.out 通过关键字搜索查看日志 cat jeewx-2015-09-20.log | grep 验证码 查看固定时间日志 cat ...
- Linux终端(terminal)清屏命令
windows CMD终端的清屏命令是cls Linux终端中的清屏命令有 1) clear 2) reset
- Linux终端的一些快捷键命令
一.初识linux的终端种类:本地.远程 查看本终端命令: #tty 命令,看到当前所处的终端 #(w)who 命令,看到系统中所有登录的用户 其中,tty 终端为表示在本地命令行模式下打开的终端:p ...
- linux终端下为什么用命令打开软件后,要关闭软件才能继续下一条命令?
用终端打开chromium浏览器(命令:chromium-browser)的时候发现打开浏览器之后无法继续在终端输入命令,只能关闭浏览器或者在终端按下Ctrl+c,此时系统将退出浏览器并可以继续在终端 ...
- Linux重器之 Vim 实用命令
Vim 常用的命令 光标定位; hjkl 上下左右移动 0 $ 跳到行首或行尾 gg shift+G 跳到整个文件的开头行或者结尾行 1G ,2G,3G........NG ,跳到第1.2.3 ...
- Linux中的vim实用命令 -- (转)
VI 有2个模式.我自己定义的 1. 命令模式,一开始进去的模式.一些指定的键盘输入会产生不同的效果 2. 输入模式,在命令模式下输入冒号(:) 就可以进入输入模式.按Esc键即可退出命令模式. ...
- 「LINUX资料」简单实用命令less和vi(三)
- Linux终端 Tab 补全命令
1. vi编辑器打开 /etc/bash.bashrc文件 vi /etc/bash.bashrc 2.找到文件中的下列代码 3.将注释符号#去掉,即改成 4.最后 source一下 /etc/bas ...
随机推荐
- CentOS 6.9编译安装Erlang
转自http://www.jb51.net/article/59823.htm 这篇文章主要介绍了CentOS 6.5源码安装Erlang教程,本文讲解了源码编译安装的过程和遇到的一些错误处理方法,需 ...
- Java对象的序列化与反序列化-Json篇
说到Java对象的序列化与反序列化,我们首先想到的应该是Java的Serializable接口,这玩意在两个系统之间的DTO对象里面可能会用到,用于系统之间的数据传输.或者在RPC(远程方法调用)时可 ...
- git 出错 bad index file sha1 signature
error: bad index file sha1 signature fatal: index file corrupt 解决方法:使用git命令执行: $ rm -f .git/index $ ...
- [SQLite3]connection string的连接池参数引发的错误
最近在.net中使用Sqlite数据库,发现.net的驱动做得不错,而且实现了加密功能.于是想给自己的数据库加上口令,结果,多次实验都以失败告终: 链接数据库,然后ChangePassword都成功执 ...
- SpringBoot实战(四)之使用JDBC和Spring访问数据库
这里演示的是h2databse示例,所以简单的介绍普及下h2database相关知识 H2数据库是一个开源的关系型数据库. H2是一个嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提 ...
- perforce 学习资源
这两天,要将depot切换到stream 使用,收集了很多perforce的学习资源,在这里记录一下: perforce 官网: www.perforce.com perforce参考手册: ht ...
- 如何用BarTender 2016字处理器完成表格设计
很多时候,需要应客户要求,用BarTender 2016设计带表格的标签.在BarTender 2016中字处理器文本对象可以使用字处理中的诸多格式功能(如项目符号.编号列表.表格.混合字体以及RTF ...
- Blender 建模
1.多图层切换 Blender也有图层的概念,我们在一个图层上建立了一个模型,可以在另外一个图层新建一个独立的模型.界面底部包含了Layer切换按钮.如下图所示: 当前我们正在操作第一个图层,如果想在 ...
- 在jsp中使用jstl,不使用JS,实现递归,生成N级菜单
参考材料: http://blog.csdn.net/kimsoft/article/details/7801564 我的实现: 1.我的recursionMenu.jsp代码如下: <%@ ...
- ./configure、make、make install 命令
https://www.cnblogs.com/tinywan/p/7230039.html https://www.sohu.com/a/191735643_505857 ./configure 该 ...