tmux (http://tmux.sourceforge.net/),linux下的一个多终端管理器,最喜欢它的一个窗口多个pane的方式,可以在一个界面下同时看到多个终端,如果在远程服务器上运行tmux,则可以只需连接一次服务器
一个tmux命令执行后启动一个tmux服务
一个tmux服务可以拥有多个session,一个session可以看作是tmux管理下的伪终端的一个集合
一个session可能会有多个window与之关联,每个window都是一个伪终端,会占据整个屏幕
一个window可以被分割成多个pane
多个pane的编号规则,以3个pane为例
0
1 | 2
通常的做法是一个session一个window多个pane,如何操作pane就比较重要了
首先所有的tmux操作都需要先按下ctrl-b,再跟其他的命令
! 将当前的pane从当前的window中移出到一个新的window中
x kill当前的pane
& kill当前的window
" 将当前的pane分割成上下的两个pane
% 将当前的pane分割成左右两个pane
q 显示pane的序号
{ 将当前的pane与前一个pane交换位置,光标仍在当前的pane上
} 将当前的pane与后一个pane交换位置,光标仍在当前的pane上
上\下\左\右 将光标在上\下\左\右的pane间移动
M-1 to M-5 分别对应五种布局:even-horizontal, even-vertical, main-horizontal, main-vertical, or tiled
C-o 会向前旋转pane的位置,原来为0的pane被原来为1的pane替换,如果从上面的pane 0位置旋转一次,会成下面的状态
1
2 | 0
再执行一次会变成
2
0 | 1
M-o 会向后旋转pane的位置,原来为0的pane被原来为2的pane替换,如果从上面的pane 0位置旋转一次,会成下面的状态
2
0 | 1
再执行一次会变成
1
2 | 0
C-上\下\左\右 调整当前pane的size,一个单位一个单位的调整
M-上\下\左\右 调整当前pane的size,五个单位五个单位的调整
上面所有的按键都能重新设置,配置文件在~/.tmux.conf中,或/etc/tmux.conf中
例如:
#此类配置可以在命令行模式中输入show-options -g查询 set-option -g base-index 1 #窗口的初始序号;默认为0,这里设置为1 set-option -g display-time 5000 #提示信息的持续时间;设置足够的时间以避免看不清提示,单位为毫秒 set-option -g repeat-time 1000 #控制台激活后的持续时间;设置合适的时间以避免每次操作都要先激活控制台,单位为毫秒 set-option -g status-keys vi #操作状态栏时的默认键盘布局;可以设置为vi或emacs set-option -g status-right "#(date +%H:%M' ')" #状态栏右方的内容;这里的设置将得到类似23:59的显示 set-option -g status-right-length 10 #状态栏右方的内容长度;建议把更多的空间留给状态栏左方(用于列出当前窗口) set-option -g status-utf8 on #开启状态栏的UTF-8支持 #此类设置可以在命令行模式中输入show-window-options -g查询 set-window-option -g mode-keys vi #复制模式中的默认键盘布局;可以设置为vi或emacs set-window-option -g utf8 on #开启窗口的UTF-8支持 #将激活控制台的快捷键由Ctrl+b修改为Ctrl+a,Ctrl+a是terminal的快捷键(回到行首),建议别修改 #set-option -g prefix C-a #unbind-key C-b #bind-key C-a send-prefix #添加自定义快捷键 bind-key z kill-session #按z结束当前会话;相当于进入命令行模式后输入kill-session bind-key h select-layout even-horizontal #按h将当前面板布局切换为even-horizontal;相当于进入命令行模式后输入select-layout even-horizontal bind-key v select-layout even-vertical #按v将当前面板布局切换为even-vertical;相当于进入命令行模式后输入select-layout even-vertical