溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

常用的Linux shell有哪些

發(fā)布時間:2022-02-14 10:21:01 來源:億速云 閱讀:299 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“常用的Linux shell有哪些”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強(qiáng),希望這篇“常用的Linux shell有哪些”文章能幫助大家解決問題。

Shell是系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進(jìn)行交互操作的一種接口。它接收用戶輸入的命令并把它送入內(nèi)核去執(zhí)行。是在Linux內(nèi)核與用戶之間的解釋器程序,現(xiàn)在LinuxLinux shell。通常指/bin/bash解釋器來負(fù)責(zé)向內(nèi)核翻譯以及傳達(dá)用戶/程序指令,shell相當(dāng)于操作系統(tǒng)的“外殼”。

常用的Linux shell有哪些

1. sh Shell

Bourne Shell或“sh”是歷史悠久的Unix操作系統(tǒng)忠第一個流行的 Shell。sh 是 UNIX 上的標(biāo)準(zhǔn) shell,它的創(chuàng)建者Stephen Bourne于1977年在AT&T貝爾實驗室開發(fā)了它,自那時以來,它已隨大多數(shù)早期的Unix系統(tǒng)一起提供。Bourne Shell從它使用的腳本擴(kuò)展名中獲得了簡短的形式,它要求用戶以sh結(jié)束腳本名。它為許多流行的未來Shell設(shè)置了標(biāo)準(zhǔn),包括重定向,腳本功能和強(qiáng)大的語言構(gòu)造。

常用的Linux shell有哪些

Bourne Shell的功能:

Bourne Shell的默認(rèn)Shell提示符是$符號,它是第一個使用此字符作為提示符的Shell。

它具有對輸入輸出重定向,Unicode,流重定向,批處理腳本等的內(nèi)置支持。

盡管最初的1977年版本的shell是私有的,但它已經(jīng)公開提供了源代碼。

sh shell是高度可配置的,可以進(jìn)行修改以輕松匹配不同的系統(tǒng)標(biāo)準(zhǔn)。

2. Bash Shell

Bash被廣泛稱為Bourne Again Shell,它可能是現(xiàn)代Unix機(jī)器上使用最多的Linux Shell。如果您使用的是標(biāo)準(zhǔn)Linux發(fā)行版(例如Ubuntu或Arch),則您使用的默認(rèn)Shell是Bash Shell。這種開源Linux shell以其強(qiáng)大的功能集和可用性而在社區(qū)中廣為人知。因此,大多數(shù)Linux用戶在一生中的某一時刻都運行Bash。

Bash Shell的功能:

Bash提供的命令行編輯功能非常出色,并且提供了無限的命令歷史記錄。

Bash提供了強(qiáng)大的shell函數(shù),別名,作業(yè)控制機(jī)制,輸入輸出重定向,ISO 8061支持以及Unicode支持。

這個開源Linux shell為命令名、路徑、通配符提供了自動完成支持,并允許在文本高亮顯示的同時顯示彩色目錄清單。

Bash可以執(zhí)行從2到64的任何基數(shù)的整數(shù)運算,并允許具有無限大小的索引數(shù)組。

3. C Shell

C shell或“csh”是最古老的開源Unix shell之一。它是由UCB當(dāng)時的研究生Bill Joy在70年代開發(fā)的。從那時起,csh附帶了許多Unix變體,尤其是各種BSD。它為解釋器合并了類似于C的語法,由于原始的Unix系統(tǒng)和現(xiàn)代Linux內(nèi)核大部分都是用C/C++編寫的,因此對許多人來說都是有幫助的。

C Shell的功能:

C Shell提供了創(chuàng)新的歷史記錄機(jī)制,作業(yè)控制過程,交互式文件名和用戶名補(bǔ)全以及類似C的語法。

它允許高級用戶將其用作交互式登錄Shell或Shell腳本的命令處理器。

Linux C Shell使用的默認(rèn)Shell提示符是“%”符號,與許多Bash用戶熟悉的“ $”符號相反。

C Shell使用戶能夠搜索和替換變量替換以及基于通配符的匹配模式。

4. Korn Shell

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

Korn Shell的功能:

Korn Shell允許用戶使用Ctrl + Z終止當(dāng)前作業(yè),并使用命令fg和bg將其置于前臺或后臺。

它可用于直接將Shell程序代碼存儲在內(nèi)存中,從而提高編程能力和提高性能。

ksh提供了高級命令行編輯,用戶可以在其中直接從其Shell使用vi或Emacs風(fēng)格的編輯命令。

