# 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 的核心价值:
- 断开重连:网络断了也不会影响任务。
- 多窗口管理:在一个终端里管理多个任务。
- 后台执行:任务可持续运行,不占用本地终端。
