Tmux - Linux从业者必备利器
本文详细介绍tmux的概念和搭建过程
本博客已经迁移至:
为了更好的体验,请通过此链接阅读:
http://cenalulu.github.io/linux/tmux/
文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部
作者:卢钧轶(cenalulu)
本文原文地址:http://cenalulu.github.io/linux/tmux/
tmux
为什么要用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中的具体展现。

可以看到Session总在tmux的左下角显示,通常会为他命名。例如我正在写博客,开了很多窗口那么我就会把这组窗口命名为blog方便之后的重连和切换。而Window也会在最下方以一种Tab的形式展现。每个window都有自己的需要,也会以当前活动进程的名字命名。而Pane就比较好理解,即把单个窗口分割成若干个小块后的元素。
安装
本文以Mac环境为例。Linux的方法类似Centos系列的可以用yum install tmux安装。
brew install tmux
安装完直接执行tmux可能会有以下报错,按照下面的步骤执行命令即可
$junyilu> tmux
dyld: Library not loaded: /usr/local/lib/libevent-2.0.5.dylib
Referenced from: /usr/local/Cellar/tmux/1.9a/bin/tmux
Reason: image not found
Trace/BPT trap: 5
$junyilu> brew link libevent
Linking /usr/local/Cellar/libevent/2.0.22...
Error: Could not symlink lib/pkgconfig/libevent.pc
/usr/local/lib/pkgconfig is not writable.
$junyilu> sudo chown junyilu /usr/local/lib/pkgconfig
$junyilu> brew link libevent
Linking /usr/local/Cellar/libevent/2.0.22... 25 symlinks created
tmux的基本操作
Prefix-Command前置操作:所有下面介绍的快捷键,都必须以前置操作开始。tmux默认的前置操作是CTRL+b。例如,我们想要新建一个窗体,就需要先在键盘上摁下CTRL+b,松开后再摁下n键。
下面所有的prefix均代表CTRL+b
Session相关操作
| 操作 | 快捷键 | 
|---|---|
| 查看/切换session | prefix s | 
| 离开Session | prefix d | 
| 重命名当前Session | prefix $ | 
Window相关操作
| 操作 | 快捷键 | 
|---|---|
| 新建窗口 | prefix c | 
| 切换到上一个活动的窗口 | prefix space | 
| 关闭一个窗口 | prefix & | 
| 使用窗口号切换 | prefix 窗口号 | 
Pane相关操作
| 操作 | 快捷键 | 
|---|---|
| 切换到下一个窗格 | prefix o | 
| 查看所有窗格的编号 | prefix q | 
| 垂直拆分出一个新窗格 | prefix " | 
| 水平拆分出一个新窗格 | prefix % | 
| 暂时把一个窗体放到最大 | prefix z | 
tmux的一些个性化定制
默认的tmux风格比较朴素甚至有些丑陋。如果希望做一些美化和个性化配置的话,建议使用gpakosz的tmux配置。它的本质是一个tmux配置文件,实现了以下功能:
- 基于powerline的美化
 - 显示笔记本电池电量
 - 和Mac互通的剪切板
 - 和vim更相近的快捷键
 
安装方式也很简单如下 (注意:如果想使用powerline美化需要先安装powerline,具体方法见之前的博文)
$ cd
$ rm -rf .tmux
$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local .
安装完以后就能获得以下效果了:

Tmux - Linux从业者必备利器的更多相关文章
- Linux 装机必备工具
		
linux 装机必备工具:安装这些基本能满足日常需求. #!/usr/bin/env sh echo "Env" # vim # tmux # ssh ...
 - tmux 终端分屏利器使用
		
介绍 Tmux 是一个工具,用于在一个终端窗口中运行多个终端会话. 不仅如此,你还可以通过 Tmux 使终端会话运行于后台或是按需接入.断开会话,这个功能非常实用. 很好的工具,记录一下,以后要常用. ...
 - (转)Terraform,自动化配置与编排必备利器
		
本文来自作者 QingCloud实践课堂 在 GitChat 上分享 「Terraform,自动化配置与编排必备利器」 Terraform - Infrastructure as Code 什么是 T ...
 - [转]Linux后台进程管理利器:supervisor
		
