首頁 > 軟體

15個最好的免費開源Linux Shell

2020-06-16 16:12:35

自從70年代Unix系統誕生以來,它就一直吸引著全世界的目光。幫助Linux和BSD發行版確保其當前地位的基本特性之一是Linux shell。由於其強大的功能和多樣的應用程式,shell是許多Linux愛好者的必備工具之一。它是作業系統的命令列介面,允許您根據自己的條件執行任何型別的操作。此外,Linux shell不僅是一個介面,而且是一種具有自己的語法和語意集的成熟指令碼語言。

常用的Linux shell

Linux為高階使用者提供了一些最好的開源shell,這些使用者總是希望為自己的武器庫新增新的工具包。這反過來又使許多日常使用者很難選擇特定的shell。我們冒昧地為Linux使用者列出了一些最好的免費開源shell。請仔細閱讀本文,找出最適合您的Linux shell。

1、sh Shell

Bourne Shell或“sh”是歷史悠久的Unix作業系統忠第一個流行的 Shell。sh 是 UNIX 上的標準 shell,它的建立者Stephen Bourne於1977年在AT&T貝爾實驗室開發了它,自那時以來,它已隨大多數早期的Unix系統一起提供。 Bourne Shell從它使用的指令碼擴充套件名中獲得了簡短的形式,它要求使用者以sh結束指令碼名。它為許多流行的未來Shell設定了標準,包括重定向,指令碼功能和強大的語言構造。

Bourne Shell的功能

  • Bourne Shell的預設Shell提示符是$符號,它是第一個使用此字元作為提示符的Shell。
  • 它具有對輸入輸出重定向,Unicode,流重定向,批次處理指令碼等的內建支援。
  • 儘管最初的1977年版本的shell是私有的,但它已經公開提供了原始碼。
  • sh shell是高度可設定的,可以進行修改以輕鬆匹配不同的系統標準。

2、Bash Shell

Bash被廣泛稱為Bourne Again Shell,它可能是現代Unix機器上使用最多的Linux Shell。如果您使用的是標準Linux發行版(例如Ubuntu或Arch),則您使用的預設Shell是Bash Shell。這種開源Linux shell以其強大的功能集和可用性而在社群中廣為人知。因此,大多數Linux使用者在一生中的某一時刻都執行Bash。

Bash Shell的功能

  • Bash提供的命令列編輯功能非常出色,並且提供了無限的命令歷史記錄。
  • Bash提供了強大的shell函數,別名,作業控制機制,輸入輸出重定向,ISO 8061支援以及Unicode支援。
  • 這個開源Linux shell為命令名、路徑、萬用字元提供了自動完成支援,並允許在文字高亮顯示的同時顯示彩色目錄清單。
  • Bash可以執行從2到64的任何基數的整數運算,並允許具有無限大小的索引陣列。

3、C Shell

C shell或“csh”是最古老的開源Unix shell之一。它是由UCB當時的研究生Bill Joy在70年代開發的。從那時起,csh附帶了許多Unix變體,尤其是各種BSD。它為直譯器合併了類似於C的語法,由於原始的Unix系統和現代Linux核心大部分都是用C/C++編寫的,因此對許多人來說都是有幫助的。

C Shell的功能

  • C Shell提供了創新的歷史記錄機制,作業控制過程,互動式檔名和使用者名稱補全以及類似C的語法。
  • 它允許高階使用者將其用作互動式登入Shell或Shell指令碼的命令處理器。
  • Linux C Shell使用的預設Shell提示符是“%”符號,與許多Bash使用者熟悉的“ $”符號相反。
  • C Shell使使用者能夠搜尋和替換變數替換以及基於萬用字元的匹配模式。

4、Korn Shell

Korn Shell或ksh可以說是當今Linux最受歡迎的開源Shell之一。它是由David Korn在傳奇的貝爾實驗室開發的,他從C Shell的互動性和Bash Shell的互動式中獲得了啟發。由於其先進的功能,包括高階作業控制,命令別名,浮點算術以及許多其他功能,自成立之初以來,Korn Shell就已經獲得了極大的歡迎。

Korn Shell的功能

  • Korn Shell允許使用者使用Ctrl + Z終止當前作業,並使用命令fg和bg將其置於前台或後台。
  • 它可用於直接將Shell程式程式碼儲存在記憶體中,從而提高程式設計能力和提高效能。
  • ksh提供了高階命令列編輯,使用者可以在其中直接從其Shell使用vi或Emacs風格的編輯命令。
  • Korn Shell指令碼通常比Bourne Shell指令碼更快,並提供高階I/O功能以及顯著的安全性機制。

5、Zsh Shell

Zsh Shell是具有許多強大功能的創新型現代Linux Shell。它是在Bash之上開發的,並在有效的命令直譯器旁邊提供了一個互動式登入Shell。 Zsh以其效能而聞名,它在許多方面都大大改善了Linux的許多開源Shell。它還借鑒了90年代其他流行Shell的元素,包括Ksh和TcshShell。如果您是Linux專家,正在尋找高階Linux Shell,請嘗試Zsh。

