tmux是一个terminal multiplexer.
session是pseudo terminals的集合。一个session可以有多个窗口。
一个窗口占用整个屏幕,窗口可以分割成多个rectangular panes。
一个pane是一个pseudo terminal。
多个tmux instances可以连接到同一个session。
一个session可以有任何数量的window。
所有的session结束后,tmux退出。
session是persistent的,在突然的断开连接后,session仍然存活,tmux可以reattach它们。
在tmux中,session由client显示到屏幕,所有的session由single server管理。server和每个client是单独的进程,它们之间通过/tmp下面的socket通信。
C-b 发送prefix key
C-o 逆时针旋转窗口中的panes。
! 将pane升级为一个window。
" 将当前pane水平分割成两个pane
% 将当前pane垂直分割成两个pane
$ 重命名当前session
& 杀掉当前window
, 重命名当前window
. 修改当前window的index为一个未被占用的索引
0-9 选择window
: 输入tmux命令
c 创建一个新的window
d detach当前client
l 切换到上一次选择的窗口
n 切换到下一个窗口
p 切换到上一个窗口
o 切换到下一个pane
w 弹出可视化选择window和pane的面板,使用箭头选择。
x 杀掉当前pane
z 全屏或从全屏取消pane
{ 和上前面一个pane交换位置
} 和下一个pane交换位置
上下左右方向键 切换到上面下面左边右边的pane
M-1 到 M-5 切换panes的layout,分别为:全部竖排,全部横排,一个主横排,一个主竖排,tiled
M-o 顺时针旋转窗口中的panes。
C-Up, C-Down
C-Left, C-Right Resize当前pane一个单元
M-Up, M-Down
C-Left, C-Right Resize当前pane5个单元。
大多数命令接收一个-t选项,参数是target-client, target-session, target-window, target-pane中的一个。
target-client是client的名字,典型的是client连接的pty文件,如/dev/pts/2
target-session,格式:
1 $加session id
2 session的名字。
3 session名字的前缀。
target-window,格式 session:window,其中window格式
1 window index, 如mysession:1
2 window ID,如@1
3 window的名字,如mysession:mywindow
下列token有表示特殊的window
{start} ^最低号的window
{end} $最大号的window
{last} !前一个window
{next} + 数字,后个window
{previous} - 数字,前个window
target-pane的格式和target-window类似。也有和window类似的token表示特定的pane。
select-window -t:+2
attach [-t targer-session] | |
detach [-s target-session] [-t target-client] | |
kill-server | 杀掉server,client,销毁所有的session。 |
list-clients [-t target-session] | 别名lsc |
list-sessions | 别名ls |
rename-session [-t target-session] new-name | 别名rename |
source-file path | |
break-pane | |