您的位置:首页 > 其它

tmux 多终端登陆软件,安装配置使用详解

2013-04-26 11:52 711 查看
tmux 多终端登陆软件,安装配置使用详解在日常工作中,总是感觉用 CRT 连接Linux一个窗口不够用,再开新的窗口又比较麻烦,在网上查找可以打开多个终端登录软件,最后我找到了很强大而且使用广泛的tmux多终端管理器。
tmux是一个优秀的终端复用软件,类似GNU Screen,使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再使用更多的SSH会话来连接这台远程主机;其功能远不止于此。
下面详细介绍tmux软件的 1.6 、1.8 编译安装和 centos 5.X(32位、64位)、centos 6X 32位、64位) rpm包安装部署以及简单实用方法介绍;
安装
这里只详细说明在Centos5.x 和centos 6.x 下如何安装和使用tmux的。
一:下载tmux:
下面有各种版本的下载软件包连接,根据需要下载,为了方便我选择rpm包。
wget http://sourceforge.net/projects/tmux/files/tmux/tmux-1.6/tmux-1.6.tar.gz/download wget http://jaist.dl.sourceforge.net/project/tmux/tmux/tmux-1.8/tmux-1.8.tar.gz wget ftp://ftp.muug.mb.ca/mirror/fedora/epel/5/x86_64/tmux-1.4-3.el5.1.x86_64.rpm wget ftp://rpmfind.net/linux/dag/redhat/el5/en/x86_64/dag/RPMS/tmux-1.2-1.el5.rf.x86_64.rpm wget ftp://rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/tmux-1.2-1.el5.rf.i386.rpm wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/tmux-1.6-1.el6.rf.x86_64.rpm 二:编译安装:
2.1:编译安装;
2.1.1 : 1.6 版本安装
tar zxvf tmux-1.6.tar.gz
cd tmux-1.6
./configure
make;make install
2.1.2: 1.8版本编译安装
编译安装:
mkdir -p /usr/local/tmux
mkdir -p /tmp/libevent
#安装依赖补丁包步骤如下;
wget https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz tar xvzf libevent-2.0.20-stable.tar.gz
./configure --prefix=/tmp/libevent
make
make install
tmux 1.8 下载安装步骤如下;
wget http://jaist.dl.sourceforge.net/project/tmux/tmux/tmux-1.8/tmux-1.8.tar.gz tar -xvf tmux-1.8.tar.gz
cd tmux-1.8
CFLAGS="-I/tmp/libevent/include" LDFLAGS="-L/tmp/libevent/lib" ./configure --prefix=/usr/local/tmux
make
make install
ln -s /usr/local/tmux/bin/tmux /usr/bin/
2.1.3 :centos 5x 64位系统安装
Linux sambaserver 2.6.18-308.16.1.el5 #1 SMP Tue Oct 2 22:01:43 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
more /etc/redhat-release
CentOS release 5.8 (Final)
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/tmux-1.5-1.el6.x86_64.rpm [root@sambaserver workspace]# rpm -ivh tmux-1.4-3.el5.1.x86_64.rpm
warning: tmux-1.4-3.el5.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing... ########################################### [100%]
1:tmux ########################################### [100%]
2.1.4 :Centos 6 32位系统 安装
uname -a
Linux Cacti 2.6.32-220.el6.i686 #1 SMP Tue Dec 6 16:15:40 GMT 2011 i686 i686 i386 GNU/Linux
more /etc/redhat-release
CentOS release 6.2 (Final)
wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/tmux-1.6-1.el6.rf.i686.rpm [root@Cacti workspace]# rpm -ivh tmux-1.6-1.el6.rf.i686.rpm
warning: tmux-1.6-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
Preparing... ########################################### [100%]
1:tmux ########################################### [100%]
2.1.5:Centos 6X 32位系统 安装
uname -a
Linux hkvps 2.6.32-279.11.1.el6.i686 #1 SMP Tue Oct 16 14:40:53 UTC 2012 i686 i686 i386 GNU/Linux
more /etc/redhat-release
CentOS release 6.2 (Final)
wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/tmux-1.6-1.el6.rf.i686.rpm rpm -ivh tmux-1.6-1.el6.rf.i686.rpm
warning: tmux-1.6-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
Preparing... ########################################### [100%]
1:tmux ########################################### [100%]
三:实用简介

