Konsolenanwendung
# Konsolenanwendung

Eine Konsolenanwendung bzw. ein Konsolenprogramm ist ein Computerprogramm ohne grafische Benutzeroberfläche (Graphical User Interface, GUI), das rein über textbasierte Kommandos gesteuert wird. Das Gegenteil sind reine GUI-Anwendungen, die im Allgemeinen für ein Zeigegerät wie eine Maus ausgelegt sind.

## Interaktive Konsolenanwendungen

Interaktive Konsolenanwendungen bieten dabei dem Anwender eine Kommandozeile oder eine zeichenorientierte Benutzerschnittstelle (Text User Interface, TUI) zur Bedienung. Beispiele für solche Anwendungen sind der Editor Vim, die Entwicklungsumgebung Turbo Pascal oder die Textverarbeitung WordStar.

## Kommandozeilenprogramme

Kommandozeilenprogramme lassen sich mit einer rein textbasierten Schnittstelle wie einem Text-Terminal, dem Kommandozeileninterpreter mancher Betriebssysteme (Unix, DOS etc.) oder der textbasierten Schnittstelle mancher Betriebssysteme mit grafische Benutzeroberfläche wie der Eingabeaufforderung von Windows kontrollieren. In diesem Falle interagiert der Nutzer typischerweise nur per Tastatur und Bildschirm mit der Anwendung. Die Steuerung der Programme geschieht dabei gleichzeitig mit dem Aufruf des Programms durch Kommandozeilenparameter. Bekannte Programme sind das Textsucheprogramm grep und die GNU Compiler Collection.

So durchsucht im folgenden Beispiel das Programm grep die Textdatei telefonliste.txt nach der Zeichenfolge Schmid

und gibt das Ergebnis auf der Konsole aus:

Alternativ können Kommandozeilen-Programme auch über eine getrennte GUI-Anwendung gesteuert werden. Diese GUI ermöglicht dann eine intuitive grafische Steuerung mit Zeigegeräten und erstellt dann im Hintergrund eine Befehlszeile und übergibt sie an das eigentliche Programm.

## Vorteile

Die Programme sind

* schneller, schlanker und benötigen weniger Arbeitsspeicher
* übersichtlicher und leichter zu warten
* leichter portierbar – die GUI-Programmierung funktioniert auf jedem Betriebssystem unterschiedlich. Bei der Trennung von GUI und Hauptprogramm kann das Hauptprogramm oft ohne tiefgreifende Änderungen für ein anderes System kompiliert werden. So muss jeweils nur eine kleine GUI für jede Plattform von Grund auf neu erstellt werden. Diese kann dann auch besser auf die Eigenheiten der jeweiligen Plattform abgestimmt werden.
* vielseitiger verwendbar – die Funktion von Konsolenprogramms kann oft per Verkettung (Piping) mit anderen Programmen – auch mit GUI-Programmen – kombiniert werden; Ein- und Ausgaben von Kommandozeilenprogrammen kann durch Ein-/Ausgabeumleitung aus und in Dateien geleitet werden (Batchbetrieb).

## Geschichte

Mit dem Fortschreiten der Entwicklung von GUI-Anwendungen in Hinblick auf die Geschwindigkeit und Bedienungsfreundlichkeit ist der Gebrauch von Konsolenanwendungen für Endanwender im Laufe der Zeit stark in den Hintergrund getreten, jedoch nicht ausgestorben. Viele Betriebssysteme verwenden intern Kommandozeilenprogramme. Auch verwenden viele Organisationen in Schlüsselfunktionen ihrer Datenverarbeitung Konsolenanwendungen.

