一、關于Shell
Shell是用C語言編寫的程式,是使用者使用Linux或Unix的橋梁。
1、Shll 既是一種語言指令,又是一種程式設計語言。
Shell 作為指令語言,可以互動式的解釋和執行使用者輸入的指令;作為程式語言,可以定義各種變量和參數,并提供了進階語言中才有的控制結構,包括循環和分支。Shell 雖然不是Linux或Unix系統核心的一部分,但是可以調用系統核心的大部分功能來執行程式、建立檔案并以并行的方式來協調各個程式的運作。
2、Shell 的執行指令的兩種方式
互動式:解釋執行使用者的指令,即使用者輸入一條指令,Shell就解釋一條指令。
批處理:使用者事先編寫一個Shell腳本,其中包含狠毒指令,讓shell一次把這些指令執行完畢。
3、Shell 腳本與程式設計語言的差別
Shell腳本和程式設計語言很相似,也有變量和流程控制語句,但Shell腳本是用來解釋執行的,不需要編譯。
4、常用的 Shell 類型
Shell 腳本是一種腳本語言,需要要有解釋器來執行。
Unix和Linux 上常見的 Shell 腳本解釋器有 bash、sh、csh、ksh 等,習慣上把他們稱作一種shell。
4.1 bash
bash 是Linux标準預設的shell,由Brian Fox和Chet Ramey共同完成,是Bourne Again Shell的縮寫,内部指令一共有40個。有以下優點:
1)、可以使用類似DOS下面的doskey的功能,用方向鍵查閱和快速輸入并修改指令
2)、自動通過查找比對的方式給出以某字元串開頭的指令
3)、包含了自身的幫助功能,主要在提示符下輸入help就能得到相關幫助
4.2 sh
由Steve Bourne開發,是Bourne Shell的縮寫,sh 是Unix 标準預設的shell(bash完全相容sh)。
4.3 ash
由Kenneth Almquist編寫的,Linux中占用系統資源最少的一個小shell,它隻包含24個内部指令,因而使用起來很不友善。
4.4 ksh
由Eric Gisin編寫,是Korn shell的縮寫,共有42條内部指令。該shell最大的優點是幾乎和商業發行版的ksh完全相容(可以在不花錢購買商業版的情況下嘗試商業版本的性能)。
4.5 csh
csh 是Linux比較大的核心,它由以William Joy為代表的共計47位作者編成,共有52個内部指令。該shell其實是指向/bin/tcsh這樣的一個shell,也就是說,csh其實就是tcsh。