ToolBox Hub

Guide Essentiel de la Ligne de Commande Linux

Guide Essentiel de la Ligne de Commande Linux

Maîtrisez le terminal Linux/macOS avec ce guide complet des commandes essentielles.

16 mars 202610 min de lecture

Introduction : Le terminal, l'outil le plus puissant du développeur

En 2026, malgré les avancées considérables des interfaces graphiques et des outils IA, la ligne de commande reste l'outil le plus puissant et le plus polyvalent à la disposition d'un développeur. Que vous utilisiez Linux, macOS ou le WSL (Windows Subsystem for Linux), la maîtrise du terminal vous rendra exponentiellement plus productif.

Ce guide couvre toutes les commandes essentielles que vous devez connaître, organisées par thème, avec des exemples pratiques et des astuces que même les développeurs expérimentés trouveront utiles.

Se déplacer dans le système de fichiers

# Afficher le répertoire courant
pwd

# Changer de répertoire
cd /chemin/vers/dossier

# Aller au répertoire personnel
cd ~
# ou simplement
cd

# Remonter d'un niveau
cd ..

# Remonter de deux niveaux
cd ../..

# Revenir au répertoire précédent
cd -

# Complétion automatique (appuyez sur Tab)
cd Doc[Tab]  # complète en Documents/

Lister les fichiers et répertoires

# Liste basique
ls

# Liste détaillée avec permissions, taille, date
ls -l

# Inclure les fichiers cachés
ls -la

# Trier par date de modification (plus récent en premier)
ls -lt

# Trier par taille (plus grand en premier)
ls -lS

# Affichage récursif
ls -R

# Format lisible pour les tailles (Ko, Mo, Go)
ls -lh

# Combiner les options
ls -lath

Créer, copier, déplacer, supprimer

# Créer un répertoire
mkdir mon-projet

# Créer des répertoires imbriqués
mkdir -p projet/src/components

# Créer un fichier vide
touch fichier.txt

# Copier un fichier
cp source.txt destination.txt

# Copier un répertoire récursivement
cp -r dossier-source/ dossier-destination/

# Déplacer ou renommer un fichier
mv ancien-nom.txt nouveau-nom.txt

# Déplacer un fichier dans un répertoire
mv fichier.txt /chemin/vers/destination/

# Supprimer un fichier
rm fichier.txt

# Supprimer un répertoire et son contenu
rm -r dossier/

# Supprimer avec confirmation
rm -i fichier.txt

# Supprimer un répertoire vide
rmdir dossier-vide/

Lecture et manipulation de fichiers

Afficher le contenu des fichiers

# Afficher le contenu complet d'un fichier
cat fichier.txt

# Afficher avec numéros de ligne
cat -n fichier.txt

# Afficher les 10 premières lignes
head fichier.txt

# Afficher les 20 premières lignes
head -n 20 fichier.txt

# Afficher les 10 dernières lignes
tail fichier.txt

# Suivre un fichier en temps réel (logs)
tail -f /var/log/syslog

# Naviguer dans un fichier long
less fichier.txt
# (q pour quitter, / pour chercher, n pour suivant)

# Afficher le contenu page par page
more fichier.txt

Recherche et filtrage

# Rechercher un motif dans un fichier
grep "erreur" fichier.log

# Recherche insensible à la casse
grep -i "erreur" fichier.log

# Recherche récursive dans un répertoire
grep -r "TODO" ./src/

# Afficher le numéro de ligne
grep -n "function" script.js

# Compter les occurrences
grep -c "erreur" fichier.log

# Inverser la recherche (lignes qui NE contiennent PAS le motif)
grep -v "DEBUG" fichier.log

# Utiliser des expressions régulières étendues
grep -E "erreur|warning|fatal" fichier.log

# Rechercher des fichiers par nom
find . -name "*.js"

# Rechercher des fichiers modifiés dans les dernières 24h
find . -mtime -1

# Rechercher des fichiers de plus de 100 Mo
find . -size +100M

# Rechercher et exécuter une commande
find . -name "*.tmp" -exec rm {} \;

Le testeur de regex de ToolBox Hub est un excellent complément pour construire et valider vos expressions régulières avant de les utiliser avec grep.

Gestion des processus

# Afficher les processus en cours
ps aux

# Afficher les processus de l'utilisateur courant
ps ux

# Afficher l'arborescence des processus
pstree

# Moniteur interactif des processus
top

# Version améliorée de top (si installé)
htop

# Envoyer un signal de terminaison à un processus
kill PID

# Forcer l'arrêt d'un processus
kill -9 PID

# Tuer un processus par nom
killall nom-processus

# Exécuter un processus en arrière-plan
commande &

# Mettre le processus courant en arrière-plan
# Ctrl+Z (suspendre) puis :
bg

# Ramener un processus en avant-plan
fg

# Lister les jobs en arrière-plan
jobs

Pipes et redirections

Les pipes (|) et les redirections sont au coeur de la puissance de la ligne de commande. Ils permettent de combiner des commandes simples en opérations complexes.

# Pipe : envoyer la sortie d'une commande vers une autre
ls -la | grep ".txt"

# Compter le nombre de fichiers JavaScript
find . -name "*.js" | wc -l

# Trier et supprimer les doublons
cat liste.txt | sort | uniq

# Chaîner plusieurs pipes
cat access.log | grep "404" | awk '{print $7}' | sort | uniq -c | sort -rn | head

# Rediriger la sortie vers un fichier (écraser)
echo "Hello" > fichier.txt

# Rediriger la sortie vers un fichier (ajouter)
echo "World" >> fichier.txt

# Rediriger les erreurs vers un fichier
commande 2> erreurs.log

# Rediriger sortie standard et erreurs
commande > sortie.log 2>&1

# Rediriger vers /dev/null (ignorer la sortie)
commande > /dev/null 2>&1

# Utiliser tee pour afficher et écrire simultanément
commande | tee sortie.log

Gestion des permissions

# Afficher les permissions
ls -l fichier.txt
# -rw-r--r--  1  user  group  1234  Jan 01  fichier.txt

# Modifier les permissions (notation symbolique)
chmod u+x script.sh     # Ajouter exécution pour le propriétaire
chmod g+rw fichier.txt   # Ajouter lecture/écriture pour le groupe
chmod o-r fichier.txt    # Retirer lecture pour les autres
chmod a+r fichier.txt    # Ajouter lecture pour tous

# Modifier les permissions (notation octale)
chmod 755 script.sh      # rwxr-xr-x
chmod 644 fichier.txt    # rw-r--r--
chmod 700 dossier/       # rwx------

# Changer le propriétaire
chown utilisateur:groupe fichier.txt

# Changer récursivement
chown -R utilisateur:groupe dossier/
chmod -R 755 dossier/

Comprendre la notation octale

ChiffrePermissionSignification
0---Aucune permission
1--xExécution
2-w-Écriture
3-wxÉcriture + Exécution
4r--Lecture
5r-xLecture + Exécution
6rw-Lecture + Écriture
7rwxLecture + Écriture + Exécution

Réseau et connectivité

# Tester la connexion à un hôte
ping google.com

# Limiter à 5 paquets
ping -c 5 google.com

# Tracer la route vers un hôte
traceroute google.com

# Afficher les interfaces réseau
ip addr
# ou sur macOS :
ifconfig

# Afficher les ports ouverts
ss -tuln
# ou :
netstat -tuln

# Télécharger un fichier
wget https://exemple.com/fichier.zip
curl -O https://exemple.com/fichier.zip

# Faire une requête HTTP
curl https://api.exemple.com/users

# Requête POST avec JSON
curl -X POST https://api.exemple.com/users \
  -H "Content-Type: application/json" \
  -d '{"name": "Jean", "email": "jean@exemple.com"}'

# Afficher les en-têtes de réponse
curl -I https://exemple.com

# Résolution DNS
dig exemple.com
nslookup exemple.com

# Scanner les ports (si nmap installé)
nmap -sT localhost

Archivage et compression

# Créer une archive tar
tar -cvf archive.tar dossier/

# Créer une archive tar compressée avec gzip
tar -czvf archive.tar.gz dossier/

# Créer une archive tar compressée avec bzip2
tar -cjvf archive.tar.bz2 dossier/

# Extraire une archive tar
tar -xvf archive.tar

# Extraire une archive gzip
tar -xzvf archive.tar.gz

# Extraire dans un répertoire spécifique
tar -xzvf archive.tar.gz -C /destination/

# Compresser avec zip
zip -r archive.zip dossier/

# Décompresser un zip
unzip archive.zip

# Lister le contenu d'une archive sans extraire
tar -tzvf archive.tar.gz
unzip -l archive.zip

Manipulation de texte avancée

sed - Éditeur de flux

# Remplacer la première occurrence par ligne
sed 's/ancien/nouveau/' fichier.txt

# Remplacer toutes les occurrences
sed 's/ancien/nouveau/g' fichier.txt

