當前位置:編程學習大全網 - 編程語言 - linux shell有哪些 類型

linux shell有哪些 類型

2.4腳本語言的種類

2.4.1 Shell腳本語言的種類

Shell腳本語言是弱類型語言(無需定義變量的類型就可使用),在Unix/Linux中主要有兩大類Shell,壹類是Bourne shell,另壹類是C shell。

1. 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。

2. 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。

內容來源:《跟老男孩學linux運維:Shell高級編程實戰》第02章_Shell腳本初步入門

  • 上一篇:關於大自然的啟示發明出來的東西有哪些
  • 下一篇:節點編程遊戲
  • copyright 2024編程學習大全網