Korn Shell腳本通常比Bourne Shell腳本更快,并提供高級I/O功能以及顯著的安全性機(jī)制。

5. Zsh Shell

Zsh Shell是具有許多強(qiáng)大功能的創(chuàng)新型現(xiàn)代Linux Shell。它是在Bash之上開發(fā)的,并在有效的命令解釋器旁邊提供了一個交互式登錄Shell。Zsh以其性能而聞名,它在許多方面都大大改善了Linux的許多開源Shell。它還借鑒了90年代其他流行Shell的元素,包括Ksh和TcshShell。如果您是Linux專家,正在尋找高級Linux Shell,請嘗試Zsh。

Zsh Shell的功能:

Zsh的自動完成功能非常智能,并且支持文件和路徑的高度交互式自動完成。

這個開源Unix shell的歷史記錄共享機(jī)制非常龐大,允許同時運行的許多不同終端實例的共享歷史記錄。

用戶可以從其流行的,社區(qū)驅(qū)動的框架oh-my-zsh中選擇400多個插件和200多個主題。

Zsh還支持vi模式,智能轉(zhuǎn)義,遞歸遍歷,將輸出傳遞到臨時文件,拼寫更正以及許多其他交互式功能。

6. Tcsh Shell

Tcsh shell是C shell的升級版本,它提供可編程命令完成和命令行編輯作為其關(guān)鍵功能。它與Csh Shell完全兼容,可以用作交互式登錄Shell和Shell腳本處理器。Tcsh帶有功能強(qiáng)大的命令行編輯器,現(xiàn)代化的歷史記錄機(jī)制,可編程的單詞補(bǔ)全,作業(yè)控制,拼寫檢查支持以及類似于C的語法,后跟Csh。該Unix shell最適合高級程序員。

Tcsh Shell的功能:

Tcsh內(nèi)置了對文件和變量的自動完成以及可編程完成和別名參數(shù)選擇器的支持。

當(dāng)在終端上運行shell腳本時,它允許經(jīng)驗豐富的用戶合并通配符以提高靈活性。

該Linux shell的預(yù)構(gòu)建where命令的作用類似于Bash中的which命令,但顯示$PATH目錄中指定的目標(biāo)的每個位置。

Tcsh是FreeBSD及其后代(例如DragonFly BSD和DesktopBSD)的默認(rèn)命令行解釋器。

7. Fish Shell

Fish Shell是一種友好的交互式Unix Shell,旨在替代Linux早期的開源Shell。除Windows操作系統(tǒng)外,每個Linux和BSD發(fā)行版均提供此功能。Fish提供了一組強(qiáng)大的功能,使您更容易發(fā)現(xiàn),記住和使用計算機(jī)上令人興奮的Linux命令。如果您正在尋找Linux桌面的智能命令行Shell,F(xiàn)ish當(dāng)然值得一試。

Fish Shell的功能:

Fish提供了一個強(qiáng)大的自動建議功能,即根據(jù)命令行歷史和當(dāng)前目錄進(jìn)行搜索。

其功能豐富的Tav完成功能允許用戶使用通配符和大括號擴(kuò)展來擴(kuò)展文件路徑,變量和許多特定于命令的完成。

Fish內(nèi)置了對24位真彩色的支持,使您的終端會話更加豐富多彩和更具吸引力。

對于尋求開箱即用且無需配置的開源shell的人們來說,這是一個很好的shell。

8. Ion Shell

Ion Shell是一個令人著迷的現(xiàn)代Shell,它具有簡單但功能強(qiáng)大的語法,并顯著提高了性能。它是使用Rust編程語言編寫的,因此它不易受到許多Bash用戶遇到的常見“ ShellShcok”問題的影響。Ion從流行的Shell中借鑒了許多設(shè)計元素,例如Bash,F(xiàn)ish和Oil。因此,無需花費太多時間即可啟動并運行此出色的shell。

Ion Shell的功能:

Ion Shell比Dash快,而Dash本身比當(dāng)今大多數(shù)Linux機(jī)器使用的標(biāo)準(zhǔn)Bash Shell快四倍。

由于是用Rust編寫的,所以Ion提供了比傳統(tǒng)的基于C/C++的Unix命令行Shell更高的內(nèi)存安全性。

Ion具有對字符串,數(shù)組,glob,大括號(范圍,排列,嵌套大括號),算術(shù)和過程的內(nèi)置擴(kuò)展支持。

它簡單,干凈和簡潔的設(shè)計使其相對易于使用,并允許用戶將shell編譯為靜態(tài)二進(jìn)制文件。

