Tmux 命令

Tmux命令

 1## Session
 2# 开启新会话
 3tmux
 4# 开启新会话并命名
 5tmux new -s my_session
 6# 重命名会话
 7tmux rename-session -t 0 <new-name>
 8# 显示所有会话
 9tmux ls
10tmux list-sessions
11# 使用会话编号接入
12tmux attach -t 0
13# 使用会话名称接入
14tmux attach -t <session-name>
15tmux a -t name #简写
16# 切换会话
17tmux switch -t 0
18tmux switch -t <session-name>
19# 关闭会话
20tmux kill-session -t 0
21tmux kill-session -t <session-name>
22# 关闭会话窗口
23tmux kill-window -t <session-name>:<window-index>
24# 断开会话,在后台运行
25tmux detach
26
27## Window
28# 显示会话的窗口
29tmux list-windows -t <session-name>
30
31## Pane
32# 显示会话窗口的面板
33tmux list-panes -t <session-name>:<window-index>
34# 修改会话窗口面板标题
35tmux select-pane -T "new-title" -t <session-name>:<window-index>.<pane-index>
36# 移动面板到窗口
37tmux move-pane -t <session-name>:<window-index>
38# 交换面板内容
39tmux swap-pane -s <source-pane-index> -t <target-pane-index>
40# 所有面板水平排列
41tmux select-layout even-horizontal
42# 所有面板垂直排列
43tmux select-layout even-vertical

配置文件

1; ~/.tmux.conf
2# 启用鼠标支持
3set -g mouse on
4# 显示状态栏信息(会话名、窗口索引、时间等)
5set -g status-right '#[fg=green]#H #[fg=blue]%d %b %R'
6# 在窗格边框显示窗格索引和当前命令
7set -g pane-border-format "#{pane_index} #{pane_title}"
8# 将窗格边框状态信息显示在顶部
9set -g pane-border-status top
1tmux source-file ~/.tmux.conf

快捷键操作

Prefix = Ctrl + b

所有的快捷键都是ctrl + b按完松开,再去按下一个功能键!,不是一下子全按上。

所有的快捷键都是ctrl + b按完松开,再去按下一个功能键!,不是一下子全按上。

所有的快捷键都是ctrl + b按完松开,再去按下一个功能键!,不是一下子全按上。

会话操作

操作 快捷键 命令 备注
命令模式 Prefix , : 参考 [Tmux命令] 章节,去掉命令的"tmux"前缀,基本可以直接使用
参考 [脚本操作] 章节
跳转会话 Prefix , s
重命名会话 Prefix , $
断开会话 Prefix , d detach
翻屏模式 Prefix , [ PgUp, PgDn 实现上下翻页(mac可以用 fn + ↑ ↓实现上下翻页)
q 退出翻屏模式

窗口操作

操作 快捷键 备注
在当前会话添加一个窗口 Prefix , c
在当前会话的多个窗口中选择 Prefix , w
关闭当前会话的当前窗口 Prefix , x
关闭当前会话的所有窗口 Prefix , !
切换窗口顺序 Prefix , 数字键
窗口导航 Prefix , n/p

面板操作

操作 快捷键 备注
展示面板编号 Prefix , q
将当前窗口分成左右两份 Prefix , %
将当前窗口分成上下两份 Prefix ,"
光标在不同的窗口中跳转 Prefix , ↑ ↓ ← →
调节光标所在窗口的大小 按住 Prefix , ↑ ↓ ← →
水平排列改为垂直排列 按住 Prefix , -
垂直排列改为水平排列 按住 Prefix , \
针旋转面板 Prefix + Ctrl+o 所有面板位置顺时针轮换
逆时针旋转面板 Prefix + Alt+o 所有面板位置逆时针轮换
交换当前面板与上一个活动面板 Prefix + { 与左侧/上方面板交换
交换当前面板与下一个活动面板 Prefix + } 与右侧/下方面板交换
当前面板改为水平分割 Prefix + Space 切换当前窗格的布局方向
切换预设布局 Prefix + Alt+1~5 循环切换 5 种预设布局
关闭当前面板 Prefix + x

脚本操作

Tmux格式

 1tmux new-session -s "${MY_SESSION}" -d \; \
 2    split-window -v \; \
 3    split-window -v -t 0 \; \
 4    split-window -v -t 2 \; \
 5    split-window -h -t 3 \; \
 6    select-layout 'e1ef,267x50,0,0[267x9,0,0,0,267x9,0,10,2,267x9,0,20,1,267x20,0,30{153x20,0,30,3,113x20,154,30,4}]' \; \
 7    select-pane -T "1step" -t 0 \; \
 8    select-pane -T "2step" -t 1 \; \
 9    select-pane -T "check" -t 2 \; \
10    select-pane -T "submit" -t 3 \; \
11    select-pane -T "check submitable" -t 4 \; \
12    send-keys -t 0 "${ACTIVATE}${COMMAND_1STEP}" Enter \; \
13    send-keys -t 1 "${ACTIVATE}${COMMAND_2STEP}" Enter \; \
14    send-keys -t 2 "${ACTIVATE}${COMMAND_CHECK}" Enter \; \
15    send-keys -t 3 "${ACTIVATE}${COMMAND_SUBMIT}" Enter \; \
16    send-keys -t 4 "${ACTIVATE}${COMMAND_OTHER}" Enter \; \
17    attach-session -t "${MY_SESSION}"

Shell格式

 1# 在后台创建新的会话
 2tmux new-session -s "${MY_SESSION}" -d
 3# 在会话中创建窗口
 4# tmux new-window -t "${MY_SESSION}" -n "main"
 5# 在窗口中创建面板
 6tmux split-window -v -t "${MY_SESSION}"
 7tmux split-window -v -t "${MY_SESSION}":0.0
 8tmux split-window -v -t "${MY_SESSION}":0.2
 9tmux split-window -h -t "${MY_SESSION}":0.3
10# 调整面板大小
11# tmux resize-pane -t "${MY_SESSION}":0.0 -y 9
12# tmux resize-pane -t "${MY_SESSION}":0.1 -y 9
13# tmux resize-pane -t "${MY_SESSION}":0.2 -y 9
14# 使用select-layout更方便
15tmux select-layout -t "${MY_SESSION}" '9a1d,267x50,0,0[267x9,0,0,17,267x9,0,10,19,267x9,0,20,18,267x20,0,30{134x20,0,30,20,132x20,135,30,21}]'
16# 给面板命名
17tmux select-pane -T "1step" -t "${MY_SESSION}":0.0
18tmux select-pane -T "2step" -t "${MY_SESSION}":0.1
19tmux select-pane -T "check" -t "${MY_SESSION}":0.2
20tmux select-pane -T "submit" -t "${MY_SESSION}":0.3
21# 面板执行命令
22tmux send-keys -t "${MY_SESSION}":0.0 "${ACTIVATE}${COMMAND_1STEP}" Enter
23tmux send-keys -t "${MY_SESSION}":0.1 "${ACTIVATE}${COMMAND_2STEP}" Enter
24tmux send-keys -t "${MY_SESSION}":0.2 "${ACTIVATE}${COMMAND_CHECK}" Enter
25tmux send-keys -t "${MY_SESSION}":0.3 "${ACTIVATE}${COMMAND_SUBMIT}" Enter
26tmux send-keys -t "${MY_SESSION}":0.4 "${ACTIVATE}${COMMAND_OTHER}" Enter
27# 连接会话
28tmux attach-session -t "${MY_SESSION}"

参考文档