

























screen 是一个终端多路复用器,让你在一个 SSH 会话中管理多个窗口,即使断网也不怕任务中断。
# 创建新会话(-S 指定名称,进入会话后再执行命令) screen -S iso-down # 在会话中执行命令(后台下载示例) screen -S iso-down curl -OL https://releases.ubuntu.com/24.04/ubuntu-24.04.3-live-server-amd64.iso # 列出所有会话 screen -ls # 恢复(重新连接)会话 screen -r iso-down # 强制退出指定会话 screen -X -S iso-down quit
| 方式 | 命令/操作 | 说明 |
|---|---|---|
| 临时退出 | Ctrl+A 再按 D |
detach 分离会话,任务后台继续运行 |
| 彻底关闭 | exit 或 Ctrl+D |
会话内所有进程结束后自动关闭 |
| 强制杀死 | screen -X -S name quit |
从外部强制终止会话及所有进程 |
防断连:SSH 断开不影响后台任务
多窗口:单终端管理多个任务
可恢复:随时重连查看进度
适合场景:大文件下载、编译、长时间脚本运行。
创建快捷脚本 /usr/local/bin/isscreen:
#!/bin/bash if [ -n "$STY" ]; then echo "✅ 当前在 screen 会话中: $STY" else echo "❌ 不在 screen 会话中" fi
使用方法:
# 1. 创建并写入脚本 sudo tee /usr/local/bin/isscreen << 'EOF' #!/bin/bash if [ -n "$STY" ]; then echo "✅ 当前在 screen 会话中: $STY" else echo "❌ 不在 screen 会话中" fi EOF # 2. 添加执行权限 sudo chmod +x /usr/local/bin/isscreen # 3. 随时检测 isscreen
效果示例:
$ isscreen ❌ 不在 screen 会话中 $ screen -S work $ isscreen ✅ 当前在 screen 会话中: 4132302.work
原理:$STY 是 screen 设置的环境变量,存储当前会话 ID。通过检测该变量即可判断是否处于 screen 会话中。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。