5個為 Linux 高級用戶準備的也是最常用的開源 shell
Linux有許多shell可用,但在本文中,我們只包括前五種Linux shell,并全面討論它們的特性。
Linux為那些總在尋找新工具包的高級用戶提供了一些最好的開源shell。Linux中不同類型的shell提供了不同的功能,但在其核心,它們基本上實現(xiàn)了幾十年前開發(fā)的思想。
什么是Linux Shell
在 Linux 中,shell 是操作系統(tǒng)中執(zhí)行其他程序的命令解釋器。它為計算機用戶提供了 Linux 系統(tǒng)的接口,以便用戶可以使用一些輸入數(shù)據(jù)運行不同的命令或?qū)嵱贸绦颉?/p>
簡單來說,shell 是一個程序,它從鍵盤接收命令并將它們交給操作系統(tǒng)來執(zhí)行。它接受純文本格式的命令并調(diào)用操作系統(tǒng)服務(wù)來做某事。
但是 shell 不僅僅是一個命令解釋器。它也是一種完整的編程語言,具有自己的結(jié)構(gòu),例如變量、循環(huán)、條件執(zhí)行、函數(shù)等等。
每個 shell 都有自己的語法和腳本功能。那么,讓我們來看看 Linux 上最常用的五個開源 shell。
1、Bash Shell
Brian Fox 于 1988 年為 GNU 項目開發(fā)了 Bash 作為 Bourne shell 的免費版本。Bash 與原始版本類似,但增加了命令行編輯等功能。
因為 Bash 是標準的 GNU shell,所以它成為了所有 Linux 發(fā)行版上的標準 shell?,F(xiàn)在大多數(shù)現(xiàn)代 Linux 發(fā)行版都默認提供 Bash shell。這個開源 Linux shell 在社區(qū)中以其強大的功能集和可用性而聞名。該名稱是“Bourne-Again SHell”的首字母縮寫。
Bash 被認為如此強大的原因之一是因為它是可編寫腳本的。shell 腳本是隔離的命令列表,以優(yōu)化任何任務(wù)并具有成本效益,類似于具有明確定義標準的其他編程語言。您可以手動在 Bash 中輸入任何內(nèi)容,也可以在純文本文件中列出并讓 Bash 為您運行。
學習 Bash 對于執(zhí)行自動化非常有用。它非常強大,并具有許多功能,例如:
- 目錄操作
- 工作管理(Job Control )
- 花括號擴展(brace expansion)
- 波浪號擴展(Tilde expansion)
- 別名
- 命令歷史
- 命令行編輯
- 鍵綁定
- 集成編程功能
- 控制結(jié)構(gòu)
- 內(nèi)置插件的動態(tài)加載
Linux 內(nèi)核的創(chuàng)建者 Linus Torvalds 說,他 1991 年在新內(nèi)核上運行的前兩個程序是 Bash 和 gcc,GNU 的編譯器。
2、Zsh Shell
Zsh(Z shell 的縮寫)是 Bourne Shell 的擴展版本,具有許多新功能并支持插件和主題。它是一個高度可定制的 Linux shell,其中包含一些非常強大的功能,例如選項卡完成、智能歷史記錄、遠程文件擴展等等。Zsh 是一種專為交互使用而設(shè)計的 shell,盡管它也是一種強大的腳本語言。Bash、Ksh 和 Tcsh 的許多有用功能都已合并到 Zsh 中并添加到它們之上。
Zsh 由 Paul Fastad 于 1990 年開發(fā),zsh 名稱來自耶魯大學教授宗紹。它已成為 Linux 操作系統(tǒng)最流行的 shell 之一。
一些更重要的 Zsh 函數(shù)是:
- 命令自動完成
- 改進的變量處理
- 拼寫更正
- 共享命令歷史
- 環(huán)境變量設(shè)置簡單
- 定制
當您使用 Linux 時,大部分用戶時間都花在終端上。如果您想自定義您的終端并使其看起來專業(yè),您可以使用 Oh My Zsh 來實現(xiàn)此目標。它是一個社區(qū)驅(qū)動的開源框架,可用于管理 Zsh 配置。Zsh還有其他框架,如Prezto、Zgen、Antigen等。目前Oh My Zsh能夠支持150個主題和275個插件。
Zsh 和 Bash 都有相似且令人印象深刻的功能,但也有自己獨特的工具。如果您正在尋找 bash 中沒有的可擴展性、更大的自定義和高級功能,zsh shell 是一個很好的選擇。此外,Zsh 是 macOS Catalina 中的默認登錄 shell 和交互式 shell,替代了 Bash。
相關(guān):https://www.linuxmi.com/ubuntu-20-04-zsh.html
3、Fish
Fish shell 是一個現(xiàn)代命令行界面,具有自動建議、選項卡完成和語法突出顯示。它是適用于 Linux 和 macOS 的智能且用戶友好的命令行 shell。該shell 為用戶提供強大的功能和控制,而不會影響速度和效率。它旨在立即使用,無需進行大量配置。
基于歷史的Fish內(nèi)聯(lián)自動建議開箱即用。使用您的歷史記錄,F(xiàn)ish 提出了完成命令的下一個可能性。
這個 shell 比經(jīng)典的 Bash shell 更加豐富多彩。您會很快注意到 Fish 在您鍵入時執(zhí)行語法高亮顯示。這些顏色以及更多顏色可以通過運行 fish_config 來更改。這將打開一個基于 Web 的 GUI,您可以在其中選擇顏色主題并配置外殼的外觀。
另一個很棒的功能是命令的可用性。例如,如果你輸入/usr/bin/linuxiac,它會以紅色顯示該行,表明它不是一個有效的命令,但你輸入/usr/bin/ping它看起來是正常的。
Fish shell特點:
- 基于歷史的內(nèi)聯(lián)自動建議
- 出色的標簽完成
- 語法高亮
- 直觀的通配符支持
- 基于網(wǎng)絡(luò)的配置
- 健全的腳本
對于使用 zsh、bash 等其他 shell 的用戶來說,如果他們想嘗試一個新的、有利的 shell,F(xiàn)ish是非常強大和有用的 Linux shell。
相關(guān):FISH:為90后準備的Linux shell https://www.linuxmi.com/fish-linux-shell.html
4、Ksh shell
Ksh(Korn shell 的縮寫)由 AT&T 貝爾實驗室的 David Korn 發(fā)明,并于 1986 年開始公共生活。它是 Bourne shell 的重新實現(xiàn)。Ksh shell 的命令編輯器界面支持快速、輕松地糾正輸入錯誤,以及輕松調(diào)用和重用命令歷史記錄。它不提供命令補全,但提供文件名補全。Ksh 允許開發(fā)人員在需要時創(chuàng)建新的 shell 命令。
Ksh shell 的命令行編輯模式是一開始往往會吸引人們使用它的功能。使用命令行編輯,返回并修復(fù)錯誤要容易得多。另一個主要面向交互式用戶的主要 Ksh 功能是作業(yè)控制。
一些更重要的 Ksh 函數(shù)是:
- 作業(yè)控制
- 別名
- 功能
- 命令歷史
- 命令行編輯
- 集成編程功能
- 控制結(jié)構(gòu)
- 調(diào)試原語
- 常用表達
- 高級 I/O 功能
Ksh shell 已經(jīng)發(fā)布了不同的版本,如 pdksh、mksh、ksh88 和最新的 ksh93。
5、Tcsh Shell
在最初的 Linux 時代,C 和 C++ 編程語言非常流行,并且 Linux 本身的大部分內(nèi)容都是用它們編寫的。不出所料,出現(xiàn)了一個新的 shell,即使用 vanilla C 語法模型的 C Shell。Tcsh 是 Berkeley UNIX csh (C Shell) 的增強但完全兼容的版本。它是一種命令語言解釋器,可用作交互式登錄 shell 和 shell 腳本命令處理器。Tcsh 可以被認為是下一代 C shell。
Tcsh 由 Ken Greer 于 1979 年在卡內(nèi)基梅隆大學開發(fā)。tcsh 中的“t”來自 TENEX 中的“T”,TENEX 是 BBN 于 1969 年為 PDP-10 大型計算機家族開發(fā)的操作系統(tǒng)。
早期版本的 MacOS X 附帶 tcsh 作為默認 shell,但新版本的默認值變成了 Bash?,F(xiàn)在 tcsh 是 FreeBSD 的默認 root shell。
Tcsh 的主要功能是可編程命令完成和命令行編輯。它在鮮明的簡單性和基本功能之間取得了很好的平衡。使用 tcsh 所需的所有文檔都位于 man tcsh 中,而不是散布在各種幫助程序中。
總結(jié)
幫助 Linux 發(fā)行版確保其當前地位的基本功能之一是 Linux shell。掌握 Linux shell 為您提供了一種與操作系統(tǒng)交互的替代方式。我們鼓勵讀者根據(jù)他們的要求嘗試其中的一些 shell,并為自己獲得第一手經(jīng)驗。