1. 程式人生 > >What is a shell and what is Bash?

What is a shell and what is Bash?

space import span process ext 屏蔽 解釋器 ffffff shadow

常聽說:shell編程,Bash編程,和Bash shell編程,究竟什麽是shell,又何為Bash,兩者有什麽聯系…



簡單的說,shell是命令解釋器,用於解析和執行命令。它對用戶屏蔽了操作系統底層(kernel)的復雜性,是兩者間的橋梁。



Bourne shell是早期Unix系統使用的shell,位於/bin/sh,簡稱sh,其為shell的具體化。可理解為:shell是一個對象,Bourne shell僅是該對象的一個實例。


sh既是命令解釋器,能執行命令;也是編程語言,可以將各種命令組合,加上邏輯,形成新的命令。 且sh成為了後續各種shell事實上的標準,Unix-like系統上的shell都會兼容Bourne shell。



Bash(Bourne-Again SHell),也是一種shell,最大程度的和sh兼容,並從Korn shell ksh和C shell csh引入了一些實用的特性。在交互性,和可編程方面比sh更加強大。



現在前面的說法很明了了:

shell編程,是指使用一種shell(可能是Bash)進行編程;就像說使用編程語言編程,最終還要選取一種語言嘛。


Bash編程,是指使用bash(這個shell)進行編程;就像說使用Python(編程語言)編程。


Bash shell編程,是“Bash編程”啰嗦的說法。


若感興趣可關註訂閱號”數據庫最佳實踐”(DBBestPractice).

技術分享圖片

What is a shell and what is Bash?