Aller au contenu

Le média des artisans du web mercredi 19 août 2026

Outils

Les outils en ligne de commande du développement web

ripgrep, fd, fzf, bat, eza, jq, gh : les remplaçants contemporains de grep, find et cat, avec ce que chacun apporte réellement au quotidien.

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

La ligne de commande reste l’endroit le plus rapide pour chercher, filtrer et manipuler du code. Les outils Unix historiques — grep, find, cat — datent pourtant d’une époque sans .gitignore, sans node_modules de 400 Mo et sans sortie couleur. Une génération de remplaçants s’est imposée dans les environnements de développement web. Panorama de ceux qui tiennent réellement dans un $PATH.

Point commun à tous : ce sont des binaires uniques, sans dépendance d’exécution. Un brew install ou un paquet apt suffit, et aucun n’exige de configuration préalable — ils sont utiles dès la première commande.

Chercher et filtrer

ripgrep — la recherche que grep aurait dû être

rg recherche récursivement une expression régulière en respectant automatiquement le .gitignore, ignore les fichiers binaires et colore sa sortie. Écrit en Rust par Andrew Gallant, il sert de moteur de recherche par défaut à Visual Studio Code, ce qui constitue une garantie d’exploitation à grande échelle.

# Chercher un appel de fonction dans tout le projet, sans polluer avec node_modules
rg "wp_enqueue_script" --type php

# Lister les fichiers correspondants
rg -l "TODO" src/

# Expression régulière avec capture, remplacement affiché sans écriture
rg "version: (\d+\.\d+)" --replace 'v$1'

L’écart avec grep -r ne tient pas seulement à la vitesse brute, mais au respect du .gitignore : sur un monorepo, grep passe plusieurs secondes à parcourir vendor/ et node_modules/ que rg ignore par défaut. Le dépôt officiel détaille les filtres par type de fichier.

Le gain de ripgrep n’est pas un confort de frappe : c’est la vitesse à laquelle on comprend une base de code inconnue.

fd — trouver un fichier sans réciter la syntaxe de find

find est puissant, sa syntaxe est punitive. fd, écrit par David Peter, traite le cas courant simplement : syntaxe lisible, sortie couleur, respect du .gitignore.

# Tous les fichiers SCSS
fd -e scss

# Trouver et supprimer les .DS_Store résiduels
fd -H '^\.DS_Store$' -X rm

# Chercher un répertoire précis
fd -t d migrations

fzf — le filtre flou qui se compose

fzf, de Junegunn Choi, est un filtre flou interactif. Utile seul, il prend toute sa valeur combiné aux autres outils par des tubes : navigation dans l’historique, sélection de branche Git, ouverture de fichier.

# Ouvrir dans $EDITOR un fichier choisi au filtre flou
vim "$(fzf)"

# Changer de branche Git de façon interactive
git checkout "$(git branch | fzf | tr -d ' *')"

# Combiné avec fd et bat en prévisualisation
fd -t f | fzf --preview 'bat --color=always {}'

Lire et comprendre

bat — cat avec coloration syntaxique

bat remplace cat pour la lecture humaine : coloration syntaxique, numéros de ligne, indications Git dans la marge. Pour le scripting, cat reste préférable ; pour lire un fichier de configuration, l’écart est net.

bat wp-config.php
bat -r 40:80 functions.php   # seulement les lignes 40 à 80

eza — un ls contemporain

exa n’étant plus maintenu, la communauté a repris le développement sous le nom eza : icônes, couleurs par type, affichage en arborescence, colonne d’état Git.

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

jq — manipuler du JSON

Dès qu’une API entre en jeu, jq devient difficilement contournable. Le projet, désormais maintenu sous l’organisation jqlang, a retrouvé un rythme de publication régulier.

# Extraire les titres d'articles depuis l'API REST de WordPress
curl -s https://exemple.com/wp-json/wp/v2/posts | jq '.[].title.rendered'

# Filtrer et reformater
curl -s https://exemple.com/wp-json/wp/v2/posts \
  | jq '[.[] | {id, slug, titre: .title.rendered}]'

gh — GitHub sans quitter le terminal

Le client officiel de GitHub couvre l’essentiel du flux de travail : création de pull request, revue, consultation des exécutions d’intégration continue, gestion des tickets. Il évite l’aller-retour permanent entre l’éditeur et le navigateur.

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

Récapitulatif

OutilRemplaceApport décisif
rggrep -rRespect du .gitignore, vitesse sur monorepo
fdfindSyntaxe lisible pour le cas courant
fzfFiltre flou interactif, composable par tubes
batcat (lecture)Coloration syntaxique et repères Git
ezalsArborescence et état Git en colonne
jqInterrogation et reformatage de JSON
ghInterface web GitHubFlux de revue sans quitter le terminal

Ce qu’il faut retenir

Aucun de ces outils n’apporte de capacité inédite : ils réduisent le coût d’usage d’opérations effectuées des dizaines de fois par jour. C’est précisément ce qui les rend rentables — et ce qui explique leur adoption dans des chaînes d’outillage aussi répandues que celle de Visual Studio Code.

S’il ne devait en rester qu’un, ce serait ripgrep : c’est le premier binaire que j’installe sur une machine neuve, avant même mon éditeur. Les autres améliorent le confort ; celui-là change ma vitesse de compréhension d’une base de code que je découvre. — Simon Janvier

À lire aussi sur Mail Studio

Partager LinkedIn Bluesky Hacker News E-mail

À lire aussi