Développement Web Linux Terminal Serveur

Linux : commandes essentielles pour développeurs web

Maîtrisez les commandes linux indispensables : navigation, permissions, processus, SSH, Cron et gestion de serveur. Guide pratique pour développeurs web.

Benjamin Schweitzer Benjamin Schweitzer
Samedi 5 avril 2025
4 min de lecture
Linux : commandes essentielles pour développeurs web

Tout développeur web travaillant sur un VPS ou un serveur de production doit maîtriser les commandes linux fondamentales. Que vous administriez un serveur Apache, Nginx ou un environnement Docker, le terminal est votre outil principal.

Navigation et gestion de fichiers

pwd              # Répertoire courant
ls -lah          # Liste détaillée avec tailles lisibles
cd /var/www/html # Changer de répertoire
mkdir -p a/b/c   # Créer des répertoires imbriqués
cp -r src/ dest/ # Copier récursivement
mv old new       # Déplacer / renommer
rm -rf dossier/  # Supprimer récursivement (attention !)
find . -name "*.php" -type f  # Rechercher des fichiers

Ces commandes linux de base vous permettent de naviguer et manipuler la structure de fichiers de votre serveur efficacement.

Permissions et propriétaires

Le système de permissions linux est crucial pour la sécurité web. Chaque fichier a trois niveaux (owner, group, others) et trois permissions (read=4, write=2, execute=1) :

chmod 644 fichier.php   # rw-r--r-- (fichiers web)
chmod 755 dossier/      # rwxr-xr-x (dossiers)
chmod 600 .env          # rw------- (fichiers sensibles)
chown www-data:www-data /var/www/ -R

Ne donnez jamais 777 à un fichier en production : c'est une faille de sécurité majeure.

Processus et monitoring

top / htop       # Monitorer CPU et RAM en temps réel
ps aux | grep php  # Rechercher les processus PHP
kill -9 <pid>    # Tuer un processus
systemctl status nginx    # Statut d'un service
systemctl restart php8.3-fpm
journalctl -u nginx -f   # Logs en temps réel

Gestion des logs

Les logs sont votre premier outil de diagnostic :

tail -f /var/log/nginx/error.log     # Logs Nginx en direct
tail -n 100 /var/log/php8.3-fpm.log  # 100 dernières lignes
grep "ERROR" /var/log/apache2/error.log | wc -l
zcat /var/log/nginx/access.log.*.gz | grep "404" # Logs archivés

SSH et transfert de fichiers

ssh user@192.168.1.10         # Connexion SSH
ssh -i ~/.ssh/id_rsa user@ip  # Avec clé privée
scp fichier.zip user@ip:/tmp/ # Copier vers serveur
rsync -avz local/ user@ip:/var/www/  # Synchronisation efficace

Configurez toujours l'authentification par clé SSH plutôt que par mot de passe pour sécuriser vos accès.

Cron : automatiser les tâches

Crontab permet de planifier des tâches répétitives sur votre linux server :

crontab -e   # Éditer les tâches cron
# Format : minute heure jour mois jour-semaine commande
0 3 * * * /usr/bin/php /var/www/cron/backup.php
*/5 * * * * /usr/bin/php /var/www/cron/sync.php >> /var/log/sync.log 2>&1

Commandes réseau

curl -I https://monsite.fr       # Headers HTTP
netstat -tlnp                    # Ports en écoute
ss -tlnp                         # Alternative moderne à netstat
ufw status / ufw allow 80/tcp    # Pare-feu UFW

Pour approfondir, la commande man affiche la documentation complète, et explainshell.com décompose chaque commande linux complexe visuellement.

Conclusion

Maîtriser ces commandes linux transforme votre rapport au développement web backend. Commencez par les commandes de navigation et de permissions, puis progressez vers SSH, Cron et le monitoring. Un développeur à l'aise dans le terminal est bien plus efficace pour déboguer, déployer et maintenir des applications en production.

La maîtrise de Linux en ligne de commande est un multiplicateur de productivité. Approfondissez awk et sed pour manipuler des données texte à grande échelle, tmux pour multiplexer vos sessions SSH, et systemd pour gérer les services en production. Les alias shell dans votre .bashrc ou .zshrc automatisent les commandes fréquentes. Bash est suffisant pour la majorité des tâches, mais Python offre plus de robustesse pour les scripts complexes. Pratiquez avec les challenges OverTheWire Bandit pour renforcer vos réflexes Linux. Un développeur à l'aise avec le terminal est bien plus efficace en déploiement et débogage de serveurs en production.

Gestion des processus et services

Les commandes ps aux, top et htop surveillent les processus en cours. kill -9 PID termine un processus récalcitrant. Avec systemd, systemctl status nginx donne l'état d'un service, journalctl -u nginx -f affiche ses logs en temps réel, et systemctl restart nginx le redémarre proprement. Ces réflexes sont indispensables pour diagnostiquer rapidement les problèmes sur un serveur de production.

Cet article vous a plu ?

Donnez-lui une note, ça m'aide vraiment !

Partager l'article