侧边栏壁纸
  • 累计撰写 18 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux 运维必备利器:screen 从入门到删除会话

詹迪佳
2025-07-18 / 0 评论 / 0 点赞 / 13 阅读 / 17102 字

一、为什么需要 screen?

在 Linux 服务器上,你是否遇到过以下尴尬场景:

- SSH 远程编译 / 跑脚本,网络突然断线,进程全部被杀;

- 想同时开多个终端窗口,却受限于单条 SSH 连接;

- 与同事一起排查问题,只能轮流使用键盘。

GNU screen 就是解决这些痛点的“虚拟终端管理器”。它可以在一个物理终端里创建多个会话,断网后程序继续运行,随时重连,还能多人共享屏幕。

二、安装

Debian / Ubuntu

sudo apt update && sudo apt install screen

CentOS / RHEL

sudo yum install screen

三、5 分钟上手

1. 新建会话

screen -S work

此时你已进入名为 work 的会话,随便跑个 htop 做实验。

### 2. 断开但不终止

在会话里按快捷键

Ctrl-a 然后 d

提示 [detached],程序仍在后台跑。

### 3. 查看会话列表

screen -ls

示例输出:

12345.work    (Detached)

### 4. 重新连接

screen -r work

网络断了?重新 SSH 上来再执行即可。

## 四、常用快捷键(牢记 Ctrl-a 前缀)

快捷键

作用

Ctrl-a c

新建窗口

Ctrl-a n / p

下一个 / 上一个窗口

Ctrl-a "

窗口列表(可视化选择)

Ctrl-a A

重命名当前窗口

Ctrl-a [

进入复制/滚屏模式

Ctrl-a d

detach(安全退出)

Ctrl-a ?

查看帮助

五、删除(真正关闭)会话

很多教程只教“detach”,但 detach 只是断开,会话还在后台。真正“删除”有两种情况:

### 场景 1:你还在会话里

直接输入

exit

或按 Ctrl-d

当最后一个窗口关闭,会话即被销毁。

场景 2:已经 detach,想从外面杀

1. 查 ID

screen -ls

得到:

12345.work    (Detached)

2. 强制退出

screen -S 12345.work -X quit

screen -S work -X quit

会话立即结束,socket 文件也被系统清理,等同于“删除”。

## 六、进阶玩法

1. 会话共享

第二个人执行

   screen -x work

即可一起操作同一会话。

2. 自动记录日志

   screen -L -S compile

日志文件:`screenlog.0`。

3. 美化配置

~/.screenrc 加入:

   defscrollback 10000

   hardstatus alwayslastline "%-w%{= BW}%n %t%{-}%+w"

保存后重新打开 screen,状态栏瞬间高级。

七、总结

- 新建:`screen -S name`

- 重连:`screen -r name`

- 断开:`Ctrl-a d`

- 删除:里面 exit;外面 screen -S name -X quit

0

评论区