External Publication
Visit Post

Shells, Terminals und Co. – Diese typischen Linux-Begriffe müssen Sie kennen

PC-WELT – Homepage [Unofficial] February 8, 2026
Source

Was ist ein „Terminal “, eine „Shell “? Was bedeutet „virtuelle Konsole “? Und in welcher Beziehung stehen die Dinge zueinander, so etwa eine Secure Shell (SSH) zur System-Shell oder Log-in-Shell oder ein grafisches Gnome-Terminal zur System-Shell?

1. GUI & CLI: Was ist eine „Shell“?

Shell (Schalte, Hülle, Muschel) ist der blumigste Begriff in diesem Umfeld: Er wird einesteils sehr weit gefasst als Benutzerschnittstelle, Mensch-Maschinen-Schnittstelle (GUI, CLI), andererseits enger als Kommandointerpreter (Bash, Dash, Fish, Cmd, Powershell – siehe dazu Punkt 2).

Die Unterschiede zwischen einer GUI-Shell(Graphical User Interface) und einer textbasierten CLI-Shell (Command Line Interface) sind evident:

GUI-Shells: Eine GUI-Shell zeigt auf typischerweise 500.000 bis 4 Millionen Pixeln grafische Metaphern in Form von Icons/ Widgets sowie von Textflächen für Menüangebote.

Ein Icon-Control auf dieser GUI-Shell bietet (abhängig von der Bildschirmauflösung) beispielsweise eine definierte Eingabefläche von 40 × 40 Pixeln, die bei einem Mausklick oder Fingerdruck (auf Touchscreens) zum Beispiel das Hauptmenü oder ein bestimmtes Programm startet.

In vielen Fällen gibt es auch Rechts- oder Mittelklick-Aktionen für alternative Funktionen.

Grafische „Terminals“ und CLI-Shell sind zwei unterschiedliche Baustellen: Das „Terminal“ sorgt nur für die Darstellung einer beliebig wählbaren Shell (siehe Punkt 4 und 6).

Foundry

Der große Unterschied zur CLI-Shell ist nicht nur die Mausbedienung (oder Touch), sondern die Tatsache, dass der Nutzer ein visuelles Angebot vorfindet, in dem er nur noch suchen und auswählen muss.

Dieser Exkurs zur GUI-Shell scheint vom Thema weit wegzuführen, ist aber aus zwei Gründen unerlässlich: Ein Linux-Desktop ist wie eine virtuelle Konsole oder eine SSH-Verbindung eine Log-in-Shell (siehe Punkt 3).

Mit Recht bezeichnen sich GUI-Oberflächen wie etwa Gnome oder KDE selbst als „Gnome-Shell“ oder „Plasma-Shell“.

CLI-Shells: Textbasierte Shells mit „Command Line Interface“ sind hier das eigentliche Thema. Was Shells wie Bash unter Linux oder Powershell unter Windows unbeliebt macht, ist die Tatsache, dass ein angebotsleeres Eingabefeld („Prompt“) schlicht voraussetzt, dass der Benutzer Programmnamen und Unterfunktionen (Parameter) kennt.

Mindestens der richtige Programmname für eine gewünschte Aufgabe ist unerlässlich, um sich bei Bedarf mit den Hilfeseiten des Programms genauer zu informieren.

Damit sind CLI-Shells eine völlig andere Art der Maschinenbedienung, aber eben nur der Bedienung. Aus Systemsicht ist es identisch, ob das Firefox-Icon in der GUI-Shell geklickt wird oder der Befehl firefox in der CLI-Shell eingegeben wird.

CLI-Shells sind gegenüber der GUI-Metaphorik keine andere Welt, sondern nur eine sprödere Bedienmethode.

2. CLI-Shells unter Linux

Textbasierte CLI-Shells (auch „Kommandozeile“, „Befehlsinterpreter“, „Eingabeaufforderung“) gibt es jede Menge. Das gilt sowohl unter Linux (Bash, Dash, Zsh, Fish) als auch unter Windows (Cmd, Powershell, 4NT/TCC), während Mac-OS grundsätzlich die Zsh -Shell verwendet.

Solange eine Shell externe Programme wie etwa „ls“, „mc“, „nano“ oder „firefox“ aufruft, gibt es keine wesentlichen Unterschiede zwischen allen diesen Shells.

