tmux 入门:SSH 断了,活儿还在——一个窗口开出多个会话

举报
yd_283162409 发表于 2026/10/28 09:07:39 2026/10/28
【摘要】 先说结论:长任务别裸奔在 SSH 会话里在服务器上跑一个要几小时的任务,最怕的不是任务本身,而是中间网络抖一下、笔记本合盖、Wi-Fi 换个热点,SSH 一断,正在跑的进程就跟着没了。解决办法不是“祈祷网络稳定”,而是让任务脱离你这次登录会话独立活着。tmux 就是干这个的:它在服务器上维持一个会话(session),你随时可以断开、随时再接回来,会话里的程序一直在跑,输出也都保留着。安装与...

先说结论:长任务别裸奔在 SSH 会话里

在服务器上跑一个要几小时的任务,最怕的不是任务本身,而是中间网络抖一下、笔记本合盖、Wi-Fi 换个热点,SSH 一断,正在跑的进程就跟着没了。解决办法不是“祈祷网络稳定”,而是让任务脱离你这次登录会话独立活着。tmux 就是干这个的:它在服务器上维持一个会话(session),你随时可以断开、随时再接回来,会话里的程序一直在跑,输出也都保留着。

安装与第一条命令

多数发行版都有现成的包:Debian/Ubuntu 用 sudo apt install tmux,RHEL 系用 sudo dnf install tmux,macOS 用 brew install tmux。装好后先别记快捷键,先跑通最小闭环:

tmux new -s deploy
# 在里面跑你的长任务,例如 ./build.sh
# 按 Ctrl+b 再按 d,断开会话(任务继续跑)
tmux ls
tmux attach -t deploy

这个闭环就是 tmux 价值的全部:新建、断开、列出、接回。先把它练熟,再学别的。

三个概念:会话、窗口、窗格

tmux 里有三层。会话(session)是一组窗口的集合,对应“一项工作”,比如 deploy、monitor。窗口(window)是会话里的一个全屏终端,类似浏览器标签页,用 Ctrl+b c 新建、Ctrl+b n/p 切换。窗格(pane)是把一个窗口切成几块,同时看日志和命令行:Ctrl+b % 左右分,Ctrl+b " 上下分,Ctrl+b 方向键 在窗格间移动。刚开始只用会话和窗口就够了,窗格是锦上添花。

一个实用的工作流

以“在服务器上部署并观察”为例:新建一个名叫 deploy 的会话,第一个窗口跑部署脚本,第二个窗口用 tail -f 看日志,第三个窗口留着随时敲命令排查。网络断了就重新 SSH 上来,tmux attach -t deploy,三个窗口原样都在,日志也没丢。需要把会话交给同事看时,让对方用同一个账号 tmux attach -t deploy 就能看到同一块屏幕,排查时不用再互相贴日志。

常用命令速查

  • tmux ls:列出所有会话,看名字和窗口数。
  • tmux new -s 名字:新建命名会话,名字比默认的数字好认。
  • tmux attach -t 名字:接回指定会话;只有一个会话时直接 tmux attach。
  • tmux kill-session -t 名字:结束会话,里面的进程随之结束,收尾时用。
  • Ctrl+b d:断开但不结束,任务继续跑。
  • Ctrl+b ?:查看全部快捷键,忘了就按它。

两个坑,提前避开

第一,Ctrl+b 是前缀键:所有快捷键都要先按它,再按后面的键,初学者常把 Ctrl+b d 按成 Ctrl+d,结果是给 shell 发了退出信号。第二,嵌套 SSH 时要分清层级:在本地 tmux 里 SSH 到服务器、又在服务器里开 tmux,快捷键会先被外层截获。办法是外层用一次前缀、内层用两次,或者干脆只在服务器那一层用 tmux。

一点配置就够了

不用一上来就抄几百行的配置。先在 ~/.tmux.conf 里放两行就够:把鼠标支持打开(set -g mouse on),滚轮可以直接翻看历史输出;再把历史行数调大(set -g history-limit 20000),方便回看长日志。改完配置用 tmux source-file ~/.tmux.conf 重载,或者新开会话生效。等用顺了,再按自己的习惯加状态栏、改前缀键。

总结一句话:凡是“跑起来就不能断”的任务,先放进一个命名 tmux 会话再跑。断开只是你离开了,任务还在;接回来,现场还在。这一个习惯,能省下很多半夜重跑的麻烦。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。