Kommandos
Anatomie eines Befehls
Abschnitt betitelt „Anatomie eines Befehls“Ein Shell-Befehl folgt immer demselben Grundmuster:
befehl [optionen] [argumente]ls -lh /etc# ^ ^^ ^^^^# | || Argument: Pfad, auf den ls angewendet wird# | Optionen: -l (lange Ausgabe) und -h (menschenlesbare Größen)# BefehlOptionen verändern das Verhalten eines Befehls. Sie werden üblicherweise in zwei Formen angegeben:
| Form | Beispiel | Bedeutung |
|---|---|---|
| Kurzform | -l | Ein Bindestrich, ein Buchstabe |
| Langform | --all | Zwei Bindestriche, ein Wort |
Kurzoptionen lassen sich kombinieren: -l -a -h ist identisch mit -lah.
ls -lah /etcls --all /etc # identisch mit ls -a /etcrm -rf ordner/ # kombiniert: -r (rekursiv) + -f (force)Argumente sind die Eingaben, auf die der Befehl wirkt – typischerweise Dateipfade, Hostnamen oder sonstige Werte.
Arten von Kommandos
Abschnitt betitelt „Arten von Kommandos“Die bash kennt fünf Arten von Kommandos, die in dieser Reihenfolge gesucht werden:
- Alias – ein selbst definierter Kurzname für einen längeren Befehl
- Shell-Funktion – eine in der Shell-Konfiguration definierte Funktion
- Builtin – in die Shell eingebaut; kein externes Programm (z. B.
cd,echo,exit) - Externes Programm – eine ausführbare Datei, die über
$PATHgefunden wird - Absoluter Pfad – direkter Aufruf über den vollständigen Pfad
type cd # cd is a shell builtintype ls # ls is /usr/bin/lstype ll # ll is aliased to `ls -alF`type grep # grep is /usr/bin/grepDie $PATH-Variable
Abschnitt betitelt „Die $PATH-Variable“Externe Programme werden nicht überall gesucht – sondern nur in den Verzeichnissen, die in der Umgebungsvariablen $PATH aufgelistet sind:
echo $PATHDie Einträge sind durch : getrennt. Die Shell durchsucht sie von links nach rechts und nimmt das erste gefundene Programm.
which ls # zeigt den vollständigen Pfad des gefundenen Programmswhich python3# /usr/bin/python3Tab-Vervollständigung
Abschnitt betitelt „Tab-Vervollständigung“Die Tab-Taste ist eines der wichtigsten Produktivitätswerkzeuge der Shell. Sie vervollständigt Befehle, Dateipfade und – bei vielen Programmen – sogar Optionen:
ls /etc/ssh/ssh<Tab># → ls /etc/ssh/ssh_config (eindeutig: wird direkt vervollständigt)
ls /etc/s<Tab><Tab># → ssh/ ssl/ sysctl.conf systemd/ ... (mehrdeutig: alle Möglichkeiten werden angezeigt)Einmaliges Tab: vervollständigt, wenn eindeutig. Zweimaliges Tab: zeigt alle Möglichkeiten.
Befehlshistorie
Abschnitt betitelt „Befehlshistorie“Die Shell speichert ausgeführte Befehle in einer Historiedatei (~/.bash_history). Der schnellste Zugriff:
| Taste / Befehl | Funktion |
|---|---|
↑ / ↓ | Vorherigen / nächsten Befehl |
Strg+R | Rückwärts-Suche in der Historie |
history | Alle gespeicherten Befehle anzeigen |
!42 | Befehl Nummer 42 aus der Historie ausführen |
!! | Letzten Befehl wiederholen |
!ls | Letzten Befehl, der mit ls begann, wiederholen |
Strg+R(reverse-i-search)`ssh': ssh alice@server.beispiel.deHilfe zu Befehlen
Abschnitt betitelt „Hilfe zu Befehlen“Wie man zu einem Befehl Hilfe bekommt – über --help, man und weitere Quellen – ist im Abschnitt Hilfe & Dokumentation ausführlich beschrieben.