screen
是 Linux 下一个强大的终端复用工具,允许用户在单个终端窗口中创建多个虚拟终端会话,并在这些会话之间自由切换。即使断开 SSH 连接,会话仍会在后台运行,非常适合长时间运行任务。以下是 screen
的核心用法:
# Debian/Ubuntu
sudo apt install screen
# CentOS/RHEL
sudo yum install screen
screen -S session_name # 创建一个名为 "session_name" 的会话
screen
会创建匿名会话(不推荐,难管理)。screen -ls # 列出所有会话
输出示例:
There are screens on:
12345.session_name (Detached)
67890.another_session (Attached)
screen -r session_name # 通过名字恢复
screen -r 12345 # 通过进程ID恢复(从 screen -ls 获取)
Ctrl + A
,然后按 D
(先按组合键,再松手按字母 D
)。Detached
状态,继续在后台运行。所有快捷键需先按 Ctrl + A
(前缀键),再按后续键:
快捷键 | 功能 |
---|---|
Ctrl + A C |
新建一个窗口(虚拟终端) |
Ctrl + A N |
切换到下一个窗口 |
Ctrl + A P |
切换到上一个窗口 |
Ctrl + A 0-9 |
切换到第 0-9 个窗口 |
Ctrl + A A |
重命名当前窗口 |
Ctrl + A K |
强制关闭当前窗口(会提示确认) |
Ctrl + A \ |
终止所有窗口并退出 screen |
Ctrl + A ? |
查看所有快捷键帮助 |
screen -S shared_session # 用户A创建会话
screen -x shared_session # 用户B加入同一会话(需同用户或权限)
# 启动时记录日志
screen -L -S session_name
# 日志默认保存为 ~/screenlog.0
screen -S task -dm bash -c "your_command; exec sh"
# 后台创建会话并运行命令(完成后保留 shell)
bash
screen -D -r session_name # 先踢掉其他连接,再恢复
Ctrl + A
\
exit
。screen -wipe # 清理无效会话
tmux
(功能更强大,但 screen
更轻量)。掌握这些操作后,你可以轻松管理后台任务,无需担心网络中断导致进程终止!