{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreieouef77ogx4srl7imtmserdftguvlzev6b64snwpmaorn3fdluy4",
"uri": "at://did:plc:lcqnmkieaiknpxjwvmcefo6g/app.bsky.feed.post/3mee64vkyc4e2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreihhaom5wlufjpniyoepv3rgbblnpwcq6r27t3riv7npldntagj5tm"
},
"mimeType": "image/jpeg",
"size": 539302
},
"path": "/article/1082977/linux-shell_clever_nutzen-linux.html",
"publishedAt": "2026-02-08T08:00:00.000Z",
"site": "https://www.pcwelt.de",
"tags": [
"Professional Software",
"Programmnamen und Unterfunktionen (Parameter) kennt",
"diese Anleitung"
],
"textContent": "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?\n\n## 1. GUI & CLI: Was ist eine „Shell“?\n\nShell (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).\n\nDie Unterschiede zwischen einer **GUI-Shell**(Graphical User Interface) und einer textbasierten **CLI-Shell** (Command Line Interface) sind evident:\n\n**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.\n\nEin 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.\n\nIn vielen Fällen gibt es auch Rechts- oder Mittelklick-Aktionen für alternative Funktionen.\n\nGrafische „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).\n\nFoundry\n\nDer 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.\n\nDieser 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).\n\nMit Recht bezeichnen sich GUI-Oberflächen wie etwa Gnome oder KDE selbst als „Gnome-Shell“ oder „Plasma-Shell“.\n\n**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.\n\nMindestens der richtige Programmname für eine gewünschte Aufgabe ist unerlässlich, um sich bei Bedarf mit den Hilfeseiten des Programms genauer zu informieren.\n\nDamit 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.\n\nCLI-Shells sind gegenüber der GUI-Metaphorik keine andere Welt, sondern nur eine sprödere Bedienmethode.\n\n## 2. CLI-Shells unter Linux\n\nTextbasierte 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.\n\nSolange eine Shell externe Programme wie etwa „ls“, „mc“, „nano“ oder „firefox“ aufruft, gibt es keine wesentlichen Unterschiede zwischen allen diesen Shells.\n\nJede CLI-Shell hat allerdings ihre Syntaxeigenheiten, ihren internen Befehlssatz sowie ihre Regeln für das „line editing“ (Texteingabe, Autovervollständigung, Befehlswiederholung, Zeilenbearbeitung).\n\nWas 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.\n\nFoundry\n\nErhebliche 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.\n\nDie auf dem System verfügbaren Shells sind in der Datei „/etc/shells“ verzeichnet:\n\n\n cat /etc/shells\n\nund die aktuelle Shell verrät dieser Befehl:\n\n\n echo $SHELL\n\nInteraktiv ist ein Shell-Wechsel jederzeit durch Aufruf einer anderen Shell möglich:\n\n\n zsh\n\nAuch das Nachinstallieren weiterer Shells ist über die Standard-Paketquellen etwa mit\n\n\n sudo apt install zsh\n\nkeine große Aktion.\n\nVor 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.\n\nBash ist kein Vergnügen, macht aber letztlich, was man will, und ist am besten dokumentiert.\n\nAuß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.\n\n## 3. Log-in-Shells und Loginctl\n\nIm 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:\n\n * die grafische GUI-Shell wie etwa Gnome oder KDE\n * die virtuellen Konsolen (siehe Punkt 5)\n * Remote-Shells wie SSH oder Remotedesktop (siehe Punkt 7)\n\n\n\nNon-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.\n\nSofern das System mit systemd läuft (beinahe überall), zeigt der Befehl\n\n\n loginctl\n\nalle 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.\n\nLokale Anmeldungen auf virtuellen Konsolen (siehe Punkt 5) erscheinen ebenfalls als „seat0“ und mit der Ziffer der virtuellen Konsole wie etwa „tty2“.\n\nSchlecht 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“).\n\nFoundry\n\nBei 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“.\n\nDie 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“).\n\n## 4. Wechsel der Log-in-Shell\n\nMit 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.\n\nDies 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.\n\nNach dieser Änderung starten alle Log-in-Shells – also die virtuellen Konsolen und Remote-Shells via SSH – mit dem geänderten Kommandointerpreter.\n\nWechsel 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.\n\nFoundry\n\nDiese Umstellung wirkt sich nicht auf grafische Terminalemulatoren (siehe Punkt 6) wie etwa das Gnome-Terminal aus, weil diese keine Log-in-Shell starten.\n\nWer 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.\n\nDas 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.\n\n## 5. Virtuelle Konsolen\n\nDer 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.\n\nDer 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.\n\n„Virtuell“ heißen diese Konsolen aus dem einfachen Grund, da es sich nicht mehr um physische Arbeitsplätze handelt.\n\nDie 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.\n\nMittlerweile wird aber auch unter Linux der grafische Desktop priorisiert und deshalb ist oft Strg-Alt-F1 der Hotkey, der zum Desktop führt.\n\nOb 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.\n\nEndanwender 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**.\n\nHier können Dateien repariert, gelöscht oder verschoben, ein neuer Benutzer angelegt oder hängende Systeme sauber beendet werden.\n\n**Ein weiterer Vorteil dieser Konsolen:** Was dort gestartet wird und läuft, wird bei einer Abmeldung von der grafischen Benutzeroberfläche nicht unterbrochen.\n\nDie 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.\n\nAuch 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.\n\n## 6. Terminalemulatoren am Desktop\n\nDie 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:\n\n * Gnome-Terminal (unter Gnome, Cinnamon, Budgie, Unity)\n * Konsole (KDE, LXQT)\n * Xfce4-Terminal (XFCE)\n * Mate-Terminal (Mate)\n\n\n\nEs 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.\n\nImmerhin zu erwähnen ist ein Terminalemulator wie Guake, der mit Hotkey F12 jederzeit ein Dropdown-Terminal in beliebig einstellbarer Größe ein- und ausblendet.\n\nGrafische Terminalemulatoren gibt es in Mengen und in exzellenter Qualität: Das Drop-down-Terminal Guake hat Komfortoptionen und einen opulenten Anpassungsdialog.\n\nFoundry\n\nMan 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.\n\nDie 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.\n\n## 7. Secure Shell (SSH) & Remote-Shells\n\nSecure Shell (**SSH**) ist ein Netzwerkprotokoll, das die sichere Fernbedienung eines Systems sowie den sicheren, verschlüsselten Datenaustausch ermöglicht.\n\nAuf dem entfernten Rechner (Server) muss die Komponente Open-SSH-Server laufen, was durch Installation des gleichnamigen Pakets „openssh-server“ umstandslos zu erreichen ist.\n\nEinen 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).\n\nFü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):\n\n\n ssh sepp@192.168.178.10\n\nBei 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“).\n\nSSH ist flexibel und nicht nur als CLI-Shell zu erreichen: Zum Datenaustausch eignet sich der Midnight Commander, der SSH-Verbindungen als „Shell- Verbindung“ anbietet.\n\nFoundry\n\nDie 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.\n\nFü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.\n\nMosh 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.\n\n## 8. Die Grub-Shell\n\nDiese Spezial-Shell sieht man selten – und das ist gut so: Die**Grub-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.\n\nMit Kenntnis der Grub-Shell oder solider Anleitung lässt sich Linux meist trotzdem starten.\n\nDie Grub-Notfall-Shell zeigt nach „help“ zahlreiche Befehle. Für den manuellen Notstart eines Linux- Systems sind nur wenige, aber exakte Kommandos erforderlich.\n\nFoundry\n\nBeispiele für den manuellen Start eines Linux liefert etwa diese Anleitung.\n\nIm 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:\n\n\n set root=(hd0,1)\n linux /boot/vmlinuz-5.15.0-89-generic root=/dev/sda1\n initrd /boot/initrd.img-5.15.0-89-generic\n boot\n\nAlle hier genannten Laufwerkskennungen und Pfade sind Beispiele, die angepasst werden müssen.\n\n## Universelle Terminaltipps\n\n**Eingabetaste (!):** Ein eingegebener Befehl ist solange beliebig korrigierbar, bis die Eingabetaste gedrückt wird. Dies ist das finale Sendekommando für jede Terminalbedienung.\n\n**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.\n\n**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!).\n\n**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.\n\nZum 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).\n\n**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.\n\nDie 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.\n\nUnter „Bildlauf“ sollte der „Zeilenpuffer“ deutlich vierstellig eingestellt sein, damit man auch bei umfangreichen Dateilisten bis zum Beginn der Ausgabe zurückscrollen kann.\n\n**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.\n\nDas gebräuchlichere Strg-C und Strg-V funktioniert aus historischen Gründen nicht.\n\nDie 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.",
"title": "Shells, Terminals und Co. – Diese typischen Linux-Begriffe müssen Sie kennen"
}