screen用法
screen
是 Linux 系统中强大的终端复用工具,允许你在单个终端窗口中创建多个独立的会话,并在会话间自由切换。即使断开连接,会话也会继续运行,特别适合长时间任务(如编译、下载)。以下是其核心用法:
一、基本操作
1. 创建新会话
screen # 创建无名称的会话
screen -S mysession # 创建名为 mysession 的会话
2. 断开会话(让任务在后台运行)
在会话中按 Ctrl + A
然后按 d
(即先按住 Ctrl
和 A
,松开后再按 d
)。
系统会提示:[detached from <会话ID>.mysession]
3. 恢复会话
screen -r # 恢复最近断开的会话
screen -r mysession # 恢复指定名称的会话
screen -r <会话ID> # 恢复指定 ID 的会话(如 12345.mysession)
4. 列出所有会话
screen -ls # 显示所有已连接和断开的会话
输出示例:
There are screens on:12345.mysession (Detached)23456.another (Attached)
2 Sockets in /run/screen/S-user.
5. 终止会话
- 方法1:在会话内输入
exit
或按Ctrl + D
。 - 方法2:在会话外通过 ID 强制终止:
screen -S mysession -X quit # 终止指定会话 screen -wipe # 清理已终止但未释放的会话记录
二、会话管理快捷键
在 screen 会话中,所有快捷键都以 Ctrl + A
作为前缀,以下是常用组合:
快捷键 | 功能描述 |
---|---|
Ctrl + A d | 断开当前会话(Detach)。 |
Ctrl + A c | 创建新窗口(会话内的子窗口)。 |
Ctrl + A n | 切换到下一个窗口。 |
Ctrl + A p | 切换到上一个窗口。 |
Ctrl + A 0-9 | 直接切换到指定编号(0-9)的窗口。 |
Ctrl + A " | 显示所有窗口列表,并可选择切换。 |
Ctrl + A w | 显示窗口列表(类似任务栏)。 |
Ctrl + A k | 关闭当前窗口(需确认)。 |
Ctrl + A S | 水平分割窗口(Split)。 |
Ctrl + A | | 垂直分割窗口(需启用 vbell off 选项)。 |
Ctrl + A Tab | 在分割的窗口间切换。 |
Ctrl + A Q | 关闭除当前窗口外的所有窗口(Quit other windows)。 |
Ctrl + A ? | 显示所有快捷键帮助。 |
三、高级用法
1. 会话共享(多人协作)
允许其他用户连接到你的 screen 会话,实现实时协作:
# 主机用户允许共享
screen -S mysession -x# 客户端用户连接
screen -x 主机用户名/mysession
2. 窗口命名
为当前窗口设置名称,方便识别:
Ctrl + A A # 进入窗口命名模式,输入新名称后回车
3. 滚动和复制模式
Ctrl + A [ # 进入复制/滚动模式(可用方向键或 PageUp/Down 滚动)
# 按 Space 开始选择,按 Enter 结束选择并复制
Ctrl + A ] # 粘贴复制的内容
4. 配置文件
创建 ~/.screenrc
配置文件,自定义 screen 行为,例如:
startup_message off # 关闭启动信息
vbell off # 关闭提示音
defscrollback 10000 # 增加滚动缓冲区行数
四、常见问题
1. 会话已“Attached”无法恢复
若会话显示为 (Attached)
,说明已在其他终端连接:
screen -r -d mysession # 强制断开其他连接并恢复
2. 乱码或屏幕显示异常
Ctrl + A z # 暂停 screen,然后在外部终端输入:reset
fg # 恢复 screen
3. 后台运行命令
创建会话时直接执行命令:
screen -dmS mysession long-running-command # 后台运行命令
五、替代工具
- tmux:功能更强大,配置更灵活,支持鼠标操作,推荐作为 screen 的现代替代。
安装:sudo apt install tmux
(Debian/Ubuntu)。 - byobu:基于 screen/tmux 的增强工具,界面更友好,适合新手。
总结
掌握 screen
的核心命令(-S
、-r
、-ls
、-d
)和快捷键(Ctrl + A d
、Ctrl + A c
),可以大幅提升远程操作效率,尤其适合需要长时间运行任务的场景。通过配置文件和自定义快捷键,还能进一步优化使用体验。