tmux是一个终端复用工具。就是你可以在一个终端中用tmux开很多终端。
公司使用统一的开发机开发,所以长时间登录是必须的,tmux可以保存会话,这样第二天来上班再次连接开发机时,一切保持原样,很方便,现在已经是不可或缺的工具之一了。
tmux使用分层的思想来管理终端:会话(session)>窗口(window)>面板(panel)。一个tmux是可以被多个客户端(client)访问的。
安装 centos中无法使用yum安装tmux(不知道为什么,明明这么多的人在用),所以只能手动安装了,一下代码转载自:Install tmux 1.9 on rhel/centos 6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # Install tmux on Centos release 6.5 # install deps yum install gcc kernel-devel make ncurses-devel # DOWNLOAD SOURCES FOR LIBEVENT AND MAKE AND INSTALL curl -OL https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz tar -xvzf libevent-2.0.21-stable.tar.gz cd libevent-2.0.21-stable ./configure --prefix=/usr/local make sudo make install # DOWNLOAD SOURCES FOR TMUX AND MAKE AND INSTALL curl -OL http://downloads.sourceforge.net/tmux/tmux-1.9a.tar.gz tar -xvzf tmux-1.9a.tar.gz cd tmux-1.9a LDFLAGS="-L/usr/local/lib -Wl,-rpath=/usr/local/lib" ./configure --prefix=/usr/local make sudo make install # pkill tmux # close your terminal window (flushes cached tmux executable) # open new shell and check tmux version tmux -V
使用 tmux命令常用操作:
1 2 3 4 - 新建会话:tmux new -s xxx - 进入会话:tmux attach -t xxx - 关闭会话:tmux kill-session -t xxx - 列出会话:tmux ls
进入tmux后,可以使用快捷键进行切换窗口等操作。tmux的快捷键都是双段的,默认的快捷键前缀为ctrl-b
,然后可以接的快捷键有:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 c 新建窗口 " 上下划分当前panel % 左右划分当前panel 0-9 切换0-9号window d 退出当前client,session会继续存在 & 关闭当前window x 关闭当前panel $ 重命名当前会话 , 重命名当前窗口 C-b 发送ctrl-b到tmux的终端中 C-o C-z 挂起当前client
我的tmux配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 # 使支持256色 set -g default-terminal "screen-256color" # 使用vi风格的按键 set-window-option -g mode-keys vi # 设置索引从1开始 set -g base-index 1 # 启用鼠标支持 setw -g mouse-resize-pane on setw -g mouse-select-pane on setw -g mouse-select-window on setw -g mode-mouse on # 设置状态栏的样式 set -g status-bg colour8 set -g status-fg white #set -g status-left "" #set -g status-right "#[fg=green]#H" # 设置状态栏左侧侧显示的信息 #set-window-option -g status-left " #S " set-window-option -g status-left "" set-window-option -g status-left-fg black set-window-option -g status-left-bg white # 设置状态栏右侧显示的信息 set-window-option -g status-right "[#S] %Y-%m-%d %H:%M" #set-window-option -g status-right-fg white #set-window-option -g status-right-bg black # 设置状态栏非当前window状态显示的格式 set-window-option -g window-status-format " #I: #W " # 设置状态栏当前window状态显示的格式 set-window-option -g window-status-current-format " #I: #W " set-window-option -g window-status-current-fg white set-window-option -g window-status-current-bg colour10 # 绑定'r'为重新读取配置 bind r source-file ~/.tmux.conf \; display "Reloaded!!!!!"
mouse相关配置提示错误 我在mac上使用这个配置,提示错误:
1 2 3 4 /Users/mazhibin/.tmux.conf:11: unknown option: mouse-resize-pane /Users/mazhibin/.tmux.conf:12: unknown option: mouse-select-pane /Users/mazhibin/.tmux.conf:13: unknown option: mouse-select-window /Users/mazhibin/.tmux.conf:14: unknown option: mode-mouse
这是因为我mac上的tmux的版本是2.1。centos上的是1.9。而tmux2中,mouse的相关配置被重写了。需要:
1 2 3 4 5 set-option -g mouse on # make scrolling with wheels work bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'" bind -n WheelDownPane select-pane -t= \; send-keys -M
unix - tmux set -g mouse-mode on doesnt work - Stack Overflow
配置颜色 啥是colour? tmux的man文档里有这大量的colour
,这是啥?
colour是英式英语用法; color是美式英语用法
好吧,我承认这个问题很蠢。
如何在配置中指定颜色 需要指定颜色的命令中我们怎么指定颜色呢?有几种方式。
第一种,直接指定颜色字符串,可以是black, red, green, yellow, blue, magenta, cyan, white
这八种基本颜色之一。
第二种,如果终端支持256色,可以指定为colour0...colour255
这256种颜色之一。
第三种,可以像写css一样,指定一个十六进制颜色字符串,比如#ffffff
,tmux会选择最接近256标准色的那个颜色来渲染。
同时还可以指定文字的属性,比如加粗,下划线等。这些属性可以叠加,用逗号隔开,bright (or bold), dim, underscore, blink, reverse, hidden, italics
,如果你要关闭一个属性,可以在属性前面加上no
前缀。举几个例子:
1 2 fg=yellow,bold,underscore,blink bg=black,fg=default,noreverse
扩展阅读 网上的一个回答:地址 ,提到了一个查看color256的脚本:
1 2 3 4 #!/usr/bin/env bash for i in {0..255} ; do printf "\x1b[38;5;${i}mcolour${i}\n" done
参考文章: