Linux下使用Tmux提高終端環境下的效率

簡介

鼠標的發明是了不起的創新,它讓電腦更加接近普通人。但從程序員和系統管理員的角度,使用電腦工作時,手一旦離開鍵盤,就會有些分心。如果你的工作需要在終端環境下打開很多標籤,然後在多個終端之間切換窗口,這會讓你慢下來。尤其是當服務器出問題的時候,不能浪費任何時間!

這裏寫圖片描述

Tmux是我日常工作必要的工具之一。我可以藉助Tmux構建出複雜的開發環境,同時還可以在一旁進行SSH遠程連接。我可以開出很多窗口,將其拆分成很多面板,接管和分離會話等等。掌握了Tmux之後,你就可以扔掉鼠標了(只是個玩笑:D)。

Tmux(”Terminal Multiplexer”的簡稱)可以讓我們在單個屏幕的靈活佈局下開出很多終端,我們就可以協作地使用它們。舉個例子,在一個面板中,我們用Vim修改一些配置文件,在另一個面板,我們使用irssi聊天,而在其餘的面板,可以跟蹤一些日誌。然後,我們還可以打開新的窗口來升級系統,再開一個新窗口來進行服務器的ssh連接。在這些窗口面板間瀏覽切換和創建它們一樣簡單。它的高度可配置和可定製的,讓其成爲你心中的延伸。


在Linux/OSX下安裝Tmux

你可以通過編譯軟件源或者通過系統包管理器的方式安裝,我建議使用包管理器,這樣比編譯更快更簡單。

OSX:

$ sudo brew install tmux
$ sudo port install tmux

Debian/Ubuntu:

$ sudo apt-get install tmux

RHEL/CentOS/Fedora(RHEL/CentOS 要求 EPEL repo)

$ sudo yum install tmux

Archlinux:

$ sudo pacman -S tmux

使用不同會話工作

使用Tmux的最好方式是使用會話的方式,這樣你就可以以你想要的方式,將任務和應用組織到不同的會話中。如果你想改變一個會話,會話裏面的任何工作都無須停止或者殺掉。讓我們來看看這是怎麼工作的。

讓我們開始一個叫做”session”的會話,並且運行top命令

$ tmux new -s new session
$ top

然後輸入CTRL-b d從此會話脫離,想要重新連接此會話,需輸入:

$ tmux attach-session -t session

之後你會看到top操作仍然運行在重新連接的會話上。

一些管理sessions的命令:

$ tmux list-session
$ tmux new-session <會話名>
$ tmux attach-session -t <會話名>
$ tmux rename-session -t <會話名>
$ tmux choose-session -t <會話名>
$ tmux kill-session -t <會話名>

使用不同的窗口工作

很多情況下,你需要在一個會話中運行多個命令,執行多個任務。我們可以在一個會話的多個窗口裏組織他們。在現代的GUI終端(比如 iTerm或者Konsole),一個窗口被視爲一個標籤。在會話中配置了我們默認的環境之後,我們就能夠在一個會話中創建許多我們需要的窗口。窗口就像運行在會話中的應用程序,當我們脫離當前會話的時候,它仍在持續,讓我們來看一個例子:

$ tmux new -s my_session

這裏寫圖片描述

按下CTRL-b c

這將會創建一個新的窗口,然後屏幕的光標移向它。現在你就可以在新窗口下運行你的新應用。你可以修改你當前窗口的名字。在目前的例子裏,我運行的top程序,所以top就是該窗口的名字

如果你想要重命名,只需要按下:

CTRL-b

狀態條將會改變,這時你將可以重命名當前的窗口

這裏寫圖片描述

一旦在一個會話中創建多個窗口,我們需要在這些窗口間移動的辦法。窗口像數組一樣組織在一起,從0開始用數字標記每個窗口,想要快速跳轉到其餘窗口:

CTRL-b <窗口號>

如果我們給窗口起了名字,我們可以使用下面的命令找到它們:

CTRL-b f

也可以列出所有窗口:

CTRL-b w

按照順序切換到不同的窗口:

CTRL-b n(到達下一個窗口) CTRL-b p(到達上一個窗口)

想要離開一個窗口,可以輸入 exit 或者:

CTRL-b &

關閉窗口之前,你需要確認一下。


把窗口分成許多面板

有時候你在編輯器工作的同時,需要查看日誌文件。在編輯的同時追蹤日誌真的很有幫助。Tmux可以讓我們把窗口分成許多面板。舉個例子,我們可以創建一個控制檯監測我們的服務器,同時用編輯器構造複雜的開發環境,這樣就能同時進行編譯和調試了。

讓我們創建另一個Tmux會話,讓其以面板的方式工作。首先,如果我們在某個會話中,那就從Tmux會話中脫離出來:

CTRL-b d

開始一個叫做”panes”的新會話:

$ tmux new -s panes

你可以水平或者豎直分割一個窗口,水平分割輸入:

CRTL-b “

現在你就擁有兩個面板,現在我們豎直分割:

CRTL-b %

又增加了兩個:

這裏寫圖片描述

在他們之間移動:

CTRL-b <光標鍵>


結論

我希望這篇教程能對你有作用。此外,像Tmuxinator或者Tmuxifier這樣的工具,可以簡化Tmux會話,窗口和麪板的創建及加載,你可以很容易就配置Tmux。如果你沒有使用過這些,嘗試一下吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章