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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
ファイル:Bash screenshot.png
CLIの画面例。内容はGentoo LinuxでBashコマンドを実行したもの。

コマンドラインインタフェース (command line interface, CLI) またはテンプレート:要検証範囲(あるいはキャラクタベースユーザインタフェース (character-based user interface, CUI) [1]コンソールユーザインタフェース (console user interface, CUI) [2] [3]とも)は、コンピュータにおいて、キーボードを用いて入力を行い文字によって出力を行う様式のユーザインタフェースである。グラフィカルユーザインタフェース (GUI) の対義語として使われる。テンプレート:要出典 コンソール入出力は標準入出力として、多くのプログラム言語で標準ライブラリや組み込みの言語機能として規格化されている[4]

特徴

テンプレート:独自研究 CLIは旧式のインタフェースだと思われがちだが、GUI環境には無い長所も持っている[5] [6]。そのため、Linuxなどを含むUnix系のサーバではCLIで操作することが現在でも主流であるし、テンプレート:要出典 また、従来のWindowsはコマンドラインインタフェースが貧弱であったが、近年ではWindows PowerShellのようにCLI環境を強化する動きが現われている。

長所

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

など

短所

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

など

CLIを採用しているオペレーティングシステム/アプリケーション

GUI上でのエミュレーション

多くのGUI環境はその中でCLI環境を提供している。これらはタスクの1つとして、GUIのウィンドウ内でCLI環境を表示する。

出典

  1. CUI Definition from PC Magazine Encyclopedia
  2. WineHQ - Text mode programs (CUI: Console User Interface)
  3. ヘルプ - IBM, EGL アプリケーションの開発 - コンソール・ユーザー・インターフェース
  4. Rogue Wave Software, Online Documentation, 6.1 標準入出力ストリームとは
  5. コマンドプロンプトの応用
  6. 第十二回-02 コンソールアプリケーションってどう使われているの?
  7. コンソール アプリケーション テンプレート
  8. Visual C++ の Win32 コンソール アプリケーション
  9. コンソール アプリケーションの作成 (Visual C#)
  10. @IT:Windows TIPS -- Hint:コマンド・プロンプトの履歴機能を活用する

関連項目