コンソールアプリケーションまたはコマンドラインプログラムは、テキストのみのユーザーインターフェイスを介して使用されるように設計されたコンピュータプログラム(アプリケーションまたはユーティリティ)です。
コンソールアプリケーションは、コンピュータ端末、システムコンソール、またはグラフィカルユーザーインターフェイス(GUI)オペレーティングシステムに含まれる端末エミュレータ( Microsoft WindowsのWindowsコンソール[ 1 ]、macOSのターミナル、Unix系システムのX Window Systemのxtermなど)で使用できます。



コンソールアプリケーションでは、ユーザーは通常、キーボードとディスプレイ画面のみを使用して操作します。一方、GUIアプリケーションでは、通常、マウスなどのポインティングデバイスの使用が必要です。コマンドラインインタープリタなどの多くのコンソールアプリケーションはコマンドラインツールですが、テキストベースのユーザーインターフェース(TUI)プログラムも数多く存在します。
GUIアプリケーションの速度と使いやすさが時間とともに向上するにつれ、コンソールアプリケーションの使用は大幅に減少しましたが、完全に消滅したわけではありません。一部のユーザーはコンソールベースのアプリケーションを好み、また一部の組織は依然として重要なデータ処理タスクを処理するために既存のコンソールアプリケーションに依存しています。
コンソールアプリケーションを作成する機能は、Visual StudioやMicrosoft Windows上の.NET Frameworkなどの最新のプログラミング環境の機能として維持されています。 [ 2 ]グラフィカルユーザーインターフェイスの複雑さを取り除くことで、新しいプログラミング言語の学習プロセスを簡素化します( C#の記事の例を参照)。
データ処理タスクやコンピュータ管理において、これらのプログラミング環境は、スクリプト作成に続く、オペレーティングシステムまたはデータ処理制御の次の段階と言えます。アプリケーションを元のプログラマーや少数の同僚のみが実行する場合、見栄えの良いグラフィカルユーザーインターフェースは必要なく、アプリケーションはより軽量で高速、かつ保守が容易になります。
テキストユーザーインターフェースの開発を支援するライブラリが多数利用可能です。
Unix システムでは、そのようなライブラリはncursesとcursesです。
Microsoft Windowsでは、conio.hがそのようなライブラリの一例です。
コンソールベースのアプリケーションには、Alpine(電子メールクライアント)、cmus(オーディオプレーヤー)、Irssi(IRCクライアント)、Lynx(ウェブブラウザ)、Midnight Commander(ファイルマネージャー)、Music on Console(オーディオプレーヤー)、Mutt(電子メールクライアント)、nano(テキストエディタ)、ne(テキストエディタ)、newsbeuter(RSSリーダー)、ranger(ファイルマネージャー)などがあります。