3.1、启动tmux
安装完成后输入命令tmux即可打开软件,界面十分简单,类似一个下方带有状态栏的终端控制台;但根据tmux的定义,在开启了tmux服务器后,会首先创建一个会话,而这个会话则会首先创建一个窗口,其中仅包含一个面板;也就是说,这里看到的所谓终端控制台应该称作tmux的一个面板,虽然其使用方法与终端控制台完全相同。
tmux使用C/S模型构建,主要包括以下单元模块:
 一个tmux命令执行后启动一个tmux服务
 一个tmux服务可以拥有多个session,一个session可以看作是tmux管理下的伪终端的一个集合
 一个session可能会有多个window与之关联,每个window都是一个伪终端,会占据整个屏幕
 一个window可以被分割成多个pane
多个pane的编号规则,以3个pane为例:
0
1 | 2




3.1.1:命令介绍
tmux new -s health #启动一个tmux session 命名为 health
tmux attach-session -t health #进入已启动的health session里面
tmux rename-session -t 0 health #将已经启动session 0 改名为 healthtmux kill-session -t health #kill 命名为 health 的回话tmux ls #查看已经启动session
3.1.2:tmux快捷键
tmux在会话中使用大量的快捷键来控制多个窗口、多个会话等。
1. Ctrl+b #激活控制台;此时以下按键生效
2. 系统操作
3. ? #列出所有快捷键;按q返回
4. d #脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话
5. D #选择要脱离的会话;在同时开启了多个会话时使用
6. Ctrl+z #挂起当前会话
7. r #强制重绘未脱离的会话
8. s #选择并切换会话;在同时开启了多个会话时使用
9. : #进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器
10. [ #进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出
11. ~ #列出提示信息缓存;其中包含了之前tmux返回的各种提示信息
12. 窗口操作
13. c #创建新窗口
14. & #关闭当前窗口
15. 数字键 #切换至指定窗口
16. p #切换至上一窗口
17. n #切换至下一窗口
18. l #在前后两个窗口间互相切换
19. w #通过窗口列表切换窗口
20. , #重命名当前窗口;这样便于识别
21. . #修改当前窗口编号;相当于窗口重新排序
22. f #在所有窗口中查找指定文本
23. 面板操作
24. ” #将当前面板平分为上下两块
25. % #将当前面板平分为左右两块
26. x #关闭当前面板
27. ! #将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板
28. Ctrl+方向键 #以1个单元格为单位移动边缘以调整当前面板大小
29. Alt+方向键 #以5个单元格为单位移动边缘以调整当前面板大小
30. Space #在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled
31. q #显示面板编号
32. o #在当前窗口中选择下一面板
33. 方向键 #移动光标以选择面板
34. { #向前置换当前面板
35. } #向后置换当前面板
36. Alt+o #逆时针旋转当前窗口的面板
37. Ctrl+o #顺时针旋转当前窗口的面板
3.1.3:配置文件
tmux配置文件在~/.tmux.conf和/etc/tmux.conf中,配置文件中可以修改默认绑定的快捷键
配置文件示例:
1. #此类配置可以在命令行模式中输入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是Screen的快捷键
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
#鼠标支持
setw -g mouse-resize-pane on #开启用鼠标拖动调节pane的大小(拖动位置是pane之间的分隔线)
setw -g mouse-select-pane on #开启用鼠标点击pane来激活该pane
setw -g mouse-select-window on #开启用鼠标点击来切换活动window(点击位置是状态栏的窗口名称)
setw -g mode-mouse on #开启window/pane里面的鼠标支持(也即可以用鼠标滚轮回滚显示窗口内容,此时还可以用鼠标选取文本)

四:安装报错排查
#报错 1
oops 出错
control.c: In function ‘control_callback’:
control.c:103: warning: implicit declaration of function ‘evbuffer_readln’
control.c:103: error: ‘EVBUFFER_EOL_LF’ undeclared (first use in this function)
control.c:103: error: (Each undeclared identifier is reported only once
control.c:103: error: for each function it appears in.)
make: *** [control.o] Error 1
解决:用下面的方式编译
CFLAGS="-I/tmp/libevent/include" LDFLAGS="-L/tmp/libevent/lib" ./configure --prefix=/usr/local/tmux
#报错2 t
mux: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory

解决:将库文件 copy 到 lib64
cp /tmp/libevent/lib/libevent-2.0.so.5 /usr/lib64/
五:tmux使用效果
最后附上一张我的tmux效果图:





本文出自 “康建华” 博客,请务必保留此出处http://michaelkang.blog.51cto.com/1553154/1187127
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: