↑ ↓ auswählen, Enter öffnen, Esc schließen

Textverarbeitung

Logdateien, CSV und JSON auf der Kommandozeile zerlegen, filtern, zählen und umbauen. awk, sed, jq, sort, uniq und cut sind die Werkzeuge, die jeder Admin täglich braucht.

24 Einzeiler: 22 harmlos, 2 vorsicht, 0 destruktiv

Aktuelle WordPress-Version über die API abfragen

$curl -s https://api.wordpress.org/core/version-check/1.7/ | jq -r '.offers[0].version'
harmlos

Ausgabe mit column als Tabelle ausrichten

$column -t -s ':' /etc/passwd
harmlos

Bestimmte Felder mit cut ausschneiden

$cut -d':' -f1,7 /etc/passwd
harmlos

Bestimmten Zeilenbereich einer Datei ausgeben

$sed -n '100,120p;120q' /var/www/vhosts/example.com/httpdocs/wp-config.php
harmlos

CSV-Zeilen nach Wert in einer Spalte filtern

$awk -F';' -v c=3 -v w='aktiv' 'NR == 1 || $c == w' export.csv
harmlos

Doppelte Zeilen entfernen, ohne die Reihenfolge zu ändern

$awk '!seen[$0]++' liste.txt
harmlos

Durchschnitt, Minimum und Maximum einer Spalte berechnen

$awk -v c=2 'NR == 1 {min = max = $c} {s += $c; if ($c < min) min = $c; if ($c > max) max = $c} END {if (NR) printf "n=%d avg=%.2f min=%s max=%s\n", NR, s/NR, min, max}' messwerte.txt
harmlos

Einzelnes Feld aus JSON mit jq auslesen

$jq -r '.require.php' composer.json
harmlos

Häufigste Zeilen in einer Datei zählen

$sort liste.txt | uniq -c | sort -rn | head -n 20
harmlos

JSON lesbar formatiert und farbig anzeigen

$jq . composer.json
harmlos

JSON-Array in CSV mit Kopfzeile umwandeln

$jq -r '(.[0] | keys_unsorted) as $k | $k, (.[] | [.[$k[]]]) | @csv' plugins.json > plugins.csv
vorsicht

JSON-Array nach einem Feldwert filtern

$jq '[.[] | select(.status == "active")]' plugins.json
harmlos

Konfigurationsdatei ohne Kommentare und Leerzeilen anzeigen

$grep -Ev '^\s*(#|;|$)' /etc/php/8.2/fpm/php.ini
harmlos

Text in einer Datei mit sed ersetzen und Backup anlegen

$sed -i.bak 's|memory_limit = 128M|memory_limit = 256M|g' php.ini
vorsicht

Text in Klein- oder Großbuchstaben umwandeln

$tr '[:upper:]' '[:lower:]' < domains.txt
harmlos

WordPress-Plugins nach Status zählen

$wp plugin list --format=json --path=/var/www/vhosts/example.com/httpdocs | jq -r 'group_by(.status)[] | "\(.[0].status): \(length)"'
harmlos

Zahlen in einer Spalte mit awk summieren

$awk -v c=10 '{s += $c} END {print s}' /var/www/vhosts/system/example.com/logs/access_ssl_log
harmlos

Zeilen ausgeben, deren Spaltenwert über einer Grenze liegt

$awk -v c=10 -v min=5000000 '$c + 0 > min + 0' /var/www/vhosts/system/example.com/logs/access_ssl_log
harmlos

Zeilen einer Datei nummerieren

$nl -ba /var/www/vhosts/example.com/httpdocs/.htaccess
harmlos

Zeilen in vielen Dateien zählen und sortieren

$find /var/www/vhosts/example.com/httpdocs/wp-content/themes -type f -name '*.php' -exec wc -l {} + | sort -rn | head -n 20
harmlos

Zeilen zwischen zwei Suchmustern ausgeben

$sed -n '/BEGIN CERTIFICATE/,/END CERTIFICATE/p' fullchain.pem
harmlos

Zwei Dateien über ein gemeinsames Feld verbinden

$join -t ';' <(sort -t ';' -k1,1 domains-kunden.csv) <(sort -t ';' -k1,1 domains-ablauf.csv)
harmlos

Zwei Dateien zeilenweise nebeneinander stellen

$paste -d ';' domains.txt ips.txt
harmlos

Zwei Listen vergleichen: was fehlt in der zweiten

$comm -23 <(sort -u alle-domains.txt) <(sort -u gesicherte-domains.txt)
harmlos

Erst lesen, dann ausführen.

Die Befehle auf myline.de greifen direkt in Server, Dateien und Datenbanken ein. Ein falscher Pfad oder Platzhalter kann Daten unwiderruflich löschen oder einen Server unerreichbar machen.

  • Alle Befehle werden ohne Gewähr bereitgestellt und sind nicht auf jedem System getestet.
  • Vor dem Ausführen verstehen, was ein Befehl tut, und jeden Platzhalter prüfen.
  • Vorher ein Backup anlegen und möglichst zuerst auf einem Testsystem ausprobieren.
  • Die Ausführung erfolgt auf eigene Verantwortung. Eine Haftung für Schäden ist ausgeschlossen, soweit gesetzlich zulässig.