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