Zsh Shell的功能

  • Zsh的自動完成功能非常智慧,並且支援檔案和路徑的高度互動式自動完成。
  • 這個開源Unix shell的歷史記錄共用機制非常龐大,允許同時執行的許多不同終端範例的共用歷史記錄。
  • 使用者可以從其流行的,社群驅動的框架oh-my-zsh中選擇400多個外掛和200多個主題。
  • Zsh還支援vi模式,智慧跳脫,遞回遍歷,將輸出傳遞到臨時檔案,拼寫更正以及許多其他互動式功能。

6、Tcsh Shell

Tcsh shell是C shell的升級版本,它提供可程式化命令完成和命令列編輯作為其關鍵功能。它與Csh Shell完全相容,可以用作互動式登入Shell和Shell指令碼處理器。 Tcsh帶有功能強大的命令列編輯器,現代化的歷史記錄機制,可程式化的單詞補全,作業控制,拼寫檢查支援以及類似於C的語法,後跟Csh。該Unix shell最適合高階程式設計師。

Tcsh Shell的功能

  • Tcsh內建了對檔案和變數的自動完成以及可程式化完成和別名引數選擇器的支援。
  • 當在終端上執行shell指令碼時,它允許經驗豐富的使用者合併萬用字元以提高靈活性。
  • 該Linux shell的預構建where命令的作用類似於Bash中的which命令,但顯示$PATH目錄中指定的目標的每個位置。
  • Tcsh是FreeBSD及其後代(例如DragonFly BSD和DesktopBSD)的預設命令列直譯器。

7、Fish Shell

Fish Shell是一種友好的互動式Unix Shell,旨在替代Linux早期的開源Shell。除Windows作業系統外,每個Linux和BSD發行版均提供此功能。 Fish提供了一組強大的功能,使您更容易發現,記住和使用計算機上令人興奮的Linux命令。如果您正在尋找Linux桌面的智慧命令列Shell,Fish當然值得一試。

Fish Shell的功能

  • Fish提供了一個強大的自動建議功能,即根據命令列歷史和當前目錄進行搜尋。
  • 其功能豐富的Tav完成功能允許使用者使用萬用字元和大括號擴充套件來擴充套件檔案路徑,變數和許多特定於命令的完成。
  • Fish內建了對24位元真彩色的支援,使您的終端對談更加豐富多彩和更具吸引力。
  • 對於尋求開箱即用且無需設定的開源shell的人們來說,這是一個很好的shell。

8、Ion Shell

Ion Shell是一個令人著迷的現代Shell,它具有簡單但功能強大的語法,並顯著提高了效能。它是使用Rust程式語言編寫的,因此它不易受到許多Bash使用者遇到的常見“ ShellShcok”問題的影響。Ion從流行的Shell中借鑒了許多設計元素,例如Bash,Fish和Oil。因此,無需花費太多時間即可啟動並執行此出色的shell。

Ion Shell的功能

  • Ion Shell比Dash快,而Dash本身比當今大多數Linux機器使用的標準Bash Shell快四倍。
  • 由於是用Rust編寫的,所以Ion提供了比傳統的基於C/C++的Unix命令列Shell更高的記憶體安全性。
  • Ion具有對字串,陣列,glob,大括號(範圍,排列,巢狀大括號),算術和過程的內建擴充套件支援。
  • 它簡單,乾淨和簡潔的設計使其相對易於使用,並允許使用者將shell編譯為靜態二進位制檔案。

9、Dash shell

Dash shell是Debian Almquist shell(Dash)的縮寫,並且是Debian作業系統的預設命令列直譯器。它比標準的GNU Bash shell小得多,但仍然以POSIX相容為目標。 Dash在移植到Linux生態系統之前已經從NetBSD版本的ash(Almquist SHell)衍生而來,並且比傳統的Unix shell具有顯著的效能提升。 Dash比大多數Shell更快,並且需要更少的空間和更少的庫。

Dash shell的功能

  • Dash是Linux最快的開源Shell之一,其時鐘速度幾乎是Bash和其他標準Shell的四倍。
  • Dash的簡約設計使其比日常的命令列直譯器小得多,並且只要有限的系統資源(磁碟空間,RAM或CPU)。
  • 由於Dash的程式碼庫明顯較小,因此Dash的受攻擊面較小,並且對於頻繁的Shell攻擊非常安全。
  • Ubuntu或Debian系統使用者可以在終端視窗中輸入man dash來找到有關Dash的更多資訊。

10、Eshell

Eshell是使用Emacs Lisp編寫的一種方便的命令列直譯器程式,其目的是在提供對Lisp程式碼的無縫支援的同時具有高度的可移植性。它提供了大量日常功能,包括自動完成,歷史記錄管理,作業控制機制等等。 Eshell附帶的指令碼結構非常簡單,可以正確完成工作。如果您是Lisp程式設計師或前衛的Emacs愛好者,那麼Eshell可以成為您理想的Linux Shell。

