跳转至

Screen 使用技巧

一、什么是Screen?

Screen是一个全屏窗口管理器,它可以在一个物理终端上运行多个全屏的伪终端。Screen允许用户在一个终端窗口中同时运行多个会话,并且可以在这些会话之间自由切换。这对于需要长时间运行的任务特别有用,因为即使SSH连接断开,任务也会继续在后台运行。

二、Screen的主要特性

  1. 会话持久化
  2. 即使SSH连接断开,会话也会继续运行
  3. 重新连接后可以恢复之前的会话

  4. 多会话管理

  5. 可以在一个终端中同时运行多个会话
  6. 支持会话之间的快速切换

  7. 会话共享

  8. 支持多个用户同时连接同一个会话
  9. 适合团队协作和远程协助

三、Screen的安装

Ubuntu/Debian系统

sudo apt-get update
sudo apt-get install screen

CentOS/RHEL系统

sudo yum install screen

四、Screen的基本使用

1. 创建新会话

screen -S session_name

2. 查看所有会话

screen -ls

3. 重新连接到会话

screen -r session_name

4. 分离当前会话

  • Ctrl + a 然后按 d

5. 关闭会话

  • 在会话中输入 exit 或按 Ctrl + d

五、Screen常用快捷键

快捷键 功能说明
Ctrl + a 然后 c 创建新窗口
Ctrl + a 然后 n 切换到下一个窗口
Ctrl + a 然后 p 切换到上一个窗口
Ctrl + a 然后 d 分离当前会话
Ctrl + a 然后 k 关闭当前窗口
Ctrl + a 然后 [ 进入复制模式
Ctrl + a 然后 ] 粘贴内容

六、Screen高级技巧

1. 会话命名

# 创建命名会话
screen -S my_session

# 使用会话名称重新连接
screen -r my_session

screen -R my_session

2. 会话共享

# 创建共享会话
screen -S shared_session -x

# 其他用户加入共享会话
screen -x shared_session

3. 自动启动命令

# 创建会话并自动执行命令
screen -dmS my_session bash -c 'your_command'

4. 日志记录

# 创建会话并启用日志记录
screen -L -S logging_session

5. 小案例

$ screen -S ping

$ screen -R docker-pull

$ screen -S yes

七、常见问题解决

1. 会话卡死

  • 使用 Ctrl + a 然后 k 关闭当前窗口
  • 使用 Ctrl + a 然后 d 分离会话

2. 无法重新连接

# 强制重新连接
screen -D -r session_name

3. 清理死会话

# 清理所有死会话
screen -wipe

八、最佳实践

  1. 会话命名规范
  2. 使用有意义的会话名称
  3. 包含日期或项目信息

  4. 定期清理

  5. 及时关闭不需要的会话
  6. 定期使用 screen -wipe 清理死会话

  7. 日志管理

  8. 重要操作开启日志记录
  9. 定期归档日志文件

  10. 会话共享

  11. 使用共享会话进行团队协作
  12. 注意会话安全性

九、总结

Screen是一个非常强大的终端复用工具,它能够:

  • 保持会话持久化
  • 支持多会话管理
  • 提供会话共享功能
  • 记录操作日志

掌握Screen的使用技巧,可以显著提高运维工作效率,特别是在处理需要长时间运行的任务时。

B站视频

回到页面顶部