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

2021-07-03 07:04:57 字數 2956 閱讀 7781

滑鼠的發明是了不起的創新,它讓電腦更加接近普通人。但從程式設計師和系統管理員的角度,使用電腦工作時,手一旦離開鍵盤,就會有些分心。

作為一名系統管理員,我大量的工作都需要在終端環境下。開啟很多標籤,然後在多個終端之間切換視窗會讓我慢下來。尤其是當我的伺服器出問題的時候,我不能浪費任何時間!

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

tmux("terminal multiplexer"的簡稱)可以讓我們在單個螢幕的靈活布局下開出很多終端,我們就可以協作地使用它們。舉個例子,在乙個面板中,我們用vim修改一些配置檔案,在另乙個面板,我們使用irssi聊天,而在其餘的面板,可以跟蹤一些日誌。然後,我們還可以開啟新的視窗來公升級系統,再開乙個新視窗來進行伺服器的ssh連線。在這些視窗面板間瀏覽切換和建立它們一樣簡單。它的高度可配置和可定製的,讓其成為你心中的延伸

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

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

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

想要離開乙個視窗,可以輸入 exit 或者:

ctrl-b &

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

有時候你在編輯器工作的同時,需要檢視日誌檔案。在編輯的同時追蹤日誌真的很有幫助。tmux可以讓我們把視窗分成許多面板。舉個例子,我們可以建立乙個控制台監測我們的伺服器,同時用編輯器構造複雜的開發環境,這樣就能同時進行編譯和除錯了。

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

ctrl-b d

開始乙個叫做"panes"的新會話:

$ tmux new -s panes
你可以水平或者豎直分割乙個視窗,水平分割輸入:

crtl-b "

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

crtl-b %

又增加了兩個:

在他們之間移動:

ctrl-b 《游標鍵》

我希望這篇教程能對你有作用。此外,像tmuxinator 或者 tmuxifier這樣的工具,可以簡化tmux會話,視窗和面板的建立及載入,你可以很容易就配置tmux。如果你沒有使用過這些,嘗試一下吧!

via:

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

滑鼠的發明是了不起的創新,它讓電腦更加接近普通人。但從程式設計師和系統管理員的角度,使用電腦工作時,手一旦離開鍵盤,就會有些分心。作為一名系統管理員,我大量的工作都需要在終端環境下。開啟很多標籤,然後在多個終端之間切換視窗會讓我慢下來。尤其是當我的伺服器出問題的時候,我不能浪費任何時間!tmux是我...

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

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

tmux 終端分屏利器使用

tmux 是乙個工具,用於在乙個終端視窗中執行多個終端會話。不僅如此,你還可以通過 tmux 使終端會話執行於後台或是按需接入 斷開會話,這個功能非常實用。很好的工具,記錄一下,以後要常用。mac ruby e curl fssl brew install tmux ubuntu sudo apt ...