Linux shell有哪些型別?Linux入門知識分享
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Linux入門知識分享】常見的Linux系統有哪些?Linux
- shell相關知識有哪些必備技能?Linux面試題分享Linux面試題
- Linux硬連結和軟連線有哪些知識點?Linux入門Linux
- Shell變數型別有哪些?linux運維shell程式設計變數型別Linux運維程式設計
- 【知識分享】租用伺服器型別有哪些伺服器型別
- 【知識分享】 linux伺服器的特性有哪些Linux伺服器
- 【Linux入門】Shell基本運算子的分類有哪些?Linux
- Linux運維工程師需要掌握哪些知識?Linux入門教程Linux運維工程師
- linux路由知識入門Linux路由
- 【知識分享】伺服器機箱型別有哪些伺服器型別
- Linux入門防火牆面試題有哪些?Linux技術分享Linux防火牆面試題
- 【知識分享】大資料安全問題有哪些型別大資料型別
- Linux基礎入門(一)初識ShellLinux
- Linux運維要了解哪些shell技能?Linux學習入門Linux運維
- cd命令有哪些相關知識?學linux運維命令基礎入門Linux運維
- 【知識分享】SIP伺服器是什麼有哪些型別伺服器型別
- 【知識分享】根伺服器是什麼有哪些型別伺服器型別
- 【知識分享】伺服器證書是什麼有哪些型別伺服器型別
- shell環境變數有哪些知識?linux運維的學習路線變數Linux運維
- 【Linux入門】Linux運維必學的命令有哪些?Linux運維
- 0基礎入門Linux 運維,應該先掌握哪些知識?Linux運維
- Linux有哪些特性值得喜愛?linux基礎知識學習Linux
- Linux shell基礎知識_8(下)Linux
- 什麼是shell?Linux常用的shell有哪些?Linux
- 【知識分享】域名伺服器的型別都有哪些伺服器型別
- Linux程式間的通訊方式有哪些?Linux入門教程Linux
- Linux主要應用領域有哪些?Linux基礎入門Linux
- Linux運維職業發展方向有哪些?Linux入門Linux運維
- Linux協議有哪些面試題?Linux運維入門Linux協議面試題運維
- Linux運維常用命令有哪些?Linux基礎入門Linux運維
- Linux系統有哪些應用領域?Linux運維入門Linux運維
- linux技術的發展方向有哪些?Linux運維入門Linux運維
- Linux常見目錄結構有哪些?Linux基礎入門Linux
- 在Linux中,Linux核心和Shell有何區別?Linux
- python的基礎資料型別有哪些知識Python資料型別
- MySQL的儲存方式有哪些?linux運維需要哪些知識MySqlLinux運維
- [Linux]Ansible自動化運維① - 入門知識Linux運維
- Nginx有哪些重要特性?學習linux系統知識NginxLinux