tmux 入门:SSH 断线也不丢任务的终端复用神器
如果你经常用 SSH 连服务器,一定遇到过这种崩溃时刻:正在跑一个要几小时的任务,网络一抖,SSH 断了,任务跟着一起没了。或者你想同时看日志、改配置、跑命令,窗口切来切去手忙脚乱。
tmux 就是为解决这类问题而生的终端复用工具。它在服务器上创建一个"会话",你所有的终端操作都跑在这个会话里;SSH 断线只是断开了你和会话的连接,会话本身还在服务器上好好跑着,重连之后一键恢复,分毫不差。
安装
主流发行版都是一条命令:
Debian/Ubuntu:sudo apt install tmux -y CentOS/RHEL:sudo yum install tmux -y
装完输入 tmux 回车,你就进入了一个 tmux 会话,底部会多一条绿色状态栏。
三个核心概念
tmux 的世界里只有三层:会话(session)、窗口(window)、窗格(pane)。
- 会话:一次"工作现场",比如"今晚的部署"。会话可以断开(detach)再恢复(attach),里面的进程不受影响。
- 窗口:相当于浏览器的标签页,一个会话里可以开多个窗口,用编号切换。
- 窗格:把一个窗口切分成上下/左右小格,同时看日志和敲命令。
所有 tmux 快捷键都以"前缀键"开头,默认是 Ctrl+b:先按 Ctrl+b 松开,再按功能键。
最常用的快捷键
- `Ctrl+b d`:断开会话(任务继续跑)
- `Ctrl+b c`:新建窗口
- `Ctrl+b n / p`:下一个 / 上一个窗口
- `Ctrl+b %`:左右分屏
- `Ctrl+b "`:上下分屏
- `Ctrl+b` + 方向键:在窗格间移动
- `Ctrl+b x`:关闭当前窗格
实战:让长任务不断线
1. SSH 登录服务器后输入 tmux new -s job,创建一个名叫 job 的会话。 2. 在里面启动你的长任务,比如 ./train.sh。 3. 按 Ctrl+b 再按 d 断开会话,这时你甚至可以直接关闭 SSH,任务照跑。 4. 下次 SSH 上来,输入 tmux attach -t job,熟悉的终端原样回来,任务进度都在。
想看有哪些会话:tmux ls;会话彻底不用了,在里面输入 exit 退出即可。
两个顺手的小配置
默认前缀键 Ctrl+b 按起来别扭,可以换成 Ctrl+a;再打开鼠标模式,就能用鼠标点选窗格、滚轮翻历史。把下面几行写进 ~/.tmux.conf:
set -g prefix C-a
unbind C-b
set -g mouse on
改完执行 tmux source ~/.tmux.conf 生效。
tmux 学会这十几个按键就够用了。从今天起,告别"SSH 断线=任务重来"的噩梦——你的长任务,值得一个不会消失的终端。
- 点赞
- 收藏
- 关注作者
评论(0)