tmux的核心价值在于会话持久化与结构化分屏:通过命名会话(如tmux new -s mytask)、ctrl+a分屏(%垂直、"水平)、面板跳转与调整,以及ctrl+a d分离后仍保活任务,ssh断开也不丢失进程;配置鼠标支持和前缀键优化可大幅提升效率。

直接用 tmux 就能分屏并让任务在后台持续运行,关键不在装得多复杂,而在会话结构和前缀键用对——它不是“多开终端”,而是把多个独立终端环境打包进一个会话里,SSH 断了也不丢进程。
安装与基础启动
不同系统用对应包管理器安装,装完验证版本:
- Ubuntu/Debian:sudo apt update && sudo apt install tmux
- CentOS 7:sudo yum install tmux
- CentOS 8+/Fedora/RHEL 8+:sudo dnf install tmux
- Arch/Manjaro:sudo pacman -S tmux
装好后运行 tmux -V 看是否输出类似 tmux 3.4a;若提示 command not found,检查 PATH 是否包含 /usr/local/bin(尤其源码安装后)。
启动带名会话更易管理:
tmux new -s mytask —— 名字别含空格或特殊字符,比如 logwatch、train-gpu 都很清晰。
分屏与面板操作
所有操作都以当前前缀键开头(默认 Ctrl+b,建议改 Ctrl+a,下文按改后说明):先松开前缀键,再按后续键,不是组合按。
- 垂直分屏(左右):Ctrl+a %
- 水平分屏(上下):Ctrl+a "(英文双引号)
- 在面板间跳转:Ctrl+a ↑ ↓ ← →
- 关闭当前面板:Ctrl+a x → 按 y 确认
- 临时放大当前面板(独占显示):Ctrl+a z,再按一次退出
- 调整面板大小:Ctrl+方向键(如 Ctrl+↑ 把当前面板拉高)
注意:中文输入法下按出的引号是全角符号,tmux 不识别;Caps Lock 开着也会导致 % 或 " 输不进去。
会话持久化与任务保活
这才是 tmux 的核心价值:任务不随 SSH 断开而终止。
- 从会话中分离(挂起,不关任务):Ctrl+a d
- 查看所有后台会话:tmux ls(输出如 mytask: 1 windows (created ...))
- 重连指定会话:tmux attach -t mytask
- 重命名当前会话:Ctrl+a $,光标跳到底部可编辑
分离后即使关掉终端、断网、重启本地电脑,只要服务器没重启,mytask 里的 Python 脚本、tail 日志、nvidia-smi 监控都照常运行。重连即恢复全部现场。
鼠标与配置优化(推荐一步到位)
默认体验偏键盘流,但加两行配置立刻顺手:
编辑 ~/.tmux.conf,加入:
set -g prefix C-a<br>set -g mouse on
保存后运行:
tmux source-file ~/.tmux.conf
效果:
- 前缀键变成 Ctrl+a,更易按;
- 鼠标可直接点选面板、滚动日志、拖拽调整分屏大小;
- 注意:Ctrl+a a 才能向当前面板发送真正的 Ctrl+a(比如在 vim 里按 Ctrl+a 增加数字)。











