tmux 是会话管理器,可持久化保存终端会话状态,支持断线重连、分屏、面板管理等;相比 screen(键位反直觉、生态弱)和多终端(无法跨连接恢复),tmux 更高效可靠。

tmux 是什么,为什么不用 screen 或直接开多个终端
tmux 不是“另一个终端”,而是会话管理器:它把终端窗口、面板、会话全抽象成可持久化、可复用的对象。你关掉 SSH 连接,tmux 里的进程还在跑;重新连上,tmux attach 就能回到原来状态。screen 虽然也能做到,但键位反直觉、插件生态弱、对 UTF-8 和鼠标支持差;而直接开多个终端窗口,本质是靠 GUI 管理,无法跨连接恢复,也不方便批量操作。
常见错误现象:command not found: tmux —— 多数 Linux 发行版默认不装 tmux,得手动装:sudo apt install tmux(Debian/Ubuntu)、sudo yum install tmux(CentOS 7)、sudo dnf install tmux(Fedora/RHEL 8+)
怎么启动、分离和重连一个基础会话
启动会话最简方式就是直接运行 tmux,它会自动创建名为 0 的会话并进入。但更推荐带名启动,避免后续混淆:tmux new -s myproject
分离当前会话(不杀进程,只是断开终端连接):按 Ctrl-b 松开,再按 d —— 注意不是同时按,是组合键分两步。这是 tmux 默认前缀键,别手滑按成 Ctrl-a(那是 screen 的)。
重连时,用 tmux ls 查看存活会话列表,输出类似:0: 1 windows (created Tue Jun 4 10:23:15 2024) 或 myproject: 1 windows...,然后执行:tmux attach -t myproject
- 如果只有一会话,
tmux attach可省略-t参数 -
tmux attach -d表示“踢掉其他已连接的客户端,自己独占”,适合多人共用账号又不想看到别人操作时 - 误按
Ctrl-b d后发现没反应?可能是终端未捕获到前缀键,试试先按Ctrl-b停顿半秒再按d
怎么分屏、切换面板、调整大小
分屏是最常用操作,但新手常卡在“按了没反应”——本质是忘了前缀键 Ctrl-b。水平分屏:Ctrl-b " (英文双引号),垂直分屏:Ctrl-b %。注意:引号是 Shift + ',不是单引号。
面板切换用方向键最稳:Ctrl-b →(右箭头)跳到右边面板,Ctrl-b ↑ 上,依此类推。也可以用 Ctrl-b o 循环切(o 是字母 o,不是零)。
调整面板大小建议用快捷键而非鼠标拖拽(tmux 默认禁用鼠标):Ctrl-b : resize-pane -D 10 表示向下扩大 10 行;更顺手的是绑定快捷键,在 ~/.tmux.conf 里加:
bind -r H select-pane -L bind -r J select-pane -D bind -r K select-pane -U bind -r L select-pane -R
之后就能用 Ctrl-b H/J/K/L(配合 Shift 连按)流畅移动,类似 Vim。
- 面板太多时,
Ctrl-b q会短暂显示各面板编号,再按对应数字快速跳转 - 关闭当前面板用
Ctrl-b x,确认提示是 y/n,输y回车才删,别慌 - 默认面板大小策略是等分,但实际内容常不对称,建议进会话后立刻用
Ctrl-b : resize-pane -y 20手动调一次高度
怎么让 tmux 启动就加载配置、支持鼠标和更好的状态栏
默认 tmux 几乎没配任何东西,要让它好用,必须写 ~/.tmux.conf。新建或编辑该文件,写入以下最小可用配置即可解决 90% 新手痛点:
set -g mouse on set -g status-bg blue set -g status-fg white set -g status-left '#[bg=red]#S#[bg=blue]' set -g history-limit 5000
保存后,要么重启 tmux(tmux kill-server && tmux),要么在已有会话中执行 tmux source-file ~/.tmux.conf 生效。
-
mouse on开启后,才能用鼠标点选面板、滚动查看历史、拖拽调整大小 —— 没这句,所有鼠标操作都无效 - status-bar 默认太简陋,上面几行配置能让左上角显示会话名
#S,背景色区分更直观 -
history-limit默认只有 2000 行,查日志或长命令输出容易被截断,拉高到 5000 更稳妥 - 改完配置忘 reload?
source-file不生效?检查文件路径是不是写成了~/tmux.conf(少了个点)或权限问题(确保是用户可读)
真正麻烦的从来不是记命令,而是前缀键冲突、鼠标失效、历史被清空这些“看不见的默认值”。配好 ~/.tmux.conf 并记住 source-file,比背十个快捷键都管用。

















