前天随意点开博客园,看到了一篇关于tmux的文章 Tmux - Linux从业者必备利器,特意还点进去看了。毕竟Linux对于做游戏服务端开发的我来说,太熟悉不过了。不过我就粗略地看了一眼,就关掉了。直到第二天码农周刊就推荐了这篇文章,才引起我真正的关注。tmux真的那么好用吗?所以我自己也倒腾来一遍,的确在许多场景下还是非常有用的。如:

  • 做服务器的,肯定需要关注性能的,而tmux多个pane可以很方便同时关注多项性能指标;
  • 我们的游戏服刚好有多个服务存在,而联调多个服务的时候,可以同时看到多个控制台确实很方便。

以上并不是其它方式不可以,譬如我用xshell的,同时看多个xshell可以达到相同的效果。但切换的时候还是有些不方便。 因为环境不同,原作者用Mac,而我用CentOS,有些地方存在不一样,故记载方便自己以后查阅。

 

CentOS下安装

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

  1. wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
  2. tar xzvf libevent-2.0.-stable.tar.gz
  3. cd libevent-2.0.-stable
  4. ./configure && make
  5. make install

然后再下载源码安装tmux

  1. git clone git://git.code.sf.net/p/tmux/tmux-code tmux
  2. cd tmux
  3. sh autogen.sh
  4. ./configure && make
  5. make install

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

 

问题1:

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

 

问题2:

执行的时候遇到

  1. libevent-2.0.so.: cannot open shared object file: No such file or directory

的报错,解决办法也比较简单,既然找不到,那就换个找得到的地方呗。

  1. ln -s /usr/local/lib/libevent-2.0.so. /usr/lib/libevent-2.0.so. # 32位系统
  2. ln -s /usr/local/lib/libevent-2.0.so. /usr/lib64/libevent-2.0.so. # 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也非常适合要开启并监控多个服务的情况。

 

参考资料

  1. http://cenalulu.github.io/linux/tmux/
  2. http://elroyjetson.org/dev-notes/centos/installing-tmux-on-centos-6-2
  3. http://www.nigeldunn.com/2011/12/11/libevent-2-0-so-5-cannot-open-shared-object-file-no-such-file-or-directory/

文章同步到github博客,请转载请保留原文链接:

原文地址:http://veiyn.com/2015/04/28/401-deploy-tmux/

[Linux]CentOS下安装和使用tmux的更多相关文章

  1. Linux(CentOs)下安装Phantomjs + Casperjs

    Linux(CentOs)下安装Phantomjs + Casperjs 是参照cnMiss's Blog http://ju.outofmemory.cn/entry/70691的博客进行安装的 1 ...

  2. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  3. Linux CentOS下安装Tomcat9

    本文讲解在Linux CentOS下安装Tomcat9,以及Web项目的部署发布. 环境:阿里云ECS 云服务器Linux CentOS 使用XShell客户端连接服务器,进行操作实践. 1.下载To ...

  4. Linux(CentOS)下安装git

    上个月把VPS迁到budgetVM,终于不用再受digitalOcean的气了,入手很方便,重点是支持支付宝付款——paypal的界面真是不习惯,开通速度挺快的,1G的内存够我折腾一段时间了~,额外送 ...

  5. Linux CentOS下安装、配置mysql数据库

    假设要在Linux上做j2ee开发.首先得搭建好j2ee的开发环境.包含了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有具体解说了Linux学习之CentOS(七)--Cen ...

  6. Linux(CentOS)下安装docker

    Linux(CentOS)安装Docker 查看当前内核版本 [docker@localhost ~]$ uname -r 确保yum包更新到最新 [docker@localhost ~]$ sudo ...

  7. linux/centOS 下安装 ngnix

    Nginx 是一款轻量级的 Web 服务器/反向代理服务器,比较流行,建议在 Linux 下安装运行. Nginx 需要的依赖 它们包括:gcc,openssl,zlib,pcre(可通过rpm -q ...

  8. Linux(centos)下安装JDK

    安装 JDK是运行java程序必不可少的环境,服务器上跑程序也不例外.首先在安装之前,要知道Linux下安装软件有两种,一种是使用yum等命令直接下载,一种是使用上传下载工具,上传至Linux下使用, ...

  9. Linux/CentOS下安装MySql RPM Bundle

    一.下载对应的版本的MySql安装文件 1.下载路径 https://dev.mysql.com/downloads/mysql/ 2.选择对应的Linux版本和x86/x64位的安装文件 查看Lin ...

随机推荐

  1. 黄聪:Access-Control-Allow-Origin,JS跨域解决办法

    .htaccess添加下面代码: <IfModule mod_headers.c> Header add Access-Control-Allow-Origin "*" ...

  2. java语言实现堆排序

    package secondChapter; import java.util.Random; public class HeapSort { private static int AHeapSize ...

  3. BeanFactory 和ApplicationContext(Bean工厂和应用上下文)

    Bean工厂(BeanFactory接口),提供了基础的依赖注入支持. 应用上下文(ApplicationContext接口),建立在Bean工厂基础之上,提供了系统架构服务. Application ...

  4. CPS冥想 - 2 手撸控制流

    原博客链接:http://blogs.msdn.com/b/ericlippert/archive/2010/10/22/continuation-passing-style-revisited-pa ...

  5. Python类属性,实例属性

    1.Python类数据属性:定义在类里面但在函数外面的变量,它们都是静态的. #一段很简单的代码,但反应了很多 >>> class A(): a=1 #一个类里面有个属性a > ...

  6. HTML音乐播放——切歌

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. 用wireshark抓包分析TCP三次握手、四次挥手以及TCP实现可靠传输的机制

    关于TCP三次握手和四次挥手大家都在<计算机网络>课程里学过,还记得当时高超老师耐心地讲解.大学里我遇到的最好的老师大概就是这位了,虽然他只给我讲过<java程序设计>和< ...

  8. 关于隐藏input输入内容问题

    如果想通过获取焦点输入改变内容,type不能是hidden的 <input type="hidden" id="test"> // 这种是不行的,只 ...

  9. win7出现无法连接到代理服务器的错误,不能上网的问题的解决

    今天晚上突然停电,等我打开电脑发现不然上网,用google浏览器出现这个错误: 用IE诊断错误如下: 说是不能连到代理服务器,但是我没有连接到代理服务器啊,但是我的QQ能登,就是不能用浏览器上网,经过 ...

  10. [原创] ubuntu下安装scrapy报错 error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    Ubuntu14.04在virtualenv下安装scrapy报错,Failed building wheel for cffi,lxml,cryptography 等. error: command ...