Jede CLI-Shell hat allerdings ihre Syntaxeigenheiten, ihren internen Befehlssatz sowie ihre Regeln für das „line editing“ (Texteingabe, Autovervollständigung, Befehlswiederholung, Zeilenbearbeitung).

Was machen wir hier? In der Bash-Shell lassen wir uns die vorhandenen Shells anzeigen und führen den ls-Befehl unter Bash, Fish, Zsh und Dash aus. Dass andere Shells gegenüber Bash blass aussehen, liegt nur an der fehlenden Konfigurationspflege.

Foundry

Erhebliche Unterschiede bestehen vor allem bei Alias-Abkürzungen, Funktionen und Scripts. Beim Wechsel der Standard-Shell ist deshalb mit Umgewöhnung und Anpassungen an bestehenden Initialisierungsdateien und Scripts zu rechnen.

Die auf dem System verfügbaren Shells sind in der Datei „/etc/shells“ verzeichnet:

cat /etc/shells

und die aktuelle Shell verrät dieser Befehl:

echo $SHELL

Interaktiv ist ein Shell-Wechsel jederzeit durch Aufruf einer anderen Shell möglich:

zsh

Auch das Nachinstallieren weiterer Shells ist über die Standard-Paketquellen etwa mit

sudo apt install zsh

keine große Aktion.

Vor diesem Hintergrund sollte man jedoch triftige Gründe haben, um die Shell zu wechseln oder dauerhaft umzustellen (siehe Punkt 3). In aktuellen Linux-Distributionen ist die Bash-Shell praktisch überall Standard.

Bash ist kein Vergnügen, macht aber letztlich, was man will, und ist am besten dokumentiert.

Außerdem bringt die Standard-Shell eine Basisumgebung mit, die man sich für andere CLI-Shells erst selbst erarbeiten müsste: Unter „/etc/skel“ liegen Vorlagen für die wichtigen Initialisierungsdateien „bashrc“ und „profile“, die automatisch in jede Benutzerkonfiguration übernommen werden.

3. Log-in-Shells und Loginctl

Im Kontext von Shells und Terminals stößt man unweigerlich auf den Begriff der „Login-Shell “ (und „Non-Log-in-Shell“). Die Definition ist denkbar einfach: Auf einer Log-in-Shell muss man sich mit Systemkonto und Kennwort anmelden, auf der Non-Log-in-Shell nicht. Folgende Shells sind aus diesem Grund Log-in-Shells:

  • die grafische GUI-Shell wie etwa Gnome oder KDE
  • die virtuellen Konsolen (siehe Punkt 5)
  • Remote-Shells wie SSH oder Remotedesktop (siehe Punkt 7)

Non-Log-in-Shells sind hingegen alle grafischen Terminalfenster, die unter einer Linux-Oberfläche gestartet werden. Eine Anmeldung ist nicht erforderlich, weil diese bereits bei der GUI-Anmeldung erfolgt ist.

Sofern das System mit systemd läuft (beinahe überall), zeigt der Befehl

loginctl

alle aktuellen Log-in-Shells an. Dazu gehört beim Desktop-System auch die grafische GUI-Shell, die in der Ausgabe von Loginctl auf „seat0“ (lokaler „Sitz“) ohne „TTY“-Kennung (kein Terminal) anzutreffen ist.

Lokale Anmeldungen auf virtuellen Konsolen (siehe Punkt 5) erscheinen ebenfalls als „seat0“ und mit der Ziffer der virtuellen Konsole wie etwa „tty2“.

Schlecht lesbare Liste der aktiven Log-in- Shells: „seat0“ (Sitz 0) zeigt lokale Anmeldungen auf virtuellen Konsolen (TTY[x]) oder am Desktop (TTY leer). Der Rest zeigt SSH-Anmeldungen („pts“ für „Pseudo Terminal Slave“).

Foundry

Bei SSH-Anmeldungen bleibt die Spalte „SEAT“ leer, da es sich um einen Fernzugriff handelt. In der Spalte „TTY“ erscheint die Abkürzung „pts“ (Pseudo Terminal Slave) mit einer Kennziffer – also etwa „pts/2“.

