Terminal-Snippets
Alle Snippets für Terminal — copy-&-paste-fertig, erklärt und aus der Praxis.
timeout: Befehle, die sich festfahren, nach N Sekunden abbrechen
Ein Skript, das jede Nacht läuft, hängt irgendwann an einem Server, der nicht mehr antwortet – und dann läuft es eben nicht mehr zu Ende. timeout ist ein einziges Wort vor dem Befehl und macht aus dem Hänger einen sauberen Fehler.
Zwei Listen vergleichen mit comm – wer fehlt, wer ist neu, wer ist in beiden
Welche Dateien fehlen im Backup? Welche Kunden aus der alten Liste stehen nicht in der neuen? Für genau diese Fragen gibt es seit Unix-Urzeiten ein Werkzeug, das kaum jemand kennt – comm vergleicht zwei sortierte Listen und sagt dir in einer Zeile, was nur links, nur rechts oder in beiden steht.
Warum deine Zählvariable nach der Schleife wieder 0 ist – Prozess-Substitution in Bash
Ein Klassiker, der jeden einmal erwischt: Du zählst in einer while-Schleife hoch, und hinterher steht die Variable trotzdem auf 0. Schuld ist eine Subshell hinter der Pipe. Mit Prozess-Substitution behältst du das Ergebnis – und kannst nebenbei zwei Befehle direkt vergleichen.
Pfade und Namen zerlegen — ganz ohne basename, dirname und sed
Die Shell kann Zeichenketten selbst zerschneiden. Kein Aufruf eines externen Programms, keine Pipe – nur geschweifte Klammern. Wenn du das einmal kennst, werden deine Skripte kürzer und deutlich schneller.
Dateirechte verstehen – was 755 und 644 wirklich bedeuten
chmod 777 löst jedes Rechteproblem – und schafft ein größeres. Die drei Ziffern sind kein Zauberspruch, sondern eine simple Addition. Wer sie einmal verstanden hat, rät nie wieder.
cron – Aufgaben, die von selbst laufen (und warum sie es oft nicht tun)
Nächtliches Backup, wöchentlicher Bericht, stündliche Bereinigung: Fünf Zahlen und ein Befehl reichen. Der häufigste Fehler ist dabei nicht die Zeitangabe, sondern eine Umgebung, die ganz anders aussieht als dein Terminal.
„Address already in use" – herausfinden, wer den Port belegt
Der Entwicklungsserver startet nicht, weil Port 8000 angeblich schon benutzt wird – meistens von einem eigenen Prozess von vorhin. Mit ss oder lsof findest du ihn in Sekunden, statt das Terminal neu zu starten.
getopts – Skript-Parameter, die sich wie richtige Befehle anfühlen
$1, $2, $3 funktioniert genau so lange, bis man einen Parameter weglassen will. Mit getopts bekommt dein Skript benannte Optionen, eine Hilfe und eine klare Fehlermeldung – in fünfzehn Zeilen.
awk – Spalten herausziehen und Summen bilden, direkt im Terminal
Wie viele Bytes hat mein Server heute ausgeliefert? Welche IP taucht am häufigsten im Log auf? Für solche Fragen muss man keine Datei herunterladen und in Excel öffnen – awk beantwortet sie in einer Zeile.
SSH bequemer machen – ~/.ssh/config und Port-Tunnel
Statt jedes Mal die lange ssh-Zeile zu tippen, hinterlegst du deine Server einmal in ~/.ssh/config. Und mit einem Port-Tunnel erreichst du eine entfernte Datenbank lokal, als liefe sie auf deinem Rechner. Zwei Dinge, die ich täglich nutze.
Suchen & Ersetzen im Terminal mit sed
Einen Text in vielen Dateien austauschen, ohne jede von Hand zu öffnen – das erledigt sed in einer Zeile. Ich zeige dir das Grundmuster, wie du es sicher in mehreren Dateien anwendest und warum du vorher immer erst ohne -i testest.
REST-APIs im Terminal testen mit curl
Bevor ich eine API in die App einbaue, teste ich sie im Terminal mit curl – GET, POST mit JSON, Header und Auth-Token. Ich zeige dir die Handvoll Flags, mit denen du jeden Endpunkt in Sekunden ausprobierst.