當前位置:
首頁 > 知識 > 5 種拆分 Linux 終端的方法

5 種拆分 Linux 終端的方法

本文介紹了 Linux 提供的拆分終端的方法,它能夠幫助你完成多任務工作。那麼,你最喜歡哪一款終端復用工具呢?

https://linux.cn/article-12236-1.html

作者:Seth Kenlon

譯者:Hank Chow

沒有什麼問題是不能用一個 Linux 終端解決的,如果不行,那就用兩個。

很早以前,終端其實是一個物理設備,而現在的終端實際上是在計算機上被模擬出來的一個應用程序。當你使用終端和計算機進行交互的時候,就會發現,只打開一個終端是不夠用的。在進行編譯、數據處理等長時間任務的時候,你不得不打開一個新終端或新選項卡(tab)來同時進行其它工作。

如果你是系統管理員,你就需要更多的終端窗口,以便連接到多個不同的主機上並行工作了。

在 Linux 系統中,終端應用程序在很久之前就已經開始帶有選項卡功能了。而現在的終端應用程序里,選項卡已經是標配功能了,這是非常流行的趨勢。儘管如此,工作的時候在多個選項卡之間來回切換,或多或少也會分散我們的注意力,甚至帶來不便。

而最好的解決方案就是將整個屏幕劃分為多個部分,這樣多個終端就可以在同一個終端應用程序窗口中同時存在。Linux 發行版中也有很多相關的工具可以實現這一功能。

Shell、終端和控制台

在此之前,我們首先要明確 Shell、終端(terminal)、控制台(console)這三個概念。想要詳細了解的話,請參閱Enable Sysadmin博客上的相關文章。

簡而言之:

?Shell是帶有命令提示符(prompt)的用於輸入、輸出的界面。準確地說,POSIX桌面底層也運行著一個 Shell,即使這個 Shell 對用戶不可見,因為用戶會話就是由這個 Shell 啟動的。

?終端是在圖形界面伺服器(例如 X11 或 Wayland)中運行的應用程序,其中載入了一個 Shell。只有在終端窗口啟動之後,才算是運行了一個終端。終端可以認為是操作 Shell 的一個入口。

?控制台(或稱「虛擬控制台」)通常表示在桌面環境以外使用的 Shell,你可以通過Alt Ctrl F2進入控制台,通常情況下從F3到F7都是不同的控制台,其中桌面環境有可能是F1或者F7,這在不同的發行版中可能會有所不同。

因此,有些應用程序提供的功能是拆分 Shell 或者控制台,有些應用程序的功能則是拆分終端。

tmux

tmux terminal

tmux可以說是最靈活、最強大的屏幕拆分工具了,它通過鍵盤控制對多個終端的復用,因此你可以將一個控制台疊放在另一個控制台上面,並在兩個控制台之間切換。你還可以將整個屏幕等分為多個控制台,以便同時觀察不同控制台上的狀況。

tmux的所有操作都是通過鍵盤完成的,這就意味著你的手不需要離開鍵盤去尋找滑鼠。為此,你需要記住一些按鍵組合。

如果你只用tmux來做屏幕拆分,那你只需要記住一下這些命令:

?Ctrl-B %豎直拆分屏幕(兩個 Shell 分別位於左右)

?Ctrl-B "水平拆分屏幕(兩個 Shell 分別位於上下)

?Ctrl-B O切換到另一個 Shell

?Ctrl-B ?查看幫助

?Ctrl-B d斷開tmux並讓其在後台運行(可以使用tmux attach重新進入)

tmux的一大好處是,在一台計算機上啟動tmux會話之後,也可以從另一台計算機上進入到這個會話,由此可以看出,tmux對 Shell 進行了守護進程化(daemonize)。

例如,當我在樹莓派上運行tmux,我就可以從計算機上連接到樹莓派並登錄 IRC,當我斷開連接時,樹莓派上的tmux會繼續運行,並等待我的下一次連接,在此期間 IRC 是處於持續登錄狀態的。

GNU Screen

GNU Screen terminal

GNU Screen也是一個 Shell 復用工具,類似於tmux,你可以在斷開一個活動會話後重連到其中,它也支持豎直或水平拆分屏幕。

screen的靈活性比tmux要弱一些。它默認的綁定按鍵組合是Ctrl-A,和 Bash 中游標移動到行首的快捷鍵是一樣的。因此,當你正在運行screen的時候,如果想要將游標移動到行首,就需要多按一次Ctrl-A。而我自己的做法是,在$HOME/.screenrc文件中將綁定按鍵組合重新設置為Ctrl-J。

escape ^jJ

儘管screen在屏幕拆分功能上做得很好,但tmux上的一些缺點在 Screen 上也同樣存在。例如在拆分 Shell 時,在一個新的面板中不會啟動新的 Shell ,而是需要使用Ctrl-A Tab導航到另一個面板(如果你按照我的方式重新設置了按鍵組合,需要對應地把Ctrl-A改為Ctrl-J),然後通過Ctrl-A C手動創建一個新的 Shell。

