ref :https://www.jianshu.com/p/fd3bbdba9dc9


Introduction

为什么使用tmux?
因为如果我们用terminal连接remote server。发生一些不可抗力,terminal关了的话,your work is GONE!

但是tmux不一样,即使你关闭了tmux。下次重新attch的时候,你会发现之前的东西都还在。这是因为即使你关闭了tmux,它也还在服务器的后台运行。

  • prefix默认指的是ctrl键位和b键位,两个一起press,然后再按其他键位来实现不同的命令。在第4部分,我们会更改这个默认设置为ctrl+a,方便输入。在此之前默认都是ctrl+b

举个栗子:
prefix + % :水平分割pane
上面这句话里的+号和:号可以无视。:号之后的内容是我写的注释。
prefix是按下ctrl和b, 然后再按%键,这个%键就是shift+5。

2 Panes

分割pane

  • prefix + % :水平分割pane
  • prefix + " : 竖直分割pane

退出

  • exit : 退出一个pane,直接在shell里输入即可,这个比快捷键方便

放大一个pane

  • prefix + z : 把当前一个pane放大(zoom in)。比如在用ls查看output的时候,因为一个pane可能空间太小,所以把这个pane放大,你可以把注意力全放在这个pane里。回到之前的多pane状态的话只需要重复一遍命令即可(zoom out)

在pane之间switch

  • prefix + 上下左右的箭头 :这个说实话还是不方便,之后会有设置的方法来用鼠标选择pane

resize the pane

  • prefix + (ctrl)+上下左右箭头 : 与上面命令不同的是,ctrl + b按完之后,不要松开ctrl,一直按着,然后再按箭头来调整。不过因为在mac下ctrl+箭头是切换屏幕,所以还得在偏好设置->键盘->快捷键->Mission Control里把对应的快捷键取消掉。

3 Windows

创建window

  • prefix + c : 创建一个新的window。最下面会多出window的编号。有*号所在的window就是当前正在操作的window。

在不同的window间移动

  • prefix + 数字1,2,3 : 因为能看到不同window的数字编号,所以直接输入想去的window的数字编号即可

关闭window

  • prefix + & : 关闭当前window

重命名window:因为创建新的window后,下面除了数字编号不同外window名称都是一样的。所以为了知道每一个window是什么,最好重命名一下。

  • prefix + , (逗号):更改window名称。但是这里遇到一个问题。更名后,我随便使用ls或cd命令后,window名称会随着目录的不同而变化。google后发现这个是zsh下oh-my-zsh的特性。于是打开~/.zshrc, 讲DISABLE_AUTO_TITLE="true"这一行反注释掉。source ~/.zshrc后,测试更改的名称,发现一切正常。

4 Configuration

如果没有配置文件的话先创建: touch ~/.tmux.conf
视频中的文件配置

  1. # Send prefix
  2. set-option -g prefix C-a
  3. unbind-key C-a
  4. bind-key C-a send-prefix
  5. # Use Alt-arrow keys to switch panes
  6. bind -n M-Left select-pane -L
  7. bind -n M-Right select-pane -R
  8. bind -n M-Up select-pane -U
  9. bind -n M-Down select-pane -D
  10. # Shift arrow to switch windows
  11. bind -n S-Left previous-window
  12. bind -n S-Right next-window
  13. # Mouse mode
  14. set -g mode-mouse on
  15. set -g mouse-resize-pane on
  16. set -g mouse-select-pane on
  17. set -g mouse-select-window on
  18. # Set easier window split keys
  19. bind-key v split-window -h
  20. bind-key h split-window -v
  21. # Easy config reload
  22. bind-key r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded"

首先,在更改了.tmux.conf后,在tmux里的快捷键没有变化。查找后发现是tmux只有在新建session的时候,才会去找tmux.conf文件。所以说,我之前创建的那些session都没有参考tmux.conf. 所以我就用tmux lstmux kill-session -a只保留当前session。再删除当前session tmux kill-session -t py27。这下删除了所有创建好的session。

然后再次用tmux new -s py27创建一个新的名为py27的session。有提示了,但是错误提示显示没有mode-mouse命令。google之发现在2.1之后的tmux版本里,已经废除了这个命令。想要开启mouse mode的话,只需要一个句命令即可set -g mouse on

更新后如下

  1. # Send prefix
  2. set-option -g prefix C-a
  3. unbind-key C-a
  4. bind-key C-a send-prefix
  5. # Use Alt-arrow keys to switch panes
  6. bind -n M-Left select-pane -L
  7. bind -n M-Right select-pane -R
  8. bind -n M-Up select-pane -U
  9. bind -n M-Down select-pane -D
  10. # Shift arrow to switch windows
  11. bind -n S-Left previous-window
  12. bind -n S-Right next-window
  13. # Mouse mode
  14. set -g mouse on
  15. # Set easier window split keys
  16. bind-key v split-window -h
  17. bind-key h split-window -v
  18. # Easy config reload
  19. bind-key r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded"

Send prefix
把prefix的ctrl+b变为了ctrl+a,因为这样按起来方便些。基本上用tmux的都改了这个。

Use Alt-arrow keys to switch panes
不用按prefix,直接用alt+箭头在pane之间switch。实际用过之后才发现真是太方便了!

Shift arrow to switch windows
不用按prefix,直接用shift+箭头在window之间switch。太方便了!

Mouse mode
开启鼠标模式。用鼠标就能切换window,pane,还能调整pane的大小,方便!

Set easier window split keys
这一部分是用来更方便切分pane的。prefix + v 代表竖着切,prefix + h 代表横着切。比起默认的切割方法不仅直观而且方便。

Easy config reload
下一次如果修改了.tmux.conf的设置的话,不用关掉tmux。直接用prefix+r,就能重新加载设置。

5 Session

查看所有的session(在terminal输入)

  • tmux ls : 这个命令是在terminal里输入的。当前正常运作中的tmux server会显示(attached)。没有的话就是已关闭,tmux server在后台运行。

更名session(tmux状态下输入)

  • prefix + $ : 更名后好让自己知道每一个session是用来做什么的。通常一个session对应一个project

创建session的时候直接命名(在terminal输入)

  • tmux new -s py35 : 新建一个名为py35的session

断开一个session(detached) (tmux状态下输入)

  • prefix + d :退出session。在只有一个window的状态下,直接输入exit也能退出

重新连接某一个session wich name(在terminal输入)

  • tmux a -t py35 : 重新连接py35 session。这里的a是attach的意思

偷懒连接上一个session(在terminal输入)

  • tmux a : 如果只有一个session的话,这个是最快的连接方法

删除session(在terminal输入)

  • tmux kill-session -a -t py35 : 删除除了py35以外的所有session

linux下的终端利器 tmux 安装以及使用的更多相关文章

  1. linux下的终端利器----tmux

    转:tmux 是指通过一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件.类似GNU Screen,但来自于OpenBSD,采用BSD授权.使用它最直观的好处就是,通过一个终端登录远 ...

  2. linux下远程管理利器-tmux

    linux下远程管理利器-tmux 1.控制键       控制键就是tmux的主键.当你在tmux环境下按下这个键的时候,tmux就会把你后面输入的指令,解析成它内置的功能.tmux默认的控制键是 ...

  3. Linux下非root用户如何安装软件

    Linux下非root用户如何安装软件 从windows转移到Linux的用户最开始总会有各种不适,因为这种不适最终放弃linux的不在少数.对于这类人只能说可惜,还没有领略到linux的美好就过早放 ...

  4. linux下各安装包的安装方法

    <转>linux下各安装包的安装方法   一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root ...

  5. linux下搭建lamp环境以及安装swoole扩展

    linux下搭建lamp环境以及安装swoole扩展   一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源  我安装的环境是:apache2.2.15+mysql5 ...

  6. 调皮捣蛋的Linux下有趣终端的合集

    *本文作者:国光,转载自 FreeBuf.COM,原文地址:https://www.freebuf.com/news/144050.html 前言 刚开始接触Linux的我们,肯定认为Linux系统就 ...

  7. 关于Linux下Texlive无法找到已安装字体的问题与解决

    关于Linux下Texlive无法找到已安装字体的问题与解决 当我在Ubuntu系统下使用Latex时,在编译渲染时报出了Font "xxx" does not contain r ...

  8. Linux下通过源码编译安装程序

    本文简单的记录了下,在linux下如何通过源码安装程序,以及相关的知识.(大神勿喷^_^) 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件: ...

  9. linux下Redis与phpredis扩展安装

    ++++++++++++++++++++++++++++++++++++++++++++++linux下Redis与phpredis扩展安装++++++++++++++++++++++++++++++ ...

随机推荐

  1. python异常链

    习惯使用java开发,在java开发里有异常链概念和重新抛出异常,在python是怎么实现的呢? 1.异常链 1.1.java实现 public static void test1() throws ...

  2. 5.4.2 mapFile读写和索引

    5.4.2         mapFile (1)定义 MapFile即为排序后的SequeneceFile,将sequenceFile文件按照键值进行排序,并且提供索引实现快速检索. (2)索引 索 ...

  3. MYSQL数据库基础概念

    数据库的发展史 1.萌芽阶段:文件系统 使用磁盘文件来存储数据2.初级阶段:第一代数据库 出现了网状模型.层次模型的数据库3.中级阶段:第二代数据库 关系型数据库和结构化查询语言4.高级阶段:新一代数 ...

  4. DSSM算法-计算文本相似度

    转载请注明出处: http://blog.csdn.net/u013074302/article/details/76422551 导语 在NLP领域,语义相似度的计算一直是个难题:搜索场景下quer ...

  5. java课后实验性问题6

    1.继承条件下的构造方法调用. class Grandparent { public Grandparent(){ System.out.println("GrandParent Creat ...

  6. Sublime Text 全局搜索Ctrl+Shift+F快捷键不能用

      Sublime Text 全局搜索Ctrl+Shift+F快捷键不能用   和微软输入法的简繁体切换冲突了,关闭输入法的简繁体切换快捷键就好了! 文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢 ...

  7. Gokit微服务-服务链路追踪

    https://mp.weixin.qq.com/s/gjKOy4SDpsjUXDC3Q1YdFw Gokit微服务-服务链路追踪 原创: 兮一昂吧 兮一昂吧 2月28日

  8. Mysql5.6.45配置安装

    ##1.1简介 因为之前电脑比较卡,自己重装了个系统,麻烦的就是装一些编程软件,但是自己吃饭的家伙也要会装啊,为了以后更方便的安装,自己总结一下步骤,进入正题 ##1.2资源下载 官方网站链接:    ...

  9. 3GPP 5G UPF

    目录 文章目录 目录 UPF 参考文档 UPF UPF(User Plane Function,用户面功能),是 3GPP 定义的 5G Core(核心网)基础设施系统架构的基本组成部分. UPF 从 ...

  10. java 枚举和数值的相互转换

    枚举简介 enum 的全称为 enumeration, 是 JDK 1.5  中引入的新特性,存放在 java.lang 包中 在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而 ...