キャラクタユーザインタフェース

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
CLIの画面例。内容はGentoo LinuxでBashコマンドを実行したもの。

キャラクタユーザインタフェース (character user interface, CUI)[1]キャラクタベースユーザインタフェース (character-based user interface, CUI) [2]コンソールユーザインタフェース (console user interface, CUI) [3]、またはコマンドラインインタフェース (command line interface, CLI) [4]は、キーボード[5]からの文字列[6]を入力とし、文字列が表示されるウィンドウや古くはラインプリンタで印字される文字などを出力とする、ユーザインタフェースの様式である。もっぱらグラフィカルユーザインタフェース (GUI) の対義語として使われる。

特徴[編集]

CUIはGUIと比べて直感的な操作ができないなどの欠点があるものの、メインメモリおよびビデオメモリなどのコンピュータ資源の消費が少ないことから、性能の低い初期のコンピュータではCUIによる対話環境が主流だった。その後、コンピュータの性能が向上し、マウスなどのポインティングデバイスによって直感的な操作のできるGUI環境がMacintoshWindows 95などによってオフィスや一般家庭にも普及し、CUIは既定のインターフェイスではなくなっていった。パーソナルコンピュータ (PC) 向けやサーバー向けのオペレーティングシステム (OS) には、既定のインターフェイスがGUIであってもコマンドラインターミナルなどのCUI環境が依然として用意されているが、スマートフォンなどのモバイル端末向けOSには標準で用意されておらず、GUIが主流となっている。

しかし、GUI環境であればポインティングデバイスによる操作を繰り返し行わなければならないような煩雑な作業を、CUI環境であれば簡単なコマンドの組み合わせで実行できる場合もあるなど、CUIにも依然として利点はある。特にエンドユーザーだけでなくネットワーク管理者やソフトウェア開発者も利用するPCやサーバーにおいては、GUIとCUIは用途によって住み分けて併存しているものであり、CUIは完全に廃れたわけではない。

ユーザインタフェースがCUIのアプリケーションをコンソールアプリケーションという。またあまり一般的ではないが、テキストコンソールを利用してウィンドウなどを表現しているインタフェースをテキストユーザインタフェースという。

ショートカットキーをCUIの利点と考えるものもいる。だが、CUIの入力デバイスはキーボードでなくても良い一方、GUI環境でもショートカットキーを便利に多用できるよう設定できるものもあるので、キーボードの利点とは言えるかもしれないが、必ずしもCUIの利点ではない。

端末エミュレータは、それ自体は(近年[いつ?]は)GUIアプリだが、CUIのための環境を提供するものである。

以降、断りがない限りCUIそのものだけでなくコマンドラインシェルについても述べる。

長所[編集]

  • 処理の自動化(バッチ処理)が容易である(一連のコマンドや制御文は文字情報なのでファイルに単純に保存しておくことができ、それを後で何度でも実行・修正できる)。
  • プログラムを作成する際、ユーザからの入力を処理する部分(コマンドラインインタプリタ)を比較的簡単に作れる。GUIのプログラムは、一般にユーザインタフェースの作成に手間がかかり、管理すべき内部状態も多くなる。
これに関連して、異なるOSにプログラムを移植する際も、標準入出力のみを使用するコンソールプログラムのほうがはるかに移植しやすい。また、標準入出力は多くのプログラム言語で標準ライブラリや組み込みの言語機能として提供されているため、プログラム言語の入門やプロトタイピングテストドライバとしても向いている[7] [8] [9]
  • プログラムの出力を別のプログラムに直接入力したり(簡易なプロセス間通信: パイプ)、ファイルに保存したりできる。なお、多くの統合開発環境(IDE)ではGUIのクライアントを使って直感的にアプリケーションを開発できるようになっているが、プログラムのコンパイル・ビルド時にバックで動作しているのは(単独でも動作可能な)コマンドラインのコンパイラリンカである。
  • リモートログインする場合、クライアント側で専用のソフトウェアが不要である(SSHクライアント程度で済む)ことが多い。
  • 別のコンピュータにリモートログインする場合、画像情報の転送が不要あるいは必要最低限に抑えられるため、ネットワークへの負荷が低い。低速な回線でもリモート操作ができる。
  • 一般に自動補完機能(オートコンプリート)や履歴が利用できるため、コマンドをすべて手で入力する必要はない[10]
  • キーボードだけで操作できるため、手慣れたユーザは作業を敏速に行える。
  • 直前操作の確認や、資料収集(操作履歴の保存・他人への提供)などが容易である。
  • 入力元・出力先の切替が容易である(リダイレクト)。
  • 先行入力が可能である。GUIにおける、操作を行うためのボタンが表示されるまで待たされる、といったことが避けられる。

など

短所[編集]

  • 直感的な操作はできず、まず基本的なコマンドをある程度覚える必要があるため、アプリケーションのエンドユーザーにとっては習得コストがかかる。各プログラムのパラメータも必要に応じて調べる必要がある。
  • 人間の視覚的な能力をあまり活用できない。
  • 選択肢やヘルプなどを画面上に表示することにも限界がある。
  • 画像や3Dデータなど、図形的なものの操作や編集には向かない、または不可能である。

など

関連項目[編集]

脚注[編集]