什麼是命令殼層?

許多人會使用指令列殼層指令列工具終端機等詞彙,這可能會造成混淆。 本文說明這些概念之間的差異,並提供每個概念的範例。

命令殼層是一種互動式命令行介面,可用來管理計算機,也稱為「讀取-Eval-Print 迴圈」(REPL)。

Shell 從鍵盤取得輸入,評估該輸入,並以 Shell 命令執行該輸入,或將輸入轉送至操作系統以執行。 大部分 Shell 也可以從腳本檔案讀取命令,並且可以包含變數、控制流程和函式等程式語言功能。

Shell 的類型

命令殼層有兩種主要類型:

  • 一般用途命令Shell

    通用命令行界面的設計目的是與作業系統相互搭配,允許您執行任何作業系統支援的命令。 它們也包含殼層特定的命令和程序設計功能。 下列清單包含一些常用指令介面的範例:

  • 公用程式命令行介面

    工具指令集是為了與特定應用程式或服務協同運作而設計的。 這些 Shell 只能執行應用程式或服務特有的命令。 某些公用程式殼層支援從批次腳本執行命令,但不包含程序設計功能。 通常,這些殼層只能以互動方式使用。

    • AI Shell - 用於與 Azure OpenAI 等 AI 服務互動的互動式介面。
    • netsh - 網路殼層 (netsh) 是命令行公用程式,可讓您設定及顯示 Windows 上各種網路元件的狀態。 它既是命令行工具,又是命令行界面。 它也支援從腳本檔案執行命令。

命令行工具

命令行工具是您從命令提示字元執行的獨立程式。 命令行工具通常設計為執行特定工作,例如管理檔案、設定設定或查詢資訊。 命令列工具可以用於任何支援執行外部程式的 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 資源。