Screen 使用教程

简介

Screen是一款由GNU开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并自由切换。

使用教程

安装Screen

CentOS/RedHat/Fedora

yum -y install screen

Ubuntu/Debian

apt-get -y install screen

参数

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

常用参数

screen -S session_name           # 新建一个叫session_name的session
screen -ls(或者screen -list)   # 列出当前所有的session
screen -r session_name            # 回到session_name这个session
screen -d session_name           # 远程detach某个session
screen -d -r session_name        # 结束当前session并回到session_name这个session

在每个screen session 下,命令都以 ctrl+a、ctrl-a,常用的几个操作如下:

ctrl-a x   # 锁住当前的shell window,需用用户密码解锁
ctrl-a d   # detach,暂时离开当前session,将当前 screen session 转到后台执行,并会返回没进 screen 时的状态,此时在 screen session 里,每个shell client内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响
ctrl-a z   # 把当前session放到后台执行,用 shell 的 fg 命令则可回去。

具体用法

启动一个会话

screen
# 创建会话并命名
screen -S name

从会话中推出

Ctrl + a + d

重新连接screen

# 只有一个会话
screen -r
# 如果有多个会话
screen -ls

There are screens on:
7880.session    (Detached)
7934.session2   (Detached)
7907.session1   (Detached)
3 Sockets in /var/run/screen/S-root.

screen -r 7934

# 或者使用名称
screen -r -S session2

中止screen会话

# 使用-R/-r/-S均可
screen -R [pid/Name] -X quit