Tmux:Linux 从业者必备利器

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 .

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2015-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张戈的专栏

WordPress显示访客UA信息:Show UserAgent纯代码轻度汉化版

前几天在修复留言日期显示错误的问题时,突然觉得可以在这个位置集成一下访客信息,因为见到过不少博客的留言板都有了类似的功能。经过搜索、测试并筛选,最终选定了 Sh...

31550
来自专栏顶级程序员

高效 MacBook 工作环境配置

工欲善其事,必先利其器,工具永远都是用来解决问题的,没必要为了工具而工具,一切工具都是为了能快速准确的完成工作和学习任务而服务。 本文记录 MacBook 整...

77270
来自专栏Python小屋

使用Python为PDF文件批量添加水印的方法及进一步思考

想用Python把WORD文件转成PDF文件并加上水印。网上搜了一下资料,没发现有现成的解决方案。于是决定自己写一个Python程序。思路是分两步:第一步,将W...

18430
来自专栏Danny的专栏

html页面导出为pdf(jsPDF、iText、wkhtmltopdf)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1.8K10
来自专栏Java学习网

高效程序员的MacBook工作环境配置

高效程序员的MacBook工作环境配置 本文记录整个配置过程,供新入手 MacBook 和觉得 MacBook 比较难用的同学参考。 1. 硬件提升 笔记本电脑...

3.1K90
来自专栏python爬虫日记

python2.7下同步华为云照片的爬虫程序实现

随着华为手机的销量加大,华为云的捆绑服务使用量也越来越广泛,华为云支持自动同步照片、通讯录、记事本等,用着确实也挺方便的,云服务带来方便的同时,也带来了数据管理...

22640
来自专栏软件开发

CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化

一、浏览器兼容 1.1、概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题。不同浏览器其内核亦不尽相同,相同内核的版本不同...

30090
来自专栏Android开发指南

安卓模拟器

50490
来自专栏葡萄城控件技术团队

Wijmo 更优美的jQuery UI部件集:通过jsFiddle测试Wijmo Gauges

Wijmo 的巨大优势之一就是,它们是非常流行的jQuery UI部件。这将意味着它们的基础类库具有很多支持者。具有众多的支持者同时也意味着更多好用的工具。这些...

22580
来自专栏不止是前端

Node:使用Puppeteer完成一次复杂的爬虫

1.2K90

扫码关注云+社区

领取腾讯云代金券