多くのユーザーは、コマンド シェル 、コマンド ライン ツール 、ターミナル という用語を同じ意味で使用しているため、混乱を招く可能性があります。 この記事では、これらの概念の違いについて説明し、それぞれの例を示します。
コマンド シェル は、コンピューターを管理するための対話型のコマンドラインインターフェースで、読み取り-評価-出力Eval-Print ループ (REPL) とも呼ばれます。
シェルは、キーボードから入力を受け取り、その入力を評価し、シェル コマンドとして入力を実行するか、実行するオペレーティング システムに入力を転送します。 ほとんどのシェルでは、スクリプト ファイルからコマンドを読み取ることができ、変数、フロー制御、関数などのプログラミング機能を含めることもできます。
コマンド シェルの種類
コマンド シェルには、主に次の 2 種類があります。
汎用コマンド シェル
汎用コマンド シェルは、オペレーティング システムで動作するように設計されており、オペレーティング システムでサポートされている任意のコマンドを実行できます。 また、シェル固有のコマンドとプログラミング機能も含まれています。 次の一覧に、汎用コマンド シェルの例をいくつか示します。
- PowerShell
- Windows コマンド シェル
- bash - Linux で人気
- zsh - macOS で人気
ユーティリティ コマンド シェル
ユーティリティ コマンド シェルは、特定のアプリケーションまたはサービスで動作するように設計されています。 これらのシェルは、アプリケーションまたはサービスに固有のコマンドのみを実行できます。 一部のユーティリティ シェルでは、バッチ スクリプトからのコマンドの実行がサポートされていますが、プログラミング機能は含まれていません。 通常、これらのシェルは対話形式でのみ使用できます。
コマンド ライン ツール
コマンドライン ツール は、コマンド シェルから実行するスタンドアロン プログラムです。 コマンド ライン ツールは通常、ファイルの管理、設定の構成、情報のクエリなど、特定のタスクを実行するように設計されています。 コマンドライン ツールは、外部プログラムの実行をサポートする任意のシェルで使用できます。
- 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 リソースを管理するための多くのコマンドライン ツールが事前に構成されています。
PowerShell