キャラクタユーザインタフェース (英: character user interface; CUI)[1]、キャラクタベースユーザインタフェース (character-based user interface, CUI) [2]、コンソールユーザインタフェース (英: console user interface; CUI) [3]、またはコマンドラインインタフェース (英: command line interface; CLI) [4]は、キーボード等[5]からの文字列[6]を入力とし、文字列が表示されるウィンドウや古くはラインプリンタで印字される文字などを出力とする、ユーザインタフェースの様式である。キャラクタユーザインタフェースの語は日本語での使用が主流であり、英語圏やその日本法人などでは『command line interface』と称すのがほとんどで[7][8][9][10]、英語版Wikipediaの表題もCommand line interfaceである。もっぱらグラフィカルユーザインタフェース (GUI) の対義語として使われる。 初期のコンピュータは、CUIによる対話環境が主流であった。その後、コンピュータの性能が向上したことにより、GUI環境を標準搭載しているパーソナルコンピュータ (MacintoshやWindows 95など)がオフィスや一般家庭にも普及し、専門家を除いてCUIの利用頻度は減っていった。 多くのネットワーク機器は、TELNETやSSHに対応しており、CUIを標準搭載している。また、パーソナルコンピュータ (PC) やサーバ向けのオペレーティングシステム (OS) には、既定のインターフェイスがGUIであってもコマンドラインターミナルなどのCUI環境が標準で用意されている。しかし、スマートフォンなどのモバイル端末向けOSには標準で用意されていないことが多い。ユーザインタフェースがCUIのアプリケーションをコンソールアプリケーションという。また、あまり一般的ではないが、テキストコンソールを利用してウィンドウなどを表現しているインタフェースをテキストユーザインタフェースという。 以降、CUIそのものだけでなくコマンドラインインタプリタ、シェルについても述べる。
特徴
長所
GUIでは表示し切れないような膨大なファイル群を複数の処理に通す際に、処理順にコマンドやファイル名のパターンを列挙して一括処理させることができる。
処理の自動化(バッチ処理)が容易である(一連のコマンドや制御文は文字情報なのでファイルに単純に保存しておくことができ、それを後で何度でも実行・修正できる)。
プログラムを作成する際、ユーザからの入力を処理する部分(コマンドラインインタプリタ)を比較的簡単に作れる。GUIのプログラムは、一般にユーザインタフェースの作成に手間がかかり、管理すべき内部状態も多くなる。
これに関連して、異なるOSにプログラムを移植する際も、標準入出力のみを使用するコンソールプログラムのほうがはるかに移植しやすい。また、標準入出力は多くのプログラム言語で標準ライブラリや組み込みの言語機能として提供されているため、プログラム言語の入門やプロトタイピング、テストドライバとしても向いている[11] [12] [13]。