什麼是命令行解譯器/命令行介面?

命令行解譯器(command line interpreter)是可以輸入命令,並在作業系統中執行這些命令的任何程式。從字面上來看,它是命令的解譯器。

不像具有圖形使用者介面(graphical user interface,簡稱GUI)的程式,擁有可以用滑鼠控制的按鈕和選單,命令行解譯器只接受來自鍵盤輸入的文字作為指令,然後將這些命令轉換成作業系統可以理解的功能。

命令行解譯器的其他名稱

任何命令行解譯器程式也經常泛稱為命令行介面(command line interface)。它也有較不常見的名稱CLI(就是它的縮寫)、命令語言解譯器(command language interpreter)、控制台使用者介面(console user interface)、 命令處理機(command processor)、外殼(shell)、命令行外殼(command line shell),或命令解譯器(command interpreter)等。

CLI也是其他科技術語的縮寫,且與命令行介面毫無關聯,例如:來電顯示(calling line identification)、呼叫層級介面(call level interface)、快取列交錯(cache-line interleaving)、清除中斷旗標(clear interrupt flag)和來電位置資訊(caller location information)。

 

為什麼要使用它們?

如果透過具有圖形介面且操作簡單的應用程式就能夠控制電腦,你可能會想知道為什麼有人反而想要透過命令行來輸入命令呢?主要有三個原因。

第一個原因是你可以讓命令自動化。我們可以舉很多例子,但其中一個是當使用者首次登入時,總是關閉特定服務或程式的腳本。另一個例子可以用於從資料夾中複製相似格式的檔案,而你就不需要自己篩選了。使用命令可以快速並自動完成這些事情。

使用命令行解譯器的另一個好處是,你可以直接訪問作業系統的功能。進階的使用者或許更喜歡使用命令行介面,因為它提供使用者們簡潔而強大的訪問權限。

然而,無經驗的使用者通常不會想要使用命令行介面,因為它們絕對不像圖形程式那樣容易操作。可用的命令不像具有選單和按鈕的程式那樣明顯易懂。你不能像你可能會下載的一般圖形應用程式那樣,只是打開命令行解譯器,就能立刻知道要如何使用它。

命令行解譯器非常實用,可能會有控制作業系統的大量命令和選項,但作業系統上的GUI軟體有可能不是為了執行這些命令而開發的。它們也讓你使用部分的命令,但不必一次使用所有命令,對於沒有資源可以執行圖形程式的系統來說是有益的。

 

並非所有命令行解譯器都很相似

當命令行解譯器理解了特定命令,它是根據程式語言和語法來理解。這表示某個情況下,在特定作業系統和程式語言中執行的命令,在不同的環境中可能不會以相同的方式執行。

例如,某個平台可能會使用命令scannow來掃描電腦的錯誤,但沒有內建此功能的另一個程式或作業系統可能不會進行任何動作。或者,舉例來說,如果它有相似的功能,命令行解譯器可能只會理解scanscantime

語法也很重要,因為它們非常的敏感,以至於任何輸入錯誤都有可能會誤譯成完全不同的命令。例如,scannow可能是程式用來開始掃描的命令,但如果你刪除了最後一個字母,可能會將scanno理解為它應該何時停止掃描。

 

更多關於命令行解譯器的資訊

在大多數的Windows作業系統中,基礎的命令行解譯器是命令提示字元。Windows PowerShell是個更進階的命令行介面,在較新的Windows版本中可以與命令提示字元一起使用。Windows Terminal也包含了命令行工具,但它沒有內建在Windows中。

在Windows XP和Windows 2000中,有個名為Recovery Console的特殊診斷工具也可以作為命令行解譯器來使用,以執行各種疑難排解和系統修復任務。

macOS作業系統上的命令行介面稱為「終端機(Terminal)」。

有時,命令行介面和圖形使用者介面兩者都會包含在相同程式中。在這種情況下,一般都是其中一個介面支援另一個介面不支援的特定功能。通常是命令行介面包含更多功能,因為它對應用程式檔案提供最原始的使用方式,且不會受到軟體開發者選擇包含在GUI的功能所限制。