【tmux环境配置】在centos6.4上配置tmux
我学习tmux的动力如下:
(1)tmux大法好。原因是被同学安利过tmux。
(2)多个terminal下ssh到开发机太麻烦。还是之前实习的时候,总要开N个terminal去ssh开发机,这种东西多了总是很恼人的。
(3)运行后台进程。之前实习的时候,经常需要运行长时间的脚本(训练机器学习模型),当时用的办法是nohup。这个其实还凑合,毕竟只需要运行一次。但是接下来这一条就不行了。
(4)正连着开发机的时候,网络连接断了,这也是最恼人的。主观上网络链接断了。在公司的某天,boss:“全组去寻梅开会”, 众人:“好的,马上。” 。于是这个时候下意识就把笔记本合上了,完了, 与开发机的连接就断了。再有就是客观上网络连接断了,比如内网断了。这种情况比较恼人,重新连接麻烦一遍不说,当时写的代码还不一定保存着上。而且,这种开发环境怎么也不能nohup了吧。
(5)开发环境恢复。以前每次登陆开发机都得重新进入到编辑的文件夹下,然后再打开各种环境,看log,看其他的。。。这也是非常恼人的,最好能直接连上开发机就能保存编码现场,不用我每次再登入的时候再手动恢复一下编码现场。
上述的问题,都可以通过tmux大大改善(之前也有同事推荐过screen,但是我么有好好珍惜同事的推荐,这次干脆一步到位直接升级到tmux)。
下面记录tmux的学习记录。
(1)首先扫了下面的blog:http://foocoder.com/blog/zhong-duan-huan-jing-zhi-tmux.html/ google搜索排名第一质量肯定不用说了。
日志非常系统地介绍了tmux的一些基本概念,现在看起来确实很棒;但当时对我这个初学者来说,这个blog的缺点就是太系统了,系统到不知道从哪开始下手看了。这个日志当个手册查查还是非常棒的。
(2)再搜一个初级一些的blog:http://abyssly.com/2013/11/04/tmux_intro/。日志中的一句话吸引了我:“有了tmux,你只需要一个SSH连接,然后打开tmux,再多敲几次C-b c就好了。” 这个太棒了,这就是我想要的。但是我的理解却产生了问题,我一开始以为是在mac os上装tmux,然后在一个窗口中ssh到server中,再多敲几次Ctrl+b c就好了。于是我在mac上tmux,然后ssh到了开发机上,再键入ctrl+b c;本以为会新弹出来一个ssh到开发机好的window,但是现实确实这样的

产生了新窗口1并不是ssh到server的,还是本机的zsh的。
同理执行ctrl+b %,结果是这样的:

于是我就产生了困惑,这也不是ssh一次就可以服用了啊。
后面才知道这是自己的理解有误了,所谓的ssh一次再复用的真正含义是“在本机上ssh到远程服务器,并且在远程服务器上安装好了tmux,这个时候执行tmux才是打开多个终端”。简言之:
a. tmux必须在远程服务器端装好
b. 本地只需要ssh到远程服务器一次,ssh的复用是tmux在服务器端的后台完成的
明白了这个道理,学习tmux的道路就顺畅了许多了。
(3)在服务器端安装tmux
最好不要安装最新版的tmux,最好不要安装最新版的tmux,最好不要安装最新版的tmux。重要的事情说三遍。
一开始我在服务器上装的是tmux-2.0,结果各种库的缺失;由于之前吃过高版本的亏,于是果断放弃。
按照这篇blog : http://cenalulu.github.io/linux/tmux/ 的方法安装tmux。
blog里面提到了tmux安装的依赖包libevent,先在服务器端安装libevent依赖。
再正常安装tmux-1.6,最后成功安装了。效果如图:

OK了,到此为止,已经实现了“复用ssh,实现多个连接”。
再爽一下,如果突然断了编辑环境能恢复的效果:
a. 断线前工作状态如下:
接着直接Command+Q,强行退出iTerm,硬断开与服务器的连接。
b. 接着打开iTerm并ssh服务器:

看到上次打开的窗口还在tmux的列表中,再输入top:

看到断开前开的tmux还在。我们在执行tmux attach,效果如下:

工作环境瞬间恢复,于是又解决了“突然与开发机连接断开 & 开发环境恢复”的问题。
这两个已经是非常大的痛点了,确实有足够的理由去用tmux了。
(4)tmux的颜色配置
从(3)中可以看到,vim的颜色配置是有些问题的,并没有执行.vimrc中的配置。
这篇blog把tmux的配色问题阐述的比较完整:http://blog.theerrorlog.com/when-tmux-runs-under-8-colors-mode.html
我的解决办法是在.bashrc中增加如下两句:

具体的原因在上面的blog中已经阐述的比较细致了,不赘述。
(5)跟着视频学tmux
tmux的快捷键非常多,只看是肯定不行的,跟着视频中去练习快捷键的使用学习效率更高。
我看的视频是:https://www.youtube.com/watch?v=BHhA_ZKjyxo
以上就是接触tmux的入门过程。
tmux的用途可能远不止上面提到的那些,上面就是解决我目前的一些痛点。
有个tmux的不错的教程:http://uploads.mitechie.com/books/tmux_p1_1.pdf
上面的目标是让编程过程脱离鼠标。
【tmux环境配置】在centos6.4上配置tmux的更多相关文章
- 【vim环境配置】在centos6.4上配置vim的一些零碎记录
上一篇日志已经step by step地实录了如何在本机mac上配置vim开发环境已经各种插件. 有了一定经验之后,开始在实验室远程server上centos6.4的环境下配置vim环境. 这台机器是 ...
- centos6.5上配置apache + mysql + php4.4.9 + eaccelerator-0.9.5 + postgresql-8.3.13 备忘
1.apache + mysql 直接利用 yum 安装 yum -y install httpd httpd-devel mysql mysql-server httpd-manual mod_pe ...
- Linux 上配置 AG
SQL Server Always On Availability Group 配置步骤:配置三台 Linux 集群节点创建 Availability Group配置 Cluster Resource ...
- Linux 上配置 SQL Server Always On Availability Group
SQL Server Always On Availability Group 配置步骤:配置三台 Linux 集群节点创建 Availability Group配置 Cluster Resource ...
- [七月挑选]树莓派Raspberrypi上配置Git
title: 树莓派Raspberrypi上配置Git 树莓派Raspberrypi上配置Git. 开始 首先你得有一树莓派!!! 过程 查看自己树莓派的版本 pi@raspberrypi:~ $ u ...
- zabbix--------配置邮件报警功能---服务器上配置---------
--------配置邮件报警功能---服务器上配置--------- [www.aa.com@ ~]# yum install mailx -y [www.aa.com@ ~]# vi /etc/ma ...
- CentOS6.5上golang环境配置
CentOS6.5上golang环境配置 一.下载和解压go环境包 >>cd /usr/local/src/ >>wget -c http://golangtc.com/sta ...
- 在CentOS6上配置MHA过程全记录
在CentOS6上配置MHA过程全记录 MHA(Master High Availability)是一款开源的MariaDB or MySQL高可用程序,为MariaDB or MySQL主从复制架构 ...
- 在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境 项目运行环境 阿里云(单核CPU, 1G内存, Ubuntu 14.04 x64 带宽1Mbps), 具体购买和ssh连接阿 ...
随机推荐
- vs下如何调试Dll
1.首先需要一个exe加载你的dll 2.dll项目的属性设置 3.将dll设为启动项 4.在dll中设置断点 F5就可以调试了
- 第三章 八位数字开关板&模拟输入板&火焰传感器
这节我将带大家了解亮宁机器人基础外接硬件. 八位数字板开关 接线方法:W1~W8接23~37号数字端口,Enter接39号数字端口,vcc和gnd分别接正负. #include <LNDZ.h& ...
- UE4的蓝图都能做什么
创建关卡脚本 蓝图具有和虚幻3中Kismet一样的功能,每个关卡都由自己的蓝图,他可以: 引用和操控actors 控制使用Matinee的过场 管理关卡流,存档点以及其他关卡相关的系统 和关卡中的类蓝 ...
- pc/移动端(手机端)浏览器的直播rtmp hls(适合入门者快速上手)
一.直播概述 关于直播,大概的过程是:推流端——>源站——>客户端拉流,用媒介播放 客户端所谓的拉流就是一个播放的地址url,会有多种类型的流: 视频直播服务目前支持三种直播协议,分别是R ...
- UVA 12345 Dynamic len(set(a[LR]))
题意:询问区间唯一元素个数,单点修改. 分析: 借助Unique snowflakes, Can you answer these queries II的思想,唯一性可以借助元素上一次出现的位置来判断 ...
- 2017.9.18 HTMl学习总结----input标签的额type
2.1.3 HTML表单标签与表单设计 (1)表单的组成:文本框(text),密码框(password),多行文本框(Multiline text box). 单选按钮框(Single - rad ...
- tp5 验证是不是ajax提交
话不多说,看代码 if(request()->isAjax()){ return "是ajax提交"; }else{ return "不是ajax提交"; ...
- NestedScrollView和RecyclerView使用,并设置间距
NestedScrollView和RecyclerView使用,并设置间距: 效果图如下: 1.NestedScrollView 和RecyclerView嵌套问题(类似ScrollView 和lis ...
- MFC项目依赖 BCG框架示例
1.创建一个简单的MFC工程: 2.将BCG框架项目导入到新建的mfc解决方案中,例如将BCGCBPro\BCGCBPRO140.vcxproj添加到解决方案. 3.修改mfc项目属性,包含BCG框架 ...
- Spring Cloud 入门Eureka -Consumer服务消费(一)
这里介绍:LoadBalancerClient接口,它是一个负载均衡客户端的抽象定义,下面我们就看看如何使用Spring Cloud提供的负载均衡器客户端接口来实现服务的消费. 引用之前的文章中构建的 ...