# Remplacer en place (modifier le fichier)
sed -i 's/ancien/nouveau/g' fichier.txt

# Supprimer les lignes contenant un motif
sed '/motif/d' fichier.txt

# Supprimer les lignes vides
sed '/^$/d' fichier.txt

# Afficher uniquement les lignes 10 à 20
sed -n '10,20p' fichier.txt

awk - Traitement de données tabulaires

# Afficher la première colonne
awk '{print $1}' fichier.txt

# Afficher les colonnes 1 et 3
awk '{print $1, $3}' fichier.txt

# Utiliser un séparateur personnalisé (CSV)
awk -F',' '{print $1, $2}' donnees.csv

# Filtrer les lignes
awk '$3 > 100 {print $1, $3}' donnees.txt

# Calculer une somme
awk '{sum += $2} END {print "Total:", sum}' ventes.txt

# Compter les lignes
awk 'END {print NR}' fichier.txt

Autres outils de texte

# Trier les lignes
sort fichier.txt

# Trier numériquement
sort -n fichier.txt

# Trier en ordre inverse
sort -r fichier.txt

# Supprimer les doublons
sort fichier.txt | uniq

# Compter les mots, lignes, caractères
wc fichier.txt
wc -l fichier.txt   # lignes uniquement
wc -w fichier.txt   # mots uniquement

# Extraire des colonnes
cut -d',' -f1,3 donnees.csv

# Comparer deux fichiers
diff fichier1.txt fichier2.txt
diff -u fichier1.txt fichier2.txt  # format unifié

# Remplacer des caractères
tr 'a-z' 'A-Z' < fichier.txt  # minuscules en majuscules
tr -d '\r' < fichier.txt       # supprimer les retours chariot Windows

Variables d'environnement et shell

# Afficher toutes les variables d'environnement
env

# Afficher une variable spécifique
echo $HOME
echo $PATH

# Définir une variable temporaire
export MA_VARIABLE="valeur"

# Ajouter un répertoire au PATH
export PATH="$PATH:/nouveau/chemin"

# Rendre les modifications permanentes (ajouter au fichier de profil)
echo 'export PATH="$PATH:/nouveau/chemin"' >> ~/.bashrc
# ou pour zsh :
echo 'export PATH="$PATH:/nouveau/chemin"' >> ~/.zshrc

# Recharger la configuration
source ~/.bashrc
# ou
source ~/.zshrc

Alias et fonctions personnalisées

# Créer des alias dans ~/.bashrc ou ~/.zshrc
alias ll='ls -lah'
alias gs='git status'
alias gp='git push'
alias dc='docker compose'
alias k='kubectl'

# Fonction personnalisée : créer un répertoire et y aller
mkcd() {
  mkdir -p "$1" && cd "$1"
}

# Fonction : rechercher dans les fichiers d'un projet
search() {
  grep -rn "$1" --include="*.$2" .
}
# Usage : search "TODO" "js"

# Fonction : extraire n'importe quel type d'archive
extract() {
  case "$1" in
    *.tar.gz)  tar -xzvf "$1" ;;
    *.tar.bz2) tar -xjvf "$1" ;;
    *.tar.xz)  tar -xJvf "$1" ;;
    *.zip)     unzip "$1" ;;
    *.gz)      gunzip "$1" ;;
    *.rar)     unrar x "$1" ;;
    *)         echo "Format non supporté: $1" ;;
  esac
}

Raccourcis clavier essentiels

RaccourciAction
Ctrl+CInterrompre la commande en cours
Ctrl+DFermer le terminal / EOF
Ctrl+ZSuspendre le processus en cours
Ctrl+LEffacer l'écran (comme clear)
Ctrl+AAller au début de la ligne
Ctrl+EAller à la fin de la ligne
Ctrl+WSupprimer le mot précédent
Ctrl+USupprimer du curseur au début de la ligne
Ctrl+KSupprimer du curseur à la fin de la ligne
Ctrl+RRecherche inversée dans l'historique
TabAutocomplétion
!!Répéter la dernière commande
!$Dernier argument de la commande précédente

Conclusion

La maîtrise de la ligne de commande est un investissement qui rapporte au quotidien. Chaque commande apprise, chaque raccourci mémorisé vous rendra plus efficace. Commencez par les commandes de base, puis explorez progressivement les outils plus avancés comme sed, awk et les scripts shell.

Pour compléter votre boîte à outils de développeur, explorez nos outils en ligne gratuits comme le formateur JSON et le testeur de regex, parfaits pour vérifier rapidement vos données et expressions régulières.

Articles associés