tmux(terminal multiplexer)是一个终端复用工具,允许用户在单个终端窗口中创建、管理和访问多个独立的终端会话。它类似于screen,但功能更强大,支持会话分离与重连、窗口分割、窗口管理、脚本化控制等高级特性。
tmux的核心价值在于:当SSH连接中断时,tmux会话仍在后台运行,重连后可恢复工作状态;在一个终端窗口中同时运行多个程序;与团队成员共享同一终端会话。对于远程开发、服务器管理、长时间运行的任务等场景,tmux是不可或缺的生产力工具。
1. 启动与退出
| 命令 | 说明 |
|---|
tmux | |
tmux new -s work | |
tmux ls | |
tmux kill-session -t work | |
tmux kill-server | |
exit | |
2. 附加与切换
| 命令 | 说明 |
|---|
tmux attach | |
tmux attach -t work | |
tmux attach -t 2 | |
tmux detach | |
Ctrl+b s | |
Ctrl+b ( | |
Ctrl+b ) | |
Ctrl+b d | |
3. 前缀键
tmux的默认前缀键是Ctrl+b,所有快捷键都需要先按前缀键再按其他键。
| 快捷键 | 说明 |
|---|
Ctrl+b | |
Ctrl+b ? | |
Ctrl+b : | |
Ctrl+b t | |
4. 窗口管理
窗口类似于浏览器标签页,每个窗口可以包含多个窗格。
| 快捷键 | 说明 |
|---|
Ctrl+b c | |
Ctrl+b , | |
Ctrl+b & | |
Ctrl+b n | |
Ctrl+b p | |
Ctrl+b 0-9 | |
Ctrl+b w | |
Ctrl+b f | |
Ctrl+b . | |
5. 窗格管理
窗格是在一个窗口内分割出的多个终端区域。
| 快捷键 | 说明 |
|---|
Ctrl+b % | |
Ctrl+b " | |
Ctrl+b x | |
Ctrl+b o | |
Ctrl+b q | |
Ctrl+b ; | |
Ctrl+b z | |
Ctrl+b { | |
Ctrl+b } | |
Ctrl+b Space | |
6. 窗格导航
| 快捷键 | 说明 |
|---|
Ctrl+b 方向键 | |
Ctrl+b Ctrl+方向键 | |
Ctrl+b Alt+1 | |
Ctrl+b Alt+2 | |
Ctrl+b Alt+3 | |
Ctrl+b Alt+4 | |
Ctrl+b Alt+5 | |
7. 复制模式
用于滚动查看历史输出和复制文本。
| 快捷键 | 说明 |
|---|
Ctrl+b [ | |
q | |
Space | |
Enter | |
Ctrl+b ] | |
Ctrl+b = | |
复制模式下(使用vi键绑定时):
| 按键 | 说明 |
|---|
j / k | |
Ctrl+u / Ctrl+d | |
Ctrl+b / Ctrl+f | |
g / G | |
/ / ? | |
8. 常用命令(命令行模式)
在tmux内按Ctrl+b :进入命令行模式,或直接在Shell中执行。
| 命令 | 说明 |
|---|
tmux rename-session -t old new | |
tmux new -s work -d | |
tmux rename-window -t 1 editor | |
tmux kill-pane -t 2 | |
tmux kill-window -t work:1 | |
tmux list-keys | |
tmux show-options -g | |
tmux show-window-options -g | |
9. 配置文件
| 路径/命令 | 说明 |
|---|
~/.tmux.conf | |
tmux source-file ~/.tmux.conf | |
set -g mouse on | |
set -g prefix C-a | |
setw -g mode-keys vi | |
set -g default-terminal "screen-256color" | |
set -sg escape-time 0 | |
10. 实用组合模式
| 命令/操作 | 说明 |
|---|
tmux new -s work -d \; new-window -t work:2 \; attach -t work | |
tmux ls | grep -q work && echo "exists" | |
tmux has-session -t work 2>/dev/null && tmux attach -t work || tmux new -s work | |
Ctrl+b :resize-pane -D 10 | |
Ctrl+b :capture-pane -S -100 | |
Ctrl+b :save-buffer ~/clipboard.txt | |
tmux attach -t work \; setw -g mode-keys vi | |
Ctrl+b z | |
11. 常用快捷键速查表
| 快捷键 | 说明 |
|---|
Ctrl+b c | |
Ctrl+b , | |
Ctrl+b & | |
Ctrl+b % | |
Ctrl+b " | |
Ctrl+b x | |
Ctrl+b o | |
Ctrl+b z | |
Ctrl+b d | |
Ctrl+b [ | |
Ctrl+b ] | |
Ctrl+b ? | |
12. 故障排查
| 问题 | 解决方法 |
|---|
| tmux命令找不到 | 安装tmux:apt install tmux 或 yum install tmux |
| 无法滚动查看历史 | 进入复制模式:Ctrl+b [;启用鼠标:set -g mouse on |
| 颜色显示异常 | 设置终端类型:set -g default-terminal "screen-256color" |
| 鼠标模式不工作 | 确认tmux版本>=2.1;启用鼠标:set -g mouse on |
| 快捷键不生效 | |
| 会话突然断开 | SSH可能超时;在.ssh/config添加ServerAliveInterval 60 |
| 复制文本无法粘贴到系统剪贴板 | macOS需配置reattach-to-user-namespace;Linux需安装xclip |
| 窗格大小不均衡 | 使用Ctrl+b Alt+1/2/3/4/5选择预设布局 |
温馨提示: tmux是远程开发和管理的神器。建议掌握以下技巧:1)养成使用命名会话的习惯(tmux new -s project);2)分离前记住会话名,重连时直接tmux attach -t name;3)善用窗格分割同时监控日志和执行命令;4)使用~/.tmux.conf自定义配置,提高效率;5)在SSH连接不稳定时,tmux是最佳伙伴——连接断开后重连即可恢复工作状态。对于团队协作,可以使用tmux attach -t shared实现终端共享(配合权限设置)。学习tmux的最佳方法是创建一个专门练习的会话,反复尝试各种快捷键组合。