1.什么是Screen?
GNU screen是终端多路复用器的意思,它的作用就相当于在linux开启一个多后台的功能。我们可以在该会话中打开任意数量的窗口(虚拟终端),即使我们的ssh会话断开,我们在后台运行的进程也不会受到影响。
2.安装Screen
当前多数的Linux发行版都预装了Screen包,我们可以通过命令:
screen --version 来查看screen的版本

如果你的linux没有安装screen包,则可以通过发行版的软件包管理器进行安装
(1)centos系统
$ sudo yum install screen
(2)debian或ubuntu系统
$ sudo apt install screen
3.开始使用Screen
(1)打开screen窗口
输入screen
命令可以直接创建一个新的终端窗口(新会话)
此时键盘按住【ctrl+a】再输入【?】,就可以查看screen的相关操作命令



(2)创建screen命名会话
在创建多个screen的情况下,对会话进行命名是一个很好的选择,能够为我们在后续查看窗口内容时带来方便。
输入screen -S(大写) session_name
,就可以创建一个指定名字的会话
(3)使用screen会话
默认情况下,在我们启动一个新的screen会话时,其同时会创建一个包含shell的单个窗口
在这个screen窗口的下边,我还可以再创建多个基于这个会话的多个窗口
我们可以使用【Ctrl+a】+【c】来创建screen会话下的新窗口,将为其分配范围0...9中的第一个可用编号
常用语法:screen 【-m R x v -ls -wipe】 【-d <作业名称>】【-r <作业名称>】 【-S <作业名称>】
参数说明:
-m:即使目前已在作业中的screen作业,仍强制建立新的screen作业
-R :先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-x:恢复之前离线的screen作业。
-ls:查看当前screen的所有作业
-wipe:检查目前所有的screen作业,并删掉已经无法使用的screen作业
-S session_name:创建一个制定会话名的screnn
-r session_ID或session_name:回到某个screen会话(会话状态为Detached的状态下使用)
-d session_ID或session_name:将某个screen会话的状态从Attached变为Detached
-d -r session_ID或session_name:在某个会话是Attached状态下,无法直接-r恢复的状态下使用,可以踢出上一个登陆的用户,然后恢复会话(常用于ssh断开重连后无法恢复screen会话的状态)

如图,我们无法直接恢复这些窗口,但是我们只要使用命令:
screen -d -r 21986
就能恢复窗口的使用了
管理linux screen窗口的常用命令:
进入screen后
【Ctrl + a】 c:在当前screen下再创建一个新的窗口,分配0-9的第一个可用编号
【Ctrl + a 】0(编号):切换到0号窗口
【Ctrl + a】" :列出当前screen会话的所有窗口

【ctrl + a】+ d :将screen会话窗口放在后台运行
【ctrl + a】+ k:将目前位于前台的screen会话窗口关闭
【ctrl + a】+ n - 切换到下一个会话
【ctrl + a】+ p - 切换到上一个会话
【ctrl + a】+ S - 将当前区域水平分割为两个区域
【ctrl + a】+ l - 将当前区域垂直分割为两个区域
【ctrl + a】+ Q - 关闭除当前会话之外的所有会话
【ctrl + a】+ X - 关闭当前会话
【ctrl + a】+ \ - 终止所有会话并终止 Screen
【ctrl + a】+ ? - 显示键绑定。要退出,请按回车 #### 锁定会话
在主会话中关闭子会话
screen -X -S 26543 quit
Comments NOTHING