shell是一門腳本語言,,即shell腳本,,shell也是解釋執(zhí)行的腳本語言,可直接調(diào)用Linux命令,所以它在Linux系統(tǒng)中有著非常重要的作用,。那么Linux shell有哪些類型?我們來看看吧,。 shell腳本語言是弱類型語言,無需定義變量的類型就可使用,,主要有兩大類:bourne shell,、C shell。 第一種:Bourne shell Bourne shell又包括Bourne shell (sh),、Korn shell (ksh),、Bourne Again Shell(bash)三種類型。 Bourne shell (sh)由AT&T的Steve Bourne開發(fā),,是標(biāo)準(zhǔn)的UNIX Shell,,很多UNIX系統(tǒng)都配有sh。 Korn shell (ksh)由David Korn開發(fā),,是Bourne shell(sh)的超集合,,并且添加了csh引入的新功能,是目前很多UNIX系統(tǒng)標(biāo)準(zhǔn)配置的Shell,,在這些系統(tǒng)上的/bin/sh往往是指向/bin/ksh的符號鏈接,。 Bourne Again Shell即bash由GNU項(xiàng)目組開發(fā),主要目標(biāo)是與POSIX標(biāo)準(zhǔn)保持一致,,同時(shí)兼顧對sh的兼容,,bash從csh和ksh借鑒了很多功能,是各種Linux發(fā)行版默認(rèn)配置的Shell,,在Linux系統(tǒng)上的/bin/sh往往是指向/bin/bash的符號鏈接,。雖然如此,bash和sh還是有很多的不同,,一方面,,bash擴(kuò)展了一些命令和參數(shù),另一方面,,bash并不完全和sh兼容,,它們有些行為并不一致,但大多數(shù)企業(yè)運(yùn)維的情況下區(qū)別不大,,特殊場景可以使用bash替代sh,。 第二種:C shell C shell又包括csh、tcsh兩種類型,。 csh由Berkeley大學(xué)開發(fā),,隨BSD UNIX發(fā)布,它的流程控制語句很像C語言,,支持很多Bourne Shell所不支持的功能,,例如:作業(yè)控制、別名、系統(tǒng)算術(shù),、命令歷史,、命令行編輯等。 tcsh是csh的增強(qiáng)版,,加入了命令補(bǔ)全等功能,,在FreeBSD、Mac OS X等系統(tǒng)上替代了csh,。 以上介紹的這些Shell中,,較為通用的是標(biāo)準(zhǔn)的Bourne shell (sh)和C shell (csh)。其中Bourne shell (sh)已經(jīng)被Bourne Again shell (bash) 取代,。 可通過以下命令查看CentOS7系統(tǒng)的Shell支持情況,。 [root@oldboy ~]# cat /etc/shells /bin/sh #<==這是Linux里常用的Shell,指向/bin/bash,。 /bin/bash #<==這是Linux里常用的Shell,,也是默認(rèn)使用的Shell。 /usr/bin/sh /usr/bin/bash Linux系統(tǒng)中的主流Shell是bash,,bash是由Bourne Shell(sh)發(fā)展而來的,,但bash還包含了csh和ksh的特色,但大多數(shù)腳本都可以不加修改地在sh上運(yùn)行,,如果你使用sh后發(fā)現(xiàn)結(jié)果和預(yù)期有差異,,那么可以嘗試使用bash替代sh,。 |
|