tmux 入门实战:SSH 断线也不怕,让云服务器上的长任务安心跑完
为什么需要 tmux
SSH 连上云服务器跑一个耗时几小时的编译或训练任务,最怕的就是网络抖动断线:连接一断,前台进程往往跟着结束,进度全部白费。tmux(terminal multiplexer,终端复用器)正是为解决这个问题而生。它在服务器端维护会话(session),你的终端只是「接入」会话而已。断线之后重新登录,执行一条 attach 命令就能回到原来的现场,任务毫发无损。
安装
主流发行版都可以直接用包管理器安装:
- Debian / Ubuntu:
sudo apt install tmux - CentOS / EulerOS:
sudo yum install tmux(或 dnf)
五分钟上手
- 新建会话:
tmux new -s work,其中-s用来给会话起名 - 暂时离开:按
Ctrl+b再按d(detach),会话会在后台继续运行 - 查看会话:
tmux ls - 回到会话:
tmux attach -t work - 结束会话:在会话里执行
exit,或在外面执行tmux kill-session -t work
需要记住的是:tmux 的所有快捷键都要先按前缀键 Ctrl+b(称为 prefix),再按功能键。
窗口与窗格
一个会话里可以开多个窗口(window),用法类似浏览器的标签页:
Ctrl+b c:新建窗口Ctrl+b n/Ctrl+b p:切换到下一个 / 上一个窗口Ctrl+b 数字:直接跳到第 N 个窗口
窗格(pane)则是把一个窗口切成几块:
Ctrl+b %:左右分屏Ctrl+b ":上下分屏Ctrl+b 方向键:在窗格之间移动焦点Ctrl+b z:临时放大当前窗格,再按一次还原
左边看日志、右边改代码、下面跑测试,一屏之内全部搞定。
复制模式与历史回滚
终端输出刷过去了想往上翻?按 Ctrl+b [ 进入复制模式,用方向键或 PgUp 翻页,按 q 退出。如果习惯用鼠标,可以在配置里开启 set -g mouse on,之后滚轮翻页、点击切换窗格、拖动调整窗格大小就都支持了。
一份够用的 ~/.tmux.conf
set -g mouse on
set -g base-index 1
setw -g pane-base-index 1
set -g history-limit 10000
bind r source-file ~/.tmux.conf \; display "Config reloaded"
这份配置做了四件事:开启鼠标支持、让窗口编号从 1 开始(键盘上按起来更顺手)、把历史回滚行数放大到一万行、绑定 r 键一键重载配置。改完后在 tmux 里按 Ctrl+b 再按 r 即可生效,不用重启会话。
典型使用场景
- 在 ECS 上跑模型训练、数据处理等长任务:放在 tmux 里启动,断线重连不丢进度
- 多服务联调:一个窗口跑后端服务,一个窗口滚动看日志,一个窗口执行 curl 验证接口
- 远程排障:tmux 支持多个终端 attach 到同一会话,双方看到同一块屏幕,沟通成本骤降
小结
tmux 的学习成本只有最初十分钟:记住 new、attach、detach 三个命令和分屏操作,就覆盖了九成的日常需求。把长任务交给 tmux 托管之后,SSH 断线不再是事故,而只是「待会儿再连回来看看」的小事。
- 点赞
- 收藏
- 关注作者
评论(0)