Nicht jeder Linux-Befehl ist gleich nützlich, einige gehören aber in den Werkzeugkasten jedes IT-Profis, weil sie im Alltag immer wieder gebraucht werden. Diese fünf Befehle beschleunigen die tägliche Arbeit auf der Kommandozeile spürbar. Zu jedem findest du hier typische Beispiele aus der Administration, die du direkt übernehmen kannst.
Die fünf wichtigsten Werkzeuge im Überblick
- grep: Durchsucht Dateien schnell nach bestimmten Textmustern, unverzichtbar beim Durchforsten umfangreicher Logdateien.
- sed: Bearbeitet Textdateien direkt in der Pipeline: Zeilen hinzufügen, entfernen, Text ersetzen oder neu formatieren.
- awk: Ähnlich mächtig wie sed, zusätzlich mit bedingten Anweisungen, vielseitig einsetzbar für strukturierte Textverarbeitung.
- diff: Vergleicht zwei Dateien und zeigt genau, welche Änderungen zwischen den Versionen vorgenommen wurden.
- ssh: Ermöglicht die sichere Verbindung zu entfernten Rechnern, etwa für den Zugriff auf einen Server im Büro von unterwegs.
grep: Fehler in Logdateien finden
grep gibt alle Zeilen aus, die ein Muster enthalten. Mit ein paar Optionen wird daraus ein präzises Suchwerkzeug:
grep -i "error" /var/log/syslogsucht ohne Rücksicht auf Groß- und Kleinschreibung.grep -rn "PermitRootLogin" /etc/ssh/durchsucht ein Verzeichnis rekursiv und zeigt die Zeilennummer.grep -C 3 "timeout" app.logzeigt drei Zeilen Kontext vor und nach jedem Treffer.grep -v "^#" datei.confblendet Kommentarzeilen aus, praktisch für einen schnellen Blick auf die aktive Konfiguration.
Mit -E nutzt du erweiterte reguläre Ausdrücke, etwa grep -E "fail|denied" für
mehrere Begriffe auf einmal. Wenn du Logs mehrerer Geräte zentral sammelst, etwa mit einem der
kostenlosen Syslog-Server, ist grep oft der
schnellste Weg zur Fehlerursache.
sed: Text ersetzen ohne Editor
sed arbeitet zeilenweise und eignet sich für Änderungen, die du nicht von Hand in jeder Datei machen willst:
sed 's/alt/neu/g' datei.txtersetzt jedes Vorkommen und gibt das Ergebnis aus, ohne die Datei zu ändern.sed -i.bak 's/^Port 22$/Port 2222/' /etc/ssh/sshd_configändert die Datei direkt und legt vorher eine Sicherung mit der Endung.bakan.sed -n '100,120p' datei.loggibt nur die Zeilen 100 bis 120 aus.sed '/^$/d' datei.txtentfernt leere Zeilen.
Tipp: Teste einen Ausdruck immer erst ohne -i. So siehst du das Ergebnis, bevor sed etwas
überschreibt.
awk: Spalten auswerten und rechnen
awk zerlegt jede Zeile in Felder ($1, $2 usw.) und kann damit filtern, zählen und
rechnen. Das macht es ideal für Logdateien und Befehlsausgaben mit festem Aufbau:
awk '{print $1}' access.log | sort | uniq -c | sort -rn | headzeigt die zehn IP-Adressen mit den meisten Zugriffen auf einen Webserver.df -h | awk '$5+0 > 80 {print $6, $5}'listet Dateisysteme, die zu mehr als 80 Prozent belegt sind.awk -F: '$3 >= 1000 {print $1}' /etc/passwdgibt alle regulären Benutzerkonten aus.
Mit -F legst du das Trennzeichen fest, etwa ein Semikolon für CSV-Exporte.
diff: Änderungen sichtbar machen
diff ist das Werkzeug der Wahl, wenn eine Konfiguration nach einem Update anders aussieht als vorher:
diff -u alt.conf neu.confzeigt die Unterschiede im übersichtlichen Unified-Format, das auch Git und Patch-Dateien verwenden.diff -r /etc/nginx /backup/nginxvergleicht ganze Verzeichnisse.diff <(ssh server1 cat /etc/hosts) <(ssh server2 cat /etc/hosts)vergleicht dieselbe Datei auf zwei Servern, ohne sie vorher zu kopieren.
Wer Firewall- oder Router-Konfigurationen als Textexport sichert, erkennt mit diff schnell, welche Regeln seit dem letzten Audit dazugekommen sind. Mehr zum Vorgehen beim Audit findest du in Firewall-Regeln aufräumen.
ssh: sicher und bequem auf entfernte Systeme
ssh ist mehr als ein Login-Befehl. Drei Funktionen sparen im Alltag viel Zeit:
- Schlüssel statt Passwort: Mit
ssh-keygen -t ed25519erzeugst du ein Schlüsselpaar, mitssh-copy-id benutzer@serverüberträgst du den öffentlichen Schlüssel. Danach kannst du die Passwort-Anmeldung auf dem Server abschalten. - Konfigurationsdatei: In
~/.ssh/confighinterlegst du Hostname, Benutzer, Port und Schlüssel je Server. Danach reichtssh webserverstatt einer langen Befehlszeile. - Sprunghost und Tunnel:
ssh -J bastion server-internverbindet über einen Zwischenrechner,ssh -L 8080:localhost:80 serverleitet einen lokalen Port auf den Server weiter, etwa für eine Weboberfläche, die nicht öffentlich erreichbar sein soll.
Wie ssh in einer echten Einrichtung zum Einsatz kommt, zeigt unsere Anleitung MikroTik CHR auf Hetzner Cloud installieren.
Zeit sparen durch Verkettung
Noch effizienter wird es, wenn sich mehrere Befehle kombinieren lassen: In der Shell trennt ein Semikolon
aufeinanderfolgende Befehle, etwa cd /tmp; ls. Mit && läuft der zweite Befehl
nur, wenn der erste erfolgreich war (apt update && apt upgrade), mit | leitest
du die Ausgabe eines Befehls als Eingabe an den nächsten weiter. Wiederkehrende Abläufe lassen sich zusätzlich als
Skript zusammenfassen und bei Bedarf mit einem einzigen Aufruf ausführen, etwa um eine bestimmte Anzahl an Dateien
zu komprimieren und automatisiert zu versenden.
Typische Fehler vermeiden
- Anführungszeichen vergessen: Muster mit Leerzeichen oder Sonderzeichen gehören in einfache Anführungszeichen, sonst interpretiert die Shell sie vorher.
- sed -i ohne Test: Erst ohne
-iprüfen oder mit-i.bakeine Sicherung anlegen. - Semikolon statt &&: Bei Befehlsketten mit Löschvorgängen lieber
&&nutzen, damit nach einem Fehler nichts weiterläuft.
Fazit
Wer diese fünf Befehle sicher beherrscht und zusätzlich Befehlsverkettung und einfache Skripte nutzt, arbeitet auf der Kommandozeile spürbar schneller. Für die tägliche Systemadministration und Fehlersuche gehören sie bei uns zum Standardrepertoire. Wenn du Unterstützung beim Betrieb deiner Linux-Server brauchst, findest du unsere IT-Leistungen hier.
FAQ
Was ist der Unterschied zwischen sed und awk?
sed ist auf das Suchen und Ersetzen von Text in Zeilen spezialisiert. awk zerlegt Zeilen in Felder und kann filtern, zählen und rechnen, ist also eher für tabellarische Daten gedacht.
Wie durchsuche ich ein ganzes Verzeichnis mit grep?
Mit grep -r und dem Verzeichnis als Ziel, zum Beispiel grep -rn "Suchbegriff" /etc/. Die Option -n zeigt zusätzlich die Zeilennummer.
Wie mache ich eine Änderung mit sed -i rückgängig?
Gar nicht, wenn du keine Sicherung hast. Nutze deshalb sed -i.bak, dann bleibt die Originaldatei mit der Endung .bak erhalten.
Warum sollte ich SSH-Schlüssel statt Passwörtern verwenden?
Schlüssel sind deutlich widerstandsfähiger gegen Brute-Force-Angriffe als Passwörter und ermöglichen die Anmeldung ohne Passworteingabe. Danach kannst du die Passwort-Anmeldung auf dem Server ganz abschalten.
Was ist der Unterschied zwischen ; und && in der Shell?
Beim Semikolon läuft der nächste Befehl immer, bei && nur, wenn der vorherige erfolgreich war.