Die Zahl der lokalen TTYs, also der virtuellen Konsolen, ist auf sechs, zum Teil auf fünf begrenzt, die der SSH-Pseudo-Terminals standardmäßig nicht, sie kann aber durch eine Einstellung in der SSH-Konfigurationsdatei „/etc/ssh/sshd_config“ eingeschränkt werden („MaxSessions“).

4. Wechsel der Log-in-Shell

Mit dem Befehl Chsh(Change Shell) kann root oder jeder sudo-berechtigte Benutzer die Log-in-CLI-Shell umstellen. Nach Chsh wird das Kennwort verlangt, und in der Folge kann ein anderer Kommandointerpreter als Standard eingestellt werden.

Dies muss mit komplettem Pfad erfolgen, also etwa „/usr/ bin/zsh“. Wie schon angemerkt, liefert die Datei „/etc/shells“ alle auf dem System verfügbaren Shells.

Nach dieser Änderung starten alle Log-in-Shells – also die virtuellen Konsolen und Remote-Shells via SSH – mit dem geänderten Kommandointerpreter.

Wechsel der Log-in-Shell: Der Befehl Chsh kann die Standard-Shell umstellen. Eine Abkehr von der üblichen Bash-Shell sollte aber gute Gründe haben.

Foundry

Diese Umstellung wirkt sich nicht auf grafische Terminalemulatoren (siehe Punkt 6) wie etwa das Gnome-Terminal aus, weil diese keine Log-in-Shell starten.

Wer die CLI-Shell im Terminalemulator umstellen möchte, muss dessen Konfigurationsdialog bemühen. Im Gnome-Terminal ist dies unter „Bearbeiten –› Einstellungen (Profile) –› Befehl“ möglich, indem ein „Benutzerdefinierter Befehl“ wie /bin/dash eingetragen wird.

Das KDE-Terminal Konsole ist in diesem Punkt klarer, insofern unter „Allgemein –› Befehl“ der Standard „/bin/bash“ vorgegeben ist und an dieser Stelle durch einen anderen Kommandointerpreter ersetzt werden kann.

5. Virtuelle Konsolen

Der Begriff „Konsole“ (und synonym „Terminal“) stammt aus Rechenzentren der 70er- und 80er-Jahre und meint einen physischen Arbeitsplatz mit Monitor und Tastatur. Mehrere solcher Konsolen dienten der Steuerung, Kontrolle und Job-Auslösung am Großrechner.

Der Linux-Kernel übernimmt dieses Prinzip und bietet insgesamt sieben Konsolen, wobei heute auf einer Konsoleninstanz in der Regel die grafische GUI-Shell läuft und weitere Konsolen mit CLI-Shells jederzeit als Arbeits- oder Reparaturebene bereitstehen.

„Virtuell“ heißen diese Konsolen aus dem einfachen Grund, da es sich nicht mehr um physische Arbeitsplätze handelt.

Die Tastenkombinationen Strg-Alt-F1, Strg- Alt-F2 bis Strg-Alt-F6 führen in diese Textkonsolen, Strg-Alt-F7 klassischerweise (zurück) zur Konsole mit der grafischen Oberfläche.

Mittlerweile wird aber auch unter Linux der grafische Desktop priorisiert und deshalb ist oft Strg-Alt-F1 der Hotkey, der zum Desktop führt.

Ob in diesem Fall Strg- Alt-F7 unbelegt bleibt oder eine textbasierte Konsole anbietet, ist von der Distribution abhängig. Es gibt Linux-Distributionen mit nur noch fünf virtuellen CLI-Konsolen.

Endanwender werden kaum Multitasking mit mehreren virtuellen Konsolen benötigen. Der Gang in eine dieser Konsolen kann aber unerlässlich werden, wenn die grafische Shell nicht mehr funktioniert.

Hier können Dateien repariert, gelöscht oder verschoben, ein neuer Benutzer angelegt oder hängende Systeme sauber beendet werden.

Ein weiterer Vorteil dieser Konsolen: Was dort gestartet wird und läuft, wird bei einer Abmeldung von der grafischen Benutzeroberfläche nicht unterbrochen.

Die virtuellen Konsolen starten im Vollbild die globale Log-in-Shell, also normalerweise die Bash-Shell. Konfiguration, Aliases, Prompt entsprechen für den angemeldeten Benutzer genau jener im grafischen Terminal, da auch das Initial-Script („~/.bashrc“) in diesem Fall berücksichtigt wird.

