介绍
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版本没有发现这个问题。