神级命令行软件 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 0a是对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 窗口都 退出 才行。
到目前为止的组合键
- 创建且打开
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 lssession-1-name: 1 windows (created Mon Mar 28 09:28:54 2016) [150x40]现在再看看这条信息,应该很清晰明了,
:前面是会话名称,后面是这个会话里当前有几个 窗口当然你想要重命名这个会话也是可以的,只要进入上帝模式以后,摁
$即可 -
创建窗口
- 在上帝模式下,摁
c,就能创建一个新窗口,并且立即进入到新窗口内,如何在窗口之间切换呢? - 这时候看你的底部状态栏,在
<-后面是不是多了些什么,没错那些就是新的窗口,每个窗口前面都有序号,在上帝模式下,摁对应的序号就能切换到那个窗口去。 - 但是有没有发现一个问题,新建的窗口的名字都一样!那怎么区分啊,不急一般在创建窗口之后会立即修改他的名字
- 进入上帝模式,摁
,就能修改了,你会发现下面的状态栏变成黄色,且可编辑,删除原来的名字换成自己想要的名字就行。
- 进入上帝模式,摁
- 在上帝模式下,摁
-
切换会话
- 如果我就在会话中,想要到别的会话去,拿到一定要先回到原始
Shell在去连接吗?当然不 - 直接进入上帝模式,摁
s,就能看见当前存在的会话,移动方向键选择即可。Ctrl + b --> s
- 如果我就在会话中,想要到别的会话去,拿到一定要先回到原始

- 切换窗口
- 如果我想显示当前会话中的所有窗口,那就进入上帝模式,再摁 :
wCtrl + 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
2353

被折叠的 条评论
为什么被折叠?