Auch der Befehlsvorrat dieser Konsolen entspricht genau dem, was das grafische Terminal anbietet. Die virtuelle Konsole bietet allerdings – trotz meist vorhandenem Konsolenmaustreiber (gpm, General Purpose Mouse) – keine brauchbare Mausbedienung und sie kann keine grafischen Programme starten.

6. Terminalemulatoren am Desktop

Die heute meistgenutzten „Terminals“ und „Konsolen“ am Linux-Desktop haben mit der ursprünglichen Bedeutung dieser Begriffe wenig gemein: Diese Terminalemulatoren sind grafische Programme, welche die CLI-Shell auf die GUI-Oberfläche bringen. Bekannte Kandidaten sind:

  • Gnome-Terminal (unter Gnome, Cinnamon, Budgie, Unity)
  • Konsole (KDE, LXQT)
  • Xfce4-Terminal (XFCE)
  • Mate-Terminal (Mate)

Es handelt sich um optisch ansprechende Fenster mit einstellbaren Schriften, Farben, Transparenz, Bildlaufpuffer. Die Terminalemulatoren der Linux-Distributionen geben daher wenig Anlass, eine der zahlreichen Alternativen nachzuinstallieren.

Immerhin zu erwähnen ist ein Terminalemulator wie Guake, der mit Hotkey F12 jederzeit ein Dropdown-Terminal in beliebig einstellbarer Größe ein- und ausblendet.

Grafische Terminalemulatoren gibt es in Mengen und in exzellenter Qualität: Das Drop-down-Terminal Guake hat Komfortoptionen und einen opulenten Anpassungsdialog.

Foundry

Man sollte sich darüber klar sein, dass alle Terminalemulatoren allein der bequemen Nutzung und ästhetischen Darstellung von textbasierten CLI-Shells dienen, allerdings von diesen technisch komplett unabhängig sind.

Die Optionen der grafischen Terminalprogramme haben mit der CLI-Shell nichts zu tun. Wie unter Punkt 4 ausgeführt, kann jeder Terminalemulator eine beliebige CLI-Shell darstellen.

7. Secure Shell (SSH) & Remote-Shells

Secure Shell (SSH) ist ein Netzwerkprotokoll, das die sichere Fernbedienung eines Systems sowie den sicheren, verschlüsselten Datenaustausch ermöglicht.

Auf dem entfernten Rechner (Server) muss die Komponente Open-SSH-Server laufen, was durch Installation des gleichnamigen Pakets „openssh-server“ umstandslos zu erreichen ist.

Einen SSH-Client hat jedes Linux, Mac-OS und inzwischen auch Windows vorinstalliert (wobei unter Windows trotzdem nach wie vor meist das Tool Putty bevorzugt wird).

Für Mobilgeräte gibt es einschlägige SSH-Client-Apps. Beim Zugriff ist im Prinzip nicht mehr erforderlich als die Angabe der IP-Adresse und des gewünschten Systemkontos (auf dem Server):

ssh sepp@192.168.178.10

Bei korrekter Anmeldung startet die Login-Shell des Servers, in der Regel die Bash-Shell mit sämtlichen Einstellungen des gewählten Systemkontos. Für den Datenaustausch mit dem lokalen Rechner gibt es die Spezialbefehle scp sowie sftp, wesentlich komfortabler ist dafür jedoch der Einsatz des Midnight Commanders, der seinerseits SSH-Verbindungen herstellen kann („Links –› Shell-Verbindung“).

SSH ist flexibel und nicht nur als CLI-Shell zu erreichen: Zum Datenaustausch eignet sich der Midnight Commander, der SSH-Verbindungen als „Shell- Verbindung“ anbietet.

Foundry

Die zwei weiteren Remote-Shells Mosh („Mobile Shell“, Paketname „mosh“) und ET (Eternal Terminal, installierbar über „ppa:jgmath2000/et“) setzen den Open-SSH-Server voraus, erweitern aber die Verbindungsmöglichkeiten: Die Verbindung bleibt auch in wechselnden Netzen (Roaming) und bei schlechter Verbindungsqualität bestehen.

Für Endanwender, die im lokalen Netz auf andere Linux-Rechner zugreifen, ist dies kaum relevant. Mosh und ET haben als Zielgruppe Admins, die mit Mobilgeräten in wechselnden WLANs oder wechselnden Mobilnetzen unterwegs sind.

