screen工具的使用

screen工具的使用
一、基本概念

screen是GNU计划开发的窗口管理器,大多数Linux发行版都能自主安装使用。该工具用于命令行终端切换,用户可以通过该软件同时连接多个本地或远程命令行会话。实际效果类似于Xshell对主机多ssh连接窗口,不过由于工作在会话层(ssh连接虽然处在应用层,但依赖于传输层的tcp连接,不依靠会话层,没有断点重连),只要主机上的会话不关闭,就能够随时恢复会话。因此screen常用于保持与远程主机之间的数据传输的稳定,即使网络连接中断,后续也能通过远程主机上的screen会话恢复。

二、安装

许多Linux发行版都会自带screen,如果没有需要通过包管理器安装

二、会话命令

基本格式:

screen [-opts] [cmd [args]] 或

screen -r [host.tty] #使用完整名称 host.tty = 主机名.会话名称

最常用的几个命令:
参数释义
-r session_name
-R session_name
读取没非活动的会话进程,例如:screen -r session_name
读取会话,如果没有就新建一个
-d休眠(退出)一个活动中的会话(不加参数则退出当前会话),例如:screen -d session_name
-S sockname创建会话并以sockname命名(-r时使用这个),会话在list中名称格式为.sockname
-ls
-list
列出所有的活动或非活动会话
exit(非screen参数)退出当前会话,并清除。ps:不要在主屏幕使用
-d休眠当前会话(变为detached状态) ,并退出到主屏幕
其他命令:
参数释义
-wipe当程序崩溃时,会残留会话文件(dead状态),使用该命令自动清除
-x
-X
加入一个活动状态(attached状态)的会话
不加入会话,执行screen命令,常与-S联合使用
-U告诉当前会话使用utf-8编码,会清除屏幕内容,如果在主会话使用则用utf-8建立一个默认会话

值得注意的是,可以是使用-x参数共享一个活动中的screen。只要使用同一角色登陆系统,screen -x session 同一个会话,就能同步两边操作,即共享屏幕

-S在新建会话时可以立即使用系统命令,此时会建立会话并执行,在命令执行结束会话就会退出并释放。

-X能执行screen内部命令(等同于窗口命令Ctrl+a),在某些版本下可以模拟键盘输入系统命令,例如:

另外tty工具常跟screen工具一同使用,可以查看当前会话是第几个shell,使用队列存储,主会话也是占用一个位置的。

三、窗口命令

screen可以在每个会话下打开多个子窗口,每个窗口类似于一个新会话,所有被广播的会话能跟随这个操作。新建立的回话默认在0号窗口,支持键盘快捷键,在窗口中使用以下操作可以得到不同结果:

快捷键结果
Ctrl-a c在当前的会话下面生成一个新的窗口并切换过去
Ctrl+a d暂时退出会话(休眠)
Ctrl-a a返回上一个窗口(来回切换)
Ctrl-a n切换到下一序号的窗口
Ctrl-a p切换到上一序号的窗口
Ctrl-a num跳转到对应序号的窗口
Ctrl-a "输入序号跳转
Ctrl-a w显示当前窗口所有窗口
Ctrl-a k释放当前窗口

在使用screen的过程中要注意窗口位置,不要一不小心把链接关掉了!!

本文内容参考:https://blog.csdn.net/weixin_39925939/article/details/121033427