不同终端登录同一台服务器两个用户可同时共享一个shell终端


我发现一件比较有意思的事情

从不同终端登录同一台服务器的两个用户(userA和userB)可以同时使用一个shell终端实现shell共享

userA能看到userB在终端的输入

userB也能看到userA在终端上的输入

就好像他们在使用一个终端,彼此的输入是共享给对方的

一个终端的输入会共享在两个终端上,同时被看到

首先检查系统安装包tcl和expect

[root@www.bkjia.com ~]# rpm -qa |grep tcl
tcl-8.4.13-4.el5
tcl-devel-8.4.13-4.el5
tcl-8.4.13-4.el5

[root@www.bkjia.com ~]# rpm -qa |grep expect
expect-5.43.0-5.1
expect-5.43.0-5.1

如果没有expect的话,配置好yum,直接使用yum install expect -y 进行安装

然后看一下是否有kibitz命令

[root@www.bkjia.com ~]# whereis kibitz
kibitz: /usr/bin/kibitz /usr/local/bin/kibitz /usr/share/man/man1/kibitz.1.gz

接下来开始做实验:

通过xshell同时开两个窗口登录同一台机器

 

然后用w命令看一下当前登录的用户以及使用的终端

 

从上面图片可以看到xshell的1号窗口是从终端pts/2登录的,2号窗口是从pts/3登录的

在1号窗口(终端pts/2)中做这个操作--向pts/3发出请求:

[root@www.bkjia.com ~]# kibitz -tty pts/3 root
asking root to type:  kibitz -3723

#光标就停在这个地方,这个进程并没有终止 

此时去2号窗口(终端pts/3)你会看到这样:

[root@www.bkjia.com ~]#
Message from root@www.bkjia.com on pts/2 at 00:07 ...
Can we talk? Run:                #需要你将“kibitz -3723”粘贴在这个地方 

在2号窗口(终端pts/3)粘贴完之后就变成这样了:

[root@www.bkjia.com ~]#
Message from root@www.bkjia.com on pts/2 at 00:07 ...
Can we talk? Run: kibitz -3723
EOF
kibitz -3723
Escape sequence is ^]
 

再回到1号窗口(终端pts/2)你会发现,屏幕上的输出信息:【绿色部分是粘贴完之后出现的】

[root@www.bkjia.com ~]# kibitz -tty pts/3 root
asking root to type:  kibitz -3723
Escape sequence is ^] 

现在两个终端已经实现共享了,当你从其中任何一个终端输入命令行的时候,都会在另一个终端上有完全相同的输出

相关内容