linux shell有:1、Bourne Shell;2、C Shelll;3、Korn Shell;4、Bourne Again Shell;5、Almquish shell;6、Z Shell;7、Fish等等。
本教程操作環(huán)境:Ubuntu 16.04系統(tǒng)、Dell G3電腦。
什么是Linux Shell?
Shell是系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內(nèi)核去執(zhí)行。是在Linux內(nèi)核與用戶之間的解釋器程序,現(xiàn)在Linux通常指/bin/bash解釋器來負(fù)責(zé)向內(nèi)核翻譯以及傳達(dá)用戶/程序指令,shell相當(dāng)于操作系統(tǒng)的“外殼”
Linux系統(tǒng)提供多種不同的Shell以供選擇。
Bourne Shell
Bourne Shell(簡稱sh)是AT&T Bell實驗室的 Steven Bourne為AT&T的Unix開發(fā)的,它是Unix的默認(rèn)Shell,也是其它Shell的開發(fā)基礎(chǔ)。Bourne Shell在編程方面相當(dāng)優(yōu)秀,但在處理與用戶的交互方面不如其它幾種Shell。
C Shelll
C Shelll(簡稱csh)是加州伯克利大學(xué)的Bill Joy為BSD Unix開發(fā)的,與sh不同,它的語法與C語言很相似。它提供了Bourne Shell所不能處理的用戶交互特征,如命令補全、命令別名、歷史命令替換等。
但是,C Shell與Bourne Shell并不兼容。
Korn Shell
Korn Shell(簡稱ksh)是AT&T Bell實驗室的David Korn開發(fā)的,它集合了C Shell和Bourne Shell的優(yōu)點,并且與Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和編程交互界面都很好。
Bourne Again Shell
最常用的shell是Bourne Again Shell,或bash。它是為GNU項目而設(shè)計的,目的是作為Bourne Shell的開源替代品,而Bourne Shell是在UNIX系統(tǒng)上使用的一種常用的Shell。Bash還從其他一些UNIX shell中獲得了靈感,比如C shell(csh)和KornShell(ksh)。每個主要的UNIX Shell特性都不同:Bourne Shell適用于編寫腳本,雖然使用C shell編寫腳本需要具備C編程語言知識,但是它確實提供了一些方便的工具,使其更適合交互使用。Bash將這種改進的交互性與Bourne Shell的簡易腳本結(jié)合在一起。雖然bash成為了Linux系統(tǒng)的默認(rèn)shell(現(xiàn)在對大多數(shù)發(fā)行版來說仍然如此),但如果可以改進的話,它不會阻止項目使用替代的shell。
Almquish shell
Almquish shell,或ash就是這樣的shell。此shell設(shè)計是為了與Bourne shell兼容,并且是輕量級的。但與此同時,它也缺少一些shell(如bash、ksh和csh)所具有的改進。它體積小,資源利用率低,這意味著它通常用于嵌入式系統(tǒng),比如那些使用BusyBox系統(tǒng)的系統(tǒng)。BusyBox通常用于Android設(shè)備的shell以及Linux安裝和引導(dǎo)過程的一部分。這意味著如果安裝或啟動Linux系統(tǒng)出現(xiàn)問題,可能是因為自己在BusyBox中使用了Almquish shell。還有一個名為dash((Debian Almquish shell)的端口,從這里將ash移植到Debian Linux。Dash是Debian和Ubuntu系統(tǒng)上的/bin/sh命令的默認(rèn)shell。
Z Shell
Z shell,或zsh,是另一個基于Bourne shell的shell。它還添加了一些來自bash、ksh和csh的特性。除此之外,它還擁有完善的命令行完成功能,不僅可以識別命令名,還可以識別選項和參數(shù),以及拼寫更正。它還可以使用主題和插件進行擴展,并且能夠以兼容模式運行,使其能夠像某些其他shell(如Bourne shell)一樣工作。關(guān)于插件和主題,有一個方便的工具可以幫助從命令行中找到并安裝它們,使設(shè)置變得非常容易。有了這些特性,Z shell已經(jīng)成為bash的流行替代品。
Fish
一個友好的互動shell。顧名思義,它的設(shè)計是為了使命令行成為一個更友好的地方。因此,fish有許多特性可以使在命令行中的工作更容易,比如語法高亮和錯誤檢查,利用顏色讓工作變得更容易。還有一些自動建議可以在鍵入命令時完成命令。缺點是它與Bourne shell不兼容,所以雖然對于初學(xué)者來說是一個很好的開始,但是在遷移到另一個shell時,有許多不可轉(zhuǎn)移的元素,比如它使用自己的腳本語言。
相關(guān)推薦:《Linux視頻教程》