为什么要用tmux

tmux是什么?tmux是linux中一种管理窗口的程序。那么问题来了:Mac自带的Iterm2很好用啊。既支持多标签,也支持窗体内部Panel的分割,为什么还要用tmux?其实,多标签和分割窗体只是tmux的部分功能。用tmux的主要原因是它提供了一个窗体组随时存储和恢复的功能。看看以下的使用场景是否适合你:

公司台式机开了一堆vim和log打印窗口下班了。到家后灵感突发,想要继续coding,登陆VPN,SSH连上台式后发现又要重新打开各种窗口,瞬间没心情了。。。FML!这个时候你就可以在你的公司台式机上装个tmux。同一组工作环境,在多处共享。
公司服务器上调试程序,开了一堆窗口。出去吃了个饭,发现SSH超时了,broken pipe。重头开始。。。FML!如果你之前使用了tmux就不会有这样的问题,attach就能找回原来打开的那些窗口。

tmux的基本概念

我们先来理解下tmux的几个元素。tmux的主要元素分为三层:

Session 一组窗口的集合,通常用来概括同一个任务。session可以有自己的名字便于任务之间的切换。
Window 单个可见窗口。Windows有自己的编号,也可以认为和ITerm2中的Tab类似。
Pane 窗格,被划分成小块的窗口,类似于Vim中 C-w +v 后的效果。
为了更好的理解,下面是三个元素在tmux中的具体展现。

CentOS中安装使用窗口管理程序tmux的方法

可以看到Session总在tmux的左下角显示,通常会为他命名。例如我正在写博客,开了很多窗口那么我就会把这组窗口命名为blog方便之后的重连和切换。而Window也会在最下方以一种Tab的形式展现。每个window都有自己的需要,也会以当前活动进程的名字命名。而Pane就比较好理解,即把单个窗口分割成若干个小块后的元素。

CentOS下安装

首先我是用yum install tmux尝试安装的。估计没有源,没有找到tmux。所以习惯性直接找源代码安装。
但是其中有依赖,需要先安装libevent。

复制代码代码如下:
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar xzvf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure && make
make install

然后再下载源码安装tmux

复制代码代码如下:
git clone git://git.code.sf.net/p/tmux/tmux-code tmux
cd tmux
sh autogen.sh
./configure && make
make install

过程中遇到了两个报错,解决都比较简单,当然是查阅资料后。

 
问题1:

期间我遇到了执行autogen.sh 报错,原因是我没有安装automake。这个直接yum install automake就简单解决了。

 
问题2:

执行的时候遇到

libevent-2.0.so.5: cannot open shared object file: No such file or directory
的报错,解决办法也比较简单,既然找不到,那就换个找得到的地方呗。

复制代码代码如下:
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5 # 32位系统
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5 # 64位系统

使用和快捷键

直接在命令行输入tmux即可进入tmux的模式。

tmux主要有windows窗体操作和Pane操作,个人觉得windows对于我来说,意义不大(并不是说windows模式没适用场景),所以这里主要讲下Pane的相关操作。

 
快捷键

tmux的快捷键都要先按C-b(Ctrl-b)。然后再按下面表格内容,才能达到相应的效果。

 
session和其他相关快捷键

快捷键 功能 C-z 关闭tmux. : 进入tmux命令行模式. ? 列出所有快捷键. t 显示时间. d 退出当前tmux客户端,tmux后台运行. $ 重命名当前session. s 切换session 显示所有session并切换到某一个session. ( 切换session 切换到上一个session. ) 切换session 切换到下一个session. L 切换session 到前一个活跃的session.

window相关快捷键

快捷键 功能 c 新增一个window. & 退出当前window. , 重命名当前window. l 跳转到上一个所在window. i 显示当前window的信息. w 切换window 显示所有window并切换window. 0 to 9 切换window 到相应编号的window. p 切换window 上一个window. n 切换window 下一个window. ’ 切换window 到输入编号的window. f 切换window 到搜索到的window. Space 改变当前window下的pane布局.
pane相关快捷键
快捷键 功能 ! 从window移除当前pane. " 将当前pane变成上下两个pane. % 将当前pane变成左右两个pane. x 关闭当前pane. q 显示pane的索引. z 最大化或者恢复当前pane. { 跟前一个pane交换位置. } 跟后一个pane交换位置. o 切换Pane 到下一个pane. ; 切换Pane 进入到前一个操作过的pane. Up, Down Left, Right

切换Pane 使用方向键切换到相应方向的pane.

可能有些快捷键有些出入,可以的话提醒下。另外有些快捷键没有搞懂,而且快捷键比较多,个人觉得记得主要的几个切换快捷键就足够用来。比较tmux只是一个协助工具,没有必要在其上面那么用心。加粗的是个人觉得比较实用的。

tmux不中断session的模式确实很666666,每次连回去就可以快速接上上次结束的环境。而且多个pane也非常适合要开启并监控多个服务的情况。

CentOS中安装使用窗口管理程序tmux的方法

标签:
CentOS,tmux,窗口

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。