コマンドプロンプト

曖昧さ回避 この項目では、コマンド入力待ち表示全般について説明しています。NT系 Windowsで「コマンドプロンプト」と名づけられているコマンドライン シェルについては「cmd.exe」をご覧ください。

コマンドプロンプト(Command prompt)とはコマンドラインインタプリタ等が画面上に表示する「コマンド入力待ち状態」であることを示す表示のことである。またWindows NTに搭載されているコマンドプロンプトを表示する機能を備えたcmd.exe端末ウィンドウ兼コマンドラインシェル)も「コマンドプロンプト」という名称である。単に「プロンプト」と呼ばれることもあるが、コマンドインタプリタ以外にもBASICで「INPUT A」というようなコマンドで変数Aの値の入力待ちの時に「A?」などと表示するような「何かを促す表示」は全てプロンプトなので厳密には異なる。このページではWindowsの「コマンドプロンプト」ではなく本来の意味のコマンドプロンプトについて解説している。

また、グラフィカルユーザインタフェース(GUI)環境では、テキストボックスなどがあるダイアログボックスや、入力フォームもそれに相当する。

「コマンド (コンピュータ)」も参照

具体例

たとえばシェルでは、MS-DOS系のCOMMAND.COM(およびその後継のcmd.exe)において標準的なコマンドプロンプトは、環境変数 PROMPT を "$P$G" に設定したもので、

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

具体的には

C:¥>

のように表示される(¥はISO/IEC 646の5/12 (0x5C) で環境により表示が異なる。日本語では円記号半角の「¥」)、 英米ではバックスラッシュ(半角の「\」)。かつては "$N$G" で、A> のように表示されていた)。

Unix系のシェルでは、シェル毎の傾向の違いなどもあるが、一般的に多い一例としては、ホスト名等の後に、"%", "$", ">" 等もしくは "#" の記号を付ける、といったものがある(なお、"#" はスーパーユーザーとしてコマンドを入力していることを示す、という慣習があり、それについてはかなり一般的である)。

例:
host1$ 

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

COMMAND.COM系では、環境変数 PROMPT を書き換える事で表示内容を書き換えられる。

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

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シリーズはテキスト表示がハードウェアでグラフィック上に重ね合わせ(スーパーインポーズ)で表示されており、188文字[注釈 1]用意されていた外字領域のフォントはユーザ定義可能(プログラマブル)であった。この特性を生かして、コマンドプロンプトに外字文字を埋め込み、常駐プログラムによってリアルタイムにそのフォントを書き換え、地球儀を回すなどアニメーションを行うことができた。

注釈

  1. ^ VM以降