常用场景:

  • 命令行窗口多任务执行
  • SSH断开连接时会关闭当前SHELL运行命令,但不会影响已后台(Detached)screen窗口。

常用命令:

  • 创建:screen -S name
  • 恢复:screen -r name
  • 查看有多少会话:screen -ls
  • 暂离当前会话:CTRL+A then D
  • 退出并关闭当前会话:exit

语法:

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

实例:

# screen -S name //创建 screen_name 为 name 的 screen 终端

在 screen 终端 下 按下 Ctrl+A D键 //暂离当前的 screen 终端

# screen -ls  //显示已创建的screen终端 
# There are screens on:
#         29261.genshin   (Detached)
#         23973.MC        (Detached)
#         10981.v2ray     (Detached)
#         29671.bilichat  (Detached)
# 4 Sockets in /var/run/screen/S-root.

# screen -r 2276 //连接 screen_id 为 2276 的 screen终端
# screen -r name //连接 screen_name 为 2276 的 screen终端

在 screen 终端中
# exit //退出并关闭当前screen终端
# [screen is terminating]