## `screen`命令简介

`screen` 是一个窗口管理器，允许用户在一个单一的终端窗口中运行多个会话。它特别适用于需要长时间运行的进程，因为即使网络连接断开，进程也会继续运行。

## 常用命令

### 启动和使用

- **启动一个新的screen会话**
  ```bash
  screen
  ```
  或者为会话命名：
  ```bash
  screen -S session_name
  ```

- **列出所有screen会话**
  ```bash
  screen -ls
  ```

- **重新连接到一个已存在的screen会话**
  ```bash
  screen -r session_name
  ```

- **分离当前会话（让会话在后台继续运行）**
  按下 `Ctrl + A` 然后按 `D`。

- **终止一个screen会话**
  在会话中按下 `Ctrl + D` 或者输入 `exit`。

### 会话管理

- **强制连接到一个会话**
  如果有多个会话在运行，使用：
  ```bash
  screen -r -d session_name
  ```
  这将断开该会话的其他连接并连接到它。

- **多窗口管理**
  - 创建新窗口：`Ctrl + A` 然后 `C`
  - 切换窗口：`Ctrl + A` 然后 `N`（下一个），`Ctrl + A` 然后 `P`（上一个）
  - 列出所有窗口：`Ctrl + A` 然后 `"`（双引号）

### 会话命名

- **重命名当前窗口**
  按下 `Ctrl + A` 然后 `A`，输入新的名称。

## 配置文件

- **自定义screen**
  可以通过编辑 `~/.screenrc` 文件进行配置。例如：
  ```bash
  # 开启多窗口状态栏
  hardstatus on
  hardstatus alwayslastline
  hardstatus string "%{= kG}%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
  ```

## 提示

- 使用 `screen` 可以有效防止因网络不稳定导致的会话中断。
- 熟练掌握快捷键可以大大提高效率。
- 对于需要长期运行的任务，如编译或数据处理，`screen` 是一个非常有用的工具。

