Linux shell有哪些型別?Linux入門知識分享

老男孩IT教育機構發表於2021-08-12

  shell是一門指令碼語言,即shell指令碼,shell也是解釋執行的指令碼語言,可直接呼叫Linux命令,所以它在Linux系統中有著非常重要的作用。那麼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開發,是標準的UNIX Shell,很多UNIX系統都配有sh。

  Korn shell (ksh)由David Korn開發,是Bourne shell(sh)的超集合,並且新增了csh引入的新功能,是目前很多UNIX系統標準配置的Shell,在這些系統上的/bin/sh往往是指向/bin/ksh的符號連結。

  Bourne Again Shell即bash由GNU專案組開發,主要目標是與POSIX標準保持一致,同時兼顧對sh的相容,bash從csh和ksh借鑑了很多功能,是各種Linux發行版預設配置的Shell,在Linux系統上的/bin/sh往往是指向/bin/bash的符號連結。雖然如此,bash和sh還是有很多的不同,一方面,bash擴充套件了一些命令和引數,另一方面,bash並不完全和sh相容,它們有些行為並不一致,但大多數企業運維的情況下區別不大,特殊場景可以使用bash替代sh。

  第二種:C shell

  C shell又包括csh、tcsh兩種型別。

  csh由Berkeley大學開發,隨BSD UNIX釋出,它的流程控制語句很像C語言,支援很多Bourne Shell所不支援的功能,例如:作業控制、別名、系統算術、命令歷史、命令列編輯等。

  tcsh是csh的增強版,加入了命令補全等功能,在FreeBSD、Mac OS X等系統上替代了csh。

  以上介紹的這些Shell中,較為通用的是標準的Bourne shell (sh)和C shell (csh)。其中Bourne shell (sh)已經被Bourne Again shell (bash) 取代。

  可透過以下命令檢視CentOS7系統的Shell支援情況。

  [root@oldboy ~]# cat /etc/shells

  /bin/sh #<==這是Linux裡常用的Shell,指向/bin/bash。

  /bin/bash #<==這是Linux裡常用的Shell,也是預設使用的Shell。

  /usr/bin/sh

  /usr/bin/bash

  Linux系統中的主流Shell是bash,bash是由Bourne Shell(sh)發展而來的,但bash還包含了csh和ksh的特色,但大多數指令碼都可以不加修改地在sh上執行,如果你使用sh後發現結果和預期有差異,那麼可以嘗試使用bash替代sh。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2786638/,如需轉載,請註明出處,否則將追究法律責任。

相關文章