La quasi-totalité des infrastructures web modernes repose sur Linux. Que votre environnement de développement soit sur macOS ou Windows (grâce à WSL), toute tâche de déploiement, de débogage ou de maintenance vous mènera inévitablement au terminal Linux. Avoir une bonne connaissance de la ligne de commande n'est pas un simple avantage ; c'est la différence entre résoudre un problème critique en production en quelques secondes ou passer de longues et frustrantes minutes à chercher une solution.

Naviguer dans le Système de Fichiers

Commandes de Navigation Essentielles
# Afficher le répertoire courant
pwd

# Lister les fichiers (format long, tailles lisibles, fichiers cachés)
ls -lah

# Changer de répertoire
cd /var/www/html
cd ~        # Aller au répertoire personnel
cd -        # Revenir au répertoire précédent

# Créer des répertoires (y compris imbriqués)
mkdir -p projects/my-app/src

# Trouver des fichiers
find /var/log -name "*.log" -mtime -7  # Logs modifiés au cours des 7 derniers jours

Manipuler les Fichiers

Opérations sur les Fichiers
# Visualiser le contenu d'un fichier
cat config.json              # Fichier entier
head -n 20 access.log        # Les 20 premières lignes
tail -n 50 error.log         # Les 50 dernières lignes
tail -f error.log            # Suivre en direct (idéal pour le débogage)
less large-file.log          # Visionneuse défilable

# Copier, déplacer, supprimer
cp file.txt backup/file.txt
cp -r src/ src-backup/       # Copier un répertoire de manière récursive
mv old-name.txt new-name.txt
rm file.txt
rm -rf node_modules/         # Supprimer un répertoire de manière récursive (ATTENTION !)

# Tailles des fichiers
du -sh node_modules/         # Taille totale d'un répertoire
df -h                        # Résumé de l'utilisation du disque

Traitement de Texte : grep, sed, awk

Ces trois utilitaires légendaires sont le véritable couteau suisse de l'analyse de journaux et de la manipulation de texte. Indispensables pour les développeurs, ils permettent d'extraire, de filtrer et de transformer des données avec une efficacité redoutable.

grep — Rechercher des Motifs
# Rechercher une chaîne dans des fichiers
grep "ERROR" /var/log/app.log

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

# Insensible à la casse avec numéros de ligne
grep -in "database" config.php

# Afficher 3 lignes avant et après chaque correspondance
grep -B3 -A3 "Exception" error.log

# Compter les correspondances
grep -c "404" access.log
sed — Éditeur de Flux
# Remplacer la première occurrence par ligne
sed 's/http:/https:/' urls.txt

# Remplacer TOUTES les occurrences (flag global)
sed 's/http:/https:/g' urls.txt

# Édition sur place (modifier le fichier directement)
sed -i 's/localhost/production.example.com/g' .env
awk — Extraction de Colonnes
# Afficher les 1ère et 4ème colonnes d'un fichier séparé par des espaces
awk '{print $1, $4}' access.log

# Sommer une colonne de nombres
awk '{sum += $5} END {print sum}' data.csv

Permissions et Propriété

Comprendre et gérer les permissions est fondamental pour la sécurité et le bon fonctionnement de vos applications sur un serveur Linux. Un fichier ou un répertoire avec des permissions incorrectes peut soit exposer des données, soit empêcher votre application de fonctionner.

chmod et chown
# Rendre un script exécutable
chmod +x deploy.sh

# Définir des permissions spécifiques (propriétaire: rwx, groupe: r-x, autres: r--)
chmod 754 app.js

# Changer la propriété d'un fichier ou d'un répertoire (récursivement)
chown www-data:www-data /var/www/html -R

SSH et Serveurs Distants

SSH (Secure Shell) est le protocole de référence pour se connecter de manière sécurisée à des serveurs distants, exécuter des commandes et transférer des fichiers. C'est la pierre angulaire de la gestion des infrastructures web.

Commandes SSH
# Se connecter à un serveur distant
ssh [email protected]

# Utiliser une clé SSH spécifique
ssh -i ~/.ssh/my-key.pem [email protected]

# Copier des fichiers vers un serveur distant (SCP)
scp -r ./dist [email protected]:/var/www/html/

# Exécuter une commande à distance sans se connecter
ssh [email protected] "sudo systemctl restart nginx"

Gestion des Processus

Savoir surveiller et gérer les processus en cours sur votre serveur est vital pour diagnostiquer les problèmes de performance, identifier les services défaillants et maintenir la stabilité de votre système.

Gérer les Processus
# Lister les processus en cours d'exécution
ps aux | grep node

# Vérifier ce qui utilise un port spécifique
lsof -i :3000
# ou
ss -tulnp | grep 3000

# Tuer un processus par son PID
kill 12345
kill -9 12345  # Forcer l'arrêt (kill "brutal")

# Surveiller les ressources système (interactif)
htop

Pipelines et Redirection

Le concept de pipeline (|) est l'un des plus puissants de la ligne de commande Linux. Il permet de chaîner des commandes en envoyant la sortie de l'une comme entrée à la suivante, créant ainsi des flux de travail complexes et hautement efficaces. La redirection (>, >>, 2>) vous donne le contrôle sur la destination des sorties et erreurs.

Exemples Pratiques de Pipelines
# Trouver les 10 fichiers les plus volumineux dans un répertoire
du -ah /var/log | sort -rh | head -10

# Compter les adresses IP uniques dans un journal d'accès
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20

# Enregistrer la sortie d'une commande dans un fichier
echo "Déploiement le $(date)" >> deploy.log

# Rediriger les erreurs vers un fichier
npm run build 2> errors.log

Découvrez Nos Outils Gratuits pour Développeurs

Encodez, décodez et formatez votre code instantanément et sans effort.