學習linux Shell腳本編程時,你可能會遇到Shell分類的問題,這里將介紹Shell的幾種分類,經過仔細整理,在這里拿出來和大家分享一下。
在UNIX/linux Shell中主要有這幾類shell:
◆Bourne shell (bsh)
◆C shell ( csh)
◆Korn shell ( ksh)
◆Bourne Again shell ( bash)
◆POSIX shell ( sh)
◆TENEX/TOPS C shell ( tcsh)
◆TC Shell(tesh)
◆Z Shell(zsh)
◆Bourne Shell
首個重要的標準Unix Shell是1970年底在V7 Unix(AT&T第7版)中引入的,并且以它的創始科技部基礎條件平臺“國家氣象網絡計算應用節點建設”(2004DKA50730)資助者 Stephen Bourne的名字命名。Bourne Shell作為 編程語言是基于Algol語言的,而且主要用于系統管理任務自動化。雖然它由于簡單而迅速流行,但缺乏交互式使用的許多特性,如歷史、別名和作業控制。
◆C Shell
20世紀70年代末,在加利福尼亞大學Berkeley 研制的C Shell是作為BSD Unix的一部分發布的。 這種主要由Bill Joy所寫的Shell提供了許多標準 Bourne Shell里不提供的附加特征。linux Shell中的C Shell是基于 C編程語言的,而且當用做編程語言時,它使用類似 C語言的語法。它也提供交互使用的增強功能,如命令行歷史、別名和作業控制。因為這種Shell是在大型機上設計的,而且加入了大量附加的特征,所以跟linux Shell中的Bourne Shell相比,C Shell在小型機上有運行緩慢的趨勢,甚至在大型機上也運行緩慢。
◆Korn Shell
由于Bo urne Shell和C Shell都可使用,所以現在Unix用戶有了選擇余地,同時也在選擇Shell的問題上產生了困擾。來自AT&T的David Korn于20世紀80年代中期開發了Korn Shell,發布于1996年,并且在1998年正式成為Unix的SVR4分支的組成部分。其實linux Shell中的Bourne Shell的超集Korn Shell,不僅能在Unix系統上運行,而且能在OS/2、VMS和DOS上運行。它提供與Bourne Shell的向上兼容性,增加了許多C Shell的受歡迎的特征,而且快捷有效。AIX使用的是最為廣泛使用的1998年版本的Korn Shell。
除了以上提到的3種“標準”Unix Shell外還 有許多其他的Shell也在使用,如:
◆Bourne Again Shell
Bourne Again Shell(bash)是GNU計劃的一部分,用來替代Bourne Shell。它用于基于GNU 的系統(如Linux)。大多數Linux(Red Hat、Slaekware、Caldera)都以bash作為缺省的Shell,并且運行sh時,其實調用的是bash。
◆POSIX Shell
POSIX Shell是Korn Shell的一個變種。當前提供POSIX Shell的最大賣主是Hewlett—Packard公司。在HP—UX 11.0版本中,linux Shell中的POSIX Shell就是/bin/sh,而bsh是/usr/old/bin/sh。
◆TC Shell
TC Shell(tesh)是C Shell的擴充版本,并完全兼容C Shell,是那些更喜歡C語法的用戶可以選擇的bash的替代品。
◆Z Shell
Z Shell(zsh)組合了Bourne Ag ain Shell、TCShell和Korn Shell的許多特點,并吸收了一些新特 點。Zsh與Kom Shell最相像。
各主要操作系統下缺省的shell:
AIX 下是Korn Shell.
Solaris和FreeBSD缺省的是Bourne shell.
HP-UX缺省的是POSIX shell.
Linux是Bourne Again shell.
如何區分操作系統使用的哪種shell:
在登錄進入 Unix/linux后,操作系統使用戶處于自己的起始目錄(home directory)下運行Shell,當前最常用的Shell有sh、esh和ksh,用戶很多時候不需要知道或擔心使用的是哪種Shell,可以通過觀察 Shell提示符來辨別當前使用的是那種,下面是缺 省的提示符,當然也可以很容易被修改:
Bourne Shell使用美元符($);
linux Shell中的C Shell使用百分號(%);
linux Shell中的Korn Shell使用美元符($).
新聞熱點
疑難解答