許多人會使用指令列殼層、指令列工具和終端機等詞彙,這可能會造成混淆。 本文說明這些概念之間的差異,並提供每個概念的範例。
命令殼層是一種互動式命令行介面,可用來管理計算機,也稱為「讀取-Eval-Print 迴圈」(REPL)。
Shell 從鍵盤取得輸入,評估該輸入,並以 Shell 命令執行該輸入,或將輸入轉送至操作系統以執行。 大部分 Shell 也可以從腳本檔案讀取命令,並且可以包含變數、控制流程和函式等程式語言功能。
Shell 的類型
命令殼層有兩種主要類型:
一般用途命令Shell
通用命令行界面的設計目的是與作業系統相互搭配,允許您執行任何作業系統支援的命令。 它們也包含殼層特定的命令和程序設計功能。 下列清單包含一些常用指令介面的範例:
- PowerShell
- Windows 命令提示字元
- bash - 在 Linux 上很受歡迎
- zsh - 在 macOS 上很受歡迎
公用程式命令行介面
工具指令集是為了與特定應用程式或服務協同運作而設計的。 這些 Shell 只能執行應用程式或服務特有的命令。 某些公用程式殼層支援從批次腳本執行命令,但不包含程序設計功能。 通常,這些殼層只能以互動方式使用。
命令行工具
命令行工具是您從命令提示字元執行的獨立程式。 命令行工具通常設計為執行特定工作,例如管理檔案、設定設定或查詢資訊。 命令列工具可以用於任何支援執行外部程式的 Shell。
- Azure CLI - 一系列命令列工具,用於管理 Azure 資源,可在任何支援的殼層中執行。
- Azure PowerShell - PowerShell 模組集合,用於管理可在任何支援的 PowerShell 版本中執行的 Azure 資源。
- OpenSSH for Windows - 包含命令行用戶端和伺服器,可透過網路提供安全通訊。
- Windows 命令 - Windows 內建的命令行工具集合。
一般而言,指令行工具不提供命令列介面(REPL)。
netsh Windows 中的命令是個例外,因為它既是命令列工具,又是互動式命令介面。
終端
終端機是應用程式, 提供一个命令行界面的文字型視窗。 某些終端機的設計目的是要與特定殼層搭配使用,而有些終端機則可裝載多個殼層。 它們也可以包含進階功能,例如:
- 能夠在單一視窗中建立多個窗格
- 能夠建立多個索引標籤來運行多個命令行介面
- 變更色彩配置和字型的能力
- 支援複製和貼上作業
下列清單包含一些終端機應用程式的範例:
- Windows 終端機 - 適用於可裝載多個殼層的 Windows 新式終端機應用程式。
- Windows 控制台主機 - Windows 上文字型應用程式的預設主機應用程式。 它也可以裝載 Windows 命令提示字元或 PowerShell。
- macOS 終端機 - macOS 上可裝載 bash 或 zsh 殼層的預設終端應用程式。
- iTerm2 for macOS - macOS 的熱門第三方終端應用程式。
- Azure Cloud Shell - 裝載於 Microsoft Azure 中的瀏覽器型終端機應用程式。 Azure Cloud Shell 可讓您選擇使用bash或PowerShell。 每個終端機都已預先設定許多命令列工具,以管理 Azure 資源。