Aller au contenu

Remplacer les commandes de base Linux

Les commandes Unix historiques font le job, mais des alternatives modernes — souvent écrites en Rust — offrent une meilleure ergonomie, une sortie colorisée, et parfois des gains de performance significatifs.

Installation

Tous ces outils sont disponibles via Homebrew (brew install <tool>) et la plupart via apt/dnf sur Linux.


Fichiers & répertoires

lslsd

lsd ajoute icônes, couleurs, et une vue arborescente intégrée :

lsd                   # liste classique avec icônes
lsd -la               # détails complets
lsd --tree            # vue arborescente (remplace tree)
lsd --tree --depth 2  # limiter la profondeur

exa / eza

exa était l'alternative historique mais le projet est archivé depuis 2022. Son fork eza continue mais lsd reste mon choix par défaut.


catbat

bat ajoute numéros de ligne, coloration syntaxique, intégration git, et pagination automatique :

bat script.sh            # affichage colorisé
bat --style=plain file   # sans décoration (alias cat)
bat -A file              # affiche les caractères non-imprimables

Intégration git : les lignes modifiées sont marquées dans la gouttière gauche par rapport à l'index git.


findfd

fd est plus rapide, respecte .gitignore par défaut, et a une syntaxe simplifiée :

fd pattern              # recherche par nom (récursif)
fd -e md                # filtrer par extension
fd -t f pattern         # fichiers uniquement
fd -t d pattern         # répertoires uniquement
fd --hidden pattern     # inclure les fichiers cachés
fd pattern -x cmd {}    # exécuter une commande sur chaque résultat

dudust

dust affiche les plus gros éléments avec une barre visuelle de proportion :

dust            # analyse du répertoire courant
dust -d 2       # limiter la profondeur
dust /var/log   # sur un répertoire spécifique

dfdfc

dfc est un df légèrement plus lisible, avec graphe d'utilisation en ASCII :

dfc             # vue globale avec barres de progression
dfc -T          # affiche le type de système de fichiers

Pour un rendu encore plus visuel, duf est une alternative en Go avec une UI colorisée et des filtres :

duf             # tableau complet par type de montage
duf /home       # filtré sur un point de montage

rmrip

rip déplace les fichiers dans un répertoire temporaire plutôt que de les supprimer définitivement :

rip file.txt        # "suppression" récupérable
rip --seance        # liste les fichiers supprimés
rip --unbury file   # restaurer un fichier

Filet de sécurité indispensable quand on travaille vite.


Recherche dans les fichiers

grepripgrep

ripgrep est en moyenne 2× plus rapide que grep. Il respecte .gitignore par défaut et supporte les expressions régulières avancées :

rg pattern              # recherche dans le répertoire courant
rg pattern -t py        # filtrer par type de fichier
rg -l pattern           # afficher uniquement les noms de fichiers
rg -i pattern           # insensible à la casse
rg pattern --hidden     # inclure les fichiers cachés
rg -A 3 -B 3 pattern    # contexte avant/après

Processus & système

tophtop / bottom

htop est le successeur naturel de top, avec une interface interactive et des filtres :

htop
htop -u username    # filtrer par utilisateur

bottom (btm) va plus loin avec graphes CPU/mémoire/réseau en temps réel :

btm             # vue graphique complète
btm --basic     # mode simplifié

psprocs

procs affiche les processus de manière lisible avec coloration et recherche :

procs               # liste tous les processus
procs nginx         # filtrer par nom
procs --tree        # vue arborescente des processus

Réseau

digdog

dog offre une sortie colorisée et une syntaxe plus intuitive que dig :

dog example.com          # requête A par défaut
dog example.com MX       # enregistrement MX
dog example.com @8.8.8.8 # serveur DNS spécifique

Limitation

dog ne supporte pas l'équivalent de dig -x (reverse DNS). Pour le reverse DNS, utiliser dig -x ou host.


ping / mtrtrippy

trippy (trip) combine ping et traceroute dans une UI interactive :

trip example.com        # traceroute interactif
trip -p udp example.com # mode UDP

curlhttpie

HTTPie (http) simplifie les requêtes HTTP avec une syntaxe intuitive et une sortie colorisée :

http GET example.com/api
http POST api.example.com/users name=john email=j@example.com
http -A bearer -a token123 GET api.example.com/secure
http --download example.com/file.zip

Compression

gzippigz

pigz est un gzip multithread — gain de performance de ×3 sur les machines multi-cœurs :

pigz file.txt           # compression (remplace gzip)
pigz -d file.txt.gz     # décompression
tar -I pigz -czf archive.tar.gz dir/  # via tar

Git

diffdelta

delta remplace le pager de diff de git avec coloration syntaxique et affichage côte-à-côte :

~/.gitconfig
[core]
    pager = delta

[interactive]
    diffFilter = delta --color-only

Voir la configuration complète dans les dotfiles.


git logtig

tig est une interface ncurses légère pour naviguer dans l'historique git :

tig                 # historique interactif
tig blame file.txt  # blame interactif
tig status          # vue status interactive

Lecture & exploration

man / docs → glow

glow rend le Markdown dans le terminal avec style :

glow README.md          # affichage formaté
glow -p README.md       # avec pagination
glow                    # naviguer dans les .md du répertoire

Récapitulatif

Commande Remplacement Langage Alias
ls lsd Rust alias ls='lsd'
cat bat Rust alias cat='bat --style=plain'
find fd Rust alias f='fd'
du dust Rust
df dfc C alias df='dfc'
rm rip Rust alias rm='rip'
grep ripgrep Rust
top htop / bottom C / Rust
ps procs Rust
dig dog Rust alias dig='dog'
ping/mtr trippy Rust
curl httpie Python
gzip pigz C
git diff delta Rust (pager git)
vim nvim C alias vim='nvim'

Voir aussi