Eshell的功能

  • Eshell不是一個獨立的終端模擬器,而是一個日常shell,可以使用Emacs的功能與您的計算機進行通訊。
  • 到目前為止,它不直接支援互動???程式,因此您需要在單獨的ANSI術語範例中呼叫它們。
  • Eshell對歷史記錄修改和互動的預設支援非常好,其語法在某種程度上類似於Bash和Zsh。
  • 使用者可以通過修改eshell-prompt-function變數來自定義Eshell,該變數定義了提示在系統中的行為。

11、rc Shell

rc shell是經典的命令列直譯器,與Bourne shell極為相似。但是,與Bourne Shell相比,它具有某種簡單的結構。這是因為rc使用類似C的控制結構,而不是sh使用類似ALGOL的語法。 Tom Duff是該Unix Shell的主要開發人員,以其高品質的程式設計和出色的解決問題能力而聞名。

rc Shell的功能

  • rc使用if not scripting結構而不是vanilla else,並提供與在Bourne shell中使用的for迴圈相同的for迴圈。
  • 儘管rc的輸入規則很弱,但是它結合了強大的機制來操縱變數。
  • rc相當輕巧,因此比許多傳統的Linux開源shell更快。
  • 它具有對例外處理,搜尋和替換機制,模式匹配等的出色支援。

12、Scsh Shell

Scheme Shell或Scsh是可移植的命令列Shell,可用於Linux和BSD之外的各種作業系統。它與Scheme程式設計介面分層放置,旨在輕鬆編寫真實的Unix程式。它可以用來為應用程式和標準作業系統程式編寫高效的指令碼。它帶有對管道的內建支援,輸入輸出重定向,符號連結,BSD通訊端,正規表示式模式以及許多其他令人興奮的功能。

[linuxidc@linux:~/www.linuxidc.com]$ sudo apt-get install mit-scheme

Scsh Shell的功能

  • Scheme Shell對日常指令碼構造(例如列表,字元和字串)具有出色的庫支援。
  • 在操作正規表示式時,使用者可以選擇使用Scheme正規表示式,域特定語言(DSL)或少量語言。
  • 這個開源shell提供的網路支援確實是一流的,並且與許多應用程式相比,速度更快。
  • 支援偽終端,awk之類的指令碼,宏,智慧搜尋以及更多替換功能。

13、Xonsh Shell

Xonsh是受Python指令碼語言支援的現代Linux shell。如果您想知道是否可以將Python直譯器用作Unix shell,那麼Xonsh可以讓您做到這一點。該語言已作為Python 3.5+的超集構建,並提供了您在Bash和iPython中經常使用的大量shell原語。

Xonsh Shell的功能

  • Xonsh被開發為一種健全的語言,它對包括Linux,Mac OSX和Windows在內的一系列作業系統提供了原生支援。
  • 此shell的製表符完成功能非常出色,還支援手冊頁解析中的完成。
  • 熟悉Python的使用者會發現Xonsh非常適合,因為其語法與Python非常相似。
  • 它帶有一個龐大的庫,可以立即提供許多日常原語。

14、Oh Shell

Oh,這是現代Linux使用者的絕佳開源Shell程式。儘管乍看之下它看上去與傳統的Unix shell非常相似,但是在程式設計方面卻與之不同。 Oh是使用Golang開發的,可提供高品質的原生並行支援。但是,Oh的核心是Scheme程式語言的一個經過極端修改的範例。它還對程式碼,資料,管道和通道使用相同的語法-允許終端使用者在其指令碼中互換使用它們。

Oh Shell的功能

  • Shell本身是使用Go構建的,但是程式設計結構是Scheme程式語言的方言。
  • 在支援並行方面,哦是最好的Unix shell之一。
  • 它把管道旁邊的通道作為一流的值來處理,並具有簡潔的語法結構。
  • 哦,允許公共和私人成員,並將它們用作基於原型的物件系統的基礎。

15、Elvish shell

自從幾個月前嘗試使用Elvish Shell以來,它是我最喜歡的Linux開源shell之一。這是一個真正出色的命令列直譯器,可讓您在計算機上執行各種操作。從操縱系統本身到編寫雄辯的指令碼,Elvish均可用於完成大量任務。它帶有豐富的健壯函數庫,可用於字串處理,正規表示式匹配,JSON解析,聯網等。

Elvish shell的功能

  • Elvish管道允許系統與標準文字資料一起流式傳輸諸如列表,地圖甚至功能之類的結構化資料。
  • 它帶有類似C的熟悉語法,對於經驗豐富的Linux使用者而言,使用Elvish編寫指令碼非常直觀。
  • Elvish是使用Go程式語言編寫的,因此與其他Unix Shell相比,它是型別安全的。
  • 該Unix Shell附帶了一個預構建的檔案管理器,使系統管理更加舒適。

總結

由於Linux不斷發展的生態系統提供了許多強大的開源Shell,因此為您選擇合適的Linux Shell通常是一項艱鉅的任務。因此,我們員遍歷了您可以找到的所有流行選擇,並為您編寫了此便捷指南。由於人們對不同種類的Shell有不同的偏好,因此最適合您的Shell完全取決於您。我們鼓勵讀者根據自己的要求嘗試其中一些shell,並親自獲得第一手經驗,讓後把妮的想法說出來,謝謝。


IT145.com E-mail:sddin#qq.com