不同终端登录同一台服务器两个用户可同时共享一个shell终端
我发现一件比较有意思的事情
从不同终端登录同一台服务器的两个用户(userA和userB)可以同时使用一个shell终端实现shell共享
userA能看到userB在终端的输入
userB也能看到userA在终端上的输入
就好像他们在使用一个终端,彼此的输入是共享给对方的
一个终端的输入会共享在两个终端上,同时被看到
首先检查系统安装包tcl和expect- [root@XKWB5705 ~]# rpm -qa |grep tcl
- tcl-8.4.13-4.el5
- tcl-devel-8.4.13-4.el5
- tcl-8.4.13-4.el5
-
-
-
- [root@XKWB5705 ~]# rpm -qa |grep expect
- expect-5.43.0-5.1
- expect-5.43.0-5.1
-
复制代码 如果没有expect的话,配置好yum,直接使用yum install expect -y 进行安装
然后看一下是否有kibitz命令- [root@XKWB5705 ~]# 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@XKWB5705 ~]# kibitz -tty pts/3 root
- asking root to type: kibitz -3723
-
复制代码 #光标就停在这个地方,这个进程并没有终止
此时去2号窗口(终端pts/3)你会看到这样:- [root@XKWB5705 ~]#
- Message from root@XKWB5705 on pts/2 at 00:07 ...
- Can we talk? Run:
复制代码 #需要你将“kibitz -3723”粘贴在这个地方
在2号窗口(终端pts/3)粘贴完之后就变成这样了:- [root@XKWB5705 ~]#
- Message from root@XKWB5705 on pts/2 at 00:07 ...
- Can we talk? Run: kibitz -3723
- EOF
- kibitz -3723
- Escape sequence is ^]
复制代码 再回到1号窗口(终端pts/2)你会发现,屏幕上的输出信息:【绿色部分是粘贴完之后出现的】- [root@XKWB5705 ~]# kibitz -tty pts/3 root
- asking root to type: kibitz -3723
- Escape sequence is ^]
复制代码 现在两个终端已经实现共享了,当你从其中任何一个终端输入命令行的时候,都会在另一个终端上有完全相同的输出 |