GNU Screen - 持久化终端会话

GNU Screen 是终端复用器。它可以让命令在会话分离或网络连接中断后继续运行,之后再重新连接。

创建会话

# 创建未命名会话
screen
 
# 创建名为 work 的会话
screen -S work

在 Screen 内按 Ctrl+A,松开后再按 d,即可分离当前会话。

查看与恢复

# 列出当前用户的会话
screen -ls
 
# 恢复指定会话
screen -r work

如果会话仍连接在另一个终端,可先分离旧连接再恢复:

screen -d -r work

该命令会中断旧终端与会话的连接,使用前应确认不会影响另一位正在操作的使用者。

常用快捷键

所有快捷键都先按前缀 Ctrl+A

快捷键作用
d分离当前会话
c创建新窗口
n切换到下一个窗口
p切换到上一个窗口
"显示窗口列表
k关闭当前窗口

关闭窗口前应确认其中没有仍需运行的任务。退出窗口中的 Shell 后,该窗口也会关闭;最后一个窗口结束时 Screen 会话终止。

安全提示

  • 会话名不是访问控制手段;能够使用同一系统账号或取得更高权限的用户可能访问会话。
  • 终端内容和回滚缓冲区可能包含账号、令牌或内部地址,分享截图或日志前应先检查。
  • 需要录制可回放的终端演示时,可使用 Asciinema;需要保存本地文本记录时,可使用 script

参考资料