{"title": "\u4f7f\u7528tmux\u66ff\u4ee3screen", "update_time": "2014-08-16 23:08:31", "tags": "screen tmux", "pid": "253", "icon": "linux.png"}
## 介绍 screen作为一个老牌的终端屏幕管理软件完全满足我的日常需求 唯一的缺憾是screen没有分屏的功能。tmux是这样一款软件,它包含了99%的screen功能,而且它具有屏幕分屏的功能。 通过修改tmux的配置,调整快捷键,理论上screen用户可以无缝切换到tmux。 ## 安装Tmux CentOS默认仓库里面没有tmux的包,我们可以选择编译安装 编译需要依赖的rpm包 ``` yum install ncurses-devel ``` 安装Tmux依赖的libevent ``` wget https://github.com/downloads/libevent/libevent/libevent-2.0.18-stable.tar.gz tar xzf libevent-2.0.18-stable.tar.gz cd libevent-2.0.18-stable ./configure && make make install ``` 编译安装 ``` wget http://downloads.sourceforge.net/tmux/tmux-1.9a.tar.gz tar -xzvf tmux-1.9a.tar.gz cd tmux-1.9a ./configure --prefix=/opt/tmux-1.9a make ``` ## 配置Tmux 之前介绍过screen的使用(见 http://www.opstool.com/article/177) 。 如果您使用了之前screen文章里提供的配置,那么这次从screen无缝切换的tmux配置文件已经为您准备好了。配置如下: ``` #保存在个人home目录下 .tmux.conf #取消默认的设定键 unbind C-b unbind & unbind % unbind w unbind '"' #Escape键 set -g prefix C-a #解决bash ctrl a冲突问题 bind a send-prefix #窗口切分快捷键 bind \ split-window -h bind - split-window -v bind K confirm-before -p "kill-window #W? (y/n)" kill-window bind '"' choose-window #Pane之间切换的快捷键 bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R #Pane大小调整快捷键 bind < resize-pane -L 5 bind > resize-pane -R 5 bind _ resize-pane -D 5 bind + resize-pane -U 5 #设置window属性 setw -g window-status-current-bg red setw -g window-status-current-fg white setw -g window-status-current-attr bright setw -g window-status-attr bright setw -g window-status-format '#[fg=cyan,dim]#I#[fg=blue] #[default]#W#[fg=grey,dim]' setw -g window-status-current-format '#[fg=cyan,dim]#I#[fg=blue] #[default]#W#[fg=grey,dim]' #设置状态栏 #set -g status-utf8 on set -g status-left "" set -g status-left-length 0 set -g status-interval 2 set -g status-fg white set -g status-bg blue set -g status-right "%Y/%m/%d %H:%M" set -g default-terminal "screen" #设置滚屏,屏幕历史长度 set -g history-limit 10000 set -g terminal-overrides 'xterm*:smcup@:rmcup@' setw -g mode-keys vi #setw -g utf-8 on #其他设置 set -sg escape-time 0 ``` ## 常用快捷键 复制终端字符串 ``` 1. Ctrl+a 按 [ 进入 tmux屏幕拷贝模式 2. 然后按空格键开始复制 3. 使用类似vim的上下左右键方式进行选中 4. 按enter退出复制模式 5. Ctrl+a 按 ] 进行粘贴 ``` ## 常用命令 列出tmux的session ``` tmux ls ``` 恢复指定session ``` tmux att -d -t 0 ``` ## 遇到的问题 tmux 当前最新版本1.8不支持滚屏,换用tmux1.6就可以。 这里说的滚屏是指当一个窗口(不切分小窗口的情况下)的屏幕历史通过putty的滚动条上拉去看的时候就截断了,除非进入拷贝模式去看。 这样就很不方便。目前在tmux1.6版本没有发现这个问题。