574 字
3 分钟
Screen 使用教程

简介#

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

使用教程#

安装Screen#

CentOS/RedHat/Fedora

Terminal window
yum -y install screen

Ubuntu/Debian

Terminal window
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,常用的几个操作如下:

Terminal window
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 命令则可回去。

具体用法#

启动一个会话#

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

从会话中推出#

Terminal window
Ctrl + a + d

重新连接screen#

Terminal window
# 只有一个会话
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会话#

Terminal window
# 使用-R/-r/-S均可
screen -R [pid/Name] -X quit
Screen 使用教程
https://blog.gckjoy.com/archives/screen-use/
作者
Echo of Joy
发布于
2024-05-16
许可协议
CC BY-NC-SA 4.0