Linux命令-screen(终端复用器)

发布时间:2026/7/19 11:27:45
Linux命令-screen(终端复用器) Linux命令-screen终端复用器快速参考安装 screen基本用法常用快捷键实际使用场景screen 配置文件与 tmux 对比故障排查总结快速参考screen是终端复用器允许在一个终端窗口中运行多个终端会话。它的核心功能是会话分离detach和恢复attach即使 SSH 连接断开screen 中的程序仍然继续运行。这对于长时间运行的任务编译、训练、下载等非常有用。对比 tmuxtmux 更现代、功能更丰富但 screen 仍广泛使用。新项目推荐 tmux。安装 screen# Debian/Ubuntusudoaptinstallscreen# RHEL/CentOSsudoyuminstallscreen# Arch Linuxsudopacman-Sscreen# 验证安装whichscreenscreen--version基本用法# 创建新会话screen# 创建命名会话推荐screen-Swork# 分离会话在 screen 中按快捷键# CtrlA, d# 查看所有会话screen-ls# 恢复会话screen-r# 恢复指定会话screen-rwork# 强制恢复如果会话被其他终端附加screen-d-rwork# 杀死会话screen-X-Swork quit常用快捷键# 所有快捷键以 CtrlA 为前缀# CtrlA, c 创建新窗口# CtrlA, n 切换到下一个窗口# CtrlA, p 切换到上一个窗口# CtrlA, 0-9 切换到指定编号的窗口# CtrlA, 显示窗口列表# CtrlA, w 显示窗口栏# CtrlA, d 分离会话detach# CtrlA, k 杀死当前窗口# CtrlA, A 重命名当前窗口# CtrlA, ? 显示帮助# CtrlA, [ 进入复制模式滚动# CtrlA, ] 粘贴# CtrlA, S 水平分割# CtrlA, | 垂直分割需补丁# CtrlA, Tab 切换分割区域# CtrlA, X 关闭当前分割区域实际使用场景# 场景1长时间运行任务 # 1. 创建 screen 会话screen-Straining# 2. 运行长时间任务python train_model.py# 3. 分离会话按 CtrlA, d# 4. 查看所有会话screen-ls# 5. 恢复会话screen-rtraining# 场景2远程服务器维护 # 1. SSH 登录服务器sshuserserver# 2. 创建 screen 会话screen-Smaintenance# 3. 执行维护操作sudoaptupdatesudoaptupgrade# 4. 如果 SSH 断开任务不会中断# 5. 重新连接后恢复screen-rmaintenance# 场景3多窗口工作 # 1. 创建会话screen-Sdev# 2. 创建多个窗口# CtrlA, c 创建新窗口# 窗口0运行 vim 编辑代码# 窗口1运行测试# 窗口2查看日志# 3. 在窗口间切换# CtrlA, n 下一个窗口# CtrlA, p 上一个窗口# CtrlA, 0 切换到窗口0# 场景4与他人共享会话 # 1. 用户A创建会话screen-Sshared# 2. 启用多用户# CtrlA, :multiuser on# 3. 用户B加入sudoscreen-xuserA/sharedscreen 配置文件# 创建 ~/.screenrccat~/.screenrcEOF # 关闭启动信息 startup_message off # 设置滚动缓冲区 defscrollback 10000 # 显示状态栏 hardstatus on hardstatus alwayslastline hardstatus string %{.bW}%-w%{.rY}%n %t%{-}%w %%{.G} %H %{.Y} %Y-%m-%d %c # 自动分离SSH断开时 autodetach on # 设置编码 encoding UTF-8 # 设置默认 Shell shell /bin/bash # 新窗口自动执行 # screen -t top 0 top # screen -t log 1 tail -f /var/log/syslog EOF与 tmux 对比┌─────────────────────────────────────────────┐ │ 功能 │ screen │ tmux │ ├─────────────────────────────────────────────┤ │ 前缀键 │ CtrlA │ CtrlB │ │ 分割 │ 水平需补丁│ 水平垂直 │ │ 状态栏 │ 需配置 │ 默认启用 │ │ 鼠标支持 │ 有限 │ 更好 │ │ 脚本化 │ 有限 │ 更好 │ │ 性能 │ 较好 │ 较好 │ │ 维护状态 │ 维护模式 │ 活跃开发 │ └─────────────────────────────────────────────┘故障排查# 问题1screen -r 报错 Attach with a suitable terminal# 解决指定终端类型TERMxtermscreen-r# 问题2screen -r 报错 There is no screen to be resumed# 解决查看所有会话screen-ls# 问题3无法滚动# 解决进入复制模式# CtrlA, [ 然后使用方向键滚动# 按 Esc 或 Enter 退出# 问题4screen 会话显示 Attached# 解决强制分离再恢复screen-d-rsession_name总结核心价值screen是终端会话管理的经典工具会话分离功能确保长时间任务不会因 SSH 断开而中断。常用组合screen -S name创建命名会话CtrlA, d分离会话screen -r name恢复会话screen -ls列出所有会话推荐新项目优先使用 tmux但 screen 在所有 Linux 系统上都可用是可靠的备选。