1. 程式人生 > >安利一個神器:Tmux

安利一個神器:Tmux

應用 info roo 之前 定義 介紹 特定 white 微軟

對於程序員來說,一個好用且高效的軟件工具就如同加持了神技的遊戲角色。下面就給大家介紹一個神器 Tmux 以及個人的使用總結。

一、我所認識的 Tmux

在工作中,我把 tmux 當作終端會話管理器來使用,效果是:當前 shell 關閉後,只要不重啟服務器,在 Tmux 會話裏運行的指令就不會退出,對於運維及研發來講,此工具掌握後,有助於提高工作效率!而且,逼格也不低哦。

二、Tmux會話

一個 Tmux 會話中可以包含多個窗口。會話功能非常簡單易用,例如可以為一個特定的項目創建一個專用的 Tmux 會話。若要創建一個新的會話,只需要在終端運行如下的命令:

tmux new -s <name-of-my-session>

假設我還需要開發另一個項目,於是我就會為此再新建一個會話。雖然進入了新的會話,但是原來的會話並沒有消失。所以我可以在稍後回到之前的會話繼續工作。若要創建一個新的會話,只需要按下 Ctrl-b : ,然後輸入如下的命令:

new -s <name-of-my-new-session>

三、Tumx切換

若要獲取現有會話的列表,可以按下 Ctrl-b s。下圖所示的就是會話的列表

技術分享圖片

列表中的每個會話都有一個 ID,該 ID 是從 0 開始的。按下對應的 ID 就可以進入會話。如果你已經創建了一個或多個會話,但是還沒有運行 Tmux,那麽可以輸入如下命令以接入已開啟的會話。

tmux attach

tmux下無法滾屏很煩人。
一招即可解決: CTRL + B 再按 [,這時就可以用光標鍵來操作翻頁滾屏
如果需要兼容vim的操作方式,那麽在~/.tmux.conf加上一行:

setw -g mode-keys vi

四、進階神器“Tmuxinator”

Tmuxinator 是一個 Ruby 的 gem 包,可用於創建 Tmux 的會話。它的工作方式是先在配置文件中定義會話中的細節,然後用 1 條命令創建出這些會話。下面就讓我們看看如何安裝 Tmuxinator 以及如何添加配置來為指定項目開啟一個會話。可以通過運行如下命令安裝 Tmuxinator 的 gem 包。

$ yum install ruby -y
$ gem install tmuxinator

下面就讓我們為上述的應用程序(有 3 個窗口,分別是“PythonServer”, “PythonShell” 和 “Mysql”)來創建一個配置文件吧。下面這條命令的作用是為這個項目創建並打開一個配置文件。

$ tmuxinator new project_a

按下回車鍵後,就會自動打開文件 ~/.tmuxinator/project_a.yml。為了實現項目 A 所需的配置,你需要把 project_a.yml 的內容更新為:

cat /root/.tmuxinator/project_a.yml

name: project_a
root: ~/

windows:
  - PythonServer: python /opt/project/cmdb/manage.py runserver 0.0.0.0:8000
  - PythonShell: python /opt/project/cmdb/manage.py shell
  - Mysql: mysql -uroot -p123123

一旦將上面的配置添加到了項目 A 的 Yaml 文件中,只需要運行下面這條命令就可以啟動 Tmux 的會話了。

$ tmuxinator start project_a

當然如果願意的話,你也可以使用 Tmuxinator 命令的別名:

alias mux=tmuxinator
mux start project_a

大功告成了。現在,每當想進入項目 A 的編碼工作時,就只需要運行 Tmuxinator 命令。

五、最後

C-b c 創建一個新的窗口

C-b n 切換到下一個窗口

C-b p 切換到上一個窗口

C-b l 最後一個窗口,和上一個窗口的概念不一樣喲,誰試誰知道

C-b w 通過上下鍵選擇當前窗口中打開的會話

C-b 數字 直接跳到你按的數字所在的窗口

C-b d 臨時斷開會話 斷開以後,還可以連上的喲:)

C-b " 分割出來一個窗口

C-b % 分割出來一個窗口

C-b o 在小窗口中切換

C-b (方向鍵)

C-b ! 關閉所有小窗口

C-b x 關閉當前光標處的小窗口

C-b t 鐘表

C-b , 重命名當前窗口;這樣便於識別

安利一個神器:Tmux