Linux screen命令用于多重视窗管理程序。
screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。
Screen命令
我会用到这个命令是因为,我有时会在nas中下载高容量影音文件的需求,而我往往没有耐心等到文件全部下载完再断开连接。我希望在我睡觉时也能够下载,因此我需要一种方法,让我即使断开ssh连接也能够持续运行命令。
Screen是这种情况的解决方案。
Screen |
---|
Screen的操作步骤
启动一个新的 screen 会话:
1
screen -S <name>
在这个会话中启动你的下载命令。
要离开会话但保持它在后台运行,按
Ctrl-A
然后按D
。当你想要返回这个会话时,使用:
1
screen -r <name>
Screen的特点是,除非你主动关闭,这些后台会话会持续运行。它们会一直运行,直到主动关闭它们、系统重启,或者停电之类的原因导致的系统崩溃。
注意
需要注意的几点:
- 这些会话会占用系统资源,所以如果你不再需要某个会话,最好将其关闭。
- 如果你的下载命令完成了,会话不会自动关闭,它会保持打开状态等待进一步的输入。
- 你可以在同一个 screen 会话中运行多个命令或打开多个窗口,这对于管理多个任务很有用。
- 如果你意外断开连接(比如网络问题),screen 会话会继续在后台运行,你可以在重新连接后恢复它。
使用 screen 或类似工具的一个额外好处是,即使在网络不稳定的情况下,你的长时间运行的任务也能保持运行,不会因为 SSH 连接断开而中断。这对于确保下载任务能够顺利完成特别有帮助。
常用命令
一些最常用的 screen 命令:
创建新的 screen 会话:
1
screen -S session_name
分离当前 screen 会话:
按Ctrl-A
, 然后按D
列出所有 screen 会话:
1
screen -ls
重新连接到一个已分离的会话:
1
screen -r session_name
在当前 screen 会话中创建新窗口:
按Ctrl-A
, 然后按c
在 screen 窗口间切换:
- 下一个窗口: 按
Ctrl-A
, 然后按n
- 上一个窗口: 按
Ctrl-A
, 然后按p
- 切换到指定编号的窗口: 按
Ctrl-A
, 然后按窗口号(0-9)
- 关闭当前窗口:
按Ctrl-A
, 然后按k
, 确认关闭 - 完全退出 screen 会话:
按Ctrl-A
, 然后按\
, 确认退出 - 在 screen 会话中滚动:
按Ctrl-A
, 然后按[
. 使用方向键或PageUp
/PageDown
滚动。按Esc
退出滚动模式。
这些命令涵盖了 screen 的大多数基本功能。
解释:Ctrl-A 是 screen 的”命令键”,用来告诉 screen “接下来的按键是一个命令”。而
D
用来告诉系统分离(Detach)会话。
另外
Screen还可以分割和管理当前的可视化窗口:
- 分割当前窗口:
- 水平分割: 按
Ctrl-A
, 然后按S
- 垂直分割: 按
Ctrl-A
, 然后按|
- 在分割的窗口间切换:按
Ctrl-A
, 然后按Tab
来切换焦点。