# 1. screen 是什么?

  • screen 是一种终端复用器(terminal multiplexer)。
  • 它可以在一个终端窗口中运行多个“虚拟终端”,并允许你把会话挂到后台继续运行。
  • 常见用途:
    • 在远程服务器上运行长时间任务,即使断开 SSH 也能继续执行。
    • 在一个终端里同时打开多个 shell。
    • 共享会话(多人操作同一个 session,需要权限)。

# 2. 安装

多数 Linux 发行版可以直接安装或已预装。先检查版本:

screen --version

如果没有安装:

# Ubuntu / Debian
sudo apt install screen

# CentOS / RHEL
sudo yum install screen

# 3. 基本命令

# 3.1 启动一个新 screen 会话

screen -S mysession
  • -S mysession:给会话取名字,方便管理。
  • 执行后你会进入一个新的终端环境,和普通 shell 使用方式一致。

# 3.2 在 screen 中操作

  • 新建窗口:Ctrl+a 然后 c
  • 切换窗口:Ctrl+a 然后 n(下一个)、p(上一个)
  • 查看窗口列表:Ctrl+a 然后 "

# 3.3 暂时离开(detach)会话

在 screen 中按:

Ctrl+a d

会让 screen 会话在后台继续运行,终端回到原来的 shell。

# 3.4 恢复(attach)会话

screen -r mysession

如果有多个会话:

screen -ls
screen -r 会话ID

# 3.5 结束会话

在 screen 内直接输入:

exit

或在外部执行:

screen -X -S mysession quit

# 4. 高级技巧

# 4.1 后台运行任务

screen -S mytask -dm bash -c "python myscript.py"
  • -dm:创建会话并立即后台运行。
  • 之后可以用 screen -r mytask 查看进度。

# 4.2 日志记录

在 screen 中按:

Ctrl+a H

会将当前窗口输出记录到 screenlog.0

# 4.3 共享会话

screen -x mysession

允许多个用户同时连接到同一个会话(需要权限)。

# 5. 总结

screen 的核心价值:

  • 断开重连:网络断了也不会影响任务。
  • 多窗口管理:在一个终端里管理多个任务。
  • 后台执行:任务可持续运行,不占用本地终端。