上面提到過,Shell 是一種腳本語言,那么,就必須有解釋器來執(zhí)行這些腳本。
Unix/Linux 上常見的 Shell 腳本解釋器有 bash、sh、csh、ksh 等,習慣上把它們稱作一種Shell。我們常說有多少種 Shell,其實說的是 Shell 腳本解釋器
。
bash 是 Linux 標準默認的 shell,本教程也基于 bash 講解
。bash 由 Brian Fox 和 Chet Ramey 共同完成,是 BourneAgain Shell 的縮寫,內(nèi)部命令一共有40個。
Linux 使用它作為默認的 shell 是因為它有諸如以下的特色:
sh 由 Steve Bourne 開發(fā),是 Bourne Shell 的縮寫,sh 是 Unix 標準默認的 shell。
ash shell 是由 Kenneth Almquist 編寫的,Linux 中占用系統(tǒng)資源最少的一個小 shell,它只包含24個內(nèi)部命令,因而使用起來很不方便。
csh 是 Linux 比較大的內(nèi)核,它由以 William Joy 為代表的共計47位作者編成,共有52個內(nèi)部命令。該 shell 其實是指向 /bin/tcsh 這樣的一個 shell,也就是說,csh 其實就是 tcsh。
ksh 是 Korn shell 的縮寫,由 Eric Gisin 編寫,共有42條內(nèi)部命令。該 shell 最大的優(yōu)點是幾乎和商業(yè)發(fā)行版的 ksh 完全兼容,這樣就可以在不用花錢購買商業(yè)版本的情況下嘗試商業(yè)版本的性能了。
注意:bash 是 Bourne Again Shell 的縮寫,是 linux 標準的默認 shell ,它基于 Bourne shell,吸收了 C shell 和 Korn shell 的一些特性。bash 完全兼容 sh,也就是說,用 sh 寫的腳本可以不加修改的在 bash 中執(zhí)行。