插件窝 干货文章 Linux screen命令如何使用

Linux screen命令如何使用

会话 screen 窗口 session 697    来源:    2025-04-22

screen 是 Linux 下一个强大的终端复用工具,允许用户在单个终端窗口中创建多个虚拟终端会话,并在这些会话之间自由切换。即使断开 SSH 连接,会话仍会在后台运行,非常适合长时间运行任务。以下是 screen 的核心用法:


1. 安装 screen

# Debian/Ubuntu
sudo apt install screen

# CentOS/RHEL
sudo yum install screen

2. 基本操作

启动新会话

screen -S session_name  # 创建一个名为 "session_name" 的会话
  • 直接输入 screen 会创建匿名会话(不推荐,难管理)。

查看现有会话

screen -ls  # 列出所有会话

输出示例:

There are screens on:
    12345.session_name   (Detached)
    67890.another_session (Attached)

恢复(重新连接)会话

screen -r session_name  # 通过名字恢复
screen -r 12345         # 通过进程ID恢复(从 screen -ls 获取)

临时断开当前会话

  • 快捷键:Ctrl + A,然后按 D(先按组合键,再松手按字母 D)。
  • 会话会转为 Detached 状态,继续在后台运行。

3. 会话管理快捷键

所有快捷键需先按 Ctrl + A(前缀键),再按后续键:

快捷键 功能
Ctrl + A C 新建一个窗口(虚拟终端)
Ctrl + A N 切换到下一个窗口
Ctrl + A P 切换到上一个窗口
Ctrl + A 0-9 切换到第 0-9 个窗口
Ctrl + A A 重命名当前窗口
Ctrl + A K 强制关闭当前窗口(会提示确认)
Ctrl + A \ 终止所有窗口并退出 screen
Ctrl + A ? 查看所有快捷键帮助

4. 高级用法

共享会话(多人协作)

screen -S shared_session  # 用户A创建会话
screen -x shared_session  # 用户B加入同一会话(需同用户或权限)

日志记录

# 启动时记录日志
screen -L -S session_name
# 日志默认保存为 ~/screenlog.0

启动时执行命令

screen -S task -dm bash -c "your_command; exec sh"
# 后台创建会话并运行命令(完成后保留 shell)

5. 常见问题

会话卡死或无法恢复

  • 尝试强制附加: bash screen -D -r session_name # 先踢掉其他连接,再恢复

退出所有窗口

  • 快捷键:Ctrl + A \
    或逐个窗口输入 exit

清除死掉的会话

screen -wipe  # 清理无效会话

总结

  • 核心场景:远程运行长时间任务(如编译、下载)、多任务并行管理。
  • 替代工具tmux(功能更强大,但 screen 更轻量)。

掌握这些操作后,你可以轻松管理后台任务,无需担心网络中断导致进程终止!