コマンドプロンプト

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

コマンドプロンプト (Command Prompt) とは、コマンドラインインタプリタ等が画面上に表示するコマンド入力待ち状態であることを表す記号」のことであり、利用者にコマンド入力を促すものである。

単にプロンプトと呼ぶ者もいるが、コマンドインタプリタ以外にもたとえばBASICで「INPUT A」という文の入力待ちの時に「A?」などと表示するような「何かを促す記号」は全て「プロンプト」なので、誤解を招く原因となる。

なお、マイクロソフトが、Windowsにおいて、MS-DOS互換環境(いわゆる「DOS窓」)のシェルとしてCOMMAND.COMを起動するアイコンに「DOSプロンプト」というキャプションを付けていたためか、それに代わるNT系Windowsの端末ウィンドウ兼コマンドラインシェルであるcmd.exeのアイコンのキャプションに「コマンドプロンプト」と付けているため、Windowsしか知らない開発者などの一部には「端末ウィンドウ兼コマンドラインシェルであるcmd.exe」のことを「コマンドプロンプト」と呼ぶのだと固く信じていることがあり、本来の意味で「コマンドプロンプト」と言っても全く通じず、会話が成立しないことすらある。

たとえば、MS-DOSにおいて標準的なコマンドプロンプトは、環境変数 PROMPT を "$P$G" に設定したもので、

ドライブレター + ":" + カレントディレクトリのパス文字列 + ">" 

具体的には

C:¥>

のように表示される(¥はISO/IEC 646の5/12 (0x5C) で環境により表示が異なる。かつては "$N$G" で、A> のように表示されていた)。

また、UNIX 系の OS では、シェルの種類によって標準的なコマンドプロンプトの書式は異なっているが、一般的にホスト名等の後に、"%", "$", ">" 等もしくは "#" の記号をつけてプロンプトとすることが多い("#" はスーパーユーザーとしてコマンドを入力していることを示す、という便法がある)。

例:
host1$

多くのコマンドインタプリタではコマンドプロンプトとして表示する文字を自由に変更可能であり、コマンドインタプリタの利用の便宜のためにカレントディレクトリ、ホスト名、現在時刻、実行中のジョブの数等をコマンドプロンプトとして表示させることがある。

MS-DOS 系では、環境変数 PROMPT を書き換える事で表示内容を書き換えられる。

C:\Windows>SET PROMPT
PROMPT=$P$G
 
C:\Windows>SET PROMPT=$T$G
 
18:08:52.95>

GNU Bashでは、シェル変数 PS1-PS4 を書き換える事で表示内容が変えられる。

pacman@onyx2$ echo $PS1
\u@\h$
 
pacman@onyx2$ PS1='\l@\h$ '
 
ttyp0@onyx2$ 

コマンドとコマンドプロンプト[編集]

コマンドプロンプトの「プロンプト」は「入力を促すもの」を意味し、コマンドを入力可能な状態である場合にプロンプトを表示する。MS-DOSのようなシングルタスクの環境では、コマンドインタプリタにて入力したコマンドによるプログラムが実行中の間は、コマンドプロンプトは表示されずに、そのプログラムが出力する文字列が画面上に表示され、プログラムが終了すると同時にコマンドプロンプトが表示される。

なお以上はMS-DOSのようなシングルタスクの環境の話で、Unixのほとんどのシェルが持つ「ジョブ管理機能」などでは、プロセスをバックグラウンドにすることもできる(MS-DOS環境でいうなら、TSRのようなものである)。その場合は、プロセスがバックグラウンドで走りながら、同時にコマンドプロンプトが表示される。つまり、コマンドプロンプトが表示されているということは、そのシェルに対して、コマンドを入力可能であることを表す。

NEC PC-9801のコマンドプロンプト[編集]

PC-9801シリーズはテキスト画面表示をGDCで行っており、外字領域のフォントはユーザ定義可能(プログラマブル)であった。この特性を生かして、コマンドプロンプトに外字文字を埋め込み、常駐プログラムによってリアルタイムにそのフォントを書き換え、地球儀を回すなどアニメーションを行うことができた。原理的には PC/AT互換機の CGA テキスト表示でも可能であるが、積極的に実装された事はない。