Linux Tmux 使用指南
终端多路复用器可以允许我们基于面板和标签分割出多个终端窗口,这样您便可以同时与多个 shell 会话进行交互。不仅如此,终端多路复用使我们可以分离当前终端会话并在将来重新连接。
目录
安装
# Debian/Ubuntu
apt install tmux -y
# CentOS/RHEL
yum install tmux -y
# macOS
brew install tmux
# Termux
pkg install tmux -y
会话管理
基本命令
| 命令 |
说明 |
tmux |
启动新会话 |
tmux new -s NAME |
创建指定名称的会话 |
tmux ls |
列出所有会话 |
tmux attach 或 tmux a |
重新连接最后一个会话 |
tmux attach -t NAME |
连接到指定会话 |
tmux kill-session -t NAME |
删除指定会话 |
tmux rename-session -t NAME NEW_NAME |
重命名会话 |
快捷键
| 快捷键 |
说明 |
<Ctrl+b> d |
分离当前会话 |
<Ctrl+b> s |
显示会话列表并切换 |
<Ctrl+b> $ |
重命名当前会话 |
窗口管理
窗口相当于编辑器或浏览器中的标签页,从视觉上将一个会话分割为多个部分。
| 快捷键 |
说明 |
<Ctrl+b> c |
创建新窗口 |
<Ctrl+b> & |
关闭当前窗口 |
<Ctrl+b> p |
切换到前一个窗口 |
<Ctrl+b> n |
切换到下一个窗口 |
<Ctrl+b> N |
跳转到第 N 个窗口 |
<Ctrl+b> , |
重命名当前窗口 |
<Ctrl+b> w |
列出所有窗口 |
<Ctrl+b> . |
移动窗口到其他会话 |
面板管理
面板使我们可以在一个屏幕里显示多个 shell,像 vim 中的分屏一样。
分割面板
| 快捷键 |
说明 |
<Ctrl+b> " |
水平分割(上下) |
<Ctrl+b> % |
垂直分割(左右) |
切换面板
| 快捷键 |
说明 |
<Ctrl+b> <方向键> |
切换到指定方向的面板 |
<Ctrl+b> o |
切换到下一个面板 |
<Ctrl+b> ; |
切换到上一个面板 |
<Ctrl+b> q |
显示面板编号,按数字切换 |
面板操作
| 快捷键 |
说明 |
<Ctrl+b> z |
最大化/还原当前面板 |
<Ctrl+b> x |
关闭当前面板 |
<Ctrl+b> <空格> |
切换面板布局 |
<Ctrl+b> alt+1 |
选择预设布局 1(平铺) |
<Ctrl+b> alt+2 |
选择预设布局 2(左右) |
<Ctrl+b> alt+3 |
选择预设布局 3(上下) |
<Ctrl+b> alt+4 |
选择预设布局 4(主左右) |
<Ctrl+b> alt+5 |
选择预设布局 5(主上下) |
调整面板大小
| 快捷键 |
说明 |
<Ctrl+b> alt+<方向键> |
调整面板大小(每次 1 格) |
<Ctrl+b> ctrl+<方向键> |
调整面板大小(每次 5 格) |
快捷键速查表
前缀键
所有 tmux 快捷键都需要先按 <Ctrl+b>,松开后再按其他键。
常用快捷键汇总
| 分类 |
快捷键 |
功能 |
| 会话 |
<Ctrl+b> d |
分离会话 |
| 会话 |
<Ctrl+b> s |
会话列表 |
| 窗口 |
<Ctrl+b> c |
新建窗口 |
| 窗口 |
<Ctrl+b> p/n |
前后切换窗口 |
| 窗口 |
<Ctrl+b> , |
重命名窗口 |
| 面板 |
<Ctrl+b> " |
水平分割 |
| 面板 |
<Ctrl+b> % |
垂直分割 |
| 面板 |
<Ctrl+b> <方向键> |
切换面板 |
| 面板 |
<Ctrl+b> z |
最大化面板 |
| 复制 |
<Ctrl+b> [ |
进入复制模式 |
| 其他 |
<Ctrl+b> : |
命令行模式 |
| 其他 |
<Ctrl+b> ? |
帮助列表 |
复制模式
- 按
<Ctrl+b> [ 进入复制模式
- 使用方向键或
hjkl 移动光标
- 按
空格键 开始选择
- 按
回车键 复制选中内容
- 按
<Ctrl+b> ] 粘贴
实用示例
示例 1:创建工作会话
# 创建名为 demo 的会话
tmux new -s demo
# 水平分割
<Ctrl+b> "
# 垂直分割
<Ctrl+b> %
# 切换面板
<Ctrl+b> <方向键>
# 创建新窗口
<Ctrl+b> c
# 切换窗口
<Ctrl+b> p # 前一个
<Ctrl+b> n # 下一个
# 分离会话
<Ctrl+b> d
示例 2:查看会话列表
tmux ls
# 输出示例:
# 0: 1 windows (created Sat Mar 21 06:35:18 2026)
# 1: 2 windows (created Sat Mar 21 06:35:28 2026)
# 2: 1 windows (created Sat Mar 21 06:46:16 2026)
示例 3:连接会话
# 连接 ID 为 1 的会话
tmux attach -t 1
# 连接名称为 demo 的会话
tmux attach -t demo
示例 4:删除会话
# 删除指定会话
tmux kill-session -t demo
# 删除所有会话
tmux kill-server
example
tmux new -s demo
<ctrl+b> " 水平分割
<ctrl+b> % 垂直分割
<ctrl+b> <方向> 切换到指定方向的面板
<ctrl+b> c 创建一个新的窗口
<ctrl+b> p 切换到前一个窗口
<ctrl+b> n 切换到下一个窗口
<ctrl+b> d 退出
tmux ls
0: 1 windows (created Sat Mar 21 06:35:18 2026)
1: 2 windows (created Sat Mar 21 06:35:28 2026)
2: 1 windows (created Sat Mar 21 06:46:16 2026)
# 连接 id 为1 的窗口
tmux attach -t 1