专栏首页北京马哥教育Tmux:Linux 从业者必备利器

Tmux:Linux 从业者必备利器

tmux

为什么要用tmux

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

  • 公司台式机开了一堆vim和log打印窗口下班了。到家后灵感突发,想要继续coding,登陆V**,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)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接

    SQL连接可以分为内连接、外连接、交叉连接。 数据库数据: ? ? book表 ...

    小小科
  • 19个Linux备份压缩命令

    ? 文 | 云豆 来源 | 菜鸟教程 ? 云豆贴心提醒,本文阅读时间5分钟,文末有秘密! Linux ar命令 Linux ar命令用于建立或修改备存...

    小小科
  • 9 个使用前必须再三小心的 Linux 命令

    Linux shell/terminal 命令非常强大,即使一个简单的命令就可能导致文件夹、文件或者路径文件夹等被删除。 在一些情况下,Linux 甚至不会询问...

    小小科
  • 如何使用tmux终端多路复用器

    TMUX是终端多路复用器。类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在...

    吴凌云
  • 【Linux】Ubuntu的一些高效率工具

    不知道你有没有这些经历,反正我有!!直到之前一位朋友华哥和我推荐了几款工具之后,上面的情况就完美解决了。

    小白学视觉
  • 从源代码编译安装tmux

    为了使用新版tmux的特性,需要在Ubuntu 16.04上安装高版本的tmux,没有找到现成的ppa,因此搜到了一个从源代码安装的脚本,这里记录下来。

    王云峰
  • tmux | 加固shell

    直到看了Micro8大佬写的教程,我才发现,原来tmux 还可以实现后台不间断运行程序,我跟你说这个功能老牛了!

    意大利的猫
  • 解决calamari无法获取节点信息的bug

    一直在做calamari的相关的一些打包和安装的工作,都是业余弄的东西,所以并没有仔细的进行功能点的验证测试,正好ceph社区群里面有人问了个问题

    用户2772802
  • 23种设计模式之门面模式

    定义: 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行. 门面模式提供一个高层次的接口, 使得子系统更易于使用.

    烟草的香味
  • SVN-3:主从同步

    svnsync同步 主:192.168.56.20 主svn需要通过apache发布才能同步文件到备svn 在备份svn新建sadoc项目,配置与主svn相同权...

    py3study

扫码关注云+社区

领取腾讯云代金券