次の方法で共有


コマンド シェルとは

多くのユーザーは、コマンド シェル 、コマンド ライン ツール ターミナル という用語を同じ意味で使用しているため、混乱を招く可能性があります。 この記事では、これらの概念の違いについて説明し、それぞれの例を示します。

コマンド シェル は、コンピューターを管理するための対話型のコマンドラインインターフェースで、読み取り-評価-出力Eval-Print ループ (REPL) とも呼ばれます。

シェルは、キーボードから入力を受け取り、その入力を評価し、シェル コマンドとして入力を実行するか、実行するオペレーティング システムに入力を転送します。 ほとんどのシェルでは、スクリプト ファイルからコマンドを読み取ることができ、変数、フロー制御、関数などのプログラミング機能を含めることもできます。

コマンド シェルの種類

コマンド シェルには、主に次の 2 種類があります。

  • 汎用コマンド シェル

    汎用コマンド シェルは、オペレーティング システムで動作するように設計されており、オペレーティング システムでサポートされている任意のコマンドを実行できます。 また、シェル固有のコマンドとプログラミング機能も含まれています。 次の一覧に、汎用コマンド シェルの例をいくつか示します。

  • ユーティリティ コマンド シェル

    ユーティリティ コマンド シェルは、特定のアプリケーションまたはサービスで動作するように設計されています。 これらのシェルは、アプリケーションまたはサービスに固有のコマンドのみを実行できます。 一部のユーティリティ シェルでは、バッチ スクリプトからのコマンドの実行がサポートされていますが、プログラミング機能は含まれていません。 通常、これらのシェルは対話形式でのみ使用できます。

    • AI Shell - Azure OpenAI などの AI サービスとの通信に使用される対話型のシェル。
    • netsh - ネットワーク シェル (netsh) は、Windows 上のさまざまなネットワーク コンポーネントの状態を構成して表示できるコマンド ライン ユーティリティです。 これは、コマンド ライン ツールとコマンド シェルの両方です。 スクリプト ファイルからのコマンドの実行もサポートしています。

コマンド ライン ツール

コマンドライン ツール は、コマンド シェルから実行するスタンドアロン プログラムです。 コマンド ライン ツールは通常、ファイルの管理、設定の構成、情報のクエリなど、特定のタスクを実行するように設計されています。 コマンドライン ツールは、外部プログラムの実行をサポートする任意のシェルで使用できます。

  • Azure CLI - サポートされている任意のシェルで実行できる Azure リソースを管理するためのコマンド ライン ツールのコレクションです。
  • Azure PowerShell - サポートされている任意のバージョンの PowerShell で実行できる Azure リソースを管理するための PowerShell モジュールのコレクションです。
  • OpenSSH for Windows - コマンド ライン クライアントと、ネットワーク経由でセキュリティで保護された通信を提供するサーバーが含まれます。
  • Windows コマンド - Windows に組み込まれているコマンド ライン ツールのコレクションです。

一般に、コマンド ライン ツールはコマンド シェル (REPL) インターフェイスを提供しません。 Windows の netsh コマンドは、コマンドライン ツールと対話型コマンド シェルの両方であるため、例外です。

端末

ターミナル は、コマンド シェルをホストするためのテキスト ベースのウィンドウを提供するアプリケーションです。 一部のターミナルは特定のシェルで動作するように設計されており、他のターミナルは複数のシェルをホストできます。 また、次のような高度な機能を含めることもできます。

  • 1 つのウィンドウ内に複数のペインを作成する機能
  • 複数のシェルをホストする複数のタブを作成する機能
  • 配色とフォントを変更する機能
  • コピー操作と貼り付け操作のサポート

ターミナル アプリケーションの例を次に示します。

  • Windows ターミナル - 複数のシェルをホストできる Windows 用の最新のターミナル アプリケーションです。
  • Windows コンソール ホスト - テキスト ベースのアプリケーション用の Windows 上の既定のホスト アプリケーションです。 また、Windows コマンド シェルまたは PowerShell をホストすることもできます。
  • macOS 用ターミナル - bash または zsh シェルをホストできる macOS 上の既定のターミナル アプリケーション。
  • iTerm2 for macOS - macOS 用の一般的なサード パーティ製ターミナル アプリケーションです。
  • Azure Cloud Shell - Microsoft Azure でホストされているブラウザー ベースのターミナル アプリケーションです。 Azure Cloud Shell では、bash または PowerShell の使用を選択できます。 各シェルには、Azure リソースを管理するための多くのコマンドライン ツールが事前に構成されています。