Tmux终端复用器
Tmux是一个终端复用器,它允许你在一个终端窗口中创建多个会话、窗口和窗格,并能保持这些工作状态长期运行,即使关闭SSH连接也不会中断。下面是详细的使用教程。
📦 核心概念:会话 > 窗口 > 窗格
理解Tmux的三个层级是熟练使用它的关键:
- 会话(Session):是Tmux的最高层级工作空间。你可以在一个会话中完成一项完整的工作(例如“开发项目A”),然后将其分离(detach),它会在后台继续保持运行。稍后可以随时附加(attach) 回来,一切状态如初。
- 窗口(Window):一个会话中可以包含多个窗口,类似于浏览器中的标签页。每个窗口都占据整个屏幕,用于处理一项独立的任务(例如“运行服务器”、“编辑代码”、“查看日志”)。
- 窗格(Pane):在一个窗口内,你可以分割出多个窗格,用于同时显示和操作多个终端。
🎯 常用命令速查表
下面的表格汇总了最核心的操作命令,你可以先快速浏览,有个整体印象。
| 功能类别 | 操作 | 默认快捷键 (前缀键 Ctrl+b 后接) |
|---|---|---|
| 会话管理 | 新建命名会话 | tmux new -s <会话名> |
| 分离当前会话 | 前缀键 + d |
|
| 列出所有会话 | tmux ls 或 前缀键 + s |
|
| 进入/附加会话 | tmux attach -t <会话名> |
|
| 窗口管理 | 创建新窗口 | 前缀键 + c |
| 切换下一个窗口 | 前缀键 + n |
|
| 切换上一个窗口 | 前缀键 + p |
|
| 按编号切换窗口 | 前缀键 + <窗口号> |
|
| 重命名当前窗口 | 前缀键 + , |
|
| 关闭当前窗口 | 前缀键 + & |
|
| 窗格管理 | 垂直分割(左右) | 前缀键 + % |
| 水平分割(上下) | 前缀键 + " |
|
| 切换活动窗格 | 前缀键 + 方向键 |
|
| 调整窗格大小 | 前缀键 + Alt + 方向键 |
|
| 关闭当前窗格 | 前缀键 + x 或直接 exit |
|
| 全屏显示当前窗格 | 前缀键 + z (再按一次恢复) |
|
| 其他重要 | 进入复制模式 | 前缀键 + [ |
| 粘贴复制的内容 | 前缀键 + ] |
|
| 查看快捷键列表 | 前缀键 + ? |
🚀 详细使用指南
第一步:启动与基础会话操作
- 启动新会话:
tmux new -s my_session(创建一个名为my_session的会话)。 - 分离会话:在Tmux会话中,按下
Ctrl+b,松开后按d。会话会在后台继续运行。 - 查看会话列表:
tmux ls或在命令行直接按前缀键 + s。 - 重新连接会话:
tmux attach -t my_session(附加到指定会话)。如果想直接附加到最后一个会话,也可以用tmux a。 - 退出(销毁)会话:在会话内部,可以输入
exit关闭所有窗格和窗口,或使用tmux kill-session -t my_session从外部结束。
第二步:在会话内管理窗口
你可以把窗口理解为“任务标签页”。
- 创建:
前缀键 + c - 切换:
- 下一个:
前缀键 + n - 上一个:
前缀键 + p - 直接按编号:
前缀键 + 0到9
- 下一个:
- 重命名:
前缀键 + ,,然后输入新名字。 - 关闭:
前缀键 + &或直接在该窗口输入exit。
第三步:在窗口内管理窗格(分屏)
这是Tmux最强大的功能之一,可以实现灵活的多任务并行。
- 分割:
- 垂直分割(左右):
前缀键 + % - 水平分割(上下):
前缀键 + "
- 垂直分割(左右):
- 切换:
前缀键 + 方向键(上下左右)。 - 调整大小(需要稍微记忆):
前缀键 + Alt + 方向键(通常有效,取决于终端)。- 或者,先按
前缀键 + :进入命令模式,输入resize-pane -L 5(向左调整5个单元格,L/R/U/D对应方向)。
- 布局:Tmux内置了几种窗格排列布局,按
前缀键 + Space可以循环切换。 - 全屏/恢复:
前缀键 + z(放大当前窗格至全屏,再按一次恢复)。
第四步:进阶操作 - 复制模式
Tmux有自己的复制粘贴缓冲区,与系统剪贴板不同。
- 进入复制模式:
前缀键 + [。 - 此时可以用方向键或Vim风格(
hjkl)移动光标。 - 按
Space开始选择,移动光标选择文本区域。 - 按
Enter复制所选文本到Tmux缓冲区。 - 粘贴:
前缀键 + ]。
提示:可以配置Tmux使用系统剪贴板,但这通常需要额外的插件或终端支持。
第五步:自定义配置(~/.tmux.conf)
Tmux的默认键位可能不太顺手,你可以创建配置文件 ~/.tmux.conf 来自定义。例如:
1 | # 将前缀键从 Ctrl+b 改为 Ctrl+a (很多人觉得更方便) |
修改配置后,在Tmux内按 前缀键 + : 输入 source-file ~/.tmux.conf 重新加载,或重启Tmux生效。
💡 实用技巧与场景
- 长期运行任务:在服务器上启动一个Tmux会话,运行需要长时间执行的任务(如编译、下载),然后放心地断开SSH连接。之后重新连接,
tmux attach就能继续查看进度。 - 结对编程:使用
tmux new -s pair_programming创建会话,对方通过SSH登录后,可以用tmux attach -t pair_programming连接到同一个会话,实现实时共享终端。 - 会话恢复:即使服务器重启,也可以通过插件(如
tmux-resurrect)来保存和恢复会话状态。
⚠️ 常见问题
- 如何滚动查看历史输出?:进入复制模式(
前缀键 + [),然后用方向键或PageUp/PageDown滚动。如果配置了mouse on,也可以直接用鼠标滚轮。 - 快捷键没反应?:确保先按
Ctrl+b(或你自定义的前缀键),松开后再按命令键。例如,垂直分割是:1) 按Ctrl+b,2) 松开,3) 按%。 - 嵌套在另一个Tmux或Screen里面?:这可能导致快捷键冲突,最好避免。
掌握Tmux需要一些练习,建议从创建一个命名会话、分割两三个窗格、尝试分离和重新连接开始。一旦熟悉,它将极大提升你在命令行下的工作效率。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Quan's Garden!