- 1 Section
- 10 Lessons
- unbegrenzt
- Bash / Shell-Scripting10
- 1.1Was ist eine Shell? bash, sh, zsh im Vergleich
- 1.2Grundlegende Befehle: cd, ls, cp, mv, rm, grep
- 1.3Variablen, Eingabe und Ausgabe
- 1.4Kontrollstrukturen: if, case, for, while
- 1.5Funktionen und Argumente
- 1.6Fehlerbehandlung: exit codes, trap
- 1.7Textverarbeitung: sed, awk, cut, sort
- 1.8Dateisystem-Automation: find, xargs, cron
- 1.9Netzwerk-Scripting: curl, ssh, rsync
- 1.10Praxisprojekt: Systemstatus- und Backup-Script
Grundlegende Befehle: cd, ls, cp, mv, rm, grep
Mit der Shell ausgerüstet aus Lektion 1 brauchst du jetzt das Vokabular. Diese Lektion ist deine Werkzeugkiste: 20-30 Befehle die du täglich nutzt sobald du am Terminal arbeitest. Wer diese flüssig kann, ist auf jedem Linux-System wie zuhause.
Wir gruppieren sie nach Aufgabe: Navigation (wo bin ich, wohin?), Datei-Operationen (anzeigen, kopieren, verschieben, löschen), Inhalts-Anzeige (was steht drin?) und Suchen (Pattern finden). Plus ein paar mächtige Konzepte wie Pipes und Wildcards.
1) Navigation: cd, ls, pwd
Im Dateisystem bewegt man sich mit drei Grundbefehlen:
pwd– „print working directory": zeigt wo du gerade bist.ls– „list": zeigt was im aktuellen (oder angegebenen) Verzeichnis steht.cd– „change directory": wechselt in ein anderes Verzeichnis.
Probier es: die linke Seite zeigt das Dateisystem, rechts das Terminal. Klick die Buttons und sieh wie sich die Befehle auswirken:
ls-Optionen: -l long (zeigt Rechte, Größe, Datum), -a all (auch versteckte Dateien die mit . beginnen), -h human (Größen lesbar wie „4.2K"), -t sortiert nach Datum, -S nach Größe. Oft kombiniert: ls -lah. Mit Tab kannst du Pfade auto-vervollständigen – das ist eine der wichtigsten Bash-Tricks überhaupt!2) Pfade verstehen: absolut, relativ, Spezial
Jede Datei im Linux-System hat einen Pfad. Diese gibt es in drei Geschmacksrichtungen:
/ (Root). Funktioniert von überall – immer eindeutig.~/Dokumente ist Abkürzung für /home/anna/Dokumente../script.sh = „die Datei im aktuellen Ordner". Pflicht beim Ausführen lokaler Skripte.cd .. = eine Ebene hoch. ../bilder = ein Verzeichnis hoch, dann „bilder".cd - = springe zurück zum letzten Standort. Super-praktisch beim Hin- und Herwechseln.Dokumente und dokumente sind ZWEI verschiedene Ordner. Anders als Windows. Außerdem sind Slashes Vorwärts (/), nie Rückwärts (\). Versteckte Dateien beginnen mit einem Punkt (.bashrc) – die siehst du nur mit ls -a.3) Datei-Operationen: cp, mv, rm, mkdir, touch
Die fünf Standard-Operationen die jeder kennen muss:
-i (interaktiv – fragt vor jeder Aktion), -v (verbose – zeigt was gemacht wird), -f (force – ohne Nachfrage). Pro-Tipp: vor einem rm mit Wildcards lieber erst ls mit demselben Pattern testen um zu sehen WAS getroffen wird.rm kein Zurück. Was weg ist, ist weg. Besonders gefährlich: rm -rf / würde das gesamte System löschen. Erstes nie als root tippen, zweitens Schutz: viele Systeme haben rm als Alias auf rm -i für interaktive Bestätigung. Bei Skripten: set -e und Pfad-Variablen ordentlich quoten – siehe L3 Variablen.4) Inhalte anzeigen: cat, less, head, tail
Wenn du wissen willst was IN einer Datei steht:
cat datei.txt– komplette Datei ausgeben. „concatenate" – kann auch mehrere Dateien zusammenhängen.less datei.txt– seitenweises Blättern, mit Suche (drück/). Mitqbeenden.head -n 20 datei.txt– erste 20 Zeilen.tail -n 20 datei.txt– letzte 20 Zeilen. Mit-flive mitwachsen (genial für Logfiles!).wc datei.txt– „word count": Zeilen, Wörter, Bytes.wc -lnur Zeilen.file datei– ratet welche Art Datei das ist (text, binary, image...).
Besonders tail -f /var/log/syslog ist Gold wert für die Server-Administration: du siehst Logs live wachsen während dein Server arbeitet. Mit tail -F wird auch fortgesetzt wenn die Datei rotiert wird.
5) Suchen mit grep – das Schweizer Messer
grep sucht Textmuster in Dateien (oder in Pipe-Daten). Steht für „global regular expression print" – stammt aus den 70ern. Bis heute eines der wichtigsten Bash-Werkzeuge:
$ grep "error" logfile.txt
# Mehrere Dateien gleichzeitig
$ grep "error" *.log
# Rekursiv im ganzen Verzeichnis
$ grep -r "TODO" .
# Wichtige Optionen kombiniert
$ grep -in "warning" /var/log/syslog
# │└ n: Zeilennummern
# └─ i: case-insensitive
Die wichtigsten Optionen merken: -i (Groß/Klein egal), -n (Zeilennummer), -r (rekursiv), -v (invertieren: zeigt was NICHT matcht), -c (nur Anzahl), -l (nur Dateinamen). grep versteht auch Regular Expressions – damit kannst du sehr mächtig suchen (siehe L7 Textverarbeitung für sed/awk).
6) Pipes: Befehle verketten
Hier kommt einer der wichtigsten Bash-Tricks. Der Pipe-Operator | verbindet die Ausgabe eines Befehls mit der Eingabe des nächsten. So baust du aus kleinen Tools mächtige Ketten:
cat *.log | grep "ERROR" | wc -l. Drei Tools, eine Antwort.7) Wildcards: viele Dateien auf einmal
Bash hat eingebaute Pattern-Matching für Dateinamen, sogenannte Globs. Sie ersetzen sich automatisch zu allen passenden Dateinamen, bevor der Befehl ausgeführt wird:
* = beliebig viele Zeichen (auch null), ? = genau ein Zeichen, [abc] = a, b oder c, [0-9] = eine Ziffer, {txt,md,html} = txt ODER md ODER html. Beispiele: foto*.jpg = alle JPGs die mit "foto" beginnen. ?.txt = a.txt, b.txt – aber nicht ab.txt. *.{jpg,png} = alle Bilder. Wichtig: die Wildcards werden von der Shell aufgelöst BEVOR der Befehl sie sieht.8) Hilfe zu Befehlen finden
Du wirst nie alle Befehle und Optionen auswendig kennen. Profis schlagen ständig nach. Drei Wege:
- man befehl – die offizielle „manual page". Sehr ausführlich, manchmal viel zu viel. Mit
/drinnen suchen,qverlassen. - befehl --help – kompakte Hilfe direkt vom Programm. Funktioniert bei den meisten modernen Tools.
- tldr befehl – falls installiert, zeigt knappe praktische Beispiele. Top für „wie war noch mal der Befehl?".
Für Web-Lookups: cheat.sh ist genial – auf der Kommandozeile curl cheat.sh/find liefert ein Cheat-Sheet zu find. Stack Overflow und die man-Pages sind die zwei wichtigsten Quellen für jeden Bash-Nutzer.
9) Tab-Completion und History – die Profi-Tricks
Drei Tastendrucker die du täglich brauchst:
- Tab – vervollständigt Dateinamen, Befehle, Variablen. Doppel-Tab zeigt alle Möglichkeiten. Wichtigster Bash-Trick überhaupt.
- Pfeil hoch/runter – frühere Befehle durchblättern.
historyzeigt die ganze Liste. - Ctrl+R – Reverse-Suche in der History. Tippe einen Teil eines früheren Befehls, finde ihn schnell.
- Ctrl+C – aktuellen Befehl abbrechen.
- Ctrl+L – Terminal leeren (wie
clear). - Ctrl+D – Eingabe-Ende / Shell verlassen (wie
exit).
Die History wird in ~/.bash_history gespeichert – kannst du sogar einsehen. Mit !! wiederholst du den letzten Befehl. !grep startet den letzten Befehl der mit „grep" begann. Sehr nützlich.
10) Hilfreiche Befehle, die später kommen
Diese Befehle vertiefen wir in eigenen Lektionen. Hier als Übersicht damit du sie schon mal kennst:
| Befehl | Was er macht | Wo wir's lernen |
|---|---|---|
echo, read | Text ausgeben, Eingabe lesen | L3 |
if, for, while | Kontrollstrukturen | L4 |
sed, awk, cut, sort | Textverarbeitung | L7 |
find, xargs, cron | Dateisuche, Automatisierung | L8 |
curl, ssh, rsync | Netzwerk-Operationen | L9 |
chmod, chown | Rechte und Eigentum | K29 |
ps, top, kill | Prozesse verwalten | K29 |
Zusammenfassung
Navigation: pwd (wo bin ich), ls (was ist hier), cd (wohin). Pfade: absolut (/...), relativ (von hier), ~ (Home), . (hier), .. (eins hoch), - (letzter Standort). Datei-Operationen: cp, mv, rm, mkdir, touch – mit -r rekursiv für Verzeichnisse. rm ist endgültig! Anzeigen: cat (komplett), less (blättern), head/tail (erste/letzte Zeilen, -f live), wc (zählen). grep sucht Patterns (-i case-insensitive, -r rekursiv, -n Zeilennummern). Pipes | verbinden Befehlsketten. Wildcards: *, ?, [abc], {a,b}. Hilfe: man, --help, tldr. Tastatur: Tab zum Vervollständigen, Ctrl+R für History-Suche.
