Ubuntu Tmux 命令完全指南:终端复用器的终极利器
作为一名开发者或系统管理员,你是否经常需要同时管理多个终端窗口?是否曾因 SSH 连接中断而丢失正在进行的工作?是否希望拥有一个持久化的终端会话,随时随地重新连接?Tmux 正是解决这些痛点的利器。
Tmux(Terminal Multiplexer)是一个功能强大的终端复用器,它允许你在单个终端窗口中创建多个独立的会话、窗口和窗格,并且支持会话的分离与重新连接。本文将全面介绍 Tmux 的安装、核心概念、常用命令以及个性化配置,帮助你在 Ubuntu 上充分发挥其威力。
1. Tmux 安装
在 Ubuntu 上安装 Tmux 非常简单,打开终端执行:
sudo apt updatesudo apt install tmux
安装完成后,可以通过以下命令验证版本:
```bashtmux -V2. 基本概念
在使用 Tmux 之前,先了解它的三个核心层次结构:
- 会话(Session):最高层,一个会话可以包含多个窗口。你可以将每个会话理解为一个独立的工作空间。
- 窗口(Window):会话中的标签页,类似于浏览器的标签页。每个窗口有自己的内容,可以独立切换。
- 窗格(Pane):窗口被分割成的多个区域,每个窗格运行一个独立的终端进程。
这三者关系如下:
会话 (Session)├── 窗口 (Window 1)│ ├── 窗格 (Pane 1)│ └── 窗格 (Pane 2)└── 窗口 (Window 2) └── 窗格 (Pane 1)3. 启动与基本操作
3.1 启动新会话
直接输入 tmux 会创建一个默认名称的会话(通常是数字编号),并进入 Tmux 环境。
如果你想要自定义会话名称:
tmux new -s mysession此时屏幕底部会出现一个绿色的状态栏,说明你已经在 Tmux 中。
3.2 前缀键
Tmux 的所有快捷键都需要先按一个前缀键,默认为 Ctrl+b。例如,Ctrl+b 后按 % 会垂直分割窗格。接下来我们提到的快捷键都默认在此之前按下 Ctrl+b。
3.3 分离会话(Detach)
在会话内部,按下 Ctrl+b 再按 d,可以暂时离开会话,返回到普通终端。会话及其中的所有窗口、窗格都会在后台继续运行。
3.4 列出会话
重新连接到其他会话前,需要先查看现有会话:
tmux ls# 或tmux list-sessions输出示例:
mysession: 2 windows (created Sat Mar 22 10:00:00 2026)0: 1 windows (created Sat Mar 22 09:30:00 2026)3.5 重新连接会话
- 重新连接到最后一个使用的会话:
tmux attach - 连接到指定名称的会话:
tmux attach -t mysession - 连接到指定编号的会话:
tmux attach -t 0
3.6 杀死会话
不再需要某个会话时,可以彻底关闭它:
tmux kill-session -t mysession如果当前在会话内部,也可以使用快捷键 Ctrl+b 然后输入 :kill-session 并回车。
4. 窗口管理
一个会话中可以包含多个窗口,每个窗口相当于一个独立的虚拟终端。
| 操作 | 快捷键 |
|---|---|
| 新建窗口 | Ctrl+b c |
| 重命名当前窗口 | Ctrl+b , |
| 关闭当前窗口 | Ctrl+b &(确认后关闭) |
| 切换到下一个窗口 | Ctrl+b n |
| 切换到上一个窗口 | Ctrl+b p |
| 按序号切换窗口 | Ctrl+b 0 … Ctrl+b 9 |
| 列出所有窗口 | Ctrl+b w(可用方向键选择) |
| 在窗口间搜索 | Ctrl+b f(输入窗口名关键字) |
5. 窗格管理
窗格允许你将一个窗口分割成多个子区域,实现多任务并行操作。
| 操作 | 快捷键 |
|---|---|
| 垂直分割窗格 | Ctrl+b % |
| 水平分割窗格 | Ctrl+b " |
| 切换活动窗格 | Ctrl+b o(依次切换)或 Ctrl+b 方向键 |
| 调整窗格大小 | Ctrl+b Ctrl+方向键(微调) |
| 最大化/还原当前窗格 | Ctrl+b z(再次按恢复) |
| 关闭当前窗格 | Ctrl+b x(确认后关闭) |
| 显示窗格编号 | Ctrl+b q(短暂显示) |
| 将当前窗格转换为窗口 | Ctrl+b ! |
| 在窗格间移动(交互式) | Ctrl+b q 后按数字键跳转 |
6. 复制模式与滚动
Tmux 默认不支持鼠标滚动查看历史输出,需要进入复制模式。
- 进入复制模式:
Ctrl+b [ - 在复制模式中,可以使用
PgUp/PgDn或j/k等 vim 风格键移动光标。 - 选择文本:按
Space开始选择,移动光标高亮文本,按Enter复制到剪贴板。 - 粘贴内容:
Ctrl+b ]
如果想启用鼠标支持(方便滚动和选择),可以在配置文件中添加 set -g mouse on。
7. 常用 Tmux 命令
除了快捷键,Tmux 也提供了丰富的命令行命令。在 Tmux 内部,可以通过 Ctrl+b : 进入命令模式,然后输入命令。常见命令包括:
new-window -n mywindow:创建一个名为mywindow的新窗口split-window -h:垂直分割当前窗格(等同于%)select-window -t 2:切换到第 3 个窗口(索引从 0 开始)resize-pane -D 5:将当前窗格向下扩大 5 行kill-pane:关闭当前窗格
这些命令也可以直接通过 tmux 命令在外部执行,例如:
tmux new-window -t mysession:28. 自定义配置文件
Tmux 的配置文件位于 ~/.tmux.conf。通过修改它,可以改变快捷键、主题、状态栏等。下面给出一个常用配置示例:
# 设置前缀键为 Ctrl+a(可选,避免与 Ctrl+b 冲突)set -g prefix C-aunbind C-bbind C-a send-prefix
# 启用鼠标支持set -g mouse on
# 设置状态栏颜色和样式set -g status-bg blackset -g status-fg whiteset -g status-left " #[fg=green]#S "
# 将分割快捷键改为更直观的 | 和 -bind | split-window -hbind - split-window -v
# 使用 vim 风格窗格切换bind h select-pane -Lbind j select-pane -Dbind k select-pane -Ubind l select-pane -R
# 重新加载配置文件bind r source-file ~/.tmux.conf \; display "Reloaded!"修改配置文件后,可以通过 tmux source-file ~/.tmux.conf 重新加载,或按 Ctrl+b r(如果配置了上述重载快捷键)。
9. 高级技巧
9.1 保存与恢复会话
Tmux 本身不支持直接保存会话布局,但可以借助第三方插件如 tmux-resurrect 和 tmux-continuum 来实现会话的自动保存与恢复。
安装方法(使用 Tmux Plugin Manager):
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm然后在 ~/.tmux.conf 中添加:
set -g @plugin 'tmux-plugins/tpm'set -g @plugin 'tmux-plugins/tmux-resurrect'set -g @plugin 'tmux-plugins/tmux-continuum'
run '~/.tmux/plugins/tpm/tpm'保存后按 Ctrl+b I 安装插件。之后,Ctrl+b s 保存会话,Ctrl+b r 恢复会话。
9.2 同时发送命令到所有窗格
有时需要在所有窗格中执行相同的命令(例如批量部署),可以使用:
Ctrl+b : setw synchronize-panes on
再次执行该命令关闭同步模式。
9.3 使用脚本启动工作环境
可以编写 shell 脚本自动创建多个窗口和窗格,例如:
#!/bin/bashtmux new-session -d -s devtmux send-keys -t dev 'cd ~/project' C-mtmux split-window -h -t devtmux send-keys -t dev 'htop' C-mtmux attach -t dev10. 常见问题与解决
| 问题 | 解决方法 |
|---|---|
| 忘记前缀键 | 查看状态栏最左侧通常会显示当前会话名,不记得前缀可查看 ~/.tmux.conf |
| 无法使用鼠标滚动 | 在配置文件中添加 set -g mouse on 并重新加载 |
| 终端颜色显示异常 | 添加 set -g default-terminal "screen-256color" 到配置文件 |
| 快捷键冲突(如 Ctrl+b 与 bash 的向后删除) | 更换前缀键,或习惯使用 |
11. 总结
Tmux 是终端用户不可或缺的效率工具,它让终端会话持久化、窗口管理灵活化、多任务操作并行化。本文涵盖了 Tmux 的基础到进阶用法,从安装、基本操作到自定义配置,希望能帮助你快速上手并发挥其最大价值。
掌握 Tmux 后,你将不再惧怕 SSH 断线,不再需要开启几十个终端标签页,工作流将更加流畅高效。
延伸阅读:
- 官方文档:
man tmux - 插件仓库:https://github.com/tmux-plugins
- 社区配置示例:https://github.com/rothgar/awesome-tmux
Happy tmuxing! 🚀
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时









