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
# 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
# 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.
# 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
# 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
# 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.
# 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.
# 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.
# 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.
# 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.