Zum Inhalt springen

Das Magazin für Web-Handwerker Mittwoch, 19. August 2026

Werkzeuge

Kommandozeilen-Werkzeuge für die Webentwicklung

ripgrep, fd, fzf, bat, eza, jq, gh: die zeitgemäßen Nachfolger von grep, find und cat — und was jedes davon wirklich bringt.

Les outils CLI que j'utilise tous les jours en dev web

Die Kommandozeile bleibt der schnellste Ort, um Code zu durchsuchen, zu filtern und zu bearbeiten. Die historischen Unix-Werkzeuge — grep, find, cat — stammen jedoch aus einer Zeit ohne .gitignore, ohne 400 MB große node_modules-Verzeichnisse und ohne farbige Ausgabe. Eine Generation von Nachfolgern hat sich in Webentwicklungsumgebungen durchgesetzt. Ein Überblick über die, die sich einen Platz im $PATH wirklich verdienen.

Gemeinsamer Nenner: Es sind einzelne Binärdateien ohne Laufzeitabhängigkeit. Ein brew install oder ein apt-Paket genügt, und keines verlangt vorherige Konfiguration — sie sind ab dem ersten Befehl nützlich.

Suchen und filtern

ripgrep — die Suche, die grep hätte sein sollen

rg durchsucht rekursiv einen regulären Ausdruck und berücksichtigt dabei automatisch die .gitignore, überspringt Binärdateien und färbt die Ausgabe ein. In Rust von Andrew Gallant geschrieben, dient es als Standard-Suchmaschine von Visual Studio Code — eine belastbare Referenz für den Einsatz im großen Maßstab.

# Einen Funktionsaufruf im gesamten Projekt suchen, ohne node_modules zu durchpflügen
rg "wp_enqueue_script" --type php

# Treffer-Dateien auflisten
rg -l "TODO" src/

# Regulärer Ausdruck mit Gruppe, Ersetzung nur angezeigt
rg "version: (d+.d+)" --replace 'v$1'

Der Abstand zu grep -r liegt nicht nur in der reinen Geschwindigkeit, sondern in der Beachtung der .gitignore: In einem Monorepo verbringt grep Sekunden damit, vendor/ und node_modules/ zu durchlaufen, die rg standardmäßig ignoriert. Das offizielle Repository dokumentiert die Dateityp-Filter.

Was ripgrep bringt, ist kein Tippkomfort: Es ist die Geschwindigkeit, mit der man eine unbekannte Codebasis versteht.

fd — eine Datei finden, ohne die find-Syntax aufzusagen

find ist mächtig, seine Syntax unbarmherzig. fd von David Peter löst den Normalfall einfach: lesbare Syntax, farbige Ausgabe, Beachtung der .gitignore.

# Alle SCSS-Dateien
fd -e scss

# Übrig gebliebene .DS_Store finden und löschen
fd -H '^.DS_Store$' -X rm

# Ein bestimmtes Verzeichnis suchen
fd -t d migrations

fzf — der Fuzzy-Filter, der sich kombinieren lässt

fzf von Junegunn Choi ist ein interaktiver Fuzzy-Filter. Schon allein nützlich, entfaltet er seinen Wert erst in Kombination mit anderen Werkzeugen über Pipes: Verlaufssuche, Auswahl eines Git-Branchs, Öffnen von Dateien.

# Eine per Fuzzy-Suche gewählte Datei in $EDITOR öffnen
vim "$(fzf)"

# Git-Branch interaktiv wechseln
git checkout "$(git branch | fzf | tr -d ' *')"

# Kombiniert mit fd und bat als Vorschau
fd -t f | fzf --preview 'bat --color=always {}'

Lesen und verstehen

bat — cat mit Syntaxhervorhebung

bat ersetzt cat beim Lesen durch Menschen: Syntaxhervorhebung, Zeilennummern, Git-Markierungen am Rand. Fürs Skripting bleibt cat vorzuziehen; beim Lesen einer Konfigurationsdatei ist der Unterschied deutlich.

bat wp-config.php
bat -r 40:80 functions.php   # nur die Zeilen 40 bis 80

eza — ein zeitgemäßes ls

Da exa nicht mehr gepflegt wird, hat die Community die Entwicklung unter dem Namen eza fortgeführt: Symbole, Farben nach Typ, Baumansicht, Git-Statusspalte.

eza -la --git --icons
eza --tree --level=2 src/

jq — mit JSON arbeiten

Sobald eine API im Spiel ist, kommt man an jq kaum vorbei. Das Projekt wird inzwischen unter der Organisation jqlang gepflegt und hat wieder einen regelmäßigen Veröffentlichungsrhythmus.

# Beitragstitel aus der WordPress-REST-API extrahieren
curl -s https://beispiel.de/wp-json/wp/v2/posts | jq '.[].title.rendered'

# Filtern und umformen
curl -s https://beispiel.de/wp-json/wp/v2/posts 
  | jq '[.[] | {id, slug, titel: .title.rendered}]'

gh — GitHub ohne das Terminal zu verlassen

Der offizielle GitHub-Client deckt den Großteil des Arbeitsablaufs ab: Pull Request anlegen, prüfen, CI-Läufe einsehen, Issues verwalten. Er erspart das ständige Hin und Her zwischen Editor und Browser.

gh pr create --fill
gh pr checks
gh issue list --label bug

Übersicht

WerkzeugErsetztEntscheidender Nutzen
rggrep -rBeachtung der .gitignore, Tempo im Monorepo
fdfindLesbare Syntax für den Normalfall
fzfInteraktiver Fuzzy-Filter, über Pipes kombinierbar
batcat (Lesen)Syntaxhervorhebung und Git-Markierungen
ezalsBaumansicht und Git-Statusspalte
jqJSON abfragen und umformen
ghGitHub-WeboberflächeReview-Ablauf ohne Terminalwechsel

Was bleibt

Keines dieser Werkzeuge bietet eine gänzlich neue Fähigkeit: Sie senken die Kosten von Vorgängen, die man dutzendfach am Tag ausführt. Genau das macht sie rentabel — und erklärt ihre Verbreitung in so weit genutzten Werkzeugketten wie der von Visual Studio Code.

Bliebe nur eines, wäre es ripgrep: Es ist die erste Binärdatei, die ich auf einer neuen Maschine installiere, noch vor meinem Editor. Die anderen verbessern den Komfort; dieses verändert mein Tempo beim Verstehen einer neuen Codebasis. — Simon Janvier

Ebenfalls auf Mail Studio

Teilen LinkedIn Bluesky Hacker News E-mail

Ebenfalls lesenswert