三種shell:1、bourne shel,簡稱sh,是交換式的命令解釋器和命令程式語言;2、c shell,簡稱csh,使用「類別C」語法,是具有C風格的一種shell;3、korn shell,向上相容sh,並包含csh的許多特性。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
shell是什麼?
Linux系統的shell作為作業系統的外殼,提供使用者使用作業系統的介面。它是命令語言、命令解釋程式及程式設計語言。
shell是使用者和Linux核心之間的介面程序,如果把Linux核心想像成球體的中心,shell就是圍繞核心的外層。當從shell或其他程式向Linux傳遞命令時,核心會做出相應的反應。
shell是一個命令語言解釋器,它擁有自己內建的shell命令集,shell也能被系統中的其他應用程式所呼叫。使用者在提示字元下輸入的指令都由shell先解釋然後傳給Linux核心。
linux常用的三種shell
Linux中的shell有多種類型,其中最常用的三種是bourne shell(sh )、c shell(csh)、korn shell(ksh)。
1、Bourne shell
Bourne shell 是一個交換式的命令解釋器和命令程式語言。
Bourne shell 是標準的 UNIX shell,以前常用來做管理系統之用。大部份的系統管理指令文件,例如 rc start、stop 與shutdown 都是Bourne shell 的指令檔,且在單一使用者模式(single user mode)下以 root 簽入時它常被系統管理者使用。 Bourne shell 是由 AT&T 發展的,以簡潔、快速聞名。 Bourne shell 提示符號的預設值是 $。
2、c shell
c shell是比Bourne Shell更適合的變種Shell,使用的是「類別C」語法,csh是具有C語言風格的一種shell,其內部指令有52個,較為龐大。
C shell 是柏克萊大學(Berkeley)所發展的,並且加入了一些新特性,如命令列歷程(history)、別名(alias)、內建算術、檔名完成(filename completion )、和工作控制(job control)。對於常在交談模式下執行shell 的使用者而言,他們較喜愛使用C shell;但對於系統管理者而言,則較偏好以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 所發展。它增加了一些特色,比 C shell 更先進。 Korn shell 的特色包括了可編輯的歷程、別名、函數、正規表達式萬用字元(regular expression wildcard)、內建算術、工作控制(job control)、共作處理(coprocessing)、和特殊的除法錯功能。 Bourne shell 幾乎和 Korn shell 完全向上相容(upward compatible),所以在 Bourne shell 下開發的程式仍能在 Korn shell 上執行。 Korn shell 提示符號的預設值也是 $。在 Linux 系統使用的 Korn shell 叫做 pdksh,它是指 Public Domain Korn Shell。
三種shell各有優劣:
sh是Unix最初使用的shell,並且在每種Unix上都可以使用。 sh在shell程式設計方面相當優秀,但在處理與使用者的互動方面做得不如csh和ksh。
Linux預設的shell是bourne again shell(bash),它與sh完全向後相容。 bash放在bin/bash中,它有許多特色,可以提供如命令補全、命令編輯和命令歷史表等功能它還包含了很多csh和ksh中的優點,有靈活和強大的編程接口,同時又有友善的使用者介面。
因此,我們至少得知道sh和bash都是Linux上的預設shell,而bash是sh的升級版。
相關推薦:《Linux影片教學》
以上是linux的常用shell有哪三種的詳細內容。更多資訊請關注PHP中文網其他相關文章!