9. Dash shell

Dash shell是Debian Almquist shell(Dash)的縮寫,并且是Debian操作系統(tǒng)的默認(rèn)命令行解釋器。它比標(biāo)準(zhǔn)的GNU Bash shell小得多,但仍然以POSIX兼容為目標(biāo)。Dash在移植到Linux生態(tài)系統(tǒng)之前已經(jīng)從NetBSD版本的ash(Almquist SHell)衍生而來,并且比傳統(tǒng)的Unix shell具有顯著的性能提升。Dash比大多數(shù)Shell更快,并且需要更少的空間和更少的庫。

Dash shell的功能:

Dash是Linux最快的開源Shell之一,其時鐘速度幾乎是Bash和其他標(biāo)準(zhǔn)Shell的四倍。

Dash的簡約設(shè)計使其比日常的命令行解釋器小得多,并且只要有限的系統(tǒng)資源(磁盤空間,RAM或CPU)。

由于Dash的代碼庫明顯較小,因此Dash的受攻擊面較小,并且對于頻繁的Shell攻擊非常安全。

Ubuntu或Debian系統(tǒng)用戶可以在終端窗口中輸入man dash來找到有關(guān)Dash的更多信息。

10. Eshell

Eshell是使用Emacs Lisp編寫的一種方便的命令行解釋器程序,其目的是在提供對Lisp代碼的無縫支持的同時具有高度的可移植性。它提供了大量日常功能,包括自動完成,歷史記錄管理,作業(yè)控制機(jī)制等等。Eshell附帶的腳本結(jié)構(gòu)非常簡單,可以正確完成工作。如果您是Lisp程序員或前衛(wèi)的Emacs愛好者,那么Eshell可以成為您理想的Linux Shell。

Eshell的功能:

Eshell不是一個獨立的終端模擬器,而是一個日常shell,可以使用Emacs的功能與您的計算機(jī)進(jìn)行通信。

到目前為止,它不直接支持交互式程序,因此您需要在單獨的ANSI術(shù)語實例中調(diào)用它們。

Eshell對歷史記錄修改和交互的默認(rèn)支持非常好,其語法在某種程度上類似于Bash和Zsh。

用戶可以通過修改eshell-prompt-function變量來自定義Eshell,該變量定義了提示在系統(tǒng)中的行為。

11. rc Shell

rc shell是經(jīng)典的命令行解釋器,與Bourne shell極為相似。但是,與Bourne Shell相比,它具有某種簡單的結(jié)構(gòu)。這是因為rc使用類似C的控制結(jié)構(gòu),而不是sh使用類似ALGOL的語法。Tom Duff是該Unix Shell的主要開發(fā)人員,以其高質(zhì)量的程序設(shè)計和出色的解決問題能力而聞名。

rc Shell的功能:

rc使用if not scripting結(jié)構(gòu)而不是vanilla else,并提供與在Bourne shell中使用的for循環(huán)相同的for循環(huán)。

盡管rc的輸入規(guī)則很弱,但是它結(jié)合了強(qiáng)大的機(jī)制來操縱變量。

rc相當(dāng)輕巧,因此比許多傳統(tǒng)的Linux開源shell更快。

它具有對異常處理,搜索和替換機(jī)制,模式匹配等的出色支持。

12. Elvish shell

自從幾個月前嘗試使用Elvish Shell以來,它是我最喜歡的Linux開源shell之一。這是一個真正出色的命令行解釋器,可讓您在計算機(jī)上執(zhí)行各種操作。從操縱系統(tǒng)本身到編寫雄辯的腳本,Elvish均可用于完成大量任務(wù)。它帶有豐富的健壯函數(shù)庫,可用于字符串處理,正則表達(dá)式匹配,JSON解析,聯(lián)網(wǎng)等。

Elvish shell的功能:

Elvish管道允許系統(tǒng)與標(biāo)準(zhǔn)文本數(shù)據(jù)一起流式傳輸諸如列表,地圖甚至功能之類的結(jié)構(gòu)化數(shù)據(jù)。

它帶有類似C的熟悉語法,對于經(jīng)驗豐富的Linux用戶而言,使用Elvish編寫腳本非常直觀。

Elvish是使用Go編程語言編寫的,因此與其他Unix Shell相比,它是類型安全的。

該Unix Shell附帶了一個預(yù)構(gòu)建的文件管理器,使系統(tǒng)管理更加舒適。

關(guān)于“常用的Linux shell有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI