Screen 学习

Screen 学习笔记

前言

GNU Screen 和 tmux 一样,是经典的「终端复用器」,即使 SSH 断线,任务也不会中断。


1️⃣ 安装

系统命令
Ubuntu / Debiansudo apt update && sudo apt install screen
CentOS / Fedorasudo yum install screensudo dnf install screen
macOSbrew install screen

安装完直接敲 screen -v 能看到版本号即成功。


2️⃣ 5 个核心概念(与 tmux 对照)

GNU Screen类比 tmux说明
screen 会话session任务容器,断线后仍运行
windowwindow一个窗口,多个 shell
regionpane分屏区域(只能左右/上下二选一)
detachdetach把会话丢到后台
attachattach把后台会话拉回前台

3️⃣ 最常用命令

🔹 启动 & 命名

screen -S work      # 新建并进入名为 work 的会话

🔹 断线 & 重连

场景命令
主动离开(会话保持后台)Ctrl+a d
查看所有会话screen -ls
重连screen -r workscreen -r 12345(PID)
强制抢占别人已连的会话screen -d -r work

🔹 窗口操作

功能快捷键
新建窗口Ctrl+a c
下一个 / 上一个窗口Ctrl+a n / Ctrl+a p
窗口列表Ctrl+a "(数字选)
重命名窗口Ctrl+a A
关闭窗口输入 exit

🔹 分屏(region)

功能快捷键
水平分屏(上下)Ctrl+a S
垂直分屏(左右)`Ctrl+a
光标在分区间移动Ctrl+a <Tab>
关闭当前分区Ctrl+a X
仅保留当前分区Ctrl+a Q

注意:screen 的 region 只能两级,不能无限级嵌套。


4️⃣ 复制/滚动文本(copy mode)

  1. 进入复制模式:Ctrl+a [
  2. 上下翻页:↑ ↓(或 PgUp / PgDn)
  3. 开始选择:空格 → 移动光标 → Enter(复制)
  4. 粘贴:Ctrl+a ]

5️⃣ 会话共享(双人实时协作)

# 第 1 人
screen -S pair

# 第 2 人(同一机器)
screen -x pair

两人可同时看到同一个终端,常用于结对调试。


6️⃣ 配置小甜点(~/.screenrc)

# 开启下方状态栏
hardstatus alwayslastline "%{= kG}[%H] %-w%{= kW}%n %t%{-}%+w %=%{..G} %Y-%m-%d %c"

# 允许鼠标滚动
termcapinfo xterm* ti@:te@

# 设置默认窗口名
shelltitle "$ |bash"

保存后 screen -r 重连即可生效。


7️⃣ 一条命令速查表(建议收藏)

Ctrl+a  c   新建窗口
Ctrl+a  "   窗口列表
Ctrl+a  A   重命名窗口
Ctrl+a  n/p 下一个/上一个窗口
Ctrl+a  S   水平分屏
Ctrl+a  |   垂直分屏
Ctrl+a  <Tab> 在分区间移动
Ctrl+a  d   脱离会话
Ctrl+a  ?   帮助(全部快捷键)

8️⃣ 30 秒工作流演示

# 1. 登录服务器
ssh user@host

# 2. 创建会话
screen -S deploy

# 3. 左上编译,右下看日志
Ctrl+a S      # 水平分屏
Ctrl+a <Tab>  # 切到下方
Ctrl+a c      # 新建窗口
make -j8      # 上窗口编译
Ctrl+a <Tab>  # 切回下方
tail -f log   # 下窗口日志

# 4. 下班
Ctrl+a d      # 脱离会话

# 5. 回家重连
screen -r deploy

📚 延伸阅读

郑立
郑立
Researcher