tmux 按照官方给出的介绍是:终端复用工具。说白了就是可以仅仅在开启一个终端的情况下同时处理多个任务。
比如下面我设置的这样一个终端。
昨天,旭哥给我说这个东西的时候,我还是第一次听说。同时旭哥还介绍了另一个screen,这同样是个终端复用工具。
但是和tmux相比,screen是基于GPLv2开源协议的开源软件,tmux是基于FreeBSD开源协议,对于vim有更好的接口,更适用于Unix用户。
安装
对我而言,因为换了一台MacPro,所以使用brew进行安装就很方便。
brew install tmux
对于Linux用户而言,有包管理工具的话自然也是很方便的,但是对于源码安装这个方式就必须多敲几个命令了。
详细的步骤可以参考下面的这个链接。
http://www.jianshu.com/p/f7f24b4b2625
用法
网上对tmux有很多详细介绍的帖子,我个人觉得没有必要重复的造*,就选取了最接近tmux官方文档的翻译版本。有兴趣的话可以参考下面文章的链接。
http://wdxtub.com/2016/03/30/tmux-guide/
重点
下面对我个人认为比较有迷惑性的知识点进行一下剖析。
一、<prefix>
前缀键
好比是vim的esc键,在各种状态之间进行切换必不可少的要使用到它,对于tmux也是这样,默认是ctrl+b,也就是说,我们在进行快捷键操作的时候要先按下ctrl+b,然后再按下相对应的功能键。
比如我想在终端看下时间可以这么干!
第一步:ctrl+b
第二步:按下键盘上的t键
实现的效果如下:
对于其他的快捷键可以参考第二部分的内容。
二、window和pane的区分
显而易见,window是一个完整的终端界面,而pane则是附着于window的更小的单元。在第二部分已经介绍过了相关的操作步骤。我们可以开启多个会话(session),然后针对每一个session(其实就是一个window)我们可以分割出多个的pane,然后在不同的pane进行命令的执行。
下面详细介绍一下整体的使用流程。
tmux new -s first
就进入了session名为first的一个会话。
tmux split-window # 横向分割window
tmux split-window -h # 纵向分割window
对pane进行左右(上下)互换:
tmux swap-pane -[DULR]
实现的效果如下:
暂时退出tmux:
第一步:ctrl+b
第二步:ctrl+z
然后如果想再次进入到这个session中的话,执行下面的命令。
tmux attach-session -t session_name
这样就又能恢复到之前的那个窗口工作的环境了。
最后工作全部做完了不需要tmux了,就可以执行:
tmux kill-server
来退出所有的tmux会话环境了。
这两天才发现,组内各位大哥都是ssh到服务器上用vim直接开发的,真的是太厉害了。各种炫酷的界面,真的是让我大开眼界,以后要好好向他们学习了。