鍍金池/ 教程/ Linux/ 幾種常見的 Shell
Shell 特殊變量:Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)
Shell 文件包含
Shell 輸入輸出重定向:Shell Here Document,/dev/null
Shell 函數(shù)參數(shù)
Shell 簡(jiǎn)介
Shell printf命令:格式化輸出語(yǔ)句
第一個(gè) Shell 腳本
Shell echo 命令
Shell 運(yùn)算符:Shell 算數(shù)運(yùn)算符、關(guān)系運(yùn)算符、布爾運(yùn)算符、字符串運(yùn)算符等
Shell 數(shù)組:shell 數(shù)組的定義、數(shù)組長(zhǎng)度
Shell until 循環(huán)
Shell if else 語(yǔ)句
Shell 變量:Shell 變量的定義、刪除變量、只讀變量、變量類型
Shell 字符串
Shell 與編譯型語(yǔ)言的差異
Shell 函數(shù):Shell 函數(shù)返回值、刪除函數(shù)、在終端調(diào)用函數(shù)
Shell 替換
Shell case esac 語(yǔ)句
Shell for 循環(huán)
什么時(shí)候使用 Shell
Shell 注釋
幾種常見的 Shell
Shell while 循環(huán)
Shell break 和 continue 命令

幾種常見的 Shell

上面提到過,Shell 是一種腳本語(yǔ)言,那么,就必須有解釋器來執(zhí)行這些腳本。

Unix/Linux 上常見的 Shell 腳本解釋器有 bash、sh、csh、ksh 等,習(xí)慣上把它們稱作一種Shell。我們常說有多少種 Shell,其實(shí)說的是 Shell 腳本解釋器。

bash

bash 是 Linux 標(biāo)準(zhǔn)默認(rèn)的 shell,本教程也基于 bash 講解。bash 由 Brian Fox 和 Chet Ramey 共同完成,是 BourneAgain Shell 的縮寫,內(nèi)部命令一共有40個(gè)。

Linux 使用它作為默認(rèn)的 shell 是因?yàn)樗兄T如以下的特色:

  • 可以使用類似 DOS 下面的 doskey 的功能,用方向鍵查閱和快速輸入并修改命令。
  • 自動(dòng)通過查找匹配的方式給出以某字符串開頭的命令。
  • 包含了自身的幫助功能,你只要在提示符下面鍵入 help 就可以得到相關(guān)的幫助。

sh

sh 由 Steve Bourne 開發(fā),是 Bourne Shell 的縮寫,sh 是 Unix 標(biāo)準(zhǔn)默認(rèn)的 shell。

ash

ash shell 是由 Kenneth Almquist 編寫的,Linux 中占用系統(tǒng)資源最少的一個(gè)小 shell,它只包含24個(gè)內(nèi)部命令,因而使用起來很不方便。

csh

csh 是 Linux 比較大的內(nèi)核,它由以 William Joy 為代表的共計(jì)47位作者編成,共有52個(gè)內(nèi)部命令。該 shell 其實(shí)是指向 /bin/tcsh 這樣的一個(gè) shell,也就是說,csh 其實(shí)就是 tcsh。

ksh

ksh 是 Korn shell 的縮寫,由 Eric Gisin 編寫,共有42條內(nèi)部命令。該 shell 最大的優(yōu)點(diǎn)是幾乎和商業(yè)發(fā)行版的 ksh 完全兼容,這樣就可以在不用花錢購(gòu)買商業(yè)版本的情況下嘗試商業(yè)版本的性能了。

注意:bash 是 Bourne Again Shell 的縮寫,是 linux 標(biāo)準(zhǔn)的默認(rèn) shell ,它基于 Bourne shell,吸收了 C shell 和 Korn shell 的一些特性。bash 完全兼容 sh,也就是說,用 sh 寫的腳本可以不加修改的在 bash 中執(zhí)行。