## 两个工具的对比
screen 与 tmux 解决同一个问题:SSH 断开后正在跑的任务不死,重新连上还能看到原来的现场。两者都支持会话 detachment 与恢复、多窗口、竖直水平分屏。常用操作对照如下:
bash screen -S build # 新建命名会话 screen -ls # 列出会话 screen -r build # 恢复会话
bash tmux new -s build # 新建命名会话 tmux ls # 列出会话 tmux attach -t build # 恢复会话
会话内 detach 的快捷键分别是 Ctrl+a d 与 Ctrl+b d,detach 之后任务在后台继续执行,网络闪断也只相当于一次 detach。tmux 的配置体系更现代,状态栏信息更全,复制粘贴对鼠标友好,默认前缀键是 Ctrl+b;screen 胜在几乎每台老机器与最小化安装都自带,前缀键 Ctrl+a 离手更近。窗口管理上,tmux 支持给窗口命名、按序号快速跳转,会话多了之后状态栏的优势非常明显;screen 依赖编号记忆,用久了容易记混。重连之后连滚动缓冲区都还在,断线前打印的报错不会随着会话消失。
## 各自的适用面
临时登上一台客户机器或存量老系统应急,screen 免安装直接用,是救火场景的保底选择。长期驻扎的开发机、需要多个窗格同时盯日志与敲命令、习惯用脚本批量创建和管理会话,tmux 用起来舒服得多,插件与速查资料也更丰富。跑数小时的编译任务尤其需要:在顺云云服务器上编大型依赖或内核模块,SSH 掉一次线任务就中断重跑,把任务放进会话里再动手,断线只是换个地方 attach 回去,损失为零。多人协作排障时,tmux 还支持两个人同时 attach 一个会话,你敲的命令对方实时可见,远程支援不用来回粘贴终端输出。
## 怎么选
系统较新、自己有主导权的机器,直接用 tmux,功能与生态都在它这一边;维护老机器、追求零依赖零配置,保留 screen 的肌肉记忆也完全够用。同一台机器上别混着管会话,记不清就两个 ls 命令都跑一遍看看。真正重要的不是选哪个工具,而是养成"长任务先开会话"的肌肉记忆,这比任何参数技巧都值钱。会话命名带上日期与用途,用完及时清理,免得后台积累一堆无名会话白占资源。