## 入门

### 快速开始

    $ screen

1. 按 `Ctrl-A` `D` 分离会话

2. 列出所有屏幕会话

    $ screen -ls

3. 重新附加屏幕会话

    $ screen -r <name/pid>

### 选项

选项 | 示例 | 说明
--- | --- | ---
`-S` | screen -S debug | 使用会话名称启动新会话
`-ls` | screen -ls | 列出正在运行的会话/屏幕
`-x` | screen -x | 附加到正在运行的会话
`-r` | screen -r debug | 使用名称附加到正在运行的会话
`-R` | screen -R debug | 附加到会话 (如果它不存在将创建)
`-d` | screen -d -m wget xxxx.com/large.file | 分离模式下的开始屏幕
`-X` | screen -X -S debug kill | 终止正在运行的会话

### 进入

Command | Description
--- | ---
`screen -S <name>` | 使用会话名称开始新的屏幕会话
`screen -ls` | 列出正在运行的会话/屏幕
`screen -x` | 附加到正在运行的会话
`screen -r <name>` | 使用名称附加到正在运行的会话
`screen -dRR` | “终极附加”

### 窗口管理

Command | Description
--- | ---
`Ctrl-A` `C` | 创建新窗口
`Ctrl-A` `Ctrl-A` | 更改为上次访问的活动窗口
`Ctrl-A` `0...9` | 按编号切换到窗口
`Ctrl-A` `'` `<0...9 or title>` | 按编号或名称更改为窗口
`Ctrl-A` `N` or `Ctrl-A` `<space>` | 切换到列表中的下一个窗口
`Ctrl-A` `P` or `Ctrl-A` `<backspace>` | 切换到列表中的上一个窗口
`Ctrl-A` `"` | 查看窗口列表
`Ctrl-A` `W` | 显示窗口栏
`Ctrl-A` `K` | 杀死当前窗口 (不推荐)
`Ctrl-A` `\` | 杀死所有窗口 (不推荐)
`Ctrl-A` `A` | 重命名当前窗口

### 出去

Command | Description
--- | ---
`Ctrl-A` `D` | 分离
`Ctrl-A` `D` `D` | 分离和注销 (快速退出)
`Ctrl-A` `:` | 退出所有会话
`Ctrl-A` `C-\` | 强制退出屏幕 (不推荐)

### 帮助

Command | Description
--- | ---
`Ctrl-A` `?` | 查看帮助 (列出键绑定)

### 杂项

Command | Description
--- | ---
`Ctrl-A` `C-l` | 重绘窗口
`Ctrl-A` `[` | 复制模式
`Ctrl-A` `ESC` | 复制模式
`Ctrl-A` `]` | 粘贴
`Ctrl-A` `M` | 活动监控窗口
`Ctrl-A` `_` | 静音监控窗口
`Ctrl-A` `Ctrl-V` | 输入二合字母 (非 ASCII 字符)
`Ctrl-A` `X` | 锁定（密码保护）显示
`Ctrl-A` `:` | 输入屏幕命令
`Ctrl-A` `H` | 在屏幕会话中启用日志记录

### 分屏

Command | Description
--- | ---
`Ctrl-A` `S` | 水平分割显示
`Ctrl-A` `V` | 垂直分割显示
`Ctrl-A` `|` | 垂直拆分显示
`Ctrl-A` `TAB` | 跳转到下一个显示区域
`Ctrl-A` `X` | 删除当前区域
`Ctrl-A` `Q` | 删除除当前区域之外的所有区域

### 滚动

Command | Description
--- | ---
`Ctrl-a esc` | 进入滚动模式
`Ctrl-u` | 向上滑动
`Ctrl-d` | 向下滚动
`esc esc` | 退出滚动模式

### 屏幕技巧

SSH 并附加在一行中

    $ ssh -t user@host screen -x <name/pid>