コマンドラインインタプリタ

コマンドラインインタプリタとは



コマンドラインインタプリタ(command-line interpreter)は、コンピュータのコマンドライン、つまりユーザーがキーボードから入力する文字列コマンドを解釈し、オペレーティングシステム(OS)やプログラミング言語処理系に伝えるプログラムです。OSの標準ユーティリティであるコマンドラインシェルや、プログラミング言語処理系が持つREPL(Read-Eval-Print Loop)がその例です。コマンドラインインタプリタが動作する画面はコマンドラインインターフェース(CLI)と呼ばれ、キャラクターユーザーインターフェース(CUI)を構成する要素の一つです。

各種OSのコマンドラインインタプリタ



UNIXおよびUNIX


UNIXおよびUNIX系OSでは、以下のようなシェルが利用可能です。

UnixシェルUNIXおよびUNIX系OSで広く利用されるシェル
Bash:広く使われているUNIXシェルの一つ。
Bourne Shell:初期のUNIXシェル
C ShellC言語風の構文を持つシェル

他にも多くの種類があり、詳細はUnixシェルの項目で解説されています。また、テキストエディタEmacsもコマンドラインインタプリタ機能を備えています。Windows環境でもCygwinをインストールすることで、これらのUNIXシェルを利用可能です。

macOS


macOSはBSD UNIXをベースにしており、ターミナルというエミュレータを通じてUNIXシェルを起動できます。標準シェルは、tcshからbash、そしてzshへと変遷してきました。初期のMac OSにはコマンドラインインタプリタは存在せず、GUI操作が主流でした。しかし、A/UX|A_UXというUNIX OSをインストールすることでCommandShellを利用できました。

Microsoft Windows


マイクロソフトが開発に関わったものには以下があります。

cmd.exe:OS/2やWindows NT系で利用されるコマンドプロンプト
Command.comMS-DOSWindows 9x系で利用されたコマンドインタプリタ
4DOS/4OS2/4NT:DOS、OS/2、Windows NT向けの代替シェル
Windows PowerShell:Windows XP/Windows Server 2003以降で利用可能。.NET Frameworkが必要。
PowerShell:Windows PowerShell.NETで再実装したクロスプラットフォーム版。
Windows 回復コンソール:Windows 2000、Windows XP、Windows Server 2003で利用可能な回復ツール。

IBMのマシン


IBMのマシンやそれに倣ったマシンでは、以下のようなものがあります。

Control Language (CL):OS/400(IBM i)で使用される制御言語。
iSeries QSHELLIBM OS/400で使用されるシェル
Job Control Language (JCL): OS/360|OS_360、z/OSで使用されるジョブ制御言語。
TSO:MVS(System/370系メインフレームOS)で使用されるタイムシェアリングシステム。

その他


他にも様々なコマンドラインインタプリタが存在します。

rc Shell:Plan 9で使用されるシェル
cligTcl/Cで記述されたコマンドラインインタプリタ
Command Line Interpreter (CLI) / Amiga ShellAmigaOSで使用されるシェル
CCPCP/M|CP_Mで使用されたコマンドプロセッサ。
CMS:VM/CMSで使用されるコマンド処理システム。
FreeCOMFreeDOSで使用されるコマンドプロンプト
* crosh:ChromiumOS/ChromeOSで使用されるシェル

コマンドラインインタフェースの役割



コマンドラインインタプリタによって実現されるコマンドラインインターフェース(CLI)は、効率的で簡潔なコマンド操作を可能にします。しかし、コマンドや構文を覚える必要があり、初心者には敷居が高い場合があります。

初期のコンピュータは文字端末による操作が主流でしたが、GUIの発展後も、CLIはGUIでは複雑になる作業を効率的に行うために利用されています。Unix系環境のシェルやWindowsのcmd.exeなどがその例です。また、ネットワーク機器や3D CADソフトウェアでも、GUIと並んでCLIが利用されています。

スクリプト言語としての側面



多くのコマンドラインインタプリタは、単一のコマンドだけでなく、条件分岐や繰り返しなどの制御構造を持つスクリプト言語としての機能も備えています。これにより、反復作業の効率化が可能です。シェルスクリプトのように、外部ファイルに記述したコマンドを実行できるものもあります。

一方、多くのスクリプト言語処理系は、ファイル実行だけでなく、内蔵または外付けのコマンドラインインタプリタを持っています。例えば、PythonのCPythonは内蔵の簡易インタプリタを提供し、IPythonはより高度な環境を提供します。RubyのCRubyは標準添付のirbがコマンドラインインタプリタとして機能し、Pryが高度な環境を提供します。

BASICのように、言語自体がコマンドラインインタプリタからのコマンドで操作されるように設計されている場合もあります。

また、LISPなどの言語では、入力文字列を解析してプログラム構造を読み込むread、評価するeval、結果を出力するprintを組み合わせることで、簡単に簡易コマンドラインインタプリタを構築できます。これをREPL(Read-Eval-Print Loop)と呼びます。IBMREXXのように、他の言語を埋め込めるフレームワークを持つものもあります。

このように、コマンドラインインタプリタは、単なるコマンド実行ツール以上の多様な機能と役割を担っています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。