Linux趣味小知识---tty终端内置的极简QQ功能

                                              Linux趣味小知识---tty终端内置的极简QQ功能

首先,需要了解几个基本的概念:

a, tty(终端设备的统称): 
tty一词源于Teletypes,或teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘和显示器取代,所以现在叫终端比较合适。 
终端是一种字符型设备,他有多种类型,通常使用tty来简称各种类型的终端设备。 通常,如果没有安装桌面,只安装了命令行终端,那么,开机后输入用户名和密码所登陆的是tty1,按ctrl+alt +f1对应的就是tty1,Ctrl+alt+f2 对应的就是tty2,以此类推,总共六个tty。Ctrl+alt+f7将会进入桌面,如果没有安装桌面将不会有任何相应。
b,pty(虚拟终端): 
但是假如我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty) 
c, pts/ptmx(pts/ptmx结合使用,进而实现pty): 
pts(pseudo-terminal slave)是pty的实现方法,和ptmx(pseudo-terminal master)配合使用实现pty。

通常的,如果你是使用xshell这样的工具登陆系统,或者ssh登陆某个系统,xshell会帮你虚拟出一个终端,这个终端名称为pts/0,当使用xshell在开一个终端,那么这个新开终端就叫pts/1。以此类推。

w命令显示有两个终端,这两个终端都是xshell所开启的,名字分别为pts/0 pts/1,如果在开新的终端,那么必定是pts /2 了。xshell所在IP为192.168.0.2这台机器,登陆时间是10点27和28.

其次,需要了解一下三个基础命令,w和who和who am i

d,w命令

w命令是显示当前所有登陆用户以及登陆时间,登陆用户名,登陆时长,登陆地点以及终端所使用的shell类型等等详细信息的命令。

e,who命令

简化版的w命令,只显示登陆用户名,登陆终端名,登陆时间,如果是远程登陆,就显示登陆地点(IP)。

f,who am i 命令

仅显示当前终端的登陆信息,包括登陆用户名,登陆终端名,登陆时间,以及登陆地点。

g,write命令

这个命令的帮助提到了用户名和终端名称。

[root@centos11 ~]# write --help

Usage:
 write [options] <user> [<ttyname>]

Options:
 -V, --version    output version information and exit
 -h, --help       display this help and exit

write 用户名  终端名 ,这个命令会是前台运行,此时你输入什么都会实时的显示到 终端名 这个终端内。 

 



好了,我想都应该知道,QQ聊天的基本功能就是端对端(或者也可以称之为一对一)的传递消息,当然,现实中QQ的消息不仅仅限于文字,还可以一对一的发送图片,表情,文件传送等等多种多样的功能,极简的功能当然指的是文字信息啦,那么,我们应该怎么做让两个Linux终端快速的传递文字消息呢?

首先,一对一的传递消息是需要知道谁和谁,也就是自己在哪个终端,对方在哪个终端。

这个时候就该write命令闪亮登场了。比如,使用xshell登陆centos系统,该系统为虚拟机,IP地址为192.168.0.19,xshell安装在windows系统内,IP地址为192.168.0.2,。利用xshell开启两个终端 分别为 pts/0和 pts/1.

既然已经知道了两方的名字,一个是pts0 一个是pts1,那么两边都执行write命令并互相监听对方名字就可以像QQ一样聊天了(不支持中文,如果使用中文将不会得到解析)。

可以看到,这样并不友好,哪个消息是哪个终端所发的并没有标明,但,简单的信息传递工作可以实现。实际工作中,可以利用此方法实现简单的工作协调。(Ctrl+c或者Ctrl+d结束会话)

也可以给普通用户发送消息,但不管是什么用户,必须是登陆状态,su - 命令系统并不会认为是登陆状态。也就是说 who am i 命令查询到的是哪个用户,哪个用户就是登陆状态,比如:

虽然使用su命令切换到了zsk,但登陆用户仍然是root,这里一定要注意哦!!!!!!~~~

 

 

猜你喜欢

转载自blog.csdn.net/alwaysbefine/article/details/113792986