三種shell:1、bourne shel,簡稱sh,是一個交換式的命令解釋器和命令編程語言;2、c shell,簡稱csh,使用“類C”語法,是具有C風(fēng)格的一種shell;3、korn shell,向上兼容sh,并包含csh的很多特性。
本教程操作環(huán)境:linux5.9.8系統(tǒng)、Dell G3電腦。
shell是什么?
linux系統(tǒng)的shell作為操作系統(tǒng)的外殼,為用戶提供使用操作系統(tǒng)的接口。它是命令語言、命令解釋程序及程序設(shè)計語言。
shell是用戶和Linux內(nèi)核之間的接口程序,如果把Linux內(nèi)核想象成一個球體的中心,shell就是圍繞內(nèi)核的外層。當(dāng)從shell或其他程序向Linux傳遞命令時,內(nèi)核會做出相應(yīng)的反應(yīng)。
shell是一個命令語言解釋器,它擁有自己內(nèi)建的shell命令集,shell也能被系統(tǒng)中的其他應(yīng)用程序所調(diào)用。用戶在提示符下輸入的命令都由shell先解釋然后傳給Linux核心。
linux常用的三種shell
Linux中的shell有多種類型,其中最常用的三種是bourne shell(sh)、c shell(csh)、korn shell(ksh)。
1、Bourne shell
Bourne shell 是一個交換式的命令解釋器和命令編程語言。
Bourne shell?是標準的 unix shell,以前常被用來做為管理系統(tǒng)之用。大部份的系統(tǒng)管理命令文件,例如 rc start、stop 與shutdown 都是Bourne shell 的命令檔,且在單一使用者模式(single user mode)下以 root 簽入時它常被系統(tǒng)管理者使用。Bourne shell 是由?AT&T?發(fā)展的,以簡潔、快速著名。 Bourne shell 提示符號的默認值是 $。
2、c shell
c shell是一種比 Bourne Shell更適合的變種 Shell,使用的是“類C”語法,csh是具有c語言風(fēng)格的一種shell,其內(nèi)部命令有52個,較為龐大。
C shell?是柏克萊大學(xué)(Berkeley)所開發(fā)的,且加入了一些新特性,如命令列歷程(history)、別名(alias)、內(nèi)建算術(shù)、檔名完成(filename completion)、和工作控制(job control)。對于常在交談模式下執(zhí)行 shell 的使用者而言,他們較喜愛使用 C shell;但對于系統(tǒng)管理者而言,則較偏好以 Bourne shell 來做命令檔,因為 Bourne shell 命令檔比 C shell 命令檔來的簡單及快速。C shell 提示符號的默認值是 %。
3、korn shell
korn shell是一個 Unix shell 。它由貝爾實驗室的David Korn在二十世紀八十年代早期編寫。它完全向上兼容 Bourne shell 并包含了 C shell 的很多特性,例如貝爾實驗室用戶需要的命令編輯。
Korn shell?是Bourne shell 的超集(superset),由?AT&T?的 David Korn 所開發(fā)。它增加了一些特色,比 C shell 更為先進。Korn shell 的特色包括了可編輯的歷程、別名、函式、正規(guī)表達式萬用字符(regular expression wildcard)、內(nèi)建算術(shù)、工作控制(job control)、共作處理(coprocessing)、和特殊的除錯功能。Bourne shell 幾乎和 Korn shell 完全向上兼容(upward compatible),所以在 Bourne shell 下開發(fā)的程序仍能在 Korn shell 上執(zhí)行。Korn shell 提示符號的默認值也是 $。在 Linux 系統(tǒng)使用的 Korn shell 叫做 pdksh,它是指 public Domain Korn Shell。
三種shell各有優(yōu)劣:
sh是Unix最初使用的shell,并且在每種Unix上都可以使用。sh在shell編程方面相當(dāng)優(yōu)秀,但在處理與用戶的交互方面做得不如csh和ksh。
Linux默認的shell是bourne again shell(bash),它與sh完全向后兼容。bash放在bin/bash中,它有許多特色,可以提供如命令補全、命令編輯和命令歷史表等功能它還包含了很多csh和ksh中的優(yōu)點,有靈活和強大的編程接口,同時又有友好的用戶界面。
因此,我們至少得知道sh和bash都是Linux上的默認shell,而bash是sh的升級版。
相關(guān)推薦:《Linux視頻教程》