转载

使用tmux

神级命令行软件 Tmux

  • 这是我在大学里认识到的 最好用 的神器, 没有之一 ,提高效率那是没得说,主要至今未曾崩溃过,可见其可怕之处
  • 额外提一点就是,由于学校原因,没机会使用到 tmux 的远程连接黑魔法,所以本篇文章记录的是单机情况下的操作,远程连接没有用过,就不好置评
  • 但即便是单机情况下, tmux 也绝对是让人惊艳的一款终端软件

说白了它就是一个分屏工具

  • 我不会记录它的每个部件的具体名字,而是用什么地方的作用来描述它,还是那句老话,在其位谋其职。

迅速开始

  • 安装,直接从仓库里安装,但是一般而言, Linux 会自带

    $ sudo apt-get install tmux 
  • 完成之后,不用管其他的,直接在 Shell 里输入:

    $ tmux 

    很好,进入到了另一个异次元,其实看起来和刚才没多大区别,也就是屏幕闪了一下。

  • 这就是最原始的 tmux 界面,接下来记录进行最有用的,也是最经常用的 三个操作

    使用tmux

Ctrl + b

  1. 意思就是在进入到 tmux 之后,先摁 Ctrl ,再摁 b ,发现进入到了 上帝模式 ,姑且当这种模式就是能干任何事的上帝模式,进入这个模式要干嘛?
  2. 比如创建新的界面,或者分割当前界面,退出当前界面都要靠这个模式。
  3. 所以记下这个简单的组合键, 日后会经常用它

后面提到上帝模式,就说明摁了 Ctrl+b

上帝模式下的屏幕分割

  • 进入上帝模式后,使用 % 进行屏幕的 水平分割 ,至于问我怎么竖直分割, 我不喜欢用 ,所以忘了。

% 的意思就是,先摁住 shift 键,再摁数字 5 ,不是小键盘的 5 ,而是英文字符上面的那个 5: )

使用tmux

  • 分割完,要怎么在这两个窗口之间跳转呢?

    • 进入 上帝模式 ,摁左右方向键切换。每切换一次,都需要 重新进入 上帝模式,才能进行下一次的切换
  • 要是不想要当前操作的这个分屏怎么办?

    • 进入 上帝模式 , 摁 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

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

详细的说

  1. 创建会话的时候,如果不指定名称,那么 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] 

    现在再看看这条信息,应该很清晰明了, : 前面是会话名称,后面是这个会话里当前有几个 窗口

    当然你想要重命名这个会话也是可以的,只要进入上帝模式以后,摁 $ 即可

  2. 创建窗口

    1. 在上帝模式下,摁 c ,就能创建一个新窗口,并且立即进入到新窗口内,如何在窗口之间切换呢?
    2. 这时候看你的底部状态栏,在 <- 后面是不是多了些什么,没错那些就是新的窗口,每个窗口前面都有序号,在上帝模式下,摁对应的序号就能切换到那个窗口去。
    3. 但是有没有发现一个问题,新建的窗口的名字都一样!那怎么区分啊,不急一般在创建窗口之后会立即修改他的名字
      1. 进入上帝模式,摁 , 就能修改了,你会发现下面的状态栏变成黄色,且可编辑,删除原来的名字换成自己想要的名字就行。
  3. 切换会话

    1. 如果我就在会话中,想要到别的会话去,拿到一定要先回到原始 Shell 在去连接吗?当然不
    2. 直接进入上帝模式,摁 s ,就能看见当前存在的会话,移动方向键选择即可。
      1. Ctrl + b --> s

使用tmux

  1. 切换窗口
    1. 如果我想显示当前会话中的所有窗口,那就进入上帝模式,再摁 : w
      1. Ctrl + b --> w

使用tmux

可以仔细观察一下, 窗口的名字 ,是否有什么特殊的地方,文末解释

结束

  • 在日常中,只需要记住以上说过的命令就可以,其他的可以查看 man 手册就行,不需要记住,最实用的,才是最好的。

话内

  • 上面的操作看起来很复杂,实际上是一个很流畅的一套操作
  • 如果是日常个人电脑上的操作,可以这样:

    • 打开终端 Terminal
    • 直接打开 tmux : $ tmux 不必在意会话的名字(如果是公用的可以考虑用名字区分)
    • 直接分屏 Ctrl + b --> % 实际上水平分屏的作用已经足够,对于屏幕小于 17寸 的显示器而言,对半分已经很完美了,要是分成四份,那真是有点…

      • 如果对分开的两个屏幕的大小有要求,可以自行调整,方式有些特别: 摁住 Ctrl+b 不撒手,左右方向键调节窗口大小。
    • 想回到原始 ShellCtrl + b --> d 当然这个一般很少用,我几乎不用

    • 回来就直接 $ tmux a

文末

  • 前面提到,在一个会话里有多个窗口的时候,窗口的名字会有些许不同
  • 名字末尾带 * 的是当前窗口,名字末尾带 - 则是上一个窗口。
  • 至于为什么没有介绍更多的快捷键,那就需要自己凭个人去记就行,对于我而言,我只记了这些操作,认为已经足够
  • 而对于那些说什么 重新绑定快捷键什么的言语,我只说一句, 看个人 ,不要想着说服别人,让别人主动去做才是对的。至少我没有感觉到不适应。

如转载请注明原处 : )

http://www.wushxin.top/2016/03/28/%E4%BD%BF%E7%94%A8tmux.html

原文  http://www.wushxin.top/2016/03/28/使用tmux.html
正文到此结束
Loading...