数据库运维工程师招聘         RHCE9 2月周末班 正在授课 欢迎试学         19cOCP 2月周末班 正在授课 欢迎试听         RHCE认证培训钜惠学习         OCP认证培训组团活动特惠中!!!         MySQL认证周末班 正在招生 欢迎垂询!         

掌握这些高效技巧,让你完全脱离鼠标的终端!

更新时间: 2016-10-24 00:03

无论是程序员还是运维,终端(Terminal)都是Linux平台工作者不可避免的工作环境。如何利用一些神奇的技巧来提高终端的操作效率,无疑会帮助我们省下更多的时间来用于思考。本文将会介绍一些基于tmux终端窗口管理环境下的一些奇,来帮助大家完全脱离鼠标工作。

 

 
复制黏贴
 

 

不得不承认无论是开发还是运维,最常用的一个操作之一就是Ctrl+v和Ctrl+c。在终端下也不可避免的有这样的使用场景:

 

  • 程序运行后打印出了一个Exception,想快速的用grep在代码目录中搜索下这个exception看看是哪里引起的;

  • 程序打印出了一大段日志,想发给同事看下结果等等。

 

这些情况下想必大家的第一反应是拿起鼠标,选中以后用快捷键复制黏贴,然后手再放回键盘。稍微高效些的作法是配置终端选中后自动复制,免去了一次Ctrl+c的操作。但是手臂的运动永远比手指运动要低效,用鼠标选中复制的方法显然不够Hack。况且tmux下,想要选中单个Pane中的文字也是非常蛋疼的。因为不是原生窗体,所以鼠标点击的选中是会横向跨越窗体的(见下图粉色部分)。

 

注:当然你可以用摁住⌘+alt再用鼠标复制,坏处就是你需要手动删除换行前后的空格。 

 

 

好在tmux的一个重要特性就是支持把整个窗体视作是一个编辑器。换句话说,tmux可以把之前的所有输出都当做是一个文本文档进行选择。再换句话说tmux可以进入一种和vim的Visual模式一样操作体验的字符选择模式。如果你的tmux没有进行过个性化配置的话,需要将以下部分加到~/.tmux.conf中。

set-window-option -g mode-keys vi

bind-key -t vi-copy 'v' begin-selection

bind-key -t vi-copy 'y' copy-selection

 

配置完了vi-mode以后,我们就可以通过以下方式进行选择复制黏贴:

 

  • CTRL+b + [的方式进入选择模式。

  • 然后点击v键进入vi-mode选择模式。

  • VIM的移动命令进行选择。也可以使用CTRL+b + :list-keys -t vi-copy查看快捷键列表

  • 选择完毕后用y复制到tmux剪贴板。或者ESC退出选择

  • 最后通过CTRL+b然后]复制到光标所在位置。

 

下图就是一个选择过程的界面截图,黄色部分为选中的文字。

 

 

 
更快的快捷键 – 省去prefix

 

了解screen或者tmux的读者都知道,要进入这两者的操作模式都需要先使用prefix触发。在screen中是CTRL+a在tmux中是CTRL+b。这也就以为着我如果要新建一个窗体就要CTRL+b + c 相当于两次键盘操作才能完成。而一些操作系统原生窗体软件,例如ITerm2就只需要⌘+n一次键盘操作就能完成。相比之下tmux就显得低效很多。这时有些读者就说了,iTerm2 深度tmux集成啊,你为什么不用。博主不用的理由有以下几个:

 

  • 通过-CC触发的iTerm2内置tmux时,会额外fork出一个窗口。(即使可以配置自动隐藏,也是非常恼人的)

  • iTerm2内置tmux无法做窗体命名

  • iTerm2和tmux相关的快捷键无法自定义

 

综合之下博主决定用其他方式解决tmux快捷键繁琐的问题。此时,博主找到了一篇iTerm2 keymaps for tmux(http://tangledhelix.com/blog/2012/04/28/iterm2-keymaps-for-tmux/)豁然开朗。发现iTerm2允许把快捷键映射成Hex Code传输给窗体。而tmux的那些快捷键无非就是一串Hex Code的结合。通过查阅 ASCII和键盘对应表 我们发现CTRL b对应的Hex Code是0x02,之后的配置就显得非常简单了。下面是博主的一些快捷键配置清单和截图:

 

 

由于快捷键较多,且大家的tmux配置都不一样这里就不一一列举。读者可以通过查阅ascii十六进制转换表自行配置,最终的配置截图如下:

 

 

 
其他高效Tips
 

 

除了纯键盘操作和更精简的快捷键之外,tmux还有很多黑魔法能够提升日常操作的工作效率。

开班信息MORE>>

课程名称 开课时间 上课类型 状态
RHCE培训 2月 周末班 授课中...
OCP培训 2月 周末班 授课中...
OCM培训 3月 周末班 报名中...
OCP培训 3月 周末班 报名中...
RHCE培训 常年 周末班 报名中...
MySQL培训 常年 周末班 报名中...
RAC实用技术 常年 周末、脱产 报名中...
<<