Shell簡介

智慧先行者發表於2016-12-11

  Shell本身是一個用C語言編寫的程式。Shell既是一種命令語言,又是一種程式設計語言。作為命令語言,它互動式地解釋和執行使用者輸入的命令;作為程式設計語言,它定義了各種變數和引數,並提供了許多在高階語言中才具有的控制結構,包括迴圈和分支。
  Shell呼叫了系統核心的大部分功能來執行程式、建立檔案並以並行的方式協調各個程式的執行。
Shell執行命令的方式:
互動式(Interactive):解釋執行使用者的命令,使用者輸入一條命令,Shell就解釋執行一條。
批處理(Batch):使用者事先寫一個Shell指令碼(Script),其中有很多條命令,讓Shell一次把這些命令執行完,而不必一條一條地敲命令。
  Shell指令碼和程式語言很相似,也有變數和流程控制語句,但Shell指令碼是解釋執行的,不需要編譯,Shell程式從指令碼中一行一行讀取並執行這些命令,相當於一個使用者把指令碼中的命令一行一行敲到Shell提示符下執行。
  Shell初學者請注意,在平常應用中,建議不要用 root 帳號執行 Shell 。作為普通使用者,不管您有意還是無意,都無法破壞系統;但如果是 root,那就不同了,只要敲幾個字母,就可能導致災難性後果。

 

  Shell是一種指令碼語言,就必須有直譯器來執行這些指令碼。Unix/Linux上常見的Shell指令碼直譯器有bash、sh、csh、ksh等。bash是Linux標準預設的shell,是BourneAgain Shell的縮寫,內部命令一共有40個。

  解釋型語言也被稱作“指令碼語言”。執行這類程式時,直譯器(interpreter)需要讀取我們編寫的原始碼(source code),並將其轉換成目的碼(object code),再由計算機執行。由於編譯後的目的碼(object code)非常接近計算機底層,因此執行效率很高,這是編譯型語言的優點。因為每次執行程式都多了編譯的過程,因此效率有所下降。使用指令碼程式語言的好處是,它們多半執行在比編譯型語言還高的層級,能夠輕易處理檔案與目錄之類的物件;缺點是它們的效率通常不如編譯型語言。

 

相關文章