神级命令行软件 Tmux
- 这是我在大学里认识到的最好用的神器,没有之一,提高效率那是没得说,主要至今未曾崩溃过,可见其可怕之处
- 额外提一点就是,由于学校原因,没机会使用到
tmux
的远程连接黑魔法,所以本篇文章记录的是单机情况下的操作,远程连接没有用过,就不好置评 - 但即便是单机情况下,
tmux
也绝对是让人惊艳的一款终端软件
说白了它就是一个分屏工具
- 我不会记录它的每个部件的具体名字,而是用什么地方的作用来描述它,还是那句老话,在其位谋其职。
迅速开始
安装,直接从仓库里安装,但是一般而言,
Linux
会自带$ sudo apt-get install tmux
完成之后,不用管其他的,直接在
Shell
里输入:$ tmux
很好,进入到了另一个异次元,其实看起来和刚才没多大区别,也就是屏幕闪了一下。
这就是最原始的
tmux
界面,接下来记录进行最有用的,也是最经常用的三个操作
Ctrl + b
- 意思就是在进入到
tmux
之后,先摁Ctrl
,再摁b
,发现进入到了上帝模式,姑且当这种模式就是能干任何事的上帝模式,进入这个模式要干嘛? - 比如创建新的界面,或者分割当前界面,退出当前界面都要靠这个模式。
- 所以记下这个简单的组合键,日后会经常用它。
后面提到上帝模式,就说明摁了 Ctrl+b
上帝模式下的屏幕分割
- 进入上帝模式后,使用
%
进行屏幕的水平分割,至于问我怎么竖直分割,我不喜欢用,所以忘了。
%
的意思就是,先摁住shift
键,再摁数字5
,不是小键盘的5
,而是英文字符上面的那个5
。 : )
分割完,要怎么在这两个窗口之间跳转呢?
- 进入上帝模式,摁左右方向键切换。每切换一次,都需要重新进入上帝模式,才能进行下一次的切换
要是不想要当前操作的这个分屏怎么办?
- 进入上帝模式, 摁
x
,就像是右上角的叉叉一样,很好记。
- 进入上帝模式, 摁
退出 tmux
- 进入上帝模式,摁
d
,其实这不是退出,这叫做断开连接,意味着你可以再恢复 不信,你试试
$ tmux a
原归正转,当你回到原始
Shell
时,使用命令tmux ls
,看看会出现什么:$ tmux ls
出现
root@kali:~/ClionProjects/httpd3# tmux ls 0: 1 windows (created Mon Mar 28 08:39:01 2016) [150x40]****
现在从这行回馈中,能得到对我们最有用的是两个信息:当前有一个 tmux窗会话,这个会话的名字是
0
tmux
可以有多个会话,一个会话可以有多个窗口, 从外部Shell
可以连接到不同会话,从内部会话可以切换不同的窗口。
得到了名字有什么用?得到了名字,你就能掌控这个会话的一切,就像夏目友人帐,跑题。
连接到这个会话(如果有多个会话,这就十分有用):
$ tmux attach -t 0
或者
$ tmux a -t 0
a
是对attach
的缩写,现在能理解上面那个d
的含义了吧,就是detach
的意思。关闭这个会话:
$ tmux kill-session -t 0
关闭这个会话,这个会话里的一切都消失了(当然你要是重启系统,自然也会消失)
配置 tmux
上面所说的三个组合,是最常用的三个组合键,记好它们,有人会问我,你的底部状态栏怎么和我的不一样,当然是配置问题
和
vim
一样,tmux
也有一个配置文件,放在家目录下的.tmux
,也就是说在shell
里输入$ cd ~
进入的目录里,找到
.tmux.conf
,如果没有就:$ touch .tmux.conf
不要怕会误删什么东西。打开它,输入如下内容:
set -g base-index 1 set -g status-utf8 on set -g status-bg black set -g status-fg white set -g status-interval 5 set -g status-left-length 90 set -g status-right-length 60 set -g status-left "#[fg=Green]#(whoami)#[fg=white]::#[fg=blue]#(hostname -s)#[fg=white]::#[fg=yellow]#(curl ipecho.net/plain;echo)#[fg=Green] <- " set -g status-justify left set -g status-right '#[fg=Cyan]#S #[fg=white]%a %d %b %R'
稍微解读一下第八行,这样你也可以自己修改配置文件了,很简单(更高级的请看官方文档,以及这个配置文件也不是我原创是属于这位先生的,当然我进行了一点小小的修改)
在
""
里面包裹着一长串的看不懂的英文,#
分割着每个属性,[]
里面装放着是下一个#
属性的显示颜色,()
包裹着的理解为可以在shell
下执行的命令,将结果显示出来,想要添加固定字符串,直接写就行,例如我在末尾添加了<-
。网上有很多介绍
tmux
的文章,但不要轻易相信他们,永远相信自己实践出来的效果,因为网页文章的质量没有人监管,很多都是错误的,让初学者摸不着头脑(也许是手误打错,也许是真的不会装懂。)我这个配置文件的效果,就在上面的图片中有显示。
想让这个配置文件生效,必须要将所有的
tmux
窗口都退出才行。比较懒的,可以去直接拿我用,在Github上
到目前为止的组合键
- 创建且打开
tmux
的会话 :$ tmux
- 让这个会话的当前窗口水平分割 :
Ctrl + b --> %
- 在分割的两个块中跳转 :
Ctrl + b --> 方向键
- 关闭某个分屏 :
Ctrl + b --> x
- 在分割的两个块中跳转 :
- 让这个会话断开连接,回到原始
Shell
:Ctrl + b --> d
- 让这个会话恢复连接,回到
tmux
:tmux a -t 0
- 从原始
Shell
把这个会话彻底关闭 :$ tmux kill-session -t 0
详细的说
创建会话的时候,如果不指定名称,那么
tmux
会帮你给这个会话取名字,也就是前面看到的数字,依次递增,如果想自己指定名称那么:$ tmux new -s session-1-name
会立即进入到你创建的这个新会话内,现在通过
detach
回到原始Shell
,并输入tmux ls
session-1-name: 1 windows (created Mon Mar 28 09:28:54 2016) [150x40]
现在再看看这条信息,应该很清晰明了,
:
前面是会话名称,后面是这个会话里当前有几个窗口当然你想要重命名这个会话也是可以的,只要进入上帝模式以后,摁
$
即可创建窗口
- 在上帝模式下,摁
c
,就能创建一个新窗口,并且立即进入到新窗口内,如何在窗口之间切换呢? - 这时候看你的底部状态栏,在
<-
后面是不是多了些什么,没错那些就是新的窗口,每个窗口前面都有序号,在上帝模式下,摁对应的序号就能切换到那个窗口去。 - 但是有没有发现一个问题,新建的窗口的名字都一样!那怎么区分啊,不急一般在创建窗口之后会立即修改他的名字
- 进入上帝模式,摁
,
就能修改了,你会发现下面的状态栏变成黄色,且可编辑,删除原来的名字换成自己想要的名字就行。
- 进入上帝模式,摁
- 在上帝模式下,摁
切换会话
- 如果我就在会话中,想要到别的会话去,拿到一定要先回到原始
Shell
在去连接吗?当然不 - 直接进入上帝模式,摁
s
,就能看见当前存在的会话,移动方向键选择即可。Ctrl + b --> s
- 如果我就在会话中,想要到别的会话去,拿到一定要先回到原始
- 切换窗口
- 如果我想显示当前会话中的所有窗口,那就进入上帝模式,再摁 :
w
Ctrl + b --> w
- 如果我想显示当前会话中的所有窗口,那就进入上帝模式,再摁 :
可以仔细观察一下,窗口的名字,是否有什么特殊的地方,文末解释
结束
- 在日常中,只需要记住以上说过的命令就可以,其他的可以查看
man
手册就行,不需要记住,最实用的,才是最好的。
话内
- 上面的操作看起来很复杂,实际上是一个很流畅的一套操作
如果是日常个人电脑上的操作,可以这样:
- 打开终端
Terminal
- 直接打开
tmux
:$ tmux
不必在意会话的名字(如果是公用的可以考虑用名字区分) 直接分屏
Ctrl + b --> %
实际上水平分屏的作用已经足够,对于屏幕小于 17寸的显示器而言,对半分已经很完美了,要是分成四份,那真是有点…- 如果对分开的两个屏幕的大小有要求,可以自行调整,方式有些特别:摁住
Ctrl+b
不撒手,左右方向键调节窗口大小。
- 如果对分开的两个屏幕的大小有要求,可以自行调整,方式有些特别:摁住
想回到原始
Shell
就Ctrl + b --> d
当然这个一般很少用,我几乎不用- 回来就直接
$ tmux a
- 打开终端
文末
- 前面提到,在一个会话里有多个窗口的时候,窗口的名字会有些许不同
- 名字末尾带
*
的是当前窗口,名字末尾带-
则是上一个窗口。 - 至于为什么没有介绍更多的快捷键,那就需要自己凭个人去记就行,对于我而言,我只记了这些操作,认为已经足够
- 而对于那些说什么 重新绑定快捷键什么的言语,我只说一句,看个人,不要想着说服别人,让别人主动去做才是对的。至少我没有感觉到不适应。
如转载请注明原处 : )
http://www.wushxin.top/2016/03/28/%E4%BD%BF%E7%94%A8tmux.html