4 款值得一試的 Linux 終端多路復用器
Linux 用戶通常需要大量的虛擬視覺空間。一個終端窗口是永遠不夠的,所以終端有了標籤。一個桌面太受限制了,所以有了虛擬桌面。當然,應用程序窗口可以堆疊,但當它們堆疊起來時,又有多大的好處呢?哎呀,即使是後台文本控制台也有 F1
到 F7
,可以在任務之間來回翻轉。
有了這麼多的多任務處理方式,有人發明了終端 多路復用器 的概念就不奇怪了。誠然,這是一個令人困惑的術語。在傳統的電子學中,「 多路復用器 」是一個接收多個輸入信號並將選定的信號轉發到單一輸出的部件。終端多路復用器的作用正好相反。它從一個輸入(人類在鍵盤上向一個終端窗口打字)接收指令,並將該輸入轉發給任意數量的輸出(例如,一組伺服器)。
然後,「多路復用器」一詞在美國也是一個流行的術語,指的是有許多屏幕的電影院(與「 影城 」一詞一個意思)。在某種程度上,這很好地描述了終端復用器的作用。它可以在一個框內提供許多屏幕。
不管這個詞是什麼意思,任何嘗試過它的人都有自己的喜好的某一種多路復用器。因此,我決定考察一些流行的終端多路復用器,看看每一個都怎麼樣。就我的評估標準而言,最低限度,我需要每個多路復用器能夠分割和堆疊終端窗口。
tmux
![tmux](/data/attachment/album/202105/24/205111a4ttih7hk43pii2i.png "tmux")
據我所知,是從 tmux 開始使用「多路復用器」這個術語的。它工作的很出色。
它作為一個守護程序運行,這樣即使你關閉了正在查看的終端模擬器,你的終端會話仍然處於活動狀態。它將你的終端屏幕分割成多個面板,這樣你就可以在每個面板上打開獨特的終端提示符。
推而廣之,這意味著你也可以遠程連接到任何數量的系統,並在你的終端中打開它們。利用 tmux 的能力,將輸入鏡像(或者以電子學術語說是「反向多路復用」)到其他打開的窗格,就能從一個中央命令窗格同時控制幾台計算機。
tmux 在 GNU Screen 還只能水平分割的時候就有了垂直分割能力,這吸引了追求最大靈活性的粉絲。而靈活性正是用戶在 tmux 中得到的。它可以分割、堆疊、選擇和提供服務;幾乎沒有什麼是它做不到的。
? 軟體包大小
從軟體包中安裝 tmux 大約需要 700K,這還不算它所依賴的十幾個共享庫。
?️ 控制鍵
tmux 的默認觸發鍵是 Ctrl+B
,儘管很容易在其配置文件中重新定義。
⌨️ 黑客因子
即使你只是在學習如何使用終端,你也一定會覺得使用 tmux 的人很像黑客。它看起來很複雜,但一旦你了解了正確的鍵綁定,就很容易使用。它為你提供了很多有用的技巧,讓你玩的飛起,而且它是一種快速構建 HUD(抬頭顯示器)的超簡單方法,可以把你需要的所有信息擺在你面前。
GNU Screen
![GNU Screen](/data/attachment/album/202105/24/205112zfb777751i560w72.png "GNU Screen")
像 tmux 一樣,GNU Screen 也運行一個守護程序,所以即使你關閉了用來啟動它的終端,你的 shell 仍然可用。你可以從不同的計算機上連接並共享屏幕。它可以將你的終端屏幕分割成水平或垂直的窗格。
與 tmux 不同的是,GNU Screen 可以通過串列連接進行連接(screen 9600 /dev/ttyUSB0
就可以了),通過按鍵綁定可以方便地發出 XON
和 XOFF
信號。
與 SSH 會話相比,在串列連接中需要多路復用器的情況可能並不常見,所以大多數用戶並不了解 Screen 這個真正特殊的功能。不過,GNU Screen 是一個很棒的多路復用器,有很多有用的選項。而如果你真的需要同時向多個伺服器發送信號,還有專門的工具,比如 ClusterSSH 和 Ansible。
? 軟體包大小
從軟體包中安裝 GNU Screen 大約需要 970K,這還不算它所依賴的十幾個共享庫。
?️ 控制鍵
GNU Screen 的默認觸發鍵是 Ctrl+A
,這對於熟悉 Bash 快捷鍵的人來說可能特別煩人。幸運的是,你可以在配置文件中輕鬆地重新定義這個觸發鍵。
⌨️ 黑客因子
當使用 Screen 通過串列連接到你的路由器或你的原型電路板時,你會成為你所有硬體黑客朋友羨慕的對象。
Konsole
![Konsole](/data/attachment/album/202105/24/205112fmzcc7p7uc7mrimc.png "Konsole")
對於沒有標榜自己是多路復用器的 Konsole 來說,令人驚訝的是它也是其中一個。它可以使用 Qt 窗格和標籤進行必要的窗口分割和堆疊,但它也可以通過「編輯(將輸入複製到)」菜單中的一個選項將輸入從一個窗格傳到另一個(或全部)。
然而,它所最明顯缺乏的功能是作為一個守護程序運行以進行遠程重新連接的能力。與 tmux 和 GNU Screen 不同,你不能遠程連接到運行 Konsole 的機器並加入會話。對於一些管理員來說,這可能不是一個問題。許多管理員用 VNC 連接到機器的次數比用 SSH 還要多,所以「重新加入」一個會話就像在 VNC 客戶端上點擊 Konsole 窗口一樣簡單。
使用 Konsole 作為多路復用器是 KDE 極客們的大招。Konsole 是我使用的第一個 Linux 終端(直到今天,我有時也會按 Ctrl+N
來切換新標籤),所以有能力使用這個熟悉的終端作為多路復用器是一個很大的便利。這絕不是必要的,因為無論如何 tmux 和 Screen 都可以在 Konsole 裡面運行,但是通過讓 Konsole 處理窗格,我就不必調整肌肉記憶。這種微妙的功能包容正是 KDE 的偉大之處。
? 軟體包大小
Konsole 本身大約是 11KB,但它依賴於 105 個 KDE 和 Qt 庫,所以實際上,它至少有 50MB。
?️ 控制鍵
大多數重要的 Konsole 快捷鍵以 Shift+Ctrl
開始,分割屏幕、打開新標籤、複製輸入到其他窗格等都是如此。這是 KDE 里的主控台,所以如果你對 Plasma 桌面很熟悉,會感覺快捷鍵很熟悉。
⌨️ 黑客因子
使用 Konsole 作為你的多路復用器讓你有資格稱自己為 KDE 高級用戶。
Terminator
![Terminator](/data/attachment/album/202105/24/205113fpshsol39f9fvrzq.png "Terminator")
對於 GNOME 用戶來說,Terminator 多路復用器是為他們原本極簡的 GNOME 終端增加功能的一個簡單方法。除了必要的多路復用功能外,Terminator 還可以向所有打開的窗格廣播輸入,但和 Konsole 一樣,它不會在後台運行以便你可以通過 SSH 重新連接到它。話說回來,由於 GNOME 和 Wayland 讓 VNC 變得如此簡單,你有可能會覺得沒有必要通過 SSH 來恢復終端會話。
如果你願意,Terminator 可以完全由滑鼠驅動。Konsole 通過其主菜單也有同樣的能力。有了 Terminator,你可以在 Shell 的任何地方點擊右鍵,彈出相關選項,以水平或垂直分割窗口,將窗格分組作為廣播目標,廣播輸入,關閉窗格,等等。你還可以為所有這些動作配置鍵盤快捷鍵,所以在許多方面,你可以形成自己的體驗。
我認為自己主要是一個 KDE 用戶,所以當我說 Terminator 感覺像一個 KDE 應用時,我其實是一種極大的讚美。Terminator 是一個令人驚訝的可配置的和靈活的應用程序。在許多方面,它體現了開源的力量,把簡陋的 GNOME 終端變成了一個強大的多路復用器。
? 軟體包大小
Terminator 的安裝容量為 2.2MB,其中大部分是 Python 模塊。但它依賴於 GTK3 和 GNOME,所以如果你沒有運行完整的 GNOME 桌面,可以預料你需要一個更大的安裝來拉入這些依賴。
?️ 控制鍵
Terminator 的默認控制鍵沒有什麼一致性。你可以用 Alt
鍵來執行一些命令,用 Ctrl
來執行其他命令,還可以用 Shift+Ctrl
、Ctrl+Alt
、Shift+Super
等等,還有滑鼠。話說回來,這是我試過的最可配置的多路復用器之一,所以只要有想法,稍加努力,你就能設計出適合你的模式。
⌨️ 黑客因子
當你使用 Terminator 時,你會覺得自己是最現代、最務實的黑客。由於它的各種極客選項,它是多路復用的最佳選擇,而且由於它非常靈活,無論你的手是在鍵盤上,還是鍵盤和滑鼠並用,你都可以同樣輕鬆地使用它。
我全要
還有更多的多路復用器和一些具有類似多路復用能力的應用。你不必非要找到一個完全按照你想要的方式完成你需要的所有工作的多路復用器。你可以使用不止一個。事實上,你甚至可以同時使用多個,因為 tmux 和 Screen 實際上是 shell,而 Konsole 和 Terminator 是顯示 shell 的終端。對唾手可得的工具感到舒適,而且它們能幫助你管理你的工作空間,使你能有效地工作,才是最重要的。
去嘗試一下多路復用器,或者在你喜歡的應用程序中發現類似多路復用器的功能。它可能會改變你看待計算的方式。
via: https://opensource.com/article/21/5/linux-terminal-multiplexer
作者:Seth Kenlon 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive