La plupart des serveurs web tournent sous Linux. Dès que vous déployez une application ou travaillez en remote sur un serveur, vous avez besoin du terminal. Ce guide couvre les commandes que vous utiliserez réellement en tant que développeur — pas un cours exhaustif sur Unix, mais les 20% qui couvrent 80% des situations.
Navigation et fichiers
# Navigation
pwd # répertoire courant
ls -la # lister avec fichiers cachés et permissions
cd /var/www/app # changer de répertoire
cd .. # remonter d'un niveau
cd ~ # aller dans le home directory
# Fichiers et répertoires
mkdir -p app/src # créer (avec les parents si nécessaire)
cp -r src/ backup/ # copier récursivement
mv app.js server.js # déplacer / renommer
rm -rf node_modules/ # supprimer récursivement (⚠️ irréversible)
touch .env # créer un fichier vide
# Lire des fichiers
cat app.log # afficher tout le fichier
head -50 app.log # 50 premières lignes
tail -f app.log # suivre en temps réel (utile pour les logs)
less app.log # lecture paginée (q pour quitter)
Recherche et filtrage
# grep — rechercher dans les fichiers
grep "ERROR" app.log # lignes contenant ERROR
grep -r "TODO" src/ # recherche récursive
grep -n "function" server.js # avec numéros de ligne
grep -i "error" app.log # insensible à la casse
# find — trouver des fichiers
find . -name "*.log" # par nom
find . -type f -mtime -1 # modifiés dans les dernières 24h
find . -size +100M # fichiers > 100MB
# Pipelines — enchaîner des commandes
cat app.log | grep "ERROR" | tail -20 # 20 dernières erreurs
cat app.log | grep "ERROR" | wc -l # compter les erreurs
ps aux | grep node # trouver les processus node
Processus et ressources
# Voir les processus
ps aux # tous les processus
top # monitoring temps réel (q pour quitter)
htop # version améliorée de top (à installer)
# Tuer un processus
kill # signal SIGTERM (arrêt propre)
kill -9 # signal SIGKILL (arrêt forcé)
pkill node # tuer par nom
# Ressources système
df -h # espace disque
du -sh * # taille de chaque répertoire
free -h # mémoire disponible
nproc # nombre de CPU
Réseau
# Ports en écoute
ss -tlnp # ports TCP en écoute avec PID
# ou
netstat -tlnp
# Tester une connexion
curl -I https://monsite.com # headers HTTP
curl -s http://localhost:3000/api/health | jq # tester une API locale
ping 8.8.8.8 # test de connectivité
nslookup mondomaine.com # résolution DNS
# Transfert de fichiers
scp fichier.txt user@server:/path/ # copier vers un serveur
scp user@server:/path/fichier.txt . # copier depuis un serveur
rsync -avz src/ user@server:/app/ # sync efficace (reprend où il s'était arrêté)
Édition de fichiers en SSH
# nano — l'éditeur le plus simple pour les débutants
nano /etc/nginx/sites-available/monsite
# Ctrl+S pour sauvegarder, Ctrl+X pour quitter
# vim — puissant mais courbe d'apprentissage
vim server.js
# i pour entrer en mode insertion
# Esc pour sortir du mode insertion
# :wq pour sauvegarder et quitter
# :q! pour quitter sans sauvegarder
Permissions
# Comprendre les permissions : rwxr-xr-x
# r=lecture(4) w=écriture(2) x=exécution(1)
# [owner][group][others]
chmod 755 script.sh # rwxr-xr-x
chmod +x deploy.sh # rendre exécutable
chown deploy:deploy /app # changer le propriétaire
sudo chown -R www-data:www-data /var/www # récursivement
Variables d’environnement
# Voir les variables
env # toutes
echo $HOME # une variable spécifique
printenv DATABASE_URL # si définie
# Définir pour la session
export NODE_ENV=production
# Charger un .env dans le shell
export $(cat .env | grep -v '#' | xargs)
# Ajouter à la configuration permanente
echo 'export NODE_ENV=production' >> ~/.bashrc
source ~/.bashrc
Offres développeur back-end et DevOps
Des postes pour développeurs à l’aise en ligne de commande — une compétence de base attendue dès le niveau junior.
À lire aussi : Déploiement sur VPS — Docker — DevOps pour débutant