Mosh ist nur eine Verbindungsvariante, hat keinen eigenen Befehlsinterpreter und nutzt die Login-Shell des Servers (zumeist Bash). ET ist hingegen eine selbstständige CLI-Shell mit entsprechendem Umgewöhnungsaufwand.

8. Die Grub-Shell

Diese Spezial-Shell sieht man selten – und das ist gut so: DieGrub-Shell mit dem Eingabeprompt „grub>“ bekommt man nämlich nur zu Gesicht, wenn der Grub-Bootmanager keinen Linux-Kernel findet und kein System starten kann.

Mit Kenntnis der Grub-Shell oder solider Anleitung lässt sich Linux meist trotzdem starten.

Die Grub-Notfall-Shell zeigt nach „help“ zahlreiche Befehle. Für den manuellen Notstart eines Linux- Systems sind nur wenige, aber exakte Kommandos erforderlich.

Foundry

Beispiele für den manuellen Start eines Linux liefert etwa diese Anleitung.

Im Prinzip geht es darum, zunächst die Startpartition zu finden und mit „set root“ festzulegen, danach den Pfad zum Kernel („linux“) und zur initialen Ramdisk („initrd“) zu bestimmen und schließlich zu booten:

set root=(hd0,1)
linux /boot/vmlinuz-5.15.0-89-generic root=/dev/sda1
initrd /boot/initrd.img-5.15.0-89-generic
boot

Alle hier genannten Laufwerkskennungen und Pfade sind Beispiele, die angepasst werden müssen.

Universelle Terminaltipps

Eingabetaste (!): Ein eingegebener Befehl ist solange beliebig korrigierbar, bis die Eingabetaste gedrückt wird. Dies ist das finale Sendekommando für jede Terminalbedienung.

Exit: Statt des Befehls exit lässt sich jede textbasierte Linux-Shell am schnellsten mit dem Hotkey Strg-D beenden. Die Eingabezeile muss dabei leer sein.

Autocompletion: Lange Datei- und Ordnernamen müssen nicht getippt werden: Wenn Sie die ersten zwei, drei Buchstaben eingeben und anschließend die Tab-Taste drücken, ergänzt die CLI-Shell den vollständigen Namen automatisch, sofern die eingegebenen Buchstaben stimmen (Groß- und Kleinschreibung beachten!).

History: CLI-Shells wie Bash vergessen nichts. Alle Befehle werden in der „~/.bash_history“ gespeichert. Der Befehlsverlauf lässt sich mit der Taste Cursor-oben durchblättern und der gewünschte Befehl wieder auf den Prompt holen.

Zum Editieren der Zeile helfen Lösch- und Rücktaste, Pos1, Ende, Strg-Cursorrechts/ links (wortweise springen), Strg-K und Strg-U (Löschen nach und vor Cursor-Position).

Terminalemulatoren: Die grafischen Terminals bieten unter „Bearbeiten –› Profileinstellungen“ (o. ä.) komfortable Anpassungen zur Größe des Terminalfensters und zur Schriftart. Beachten Sie, dass Sie die meisten Terminalfenster bei Bedarf auch mit Strg-+ und Strg– skalieren können.

Die Registerkarte „Farben“ definiert die Farb- und Transparenzeinstellungen. Anfänger bleiben am besten bei Vorgaben wie „Schwarz auf hellgelb“ oder „Grün auf schwarz“, um kontrastarme Ergebnisse zu vermeiden.

Unter „Bildlauf“ sollte der „Zeilenpuffer“ deutlich vierstellig eingestellt sein, damit man auch bei umfangreichen Dateilisten bis zum Beginn der Ausgabe zurückscrollen kann.

Kopieren: Im grafischen Terminalemulator kann man nicht nur mit der Maus „Kopieren“ und „Einfügen“, sondern auch mit den Hotkeys Strg-Umschalt-C und Strg-Umschalt -V.

Das gebräuchlichere Strg-C und Strg-V funktioniert aus historischen Gründen nicht.

Die schnellste Methode ist der mittlere Mausklick (Mausrad): Dieser Klick fügt die aktuell markierte Textstelle an der aktuellen Cursor-Stelle ein. In den virtuellen Konsolen funktionieren diese Kopiermethoden nicht.

Discussion in the ATmosphere

Loading comments...