shell命令分為哪兩種,它們之間的區別是什麼?

  • 作者:由 匿名使用者 發表于 動漫
  • 2021-09-10

shell命令分為哪兩種,它們之間的區別是什麼? 匿名使用者 1級 2007-09-17 回答

shell命令顧名思義,是linux下的外殼程式,基本相當於windows下的exlpore。

shell是使用者和Linux作業系統之間的介面。Linux中有多種shell,其中預設使用的是Bash。本章講述了shell的工作原理,shell的種類,shell的一般操作及Bash的特性。

什麼是shell

Linux系統的shell作為作業系統的外殼,為使用者提供使用作業系統的介面。它是命令語言、命令解釋程式及程式設計語言的統稱。

shell是使用者和Linux核心之間的介面程式,如果把Linux核心想象成一個球體的中心,shell就是圍繞核心的外層。當從shell或其他程式向Linux傳遞命令時,核心會做出相應的反應。

shell是一個命令語言直譯器,它擁有自己內建的shell命令集,shell也能被系統中其他應用程式所呼叫。使用者在提示符下輸入的命令都由shell先解釋然後傳給Linux核心。

Shell是一種具備特殊功能的程式, 它是介於使用者和 UNIX/linux 作業系統之核心

程式(kernel)間的一個介面。為什麼我們說 shell 是一種介於系統核心程式與使用者

間的中介者呢?讀過作業系統概論的讀者們都知道作業系統是一個系統資源的管理者與分

配者,當您有需求時,您得向系統提出;從作業系統的角度來看,它也必須防止使用者因

為錯誤的操作而造成系統的傷害?眾所周知,對計算機下命令得透過命令(command) 或

是程式(program);程式有編譯器(compiler)將程式轉為二進位制程式碼,可是命令呢?

其實shell 也是一支程式,它由輸入裝置讀取命令,再將其轉為計算機可以瞭解的機械碼,

然後執行它。

各種作業系統都有它自己的 shell,以 DOS 為例,它的 shell 就是 command。com文

件。如同 DOS 下有 NDOS,4DOS,DRDOS 等不同的命令解譯程式可以取代標準的

command。com ,UNIX 下除了 Bourne shell(/bin/sh) 外還有 C shell(/bin/csh)、

Korn shell(/bin/ksh)、Bourne again shell(/bin/bash)、Tenex C shell(tcsh)

等其它的 shell。UNIX/linux將 shell 獨立於核心程式之外, 使得它就如同一般的應用

程式, 可以在不影響作業系統本身的情況下進行修改、更新版本或是新增新的功能。

有一些命令,比如改變工作目錄命令cd,是包含在shell內部的。還有一些命令,例如複製命令cp和移動命令rm,是存在於檔案系統中某個目錄下的單獨的程式。對使用者而言,不必關心一個命令是建立在shell內部還是一個單獨的程式。

shell首先檢查命令是否是內部命令,若不是再檢查是否是一個應用程式(這裡的應用程式可以是Linux本身的實用程式,如ls和rm,也可以是購買的商業程式,如xv,或者是自由軟體,如emacs)。然後shell在搜尋路徑裡尋找這些應用程式(搜尋路徑就是一個能找到可執行程式的目錄列表)。如果鍵入的命令不是一個內部命令並且在路徑裡沒有找到這個可執行檔案,將會顯示一條錯誤資訊。如果能夠成功找到命令,該內部命令或應用程式將被分解為系統呼叫並傳給Linux核心。

shell的另一個重要特性是它自身就是一個解釋型的程式設計語言,shell程式設計語言支援絕大多數在高階語言中能見到的程式元素,如函式、變數、陣列和程式控制結構。shell程式語言簡單易學,任何在提示符中能鍵入的命令都能放到一個可執行的shell程式中。

當普通使用者成功登入,系統將執行一個稱為shell的程式。正是shell程序提供了命令列提示符。作為預設值(TurboLinux系統預設的shell是BASH),對普通使用者用“$”作提示符,對超級使用者(root)用“#”作提示符。

一旦出現了shell提示符,就可以鍵入命令名稱及命令所需要的引數。shell將執行這些命令。如果一條命令花費了很長的時間來執行,或者在螢幕上產生了大量的輸出,可以從鍵盤上按ctrl+c發出中斷訊號來中斷它(在正常結束之前,中止它的執行)。

當用戶準備結束登入對話程序時,可以鍵入logout命令、exit命令或檔案結束符(EOF)(按ctrl+d實現),結束登入。

Top