您的位置:首页 > 其它

神器 Tmux 的使用技巧

2016-12-05 22:10 183 查看


神级命令行软件 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
 窗口都 退出 才行。


到目前为止的组合键

创建且打开 
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: