Skip to content

Remplacements Modernes (Legacy vs Nouveau)

Arrêtez d'utiliser les net-tools obsolètes. Passez à iproute2 et aux alternatives modernes.


Commandes Réseau : net-tools → iproute2

Avertissement de Dépréciation

net-tools (ifconfig, netstat, route) est déprécié et non maintenu depuis 2001. Utilisez iproute2 pour les noyaux modernes et les nouvelles fonctionnalités.

Legacy (net-tools) Moderne (iproute2) Usage
ifconfig ip addr / ip a Afficher les adresses IP
ifconfig eth0 up ip link set eth0 up Activer l'interface
netstat -tulpn ss -tulpn Afficher les ports en écoute
netstat -an ss -an Toutes les connexions
route -n ip route / ip r Afficher la table de routage
route add ip route add Ajouter une route
arp -a ip neigh Table ARP
hostname -I ip -br addr Résumé IP concis

Exemples Rapides

# Afficher toutes les IPs (format concis)
ip -br addr

# Afficher uniquement IPv4
ip -4 addr

# Afficher TCP/UDP en écoute avec noms de processus
ss -tulpn

# Afficher les connexions établies
ss -t state established

Monitoring Processus : top → htop/btop

Outil Installation Fonctionnalités
top Intégré Basique, pas de souris
htop dnf install htop Couleurs, souris, vue arbre, kill processus
btop dnf install btop UI moderne, graphiques, thèmes
# Installer les alternatives modernes
sudo dnf install htop btop    # RHEL/Rocky/Fedora
sudo apt install htop btop    # Debian/Ubuntu

Raccourcis htop

  • F5 → Vue arbre
  • F6 → Trier par colonne
  • F9 → Tuer le processus
  • t → Basculer arbre
  • H → Masquer les threads utilisateur

Recherche de Fichiers : find → fd

fd est une alternative rapide et conviviale à find.

Tâche find fd
Chercher par nom find . -name "*.log" fd ".log$"
Insensible à la casse find . -iname "*.LOG" fd -i ".log$"
Trouver répertoires find . -type d -name config fd -t d config
Exclure répertoire find . -path ./node_modules -prune -o -name "*.js" fd -E node_modules ".js$"
# Installer fd
sudo dnf install fd-find      # RHEL/Rocky/Fedora
sudo apt install fd-find      # Debian/Ubuntu (binaire: fdfind)

# Créer un alias si nécessaire (Debian/Ubuntu)
alias fd='fdfind'

Recherche de Texte : grep → ripgrep

ripgrep (rg) est significativement plus rapide que grep pour les grandes bases de code.

# Installer
sudo dnf install ripgrep      # RHEL/Rocky/Fedora
sudo apt install ripgrep      # Debian/Ubuntu

# Utilisation
rg "pattern"                  # Récursif par défaut
rg -i "error"                 # Insensible à la casse
rg -t py "import"             # Seulement fichiers Python
rg --hidden "secret"          # Inclure fichiers cachés
rg -C 3 "error"               # 3 lignes de contexte
rg -l "TODO"                  # Seulement les noms de fichiers
rg -c "error"                 # Compter les occurrences
Tâche grep ripgrep
Recherche récursive grep -r "pattern" . rg "pattern"
Ignorer la casse grep -ri "pattern" rg -i "pattern"
Fichiers avec match grep -rl "pattern" rg -l "pattern"
Exclure répertoire grep -r --exclude-dir=node_modules rg "pattern" (auto)
Contexte grep -C 3 "pattern" rg -C 3 "pattern"

Terminal Moderne

Warp : Le Terminal du Futur

Warp est un émulateur de terminal moderne (écrit en Rust) qui repense l'expérience CLI. * Saisie par blocs : Plus facile de copier/coller une commande et sa sortie. * IA intégrée : "Comment décompresser un tar ?" -> Warp génère la commande. * Collaboration : Partager un bloc de commande avec un collègue.

Zellij : Multiplexeur (Alternative à tmux)

Zellij est plus convivial que tmux dès la première utilisation. * Panes : Diviser l'écran facilement. * Layouts : Définir des configurations de démarrage (ex: 1 panneau logs, 1 panneau éditeur).

# Installation
cargo install zellij

# Démarrage
zellij

Historique & Recherche : Atuin

Atuin remplace CTRL+R par une base de données SQLite synchronisée. * Synchronisation : Retrouvez votre historique sur toutes vos machines. * Filtres : Chercher par commande, date, code retour, répertoire. * Stats : "Quelle commande j'utilise le plus ?"

# Installation
bash <(curl https://setup.atuin.sh)

# Import de l'historique existant
atuin import auto

# Utilisation
# Appuyez sur CTRL+R pour ouvrir l'interface TUI

Affichage de Fichiers : cat → bat

bat est un clone de cat avec coloration syntaxique et numéros de ligne.

# Installer
sudo dnf install bat          # RHEL/Rocky/Fedora
sudo apt install bat          # Debian/Ubuntu (binaire: batcat)

# Créer un alias si nécessaire (Debian/Ubuntu)
alias bat='batcat'
# Utilisation
bat config.yaml               # Coloration syntaxique auto
bat -n script.sh              # Numéros de ligne uniquement
bat -A file.txt               # Afficher caractères invisibles
bat --diff file1 file2        # Mode diff
bat -l json data.txt          # Forcer le langage
bat --style=plain file.txt    # Sans décorations
Tâche cat bat
Afficher fichier cat file bat file
Avec numéros cat -n file bat file (par défaut)
Sans numéros cat file bat -p file
Plusieurs fichiers cat f1 f2 bat f1 f2

Configuration ~/.config/bat/config

--theme="Dracula"
--style="numbers,changes,header"
--map-syntax "*.conf:INI"

Listing de Fichiers : ls → eza

eza (successeur maintenu de exa) est LE remplaçant moderne de ls.

# Installer
sudo dnf install eza          # Fedora 39+
cargo install eza             # Via Rust (Universel)
# Utilisation
eza                           # Liste simple
eza -l                        # Liste longue avec icônes (si Nerd Font)
eza -T                        # Vue arbre (Tree)
eza --git                     # Affiche le statut Git des fichiers
eza --header                  # Affiche les en-têtes de colonnes
eza -s modified               # Trier par date de modif
Tâche ls eza
Liste ls eza
Liste longue ls -l eza -l --icons --git
Arbre tree eza -T
Tout (cachés) ls -la eza -la

JSON : jq

jq est indispensable pour manipuler du JSON en ligne de commande.

# Installer
sudo dnf install jq           # RHEL/Rocky/Fedora
sudo apt install jq           # Debian/Ubuntu
# Formater du JSON
echo '{"name":"test"}' | jq .

# Extraire un champ
cat data.json | jq '.name'
cat data.json | jq '.users[0].email'

# Filtrer
cat servers.json | jq '.[] | select(.status == "running")'

# Transformer
cat data.json | jq '{hostname: .name, ip: .address}'

# Depuis une API
curl -s https://api.github.com/users/octocat | jq '.login, .name'

Diff : diff → delta

delta offre une sortie diff avec coloration syntaxique.

# Installer
sudo dnf install git-delta    # Fedora
# Ou télécharger depuis https://github.com/dandavison/delta
# Configuration Git (~/.gitconfig)
[core]
    pager = delta

[interactive]
    diffFilter = delta --color-only

[delta]
    navigate = true
    side-by-side = true
    line-numbers = true

Disk Usage : du → dust/duf

dust (du + rust)

# Installer
cargo install du-dust
# Ou télécharger depuis https://github.com/bootandy/dust
# Utilisation
dust                          # Arbre visuel des tailles
dust -d 2                     # Profondeur 2
dust -r                       # Ordre inverse
dust /var/log                 # Répertoire spécifique

duf (disk usage/free)

# Installer
sudo dnf install duf          # Fedora
sudo apt install duf          # Debian/Ubuntu
# Utilisation
duf                           # Vue tableau des disques
duf /home                     # Répertoire spécifique
duf --only local              # Seulement disques locaux

Résumé : Tableau Complet

Catégorie Legacy Moderne Installation
Réseau ifconfig ip Intégré
Ports netstat ss Intégré
Processus top htop / btop dnf install htop btop
Recherche fichiers find fd dnf install fd-find
Recherche texte grep rg (ripgrep) dnf install ripgrep
Affichage cat bat dnf install bat
Listing ls eza / lsd dnf install eza lsd
JSON - jq dnf install jq
Diff diff delta dnf install git-delta
Disk usage du dust / duf dnf install duf

Script d'Installation Complète

#!/bin/bash
# install-modern-tools.sh

echo "Installing modern CLI tools..."

# Détecter le gestionnaire de paquets
if command -v dnf &> /dev/null; then
    PKG="dnf"
elif command -v apt &> /dev/null; then
    PKG="apt"
else
    echo "Unsupported package manager"
    exit 1
fi

# Installation
sudo $PKG install -y \
    htop \
    btop \
    ripgrep \
    fd-find \
    bat \
    jq \
    duf

# Alias pour Debian/Ubuntu
if [ "$PKG" = "apt" ]; then
    echo "alias fd='fdfind'" >> ~/.bashrc
    echo "alias bat='batcat'" >> ~/.bashrc
fi

echo "Done! Restart your shell or run: source ~/.bashrc"

Alias Recommandés

# ~/.bashrc ou ~/.bash_aliases

# Remplacements modernes
alias cat='bat --paging=never'
alias ls='eza --icons'
alias ll='eza -la --icons'
alias lt='eza -la --icons --sort=modified'
alias tree='eza --tree --icons'
alias grep='rg'
alias find='fd'
alias top='btop'
alias du='dust'
alias df='duf'

# Garder les originaux accessibles
alias ocat='/usr/bin/cat'
alias ols='/usr/bin/ls'
alias ogrep='/usr/bin/grep'
alias ofind='/usr/bin/find'