更新时间:2021-08-30

更新版本:v1.0

一、screen 命令

Screen 是一个全屏窗口管理器,它可以在多个进程之间多路复用一个物理终端。Screen 中有会话的概念,用户可以在一个会话中创建多个 screen 窗口,在每一个 screen 窗口中就像操作一个真实的 telent/SSH 连接窗口那样。通俗的讲,screen 命令用于新建一个或多个“命令行窗口”在新建的这些“窗口”中,可以执行命令并且这些“窗口”都是独立并行的。

1.1 语法

screen [ -options ] [ cmd [ args ] ]
screen -r [[pid.]tty[.host]]
screen -r sessionowner/[[pid.]tty[.host]]

1.1.1 参数说明

参数选项描述
-A将所有的视窗都调整为目前终端机的大小
-d [ SCREEN ]将指定的screen作业离线
-h [ LINES ]指定视窗的缓冲区行数
-r [ SCREEN ]恢复离线的screen作业
-R [ SCREEN ]先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s [ SHELL ]指定建立新视窗时,所要执行的shell
-S [ SCREEN ]创建新screen会话并指定会话名称
-v显示版本信息
-x [ SCREEN ]恢复之前离线的screen作业
-ls 或 -list显示目前所有的screen作业
-wipe检查目前所有的screen作业,并删除已经无法使用的screen作业
-t [ TITLE ]设置标签
-m即使目前已在作业中的screen作业,仍强制建立新的screen作业

1.2 快捷键

进入 screen 会话后,使用快捷键 CTRL+a 后可以再加一些键值进行指定特定功能

快捷键描述
先按 CTRL+a,然后按 ?显示所有键绑定信息
先按 CTRL+a,然后按 c创建一个新的运行 shell 的窗口并切换到该窗口(新窗口只有执行快捷键用户能看到)
先按 CTRL+a,然后按 nNext,切换到下一个 window
先按 CTRL+a,然后按 pPrevious,切换到前一个 window
先按 CTRL+a,然后按 0…9切换到第 0…9 个 window
先按 CTRL+a,然后按 [Space]由视窗0循序切换到视窗9
先按 CTRL+a,然后按 CTRL+a在两个最近使用的 window 间切换
先按 CTRL+a,然后按 x锁住当前的 window,需用用户密码解锁
先按 CTRL+a,然后按 d暂时离开当前 session,将目前的 session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态
先按 CTRL+a,然后按 z把当前 session 放到后台执行,用 shell 的 fg 命令则可回去
先按 CTRL+a,然后按 w显示所有窗口列表
先按 CTRL+a,然后按 ttime,显示当前时间,和系统的 load
先按 CTRL+a,然后按 kkill window,强行关闭当前的 window
先按 CTRL+a,然后按 *查看当前 screen 有多少个终端接入

1.3 示例

创建新 screen 会话

# 语法
screen -S [ SESSION ]

# 新建一个help会话,并默认进入session中
screen -S help

# 新建一个t1会话,但不进入会话
screen -dmS t1

# 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
screen -R T1

显示所有已经打开的 screen 会话

# 当有终端在screen会话中时
[root@CentOS7 ~]# screen -ls
There is a screen on:
	1566.help	(Attached) 
1 Socket in /var/run/screen/S-root.

# 当没有终端在screen会话中时
[root@CentOS7 ~]# screen -ls
There is a screen on:
	1566.help	(Detached)
1 Socket in /var/run/screen/S-root.

加入到已存在的 screen 会话中

# 语法
screen -x [ SESSION ]

# 进入一个会话中
screen -x help

# 恢复某会话
screen -r T1

# # 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
screen -R T1

退出并关闭会话

exit

剥离当前会话,但是不关闭

# 使用快捷键
先按 CTRL+a 键,然后按 d 键

恢复某会话

# 语法
screen -r [ SESSION ]

# 恢复会话
screen -r help
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