使用多终端管理利器tmux

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

猜你喜欢

转载自kingquake21.iteye.com/blog/1422462