和tmux不同的是,screen在退出一個 Shell 的時候,屏幕拆分狀態不會改變,這樣的設計在某些情況下是比較適合的,但麻煩之處在於需要手動管理屏幕拆分狀態。

儘管如此,screen還是一個相當可靠靈活的應用程序,在無法使用tmux的時候,你可以選擇screen作為備選方案。

在默認按鍵方案下,screen常用的基本命令包括:

?Ctrl-A |豎直拆分屏幕(兩個 Shell 分別位於左右)

?Ctrl-A S水平拆分屏幕(兩個 Shell 分別位於上下)

?Ctrl-A Tab切換到另一個 Shell

?Ctrl-A ?查看幫助

?Ctrl-A d斷開screen並讓其在後台運行(可以使用screen -r重新進入)

Konsole

Konsole screen

Konsole是 KDE Plasma 桌面使用的終端應用程序。和 KDE 一樣,Konsole 也以高度可定製、功能強大的特點而著稱。

和tmux、GNU Screen 類似,Konsole 也具有拆分屏幕的功能。由於 Konsole 是圖形界面的終端,因此還可以用滑鼠來控制它的屏幕拆分。

Konsole 的屏幕拆分功能在「查看(View)」菜單中。它也支持豎直和水平方向的拆分,只要點擊滑鼠就可以切換到另一個面板上。每個面板都是一個獨立的終端,因此都可以擁有獨立的主題和標籤頁。

Konsole 和tmux、GNU Screen 最大的不同之處在於不能斷開和重新連接 Konsole。除非使用遠程桌面軟體,否則只能在打開 Konsole 時使用,這一點和大多數圖形界面應用程序是一樣的。

Emacs

Emacs rpg

嚴格來說,Emacs 並不算是一個終端復用工具,但它的使用界面支持拆分和調整大小,同時還帶有一個內建的終端。

如果 Emacs 是你日常使用的文本編輯器,你就可以在不關閉編輯器的情況下,在不同的應用程序之間輕鬆互相切換。由於 Emacs eshell 模塊是通過 eLISP 實現的,因此你可以在 Emacs 中使用相同的命令進行交互,讓一些繁瑣的操作變得更為簡單。

如果你是在圖形界面中使用 Emacs,還可以使用滑鼠進行操作。例如通過點擊切換面板、用滑鼠調整拆分屏幕的的大小等等。儘管如此,鍵盤的操作速度還是更快,因此記住一些鍵盤快捷鍵還是很有必要的。

Emacs 的一些重要快捷鍵包括:

?Ctrl-X 3豎直拆分屏幕(兩個 Shell 分別位於左右)

?Ctrl-X 2水平拆分屏幕(兩個 Shell 分別位於上下)

?Ctrl-X O(大寫字母O)切換到另一個 Shell(你也可以使用滑鼠操作)

?Ctrl-X 0(數字0)關閉當前面板

如果你運行了 emacs-client 的話,就可以像 tmux 和 GNU Screen 一樣斷開和重新連接到 Emacs 了。

窗口管理器

Ratpoison split screen

除了文本編輯器之外,一些 Linux 桌面也同樣具有拆分屏幕、載入終端這樣的功能。例如Ratpoison、Herbsluftwm、i3、Awesome,甚至是啟用了特定設置的 KDE Plasma 桌面,都可以將多個應用程序在桌面上分塊顯示。

這些桌面可以讓各個應用程序佔據屏幕的固定位置,而不是浮在你的桌面「之上」,因此你可以在多個應用程序窗口之間輕鬆切換。你還可以打開多個終端,排布成網格,就像終端復用工具一樣。更進一步,你還可以在你的桌面復用工具中載入一個終端復用工具。

而且,沒有什麼可以阻止你在裡面載入 Emacs 並分割緩衝區。沒有人知道,如果你把它更進一步,會發生什麼,大多數 Linux 用戶不會外傳這種秘密。

和tmux、GNU Screen 不同,你在斷開與桌面的連接後無法重新連接到同一個桌面會話,除非你使用了遠程桌面軟體進行連接。

更多選擇

除了上面介紹到的工具以外,還有諸如Tilix、Terminator 這樣的終端模擬器,它們同樣可以實現屏幕拆分、嵌入終端組件等功能。歡迎在評論區分享你喜歡的終端拆分工具。

via:https://opensource.com/article/20/5/split-terminal

作者:Seth Kenlon選題:lujun9972譯者:HankChow校對:wxy

本文由LCTT原創編譯,Linux中國榮譽推出

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 Linux中國 的精彩文章:

YUM和RPM 包管理器的不同之處
新聞速讀>微軟在其雲服務上打造全新超算