tmux 使用指南

新建会话

1
tmux new -s new-session

新建会话, 并指定会话ID 为 new-session, 如果不指定 -s 则会分配一个顺序ID

1
2
tmux new 'vim ~/.tmux.conf' # 使用 shell 执行命令
tmux new -- vim ~/.tmux.conf # 直接执行程序

新建会话, 执行命令

1
tmux new -n mytopwindow top # 新建会话, 并指定窗口名称

控制会话

连接 tmux 客户端后, 所有指令都会直接转发给当前窗口正在运行的程序. 如需控制 tmux 程序本身, 则需要增加前缀键.

默认前缀键为 Ctrl+b, 输入前缀建后再输入指令. 例如 输入 Ctrl+b 后, 再输入 ? 则会显示所有指令.

tmux lsk -N|more 也可以显示所有的控制指令

模式 命令
C- Ctrl+
M- Alt+
S- Shift+

C-b : 进入命令提示符模式

C-b c 在当前会话中创建新窗口

连接与离开会话

C-b d 脱离 tmux 返回终端

1
2
3
4
5
tmux attach # 连接到最近一次会话
tmux a # 简写
tmux attach -t session-name # 连接到名为 session-name 的会话
tmux attach -d -t session-name # 连接到名为 session-name 的会话,并强制断开其他已连接的终端
tmux new -A -s session-name # 如果会话存在,则直接连接;如果不存在,则新建并连接

列出会话

1
tmux ls # 列出所有会话

关闭 tmux 服务

1
tmux kill-server # 关闭 tmux 服务, 所有会话都会被关闭

新建窗口

1
2
3
4
5
6
7
C-b c # 新建窗口,并切换到新建窗口

C-b : # 进入命令提示符模式
new-window # 新建窗口 neww 为简写
neww -d -n window-name # 新建窗口 -d 标识表示不切换到新建窗口 -n 标识表示指定窗口名称
neww -t 999 # 新建窗口, 并指定窗口ID
neww top # 新建窗口, 并执行 top 命令

分离窗口 (窗格)

1
2
3
4
5
6
7
8
C-b % # 将当前窗口分割为左右两块, 分割线为竖线,称为水平分割
C-b " # 将当前窗口分割为上下两块, 分割线为横线,称为垂直分割

C-b :
split-window -h # 将当前窗口分割为左右两块, 分割线为竖线,称为水平分割
split-window -v # 将当前窗口分割为上下两块, 分割线为横线,称为垂直分割

split-window -h -d -b # -d 不切换到新建的窗口, -b 新建窗口放在左侧或上方(默认会在右侧或下方)

更改当前窗口

1
2
3
4
5
C-b 0 # 切换到窗口 0 0-9 可以切换
C-b ' # 进入窗口选择模式 输入窗口编号
C-b n # 根据窗口数字索引,切换到下个窗口
C-b p # 根据窗口数字索引,切换到上个窗口
C-b l # 切换到上一个活动窗口

更改当前窗格

1
2
3
4
C-b Up/Down/Left/Right # 切换到上/下/左/右窗格
C-b q # 显示窗格编号, 立即输入编号可直接切换,当前窗格编号为红色
C-b o # 依照窗格编号,切换到下一个窗格
C-b C-o # 轮换窗格

树模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
C-b : choose-tree # 进入树模式
C-b s # 进入树模式, 仅显示会话, 选中当前会话
C-b w # 进入树模式,显示会话和窗口, 选中当前窗口

# 窗口树模式下的命令
Up Down # 上下键移动光标选中
Left Right # 关闭/展开 项目
Enter # 进入选中项目,退出树模式
q # 退出树模式
O # 修改排序规则

t # 标记项目, 再次按 t 取消标记
T # 取消所有标记
x # kill 选中项目
X # Kill 所有标记项目
: # 对所选项目施加指令
C-s # 搜索项目
r # reversed 反向排序
v # 切换预览模式

客户端模式

1
2
3
4
5
6
7
8
9
C-b : choose-client # 进入客户端模式
C-b D # 进入客户端模式

# 客户端模式下的命令
Enter # 分离选中的会话, 分离指终端和会话断开,会话会继续在后台运行
d # 同上
D # 分离所有标记的会话
x # 分离选中的会话,并尝试 Kill 连接会话的终端
X # 分离所有标记的会话,并尝试 Kill 连接会话的终端

关闭会话、窗口、窗格

1
2
3
4
C-b & # 关闭当前窗口 kill-window
C-b x # 关闭当前窗格 kill-pane

kill-session # 关闭会话, 会关闭会话下的所有窗口窗格

重命名窗口、窗口

1
2
C-b $ # 重命名会话 rename-session
C-b , # 重命名窗口 rename-window

移动窗口、窗格

1
2
3
4
5
6
7
8
9
10
11
C-b m # 标记窗格/窗口
C-b M # 取消标记

:swap-window # 交换窗口
:move-window -kt999 # 移动窗口到指定会话, 如果会话存在则删除
C-b . # 移动窗口
:movew -r # 移动窗格,重新编号

:swap-pane # 交换窗格
C-b { # 交换窗格
C-b } # 交换窗格

调整窗格大小

1
2
3
4
C-b C-Up/Down/Left/Right # 小幅度调整
C-b M-Up/Down/Left/Right # 大幅度调整

C-b z # 隐藏/显示其他窗口

窗口布局

1
2
3
4
5
6
C-b space # 切换布局
C-b M-1 # 水平均匀排列
C-b M-2 # 垂直均匀排列
C-b M-3 # 顶部有一个大窗格,其余窗格均匀分布
C-b M-4 # 左侧有一个大窗格,其余窗格均匀分布
C-b M-5 # 所有窗格均匀分布,列于行相同

寻找窗口、窗格

1
C-b f

使用鼠标

1
:set -g mouse on
作者

nyuFeng

发布于

2025-11-12

更新于

2026-01-12

许可协议

评论