FROM : http://www.liaoxuefeng.com/article/0013738926914703df5e93589a14c19807f0e285194fe84000 Linux后台 ...
 - Linux系统管理员必备的监控工具(88款)
		
随着互联网行业的不断发展,各种监控工具多得不可胜数.这里列出网上最全的监控工具.让你可以拥有超过80种方式来管理你的机器.在本文中,我们主要包括以下方面: 命令行工具 网络相关内容 系统相关的监控工具 ...
 - Fiddler无所不能——之测试开发攻城狮必备利器
		
Fiddler无所不能——之测试开发攻城狮必备利器 1.模拟真实网络环境4g网.3g网络.2g网络.弱网.请求超时 开启弱网Rules——Performance——勾选Simulate Modem S ...
 - Linux系统管理员必备参考资料下载汇总
		
Linux系统管理员必备: Linux系统管理工具包系列汇总 Linux系统管理员必看 VanDyke SecureCRT 6.1.3 附特别文件 鸟哥的Linux私房菜 基础学习篇 (第二版) 高清 ...
 - linux文本分析利器awk
		
转 快速理解linux文本分析利器awk 原文链接 杜亦舒 性能与架构 awk是什么 如果工作中需要操作linux比较多,那么awk是非常值得学习的 awk是一个极其强大的文本分析工具,把文件逐行的读 ...
 - 织梦dedecms标签调用集合,绝对是仿站必备利器
		
今天分享下整理了织梦dedecms标签调用集合,绝对是仿站必备利器啊,觉得有用就转走吧!温馨小提示:CTRL+F 搜索你需要的标签名,就可以方便找到:织梦dedecms标签调用集合-首页标签:网站导航 ...
 
随机推荐
- Core Audio(三)
			
音频终端设备(Audio Endpoint Devices) endpoint device指的是应用程序的数据通道上起始或终止的硬件设备,如扬声器,耳机,话筒等:沿着数据通道可能穿越一定数目的硬件和 ...
 - linux服务器分析优化
			
转:http://jiekeyang.blog.51cto.com/11144634/1774473 一.系统性能分析 1.系统的性能是指操作系统完成任务的有效性.稳定性和响应速度.操作系统完成任务与 ...
 - js继承理解(有引用)
			
具体栗子:http://www.cnblogs.com/ayqy/p/4471638.html(地下为自己理解总结,可能晦涩,链接详细) 1.父类实例赋予子类原型. 2.利用子类函数引用 父类.cal ...
 - 定时自动关闭messagebox
			
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
 - Eclipse断点调试
			
转自:http://blog.csdn.net/maritimesun/article/details/7815903 作为开发人员,掌握开发环境下的调试技巧十分有必要.去年就想把关于Eclipse断 ...
 - 《利用Python进行数据分析》第6章学习笔记
			
数据加载.存储与文件格式 读写文本格式的数据 逐块读取文本文件 read_xsv参数nrows=x 要逐块读取文件,需要设置chunksize(行数),返回一个TextParser对象. 还有一个ge ...
 - [ASE][Daily Scrum]11.28
			
昨天基本上已经完成了sprint2的task, 现在剩下一些bug还需要来修正, 然后我正式加入码代码的大军啦~ Shilin Liu 显示聊天框 Zhao Li 搭建聊天服务器 Yimin ...
 - Linux3:more、which、find、chmod、tar、diff、grep、ps、netstat、uname
			
more 类似cat,不过more不是将整个文件内容从上到下显示在屏幕上的,而是以一页一页的显示方便使用者逐页阅读.more最基本的指令就是space即往下翻一页,b即往回翻一页显示,而且还有搜索字符 ...
 - 作业七:团队项目——Alpha版本冲刺阶段-09
			
昨天进展:代码编写. 今天安排:代码编写.
 - JavaScript字符转Unicode,顺便说句:GitHub的Oh no页面很亮
			
遇到个输不出来的字符怎么办,因为输不出来的字符一般又是不常见大多数时候连名字也喊不出来的,所以想问百度谷歌大大也不大可能.如果是小白用户肯定会去把输入法软盘打开切换到其他键盘一个一个找.即使有搜狗输入 ...