tmux:SSH 断线也不丢的终端会话管理

举报
yd_236639601 发表于 2026/11/09 12:09:54 2026/11/09
【摘要】 tmux:SSH 断线也不丢的终端会话管理远程跑个长任务,最怕的就是 SSH 一断、命令跟着死:编译跑到一半、备份传到一半,窗口一关全白干。tmux 就是解决这个问题的:它在服务器上开一个“会话”,命令跑在会话里,你随时断开、随时回来接着看,会话本身不受影响。 一、装 tmux 与基本概念大多数发行版一行命令就能装:sudo apt install tmux # Debian...

tmux:SSH 断线也不丢的终端会话管理

远程跑个长任务,最怕的就是 SSH 一断、命令跟着死:编译跑到一半、备份传到一半,窗口一关全白干。tmux 就是解决这个问题的:它在服务器上开一个“会话”,命令跑在会话里,你随时断开、随时回来接着看,会话本身不受影响。

一、装 tmux 与基本概念

大多数发行版一行命令就能装:

sudo apt install tmux        # Debian/Ubuntu
sudo yum install tmux        # CentOS/RHEL

tmux 里有三个层级:会话(session)、窗口(window)、窗格(pane)。一个会话可以开多个窗口,每个窗口又能切成多个窗格。操作都以前缀键 Ctrl-b 开头:先按 Ctrl-b,松开,再按功能键。

二、最常用的四个操作

新建会话并起个名字:

tmux new -s deploy

在会话里正常跑命令,比如 make -j4。要断开时按 Ctrl-b 再按 d(detach),会话留在后台继续跑,SSH 断了也没事。

回来接着看:

tmux ls              # 看看有哪些会话在跑
tmux attach -t deploy

任务跑完想彻底结束,在会话里直接 exit,或者 tmux kill-session -t deploy。

三、窗口与窗格:一个屏幕当多个用

  • Ctrl-b c:新建窗口
  • Ctrl-b n / Ctrl-b p:切换到下一个 / 上一个窗口
  • Ctrl-b 0~9:按编号直接跳到某个窗口
  • Ctrl-b %:左右切分窗格;Ctrl-b ":上下切分窗格
  • Ctrl-b 方向键:在窗格之间移动
  • Ctrl-b x:关闭当前窗格

典型用法:一个窗口跑服务日志 tail -f,另一个窗口敲命令,再分个窗格看系统负载,互不干扰。

四、断线重连的正确姿势

SSH 断了不要慌,会话还在服务器上:

ssh user@服务器IP
tmux ls
tmux attach -t deploy

屏幕会原样恢复,包括还没看完的输出。如果 attach 时提示会话已有人连着,加个 -d 把旧连接踢掉:tmux attach -d -t deploy。

五、两个容易踩的坑

  1. 滚动查看历史输出:tmux 里鼠标滚轮默认不管用。按 Ctrl-b [ 进入复制模式,用方向键或 PageUp/PageDown 翻,q 退出。想让鼠标直接能滚,在 ~/.tmux.conf 里加一行 set -g mouse on,重启 tmux 生效。
  2. 会话名别起得太随意:deploy、backup-1108 这种一眼能认出来的名字,半夜回来 attach 才不会连错。tmux ls 列出来一眼就能对上。

小结

新建会话跑任务 → Ctrl-b d 断开 → tmux attach 回来接着看。就这三步,SSH 断线、本地电脑关机、网络闪断都不再是长任务的杀手。配合一个好记的会话名,远程运维的底气会足很多。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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