tmux分为三个层级:会话(session)、窗口(window)、窗格(pane)
tmux 开启tmux
tmux ls 显示已有tmux会话(等同Ctrl+b s)
tmux a(ttach-session) -t 数字或名字 进入指定tmux会话
会话
Ctrl+b s 显示已有tmux会话
Ctrl+b $ 重命名当前会话
窗口
Ctrl+b c(reate) 创建一个新的窗口
Ctrul+b , 重命名当前窗口
Ctrl+b 数字 直接跳到你按的数字所在的窗口
Ctrl+b d 临时断开会话
Ctrl+b & 退出当前窗口
Ctrl+b Ctrl+o 调换窗口位置,类似与vim 里的C-w
Ctrl+b n(ext) 切换到下一个窗口
Ctrl+b p(revious) 切换到上一个窗口
Ctrl+b l(ast) 最后一个窗口
Ctrl+b w 选择当前会话的窗口
窗格(布局)
Ctrl+b % 向右分割出来一个窗格
Ctrl+b ” 向下分割出来一个窗格
Ctrl+b 方向键 选择当前窗口中打开的会话
Ctrl+b (方向键) 不要松开Ctrl,方向键 – 调整窗格大小
Ctrl+b q – 显示窗格(布局)的编号
Ctrl+b ! 关闭所有窗格
Ctrl+b x 关闭当前窗格
Ctrl+b 空格键 – 采用下一个内置布局
Ctrl+b o 切换下一个窗格
其它
Ctrl+b ? 显示快捷键帮助
Ctrl+b t 钟表
Ctrl+b pageup/pagedo 翻页
去掉小圆点,当多终端同时使用同一个tmux session时,默认调整为最小的那个会话连接的窗口,如果确定没有其他人用,进入时使用 tmux a -d参数进入,如果进入后才发现,使用 : a -d 踢掉其它终端
配置文件(转载:http://www.cnblogs.com/scue/p/3705309.html)
# 设置Shell set-option -g default-shell /bin/zsh # 设置复制模式,空格开始选,Enter结束复制 setw -g mode-keys vi #开启status-bar uft-8支持 set -g status-utf8 on # 设定窗口起始 set -g base-index 1 # history set-option -g history-limit 4096 #urxvt tab like window switching (-n: no prior escape seq) #ruxvt标签式窗口切换 bind -n S-down new-window bind -n S-left prev bind -n S-right next bind -n C-left swap-window -t -1 bind -n C-right swap-window -t +1 # 切换panes bind-key C-l last-pane # 设置鼠标可以操作|滚动设置 # --> 使用shift键+鼠标键选择文件,Ctrl+Shift+C复制,Ctrl+Shift+V粘贴 # set -g mode-mouse on # set -g mode-mouse off # --> let cygwin mouse can be used. # disable mouse control by default - change 'off' to 'on' to enable by default. setw -g mode-mouse off set-option -g mouse-resize-pane off set-option -g mouse-select-pane off set-option -g mouse-select-window off # toggle mouse mode to allow mouse copy/paste # set mouse on with prefix m bind m \ set -g mode-mouse on \;\ set -g mouse-resize-pane on \;\ set -g mouse-select-pane on \;\ set -g mouse-select-window on \;\ display 'Mouse: ON' # set mouse off with prefix M bind M \ set -g mode-mouse off \;\ set -g mouse-resize-pane off \;\ set -g mouse-select-pane off \;\ set -g mouse-select-window off \;\ display 'Mouse: OFF' # 设置窗口可自动调整index set -g renumber-windows on # 复制和粘贴模式的快捷键 bind y copy-mode bind c-y copy-mode bind p paste-buffer bind c-p paste-buffer # Toggle log to file bind H pipe-pane -o 'cat >>$HOME/#W-tmux.log' '\;' display-message 'Toggled logging to $HOME/#W-tmux.log' bind h pipe-pane \; display-message 'Ended logging to $HOME/#W-tmux.log' # 设置窗口名字不能修改 set-option -g allow-rename off # 设置启动窗口时默认名字 # bind-key c new-window -n 'zsh' # 设置r键为加载配置文件,并提示信息 bind r source-file ~/.tmux.conf \; display "配置文件已重新加载!" # other setw -g xterm-keys on #------------------------------------------------------------------------------# # *** 基本终终端操作 *** # tmux new -s "session_name" // 创建一个seesion # tmux new -s "session_name" -d // 创建一个seesion, 并在后台运行 # tmux ls // 列出tmux会话列表 # tmux attach -t session // 进入指定的会话(可终端共享) # tmux kill-session -t "session" // 删除指定会话 # # ** 容易混淆 ** # bind-key ; // switch to last pane # bind-key l // switch to last window # bind-key L // switch to last session # bind-key C-l // switch to last pane(like: bind-key ;) # # *** 控制台-操作说明 *** # Ctrl+b // 激活控制台 # ** 系统操作 # ? // 列出所有快捷键;按q返回 # d // 脱离当前会话; # D // 选择要脱离的会话;在同时开启了多个会话时使用 # Ctrl+z // 挂起当前会话 # r // 强制重绘未脱离的会话 # s // 选择并切换会话;在同时开启了多个会话时使用 # : // 进入命令行模式; # :new-session // 创建新会话 # [ // 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出 # ] // 进入粘贴模式; # ~ // 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息 # # ** 会话操作 # ( preview session # ) next session # L last session # s list session # $ rename seesion # # ** 窗口操作 # c // 创建新窗口 # & // 关闭当前窗口 # [0-9] // 切换至指定窗口 # p // 切换至上一窗口 # n // 切换至下一窗口 # l // 在前后两个窗口间互相切换 # w // 通过窗口列表切换窗口 # , // 重命名当前窗口;这样便于识别 # . // 修改当前窗口编号;相当于窗口重新排序 # f // 在所有窗口中查找指定文本 # i // 显示tmux当前信息 # # ** 面板操作 # ” // 将当前面板平分为上下两块|横向切割 --> 分割成面板 # % // 将当前面板平分为左右两块|竖向切割 --> 分割成面板 # x // 关闭当前面板 # ; // 切换到最后的pane # ! // 将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板 # Ctrl+方向键 // 以1个单元格为单位移动边缘以调整当前面板大小 # Alt+方向键 // 以5个单元格为单位移动边缘以调整当前面板大小 # Space // 在预置的面板布局中循环切换;依次包括: # even-horizontal、 # even-vertical、 # main-horizontal、 # main-vertical、 # tiled # q // 显示面板编号 # o // 在当前窗口中选择下一面板 # { // 向前置换当前面板 # } // 向后置换当前面板 # 方向键 // 移动光标以选择面板 # Alt+o // 逆时针旋转当前窗口的面板 # Ctrl+o // 顺时针旋转当前窗口的面板 # *** 参考配置 *** # # ** 配置1 ** # #设置pan前景色 # set -g pane-border-fg green # #设置pane背景色 # set -g pane-border-bg black # #设置终端颜色为256色 # set -g default-terminal "screen-256color" # #开启status-bar uft-8支持 # set -g status-utf8 on # #设置pan前景色 # set -g pane-border-fg green # #设置pane背景色 # set -g pane-border-bg black # #设置活跃pane前景色 # set -g pane-active-border-fg white # #设置活跃pane背景色 # set -g pane-active-border-bg yellow # #设置消息前景色 # set -g message-fg white # #设置消息背景色 # set -g message-bg black # #设置消息高亮显示 # set -g message-attr bright # #设置status-bar颜色 # set -g status-fg white # set -g status-bg black # #设置窗口列表颜色 # setw -g window-status-fg cyan # setw -g window-status-bg default # setw -g window-status-attr dim # #设置当前窗口在status bar中的颜色 # setw -g window-status-current-fg white # setw -g window-status-current-bg red # setw -g window-status-current-attr bright # #设置status bar格式 # set -g status-left-length 40 # set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P" # set -g status-right "#[fg=cyan]%d %b %R" # set -g status-interval 60 # set -g status-justify centre # #开启window事件提示 # setw -g monitor-activity on # set -g visual-activity on # # ** 配置2 ** # # 同一个窗口中的面板操作 # # up # bind-key k select-pane -U # #down # bind-key j select-pane -D # #left # bind-key h select-pane -L # #right # bind-key l select-pane -R # #select last window # bind-key C-l select-window -l #------------------------------------------------------------------------------#