跳轉到內容

作業系統設計/命令列介面

來自華夏公益教科書,開放的書籍,開放的世界

命令列介面或 CLI 是一種透過向計算機提供文字命令列(即字元序列)與計算機互動的方法,這些命令列可以來自鍵盤輸入或指令碼。它們最初是在 20 世紀 50 年代為透過電傳打字機與計算機互動而開發的。它有時也被稱為 CLUE,即命令列使用者環境。有些人認為 CLI 實際上根本不是使用者介面,而是一種一次輸入一行的程式語言,與開發人員相比,對使用者的用處非常小。事實上,命令列最常用於科學或工程環境中的程式設計。

在最簡單的形式中,計算機顯示一個提示符,使用者在鍵盤上鍵入一個命令,並用一個鍵盤鍵(通常是 Enter 鍵)終止命令,然後計算機執行該命令。然後,計算機執行給定的命令。該術語通常與圖形使用者介面 (GUI) 相對比,在 GUI 中,命令通常是透過將指標(透過指向裝置)移動到螢幕的區域並按下指向裝置上的一個按鈕(單擊)來發出的。

實現這些介面的程式通常被稱為命令列直譯器。此類程式的示例包括各種不同的 Unix shell、VMS 的 DCL(數字命令語言)以及類似的設計,如 CP/M 和 DOS 的 command.com,它們都基於 DEC 的 RSX 和 RSTS 作業系統介面(它們也是命令列介面)。微軟聲稱他們的下一個主要作業系統 Windows Vista 將包含一個名為 MSH(Microsoft Shell,代號 Monad)的增強型命令列介面,它將傳統 Unix shell 的功能與面向物件的 .NET 框架相結合。

一些應用程式也提供命令列。CAD 程式 AutoCAD 就是一個突出的例子。另一個很好的例子是工程/科學數值計算軟體包 Matlab,在該軟體包中,幾乎沒有 GUI 存在或對於執行大多數計算來說是不必要的。在一些計算環境中,例如 Oberon 或 Smalltalk 使用者介面,大多數出現在螢幕上的文字可用於發出命令。在命令列介面上給出的命令通常具有以下形式

[doSomething] [how] [toAFile]

[doSomething] [how] < [inputFile] > [outputFile]

doSomething 對應於動詞,how to 對應於副詞(它描述了在本例中應該如何執行命令 - 例如,它應該是特別“詳細”的,還是特別“安靜”的),而 toAFile 對應於應該對該命令執行的物件(通常是一個或多個檔案)。第二個示例中的獨立“>”是重定向字元,告訴作業系統(即通常是命令 shell 直譯器)將先前命令(即“>”左側的命令)的輸出傳送到其他地方(即,傳送到“>”右側命名的檔案)。另一個常見的和重要的重定向字元是管道('|'),它告訴 CLI 將此命令的輸出視為另一個命令的輸入;這對於使用者來說是一個非常強大的機制,如管道(Unix)和管道和過濾器中所述。

華夏公益教科書