Linux 中 5 個最常用的開源 Shell

shell是如UnixGNU/Linux等作業系統中的命令解釋器,它是一個執行其他程式的程式。它為電腦使用者提供了一個介面,以便使用者可以運行不同的命令實用工具/工具並提供一些輸入資料。

當shell完成執行一個程式後,它會將輸出傳送給使用者,顯示在螢幕上,這是標準輸出裝置。因此,它被稱為“命令解釋器”。

shell不僅僅是一個命令解釋器,它本身也是一個具有完整程式語言結構的程式語言,例如條件執行、迴圈、變數、函數等等。

這就是為什麼Unix/GNU Linux shell比Windows shell更強大的原因。

在本文中,我們將介紹一些Unix/GNU Linux上最常用的開源shell。

1. Bash Shell

Bash”,代表著“Bourne Again SHell”。它是最初的sh)的增強版,並於1989年由<Brian Fox引進。

隨著時間的推移,Bash已成為許多Linux發行版和macOS(直至zsh取代)上最流行和廣泛使用的命令行解釋器。

Bash為用戶提供了執行命令、導航文件系統和運行腳本的能力。用戶可以利用<命令歷史、 tab補全和腳本功能等特性來自動化任務和簡化工作流程。

<Bash Shell在開源計算的演進中扮演了關鍵角色,為用戶提供了一個與系統互動的一致界面。

Bash Shell

2. Tcsh/Csh Shell

tee-shell”)和see-shell”)是存在了數十年的基於Unix的命令行 shell。Csh,或稱為<C shell,是由<Bill Joy在1970年代末於加州大學伯克利分校開發的。

它引入了一些特性和脚本語法,這些都是受到 C 程式語言的啟發,這使得它在熟悉 C 的程式設計師中間非常受歡迎。

Tcsh 是原始 Csh 的增強版本,代表“Tenex C Shell”,其中“Tenex”指的是 TENEX 作業系統。

Tcsh 包含了 Csh 的所有功能,並增加了額外的改進,如命令列編輯、作業控制和命令補全。

這兩個 shell 在 Unix 世界中具有重要影響,許多用戶喜歡它們獨特的腳本語法和功能。然而,隨著時間的推移,其他如 bash 的 shell 由於其豐富的功能和廣泛的採用而變得更加流行。

不過,TcshCsh 仍然是 Unix shell 歷史的重要部分。

Tcsh Shell

3. Ksh Shell

KornShell,通常被稱為 ksh,是一個在 1980 年代初期由 AT&T 貝爾實驗室的 David G. Korn 開發的 Unix shell。

它結合了 C shell (csh) 和 Bourne shell (sh) 的功能,旨在提供兩者的最佳特點。多年來,ksh 因其先進的腳本能力而受到讚譽,成為許多系統管理員和進階用戶的最愛。

<ksh的突出功能之一是其關聯數組,這在其時代的shell中並不常見。它還引入了select構造,使得腳本中的菜單生成變得簡單直觀。

另一個重要的優勢是其命令行編輯和歷史記錄功能,這些功能後來被其他shell如bash所採用。

Ksh Shell

4. Zsh Shell

Zsh shell,通常簡稱為“Zsh”,是一個功能強大的Unix shell,在程序員和系統管理員中獲得了驚人的普及。

作為Zsh融合了其他shell如Bashkshtcsh的功能,提供了豐富的功能集和改進的互動使用。

Zsh的一個突出功能是其強大的自動補全能力。與其他shell不同,Zsh的自動補全具有上下文感知功能,能夠提供建議相關的命令、文件路徑,甚至Git分支,使得用戶體驗更順暢、更直觀。

此外,Zsh 可以透過 Oh My Zsh 框架進行高度自訂,使用者可以輕鬆套用主題和插件,增強他們終端環境的美觀性和功能性。

Zsh Shell

5. Fish

Fish Shell 是一個現代化、使用者友好的命令列殼層,旨在為使用者提供互動性和直觀的界面。

與傳統的殼層如 BashZsh 不同,Fish 預設提供聰明的建議,使得初學者和有經驗的使用者都能更容易地導航和執行命令。

Fish 的亮點功能之一是其自動建議,它根據您的命令歷史提供實時反饋,使得命令執行更加迅速。

Fish 還擁有生動多采的界面,其語法著色功能使得閱讀和理解命令更加容易。其基於網頁的配置允許使用者自訂他們的殼層體驗,而無需深入複雜的配置文件。

此外,Fish 擁有豐富且不斷增長的社群貢獻的插件和主題,增強了其功能和外觀。

Fish Shell
總結

這些並不是 Unix/GNU Linux 中唯一可用的 shell,但它們是最常用的之一,除了預先安裝在各種 Linux 發行版中的 shell。

I hope you find this article useful. For any additional information, please don’t hesitate to post a comment.

Source:
https://www.tecmint.com/different-types-of-linux-shells/