Wo kommt der Begriff „Terminal“ überhaupt her?
GeschichteWir tippen heute auf einem Laptop und nennen das Fenster „Terminal“ — der Name ist aber 80 Jahre alt und hat ursprünglich mit Linux nichts zu tun.
1837 — Telegrafenstationen
Der Begriff stammt aus der Welt der Telegrafen. Ein Telegrafen-Terminal war das Endgerät einer langen Leitung — der Punkt, an dem ein Mensch Nachrichten eintippte und empfing. Das Wort ist lateinisch terminus = „Ende, Grenze“.
1873 — Der Teletype
Aus dem Telegrafen wurde der Teletype (TTY) — ein Gerät, das Buchstaben statt Morsezeichen übertrug. Eine Tastatur tippte, ein Drucker druckte. Diese Geräte waren laut, langsam, gigantisch — und sie waren das erste, was Programmierer als „Eingabe-Ausgabe-Gerät“ an Computer anschlossen.
1950er — TTY am Großrechner
Die ersten Computer hatten keine Bildschirme. Programmierer saßen vor Teletypes und kommunizierten mit dem Mainframe über genau diesen Schreib-Druck-Apparat.
1970 — Glas-Terminals
Mit Aufkommen von Bildschirmen ersetzte das Video-Terminal (DEC VT100 ist DAS Modell) den Teletype. Plötzlich war die Ausgabe nicht mehr Papier, sondern grünes Glühen auf schwarzem Glas.
Heute — Terminal-Emulator
Auf modernen Computern gibt es keinen echten TTY mehr. Was du nutzt, ist ein Terminal-Emulator: ein Programm, das das Verhalten eines alten VT100 nachstellt. Beispiele: gnome-terminal, konsole, xterm, Windows Terminal, iTerm2, PuTTY.
In Linux heißen die virtuellen Konsolen bis heute /dev/tty1 bis /dev/tty6. Mit Strg+Alt+F2 wechselst du auf einer Linux-Maschine mit GUI tatsächlich auf "Teletype 2" — ein Begriff aus den 1950ern, der die Zeit überlebt hat.
Terminal vs. Konsole vs. Shell — drei Begriffe, drei Bedeutungen
DefinitionDiese drei Begriffe werden im Alltag wild durcheinandergeworfen. Technisch sind sie aber drei verschiedene Dinge:
| Begriff | Was ist das technisch? | Beispiel |
|---|---|---|
| Terminal | Das Programm/Fenster, das die Ein- und Ausgabe darstellt | gnome-terminal, iTerm2, Windows Terminal, PuTTY |
| Konsole | Strenggenommen die physische Anzeige direkt am Computer (TTY) | Was du siehst, wenn Rocky ohne GUI startet — schwarzer Bildschirm mit Login |
| Shell | Das Programm, das deine Befehle interpretiert und ausführt | bash, zsh, fish, sh — läuft im Terminal-Fenster |
So passen sie zusammen
Stell dir vor, du sitzt im Café: Terminal = der Tisch, an dem du schreibst. Shell = der Kellner, der deine Bestellung versteht und in die Küche weiterleitet. Konsole = die Theke direkt vor dem Koch, wo du auch ohne Tisch essen kannst.
Shells im Vergleich
Übersicht„Die Shell“ ist nicht eine Software — es gibt mehrere konkurrierende Implementierungen. Sie unterscheiden sich in Syntax-Details, Komfort-Features und Skript-Kompatibilität.
| Shell | Voller Name | Typische Rolle | Verbreitet auf |
|---|---|---|---|
sh | Bourne Shell (1977) | Ur-Shell, POSIX-Standard, sehr minimal | fast jedes Unix-System |
bash ⭐ | Bourne Again Shell (1989) | De-facto-Standard auf Linux | Rocky, Debian, Ubuntu — überall |
dash | Debian Almquist Shell | schlank, schnell, POSIX-rein | Debian/Ubuntu (/bin/sh → dash) |
zsh | Z Shell | komfortabel, viele Features (Oh-My-Zsh) | macOS-Default seit 2019 |
fish | Friendly Interactive Shell | moderne Defaults, eigene (nicht-POSIX) Syntax | Linux-Enthusiasten |
ksh | Korn Shell | klassische Wahl auf kommerziellen Unixe | AIX, Solaris |
tcsh | Tenex C Shell | Skript-Syntax wie die Sprache C | BSD, älteres Unix |
Welche Shell läuft bei mir gerade?
echo $SHELL # zeigt die Login-Shell des Users
# z.B. /bin/bash
echo $0 # zeigt die aktuell laufende Shell
cat /etc/shells # listet alle erlaubten Shells auf dem System
Der Name Bash = „Bourne Again SHell“ ist ein dreifaches Wortspiel: Sie ist eine Wiedergeburt der ursprünglichen Bourne Shell (born again), sie ist besser geworden (bourne → born), und sie ist tatsächlich frei nutzbar (von Brian Fox 1989 unter GPL geschrieben).
Warum ist Bash der Standard?
BegründungWir lernen Bash. Nicht weil es die schickste Shell wäre — sondern aus drei sehr praktischen Gründen:
- POSIX-kompatibel. Bash spricht POSIX, den IEEE-Standard für Unix-Shells. Skripte, die du in Bash schreibst, laufen mit minimalen Anpassungen überall.
- Überall installiert. Praktisch jedes Linux liefert Bash
mit. Auf Rocky/RHEL ist
/bin/bashdie Default-Login-Shell für alle User. Du musst nichts extra installieren. - Skripting-Tauglich. Bash ist genug Programmiersprache, um ganze Admin-Workflows abzubilden — von Backup-Skripten bis zu CI/CD-Pipelines.
Was Bash nicht ist: schön zu lesen. Erfahrene Admins fluchen über Bash-Syntax mindestens einmal pro Woche. Aber: sie ist universell. Wer Bash kann, kann sich auf jedem Linux-System bewegen — von Embedded-Router bis Cloud-VM.
Auf etwa 98 % aller Linux-Server ist Bash die Standard-Shell. macOS hat sie 2019 als Default auf zsh getauscht — aber Bash ist auf macOS weiterhin installiert. Im professionellen Admin-Alltag wirst du also mit sehr hoher Wahrscheinlichkeit Bash benutzen.
Anatomie des Prompts
Lesen lernenSchau auf deine Konsole. Da steht etwas wie:
Die wichtigste Unterscheidung: $ vs. #
| Zeichen | Bedeutung | Konsequenz |
|---|---|---|
$ |
Du bist als normaler User eingeloggt | Kannst nichts Systemweites kaputt machen ohne sudo |
# |
Du bist als root eingeloggt | VORSICHT! Jeder Befehl wirkt sofort und ohne Nachfrage |
Bevor du tippst, schau auf den Prompt: $ oder #?
Wenn # → langsamer tippen, doppelt prüfen, evtl. besser rausgehen
(exit) und mit sudo nur die einzelnen Befehle.
Den Prompt anpassen: $PS1
Wie der Prompt aussieht, steuert die Umgebungsvariable $PS1
(Prompt String 1). Du kannst sie temporär ändern:
# Aktuelles PS1 anzeigen
echo "$PS1"
# Mini-Demo: Prompt auf "> " setzen (nur diese Session)
PS1="> "
# Standard-Rocky-Prompt wiederherstellen
PS1='[\u@\h \W]\$ '
# Dauerhaft? Eintrag in ~/.bashrc
Häufige Platzhalter in PS1
| Platzhalter | Bedeutet |
|---|---|
\u | Username |
\h | Hostname (kurz) |
\H | Hostname (vollständig) |
\w | volles aktuelles Verzeichnis |
\W | nur das letzte Verzeichnis (~) |
\$ | $ bei User, # bei root |
\t | aktuelle Uhrzeit (HH:MM:SS) |
\d | Datum |
Tastenkürzel — die schnellsten Admins kommen ohne Maus aus
PflichtDiese Tastenkürzel musst du beherrschen. Sie sparen täglich Stunden, wenn du sie in Muscle Memory hast.
Editieren in der aktuellen Zeile
| Tastenkürzel | Funktion |
|---|---|
Tab | Auto-Completion (Datei-, Befehls-, Optionsnamen) |
Tab Tab | Zeigt alle möglichen Vervollständigungen |
Strg + A | Cursor an den Anfang der Zeile |
Strg + E | Cursor ans Ende der Zeile |
Strg + U | Vom Cursor bis Zeilen-Anfang löschen |
Strg + K | Vom Cursor bis Zeilen-Ende löschen |
Strg + W | Vorheriges Wort löschen |
Strg + Y | Zuletzt Gelöschtes wieder einfügen (Yank) |
Strg + L | Bildschirm leeren (wie clear) |
Befehle und Sessions steuern
Strg + C | Aktuellen Befehl abbrechen (SIGINT senden) |
Strg + D | EOF — beendet die Shell-Session (wie exit) |
Strg + Z | Aktuellen Befehl in den Hintergrund pausieren |
Strg + R | Reverse-i-search — durch History suchen ⭐ |
Strg + S / Strg + Q | Bildschirm einfrieren / fortsetzen (selten gewollt) |
Strg + Alt + F2…F6 | Wechsel zu virtuellen Konsolen (auf Bare-Metal Linux) |
Drück Strg+R und tipp ein paar Buchstaben — Bash sucht
rückwärts durch deine Befehlshistorie. Weitere Strg+R springt zum
nächsten Treffer. Enter führt den Befehl aus, Esc
übernimmt ihn in die Zeile zum Editieren. Wer einmal Strg+R lernt, will
nie wieder ohne arbeiten.
Drückst du aus Reflex (wie in Word) Strg+S, friert die Anzeige
ein. Strg+Q taut sie wieder auf. Wer das nicht weiß, glaubt das Terminal sei
kaputt.
Die History — was du schon getippt hast
ProduktivitätBash speichert jeden Befehl in einer Datei (~/.bash_history).
Default: die letzten 1000 Befehle. Damit lässt sich rumspielen:
history # zeigt komplette History
history | tail -20 # nur die letzten 20
!! # führt den vorherigen Befehl nochmal aus
sudo !! # vorheriger Befehl, diesmal mit sudo
# (klassischer Lebensretter!)
!42 # führt Befehl Nummer 42 aus der History aus
!ls # führt den letzten Befehl aus, der mit "ls" anfing
!?config? # führt den letzten Befehl aus, der "config" enthält
^alt^neu # wiederhole letzten Befehl, ersetze "alt" durch "neu"
# Beispiel: cat /ets/hosts → ^ets^etc → cat /etc/hosts
History mit Pfeiltasten
Einfacher als !42 ist meistens:
- Pfeil hoch ↑ — vorheriger Befehl
- Pfeil runter ↓ — nächster Befehl
- Pos1 / Ende — Anfang / Ende der Zeile
Befehl mit Leerzeichen davor tippen lässt ihn nicht
in der History landen — perfekt für sensible Daten wie temporäre
Passwörter. Aktiviert ist das auf Rocky standardmäßig durch
HISTCONTROL=ignoreboth in /etc/bashrc.
Tab-Completion — schneller tippen als denken
PflichtBash hilft dir beim Tippen. Tab ist deine wichtigste Taste — wichtiger als Enter.
Beispiele
# Befehlsname vervollständigen
$ syst<TAB>
$ systemctl
# Dateinamen vervollständigen
$ cd /etc/sys<TAB>
$ cd /etc/systemd/
# Wenn mehrere Optionen passen, einmal Tab macht NICHTS,
# zweimal Tab listet alle Möglichkeiten
$ cat /etc/host<TAB><TAB>
hostname hosts hosts.allow hosts.deny
# Auch Optionen werden vervollständigt
$ systemctl sta<TAB>
start status
Tippe nie einen langen Pfad komplett aus. Bis zur ersten Mehrdeutigkeit tippen → Tab → weiter tippen → Tab → fertig. Das spart Tippfehler und Sekunden. Profis tippen mit ~30 % Tab-Anteil.
man und --help — die Lebensretter
Doku
Niemand erinnert sich an alle Optionen aller Befehle. Linux hat eine Eigenschaft, die es Windows weit voraus hat: jede Software bringt ihre Dokumentation mit.
Drei Arten, Hilfe zu finden
# 1) Kurze Hilfe direkt am Befehl
ls --help
cp --help
sudo --help
# 2) Vollständige Manpage
man ls
man cp
man sudo
# 3) Wenn du nicht weißt, welcher Befehl es ist:
apropos "search files" # durchsucht Beschreibungen
whatis ls # einzeilige Beschreibung
In man navigieren
Space / Bild ↓ | nächste Seite |
b / Bild ↑ | vorherige Seite |
/begriff | Vorwärts-Suche |
n / N | nächster / vorheriger Treffer |
g / G | zum Anfang / Ende springen |
q | man beenden |
h | man-Hilfe anzeigen |
Manpage-Sektionen verstehen
Manpages sind in 9 Sektionen aufgeteilt. Steht in der
Kopfzeile, z.B. LS(1) bedeutet „ls aus Sektion 1“.
| Sektion | Bedeutung | Beispiel |
|---|---|---|
| 1 | User-Befehle (ausführbare Programme) | ls, cp |
| 2 | System-Aufrufe (Kernel-API) | open, read |
| 3 | Bibliotheksfunktionen (C-Lib) | printf, malloc |
| 4 | Spezialdateien (/dev) | tty, null |
| 5 | Dateiformate | passwd, fstab |
| 6 | Spiele | nethack |
| 7 | Konventionen, Misc | signal, regex |
| 8 | Admin-Befehle | mount, shutdown |
| 9 | Kernel-interne | selten |
Wichtig: Manche Wörter haben mehrere Manpages! passwd ist sowohl
ein Befehl (Sektion 1) als auch ein Dateiformat (Sektion 5). Mit
man 5 passwd sprichst du gezielt das Dateiformat an.
man man — die Manpage über das Manpage-System. Klingt
albern, ist aber tatsächlich eine der besten Erklärungen für die Sektionen.
Mini-Quiz: Was macht Strg+R?
Selbst-CheckBevor wir weitergehen, schnell drei Verständnisfragen für zwischendurch:
Bash sucht rückwärts durch die History nach dem letzten Befehl,
der „inst“ enthält — z.B. sudo dnf install nano -y. Weiteres Strg+R
springt zum nächst-älteren Treffer. Enter = ausführen,
Esc = in Zeile übernehmen.
Mit Strg+C nano abbrechen (oder im Editor speichern und beenden),
dann sudo !! — das wiederholt den letzten Befehl mit sudo davor:
sudo nano /etc/<datei>. Spart das Hochpfeilen und Vorne-Voranstellen
von „sudo“.
man 5 passwd — die 5 ist die Sektions-Nummer
für Dateiformate. Ohne Nummer zeigt man die erste Übereinstimmung,
das wäre Sektion 1 (Befehl passwd).
Kontrollfragen zum Kapitel
Abschluss- Erkläre in eigenen Worten den Unterschied zwischen Terminal, Konsole und Shell.
- Welche Shell ist auf Rocky Linux der Standard? Wofür steht ihr Name?
- Was unterscheidet das Prompt-Zeichen
$von#? - Wie zeigst du an, welche Shell gerade läuft?
- Nenne mindestens fünf Tastenkürzel, die du beherrschen solltest.
- Welcher Befehl wiederholt den letzten Befehl, diesmal mit sudo?
- Wie findest du heraus, welche Optionen
lshat? - Was bedeutet die
5inman 5 passwd?
- Terminal = das Programm, das die Ein-/Ausgabe darstellt (Fenster). Konsole = der physische TTY-Bildschirm direkt am Rechner. Shell = das Programm, das Befehle interpretiert (Bash, Zsh, …).
- Bash — „Bourne Again SHell“. Wortspiel auf die ursprüngliche Bourne Shell von 1977.
$= normaler User ·#= root. Bei # ist äußerste Vorsicht geboten, jeder Befehl wirkt sofort und ohne Schutz.echo $SHELL(Login-Shell) oderecho $0(aktuelle Shell).- Beispiele: Tab, Strg+R, Strg+C, Strg+D, Strg+L, Strg+A, Strg+E, Strg+U.
sudo !!ls --help(kurze Übersicht) oderman ls(vollständig).- Die Sektions-Nummer der Manpage — hier 5 = Dateiformate.
man 5 passwdzeigt also das Format der/etc/passwd-Datei, nicht den Befehlpasswd.