如何使用Tmux提高終端環(huán)境下的效率
鼠標(biāo)的發(fā)明是了不起的創(chuàng)新,它讓電腦更加接近普通人。但從程序員和系統(tǒng)管理員的角度,使用電腦工作時(shí),手一旦離開鍵盤,就會(huì)有些分心。
作為一名系統(tǒng)管理員,我大量的工作都需要在終端環(huán)境下。打開很多標(biāo)簽,然后在多個(gè)終端之間切換窗口會(huì)讓我慢下來。尤其是當(dāng)我的服務(wù)器出問題的時(shí)候,我不能浪費(fèi)任何時(shí)間!

Tmux是我日常工作必要的工具之一。我可以借助Tmux構(gòu)建出復(fù)雜的開發(fā)環(huán)境,同時(shí)還可以在一旁進(jìn)行SSH遠(yuǎn)程連接。我可以開出很多窗口,將其拆分成很多面板,接管和分離會(huì)話等等。掌握了Tmux之后,你就可以扔掉鼠標(biāo)了(只是個(gè)玩笑:D)。
Tmux("Terminal Multiplexer"的簡稱)可以讓我們在單個(gè)屏幕的靈活布局下開出很多終端,我們就可以協(xié)作地使用它們。舉個(gè)例子,在一個(gè)面板中,我們用Vim修改一些配置文件,在另一個(gè)面板,我們使用irssi聊天,而在其余的面板,可以跟蹤一些日志。然后,我們還可以打開新的窗口來升級(jí)系統(tǒng),再開一個(gè)新窗口來進(jìn)行服務(wù)器的ssh連接。在這些窗口面板間瀏覽切換和創(chuàng)建它們一樣簡單。它的高度可配置和可定制的,讓其成為你心中的延伸
在Linux/OSX下安裝Tmux
你可以通過編譯軟件源或者通過系統(tǒng)包管理器的方式安裝,我建議使用包管理器,這樣比編譯更快更簡單
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
 
使用不同會(huì)話工作
使用Tmux的***方式是使用會(huì)話的方式,這樣你就可以以你想要的方式,將任務(wù)和應(yīng)用組織到不同的會(huì)話中。如果你想改變一個(gè)會(huì)話,會(huì)話里面的任何工作都無須停止或者殺掉。讓我們來看看這是怎么工作的。
讓我們開始一個(gè)叫做"session"的會(huì)話,并且運(yùn)行top命令
- $ tmux new -s new session
 - $ top
 
然后輸入CTRL-b d從此會(huì)話脫離,想要重新連接此會(huì)話,需輸入:
- $ tmux attach-session -t session
 
之后你會(huì)看到top操作仍然運(yùn)行在重新連接的會(huì)話上。
一些管理sessions的命令:
- $ tmux list-session
 - $ tmux new-session <會(huì)話名>
 - $ tmux attach-session -t <會(huì)話名>
 - $ tmux rename-session -t <會(huì)話名>
 - $ tmux choose-session -t <會(huì)話名>
 - $ tmux kill-session -t <會(huì)話名>
 
使用不同的窗口工作
很多情況下,你需要在一個(gè)會(huì)話中運(yùn)行多個(gè)命令,執(zhí)行多個(gè)任務(wù)。我們可以在一個(gè)會(huì)話的多個(gè)窗口里組織他們。在現(xiàn)代的GUI終端(比如 iTerm或者Konsole),一個(gè)窗口被視為一個(gè)標(biāo)簽。在會(huì)話中配置了我們默認(rèn)的環(huán)境之后,我們就能夠在一個(gè)會(huì)話中創(chuàng)建許多我們需要的窗口。窗口就像運(yùn)行在會(huì)話中的應(yīng)用程序,當(dāng)我們脫離當(dāng)前會(huì)話的時(shí)候,它仍在持續(xù),讓我們來看一個(gè)例子:
- $ tmux new -s my_session
 

按下CTRL-b c
這將會(huì)創(chuàng)建一個(gè)新的窗口,然后屏幕的光標(biāo)移向它?,F(xiàn)在你就可以在新窗口下運(yùn)行你的新應(yīng)用。你可以修改你當(dāng)前窗口的名字。在目前的例子里,我運(yùn)行的top程序,所以top就是該窗口的名字
如果你想要重命名,只需要按下:
CTRL-b
狀態(tài)條將會(huì)改變,這時(shí)你將可以重命名當(dāng)前的窗口

一旦在一個(gè)會(huì)話中創(chuàng)建多個(gè)窗口,我們需要在這些窗口間移動(dòng)的辦法。窗口像數(shù)組一樣組織在一起,從0開始用數(shù)字標(biāo)記每個(gè)窗口,想要快速跳轉(zhuǎn)到其余窗口:
CTRL-b <窗口號(hào)>
如果我們給窗口起了名字,我們可以使用下面的命令找到它們:
CTRL-b f
也可以列出所有窗口:
CTRL-b w
按照順序切換到不同的窗口:
CTRL-b n(到達(dá)下一個(gè)窗口) CTRL-b p(到達(dá)上一個(gè)窗口)
想要離開一個(gè)窗口,可以輸入 exit 或者:
CTRL-b &
關(guān)閉窗口之前,你需要確認(rèn)一下。
把窗口分成許多面板
有時(shí)候你在編輯器工作的同時(shí),需要查看日志文件。在編輯的同時(shí)追蹤日志真的很有幫助。Tmux可以讓我們把窗口分成許多面板。舉個(gè)例子,我們可以創(chuàng)建一個(gè)控制臺(tái)監(jiān)測我們的服務(wù)器,同時(shí)用編輯器構(gòu)造復(fù)雜的開發(fā)環(huán)境,這樣就能同時(shí)進(jìn)行編譯和調(diào)試了。
讓我們創(chuàng)建另一個(gè)Tmux會(huì)話,讓其以面板的方式工作。首先,如果我們在某個(gè)會(huì)話中,那就從Tmux會(huì)話中脫離出來:
CTRL-b d
開始一個(gè)叫做"panes"的新會(huì)話:
$ tmux new -s panes
你可以水平或者豎直分割一個(gè)窗口,水平分割輸入:
CRTL-b "
現(xiàn)在你就擁有兩個(gè)面板,現(xiàn)在我們豎直分割:
CRTL-b %
又增加了兩個(gè):

在他們之間移動(dòng):
CTRL-b <光標(biāo)鍵>
結(jié)論
我希望這篇教程能對(duì)你有作用。此外,像Tmuxinator 或者 Tmuxifier這樣的工具,可以簡化Tmux會(huì)話,窗口和面板的創(chuàng)建及加載,你可以很容易就配置Tmux。如果你沒有使用過這些,嘗試一下吧!
via: http://xmodulo.com/2014/08/improve-productivity-terminal-environment-tmux.html
作者:Christopher Valerio 譯者:su-kaiyao 校對(duì):wxy















 
 
 











 
 
 
 