CUIの画面例。内容はGentoo Linux でBashコマンドを実行したもの。 キャラクタユーザインタフェース (英 :character user interface ;CUI )[ 1] 、キャラクタベースユーザインタフェース (character-based user interface,CUI )[ 2] 、コンソールユーザインタフェース (英 :console user interface ;CUI )[ 3] 、またはコマンドラインインタフェース (英 :command line interface ;CLI )[ 4] は、キーボード などで文字列 による指示を入力し、その結果が画面や印字など文字として表示されるユーザインタフェース の形式である。文字だけで操作や確認を行うため、グラフィカルな表示や操作は伴わない。
英語圏では『command line interface 』と呼ばれる事が多く[ 5] [ 6] [ 7] [ 8] 、英語版Wikipediaでも表題はCommand line interface である。CUIは主に、グラフィカルユーザインタフェース (GUI) の対義語として用いられる。
初期のコンピュータ では、CUIによる対話形式による制御が主流であった。その後、コンピュータの性能が向上に伴い、GUI環境を標準搭載したパーソナルコンピュータ (Macintosh やWindows 95 など)が職場や一般家庭にも普及し、専門家を除きCUIの利用頻度は減少した。
一方、近年のPCやサーバ でも、既定のインターフェース はGUIである場合が多いが、コマンドラインターミナルなどのCUI環境が標準で用意されている。パソコンに限らず、多くのネットワーク機器でも、Telnet やSecure Shell などのCUIを標準搭載した製品もある。スマートフォン などのモバイル端末向けOSは例外である。
CUI形式のアプリケーションはコンソールアプリケーション と呼ばれる。また、テキストを利用して画面全体を表現しているインタフェースはテキストユーザインタフェース と呼ばれる。
CUIは、操作の自動化(バッチ処理 )や作業の効率化に優れている。GUIでは、画面上のボタンやメニューを一つずつ操作する必要があるのに対し、CUIではプログラムの実行手順を文字として保存することが可能であり、同じ作業をまとめて行う場合に便利である。
また、CUIは標準入出力 を用いるため、コンピュータの種類に関係なく使用できることが多く、移植性にも優れている。さらに、GUIのような画面表示や操作部の実装が最小限で済むため、プログラム作成においても効率的である。
リモート操作においてもCUIは有利である。GUIでは画面情報を転送する必要があるが、CUIでは文字情報だけで操作できるため、回線速度が遅くても作業が可能である。キーボードだけで操作できるため、慣れたユーザーは迅速に作業でき、操作履歴を残して後から確認したり共有したりすることも容易である。
CUIの最も決定的な短所は、画像や図形を扱う作業には基本的に向かないことである。CADやプレゼンテーションソフトウェア(例:PowerPoint)など、画面上で直感的に操作や編集を行う必要があるプログラムは、CUIだけではほとんど利用できず、GUIが必須となる。
また、多くの場合、コマンドや応答は英語 を基本としているため、英語を母語としないユーザーにとっては使いづらい。また、基本的なコマンドや各プログラムのパラメータ をあらかじめ覚える必要があるため、習得コストがかかる。