一、screen 命令是什么?
Screen 是一个全屏窗口管理器,它允许在单个物理终端(如 SSH 连接)中创建多个独立的虚拟终端会话。用户可以在一个 screen 会话中运行多个程序或任务,即使断开连接,这些程序也会在后台继续运行,之后可以随时重新连接恢复工作界面。
二、如何安装 screen 命令?
大多数 Linux 发行版已预装 screen。如果未安装,可以使用系统包管理器进行安装:
- CentOS/RHEL/Fedora 系统:
sudo yum install screen或sudo dnf install screen - Debian/Ubuntu 系统:
sudo apt-get install screen
三、screen 命令基本使用方法
以下步骤解决常见的后台任务管理需求,例如长时间运行的编译、安装过程(如 LNMP)。
1. 创建 screen 会话
执行以下命令创建一个名为 example 的会话:
screen -S example
执行后,你将进入一个新的全屏终端,可以在此运行任何命令。
2. 暂时离开(Detach)会话
当需要临时退出当前会话(但保持其中程序运行)时,使用快捷键:Ctrl + a,然后按 d(即先按 Ctrl 和 a,松开后再按 d)。
3. 恢复(Reattach)screen 会话
要重新连接到已存在的会话,执行:
screen -r example
如果忘记了会话名称,可以先列出所有会话:
screen -ls
输出会显示类似 12345.example 的列表,然后使用 screen -r 12345.example 或 screen -r example 恢复。
4. 关闭(终止)screen 会话
在会话内部执行 exit 命令或按 Ctrl + d,会话将终止并显示 [screen is terminating]。
四、远程演示与共享会话
Screen 支持多用户同时查看和交互同一会话,适合远程演示:
- 演示者在服务器上创建会话:
screen -S demo - 观众 SSH 连接到同一服务器后,执行:
screen -x demo - 双方将看到完全同步的终端界面。
五、常用快捷键
在 screen 会话中,所有快捷键均以 Ctrl + a 为前缀:
- Ctrl + a c:在当前会话中创建新窗口
- Ctrl + a w:显示窗口列表
- Ctrl + a n:切换到下一个窗口
- Ctrl + a p:切换到上一个窗口
- Ctrl + a 0-9:直接切换到第 0 到第 9 个窗口
- Ctrl + a d:暂时离开当前会话(Detach)
六、快速命令参考
screen -S <name> # 新建名为 <name> 的会话
screen -ls # 列出所有会话
screen -r <name> # 恢复指定会话
screen -d <name> # 远程 Detach 某个会话(使其在后台运行)
screen -d -r <name> # 先 Detach 其他地方的连接,再恢复会话
七、忘记会话名怎么办?
如果创建会话时未指定名称或忘记了名称,只需执行 screen -ls 查看当前所有会话。输出中会显示会话 ID(如 12345.pts-0.host)和名称(如果有)。使用 screen -r 12345(仅 ID 数字部分)或完整 ID 即可恢复。
若会话已被 Detach 但无法恢复,可能是会话状态为 Attached,可尝试先执行 screen -d <ID或名称> 强制分离,再使用 screen -r 连接。