Dans l'univers DevOps, la maîtrise de Linux n'est pas optionnelle. 96% des serveurs web utilisent des systèmes Unix/Linux selon le Stack Overflow Developer Survey 2024. Pour un DevOps, connaître les commandes Linux essentielles représente un prérequis fondamental pour automatiser les déploiements, gérer l'infrastructure et diagnostiquer les incidents de production.
Ce guide exhaustif vous présente les 50 commandes que tout professionnel DevOps doit maîtriser, organisées par catégorie d'usage avec des exemples concrets issus du terrain.
Navigation et exploration du système de fichiers
La navigation efficace dans l'arborescence Linux constitue la base de tout travail en terminal Linux DevOps. Ces commandes vous permettront de vous déplacer rapidement et de comprendre l'organisation des fichiers sur vos serveurs.
Commandes de navigation fondamentales
pwd : Affiche le répertoire de travail actuel
- Syntaxe :
pwd - Exemple :
pwd→/home/devops/projects - Cas d'usage DevOps : Vérifier son emplacement avant d'exécuter des scripts de déploiement
ls : Liste le contenu d'un répertoire
- Syntaxe :
ls [options] [répertoire] - Exemple :
ls -la /var/log→ Affiche tous les logs avec les permissions - Cas d'usage DevOps : Identifier rapidement les fichiers de configuration et leurs droits
cd : Change de répertoire de travail
- Syntaxe :
cd [répertoire] - Exemple :
cd /opt/applications/webapp - Cas d'usage DevOps : Naviguer vers les répertoires d'applications pour le debugging
find : Recherche de fichiers et répertoires
- Syntaxe :
find [chemin] [critères] - Exemple :
find /var/log -name "*.log" -mtime -1 - Cas d'usage DevOps : Localiser les logs récents pour l'analyse d'incidents
which : Localise l'emplacement d'une commande
- Syntaxe :
which [commande] - Exemple :
which docker→/usr/bin/docker - Cas d'usage DevOps : Vérifier l'installation et l'emplacement des outils
Gestion des fichiers et répertoires
La manipulation des fichiers représente un aspect crucial du travail quotidien d'un DevOps. Ces commandes Linux essentielles vous permettront de créer, modifier, copier et organiser efficacement vos fichiers de configuration et scripts.
Création et modification
touch : Crée un fichier vide ou met à jour l'horodatage
- Syntaxe :
touch [fichier] - Exemple :
touch deployment.yml - Cas d'usage DevOps : Créer rapidement des fichiers de configuration
mkdir : Crée des répertoires
- Syntaxe :
mkdir [options] [répertoire] - Exemple :
mkdir -p /opt/app/{config,logs,data} - Cas d'usage DevOps : Structurer l'arborescence d'une nouvelle application
cp : Copie des fichiers ou répertoires
- Syntaxe :
cp [options] [source] [destination] - Exemple :
cp -r /etc/nginx/sites-available/default /backup/ - Cas d'usage DevOps : Sauvegarder les configurations avant modification
mv : Déplace ou renomme des fichiers
- Syntaxe :
mv [source] [destination] - Exemple :
mv app.conf app.conf.backup - Cas d'usage DevOps : Archiver les anciennes versions de configuration
rm : Supprime des fichiers ou répertoires
- Syntaxe :
rm [options] [fichier] - Exemple :
rm -rf /tmp/build_artifacts - Cas d'usage DevOps : Nettoyer les artéfacts de build temporaires
Consultation et édition de fichiers
L'analyse des fichiers de configuration, logs et scripts nécessite une maîtrise parfaite des outils de consultation et d'édition en ligne de commande.
cat : Affiche le contenu complet d'un fichier
- Syntaxe :
cat [fichier] - Exemple :
cat /etc/hosts - Cas d'usage DevOps : Vérifier rapidement un fichier de configuration court
less : Affiche le contenu par pages
- Syntaxe :
less [fichier] - Exemple :
less /var/log/syslog - Cas d'usage DevOps : Analyser de gros fichiers de logs page par page
head : Affiche les premières lignes
- Syntaxe :
head [options] [fichier] - Exemple :
head -20 /var/log/access.log - Cas d'usage DevOps : Examiner les dernières entrées d'un log structuré
tail : Affiche les dernières lignes
- Syntaxe :
tail [options] [fichier] - Exemple :
tail -f /var/log/application.log - Cas d'usage DevOps : Surveiller en temps réel les logs d'une application
grep : Recherche de motifs dans les fichiers
- Syntaxe :
grep [options] [motif] [fichier] - Exemple :
grep -i "error" /var/log/app.log | head -10 - Cas d'usage DevOps : Identifier rapidement les erreurs dans les logs
Gestion des processus
Le monitoring et la gestion des processus constituent des compétences essentielles pour maintenir des environnements de production stables et performants.
ps : Affiche les processus en cours
- Syntaxe :
ps [options] - Exemple :
ps aux | grep nginx - Cas d'usage DevOps : Vérifier le statut des services critiques
top : Affiche les processus en temps réel
- Syntaxe :
top - Exemple :
top -p $(pgrep java) - Cas d'usage DevOps : Surveiller l'utilisation des ressources d'une application
htop : Version améliorée de top
- Syntaxe :
htop - Exemple :
htop -u webapp - Cas d'usage DevOps : Interface intuitive pour le monitoring des performances
kill : Termine un processus par son PID
- Syntaxe :
kill [signal] [PID] - Exemple :
kill -9 1234 - Cas d'usage DevOps : Arrêter un processus bloqué ou défaillant
killall : Termine tous les processus d'un nom donné
- Syntaxe :
killall [nom] - Exemple :
killall -9 python3 - Cas d'usage DevOps : Nettoyer tous les processus d'une application défaillante
nohup : Exécute une commande indépendamment du terminal
- Syntaxe :
nohup [commande] & - Exemple :
nohup python3 deploy.py > deploy.log 2>&1 & - Cas d'usage DevOps : Lancer des scripts de déploiement longue durée
Administration réseau
La compréhension et le diagnostic des problèmes réseau représentent des compétences cruciales dans un environnement DevOps moderne, particulièrement avec l'architecture microservices.
ping : Test de connectivité réseau
- Syntaxe :
ping [options] [destination] - Exemple :
ping -c 4 google.com - Cas d'usage DevOps : Vérifier la connectivité vers des services externes
wget : Télécharge des fichiers via HTTP/HTTPS/FTP
- Syntaxe :
wget [options] [URL] - Exemple :
wget -O app.tar.gz https://releases.example.com/v1.2.3.tar.gz - Cas d'usage DevOps : Télécharger des artéfacts de build ou de déploiement
curl : Client HTTP polyvalent
- Syntaxe :
curl [options] [URL] - Exemple :
curl -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com/webhook - Cas d'usage DevOps : Tester les APIs et déclencher des webhooks
netstat : Affiche les connexions réseau
- Syntaxe :
netstat [options] - Exemple :
netstat -tulpn | grep :80 - Cas d'usage DevOps : Identifier quels services écoutent sur quels ports
ss : Version moderne de netstat
- Syntaxe :
ss [options] - Exemple :
ss -tulpn | grep :443 - Cas d'usage DevOps : Diagnostic rapide des connexions HTTPS
iptables : Configuration du pare-feu
- Syntaxe :
iptables [options] [règle] - Exemple :
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT - Cas d'usage DevOps : Ouvrir des ports pour les applications déployées
Gestion des permissions et propriétés
La sécurisation des fichiers et la gestion des accès constituent des aspects fondamentaux de la sécurité infrastructure dans un environnement DevOps.
chmod : Modifie les permissions des fichiers
- Syntaxe :
chmod [permissions] [fichier] - Exemple :
chmod 755 /opt/scripts/deploy.sh - Cas d'usage DevOps : Rendre exécutables les scripts de déploiement
chown : Modifie le propriétaire d'un fichier
- Syntaxe :
chown [utilisateur:groupe] [fichier] - Exemple :
chown webapp:webapp /var/www/html -R - Cas d'usage DevOps : Assigner la propriété des fichiers d'application
chgrp : Modifie le groupe propriétaire
- Syntaxe :
chgrp [groupe] [fichier] - Exemple :
chgrp developers /shared/projects -R - Cas d'usage DevOps : Partager l'accès aux ressources entre équipes
umask : Définit les permissions par défaut
- Syntaxe :
umask [valeur] - Exemple :
umask 022 - Cas d'usage DevOps : Sécuriser les nouveaux fichiers créés automatiquement
Analyse des logs et monitoring
L'analyse efficace des logs représente un pilier de l'observabilité en DevOps. Ces commandes vous permettront de diagnostiquer rapidement les problèmes en production.
journalctl : Consultation des logs systemd
- Syntaxe :
journalctl [options] - Exemple :
journalctl -u nginx -f --since "1 hour ago" - Cas d'usage DevOps : Analyser les logs d'un service système en temps réel
dmesg : Affiche les messages du noyau
- Syntaxe :
dmesg [options] - Exemple :
dmesg | grep -i error - Cas d'usage DevOps : Diagnostiquer les problèmes hardware ou de pilotes
awk : Traitement de texte et extraction de données
- Syntaxe :
awk 'pattern { action }' [fichier] - Exemple :
awk '{print $1, $7}' /var/log/access.log | sort | uniq -c - Cas d'usage DevOps : Analyser les patterns dans les logs d'accès web
sed : Éditeur de flux pour transformation de texte
- Syntaxe :
sed [options] 'commande' [fichier] - Exemple :
sed 's/localhost/prod-server/g' config.ini - Cas d'usage DevOps : Modifier massivement les fichiers de configuration
Gestion des services avec systemd
Systemd est devenu le gestionnaire de services standard sur la plupart des distributions Linux modernes. Sa maîtrise est indispensable pour tout DevOps gérant des serveurs Linux.
systemctl : Contrôle des services systemd
- Syntaxe :
systemctl [action] [service] - Exemple :
systemctl restart nginx && systemctl status nginx - Cas d'usage DevOps : Redémarrer et vérifier l'état des services après déploiement
systemctl enable/disable : Active/désactive le démarrage automatique
- Syntaxe :
systemctl enable [service] - Exemple :
systemctl enable docker - Cas d'usage DevOps : S'assurer qu'Docker démarre automatiquement au boot
systemctl list-units : Liste les unités systemd
- Syntaxe :
systemctl list-units [options] - Exemple :
systemctl list-units --failed - Cas d'usage DevOps : Identifier rapidement les services en échec
Commandes de surveillance système
Le monitoring proactif des ressources système permet d'anticiper les problèmes de performance et de disponibilité dans vos environnements de production.
df : Affiche l'usage des systèmes de fichiers
- Syntaxe :
df [options] - Exemple :
df -h | grep -v tmpfs - Cas d'usage DevOps : Surveiller l'espace disque disponible pour éviter les pannes
du : Calcule l'usage disque des répertoires
- Syntaxe :
du [options] [répertoire] - Exemple :
du -sh /var/log/* | sort -hr - Cas d'usage DevOps : Identifier les répertoires consommant le plus d'espace
free : Affiche l'usage de la mémoire
- Syntaxe :
free [options] - Exemple :
free -h - Cas d'usage DevOps : Vérifier la mémoire disponible avant un déploiement
uptime : Affiche la charge système et l'uptime
- Syntaxe :
uptime - Exemple :
uptime→14:25:17 up 23 days, 7:42, 3 users, load average: 0.15, 0.08, 0.05 - Cas d'usage DevOps : Évaluer rapidement la santé générale d'un serveur
iostat : Statistiques d'entrées/sorties
- Syntaxe :
iostat [options] [intervalle] - Exemple :
iostat -x 5 3 - Cas d'usage DevOps : Diagnostiquer les goulets d'étranglement disque
Commandes d'archivage et compression
La gestion efficace des sauvegardes et des artéfacts de déploiement nécessite une maîtrise des outils d'archivage et de compression.
tar : Archivage et extraction
- Syntaxe :
tar [options] [archive] [fichiers] - Exemple :
tar -czf backup-$(date +%Y%m%d).tar.gz /opt/app/ - Cas d'usage DevOps : Créer des sauvegardes horodatées des applications
zip/unzip : Compression et décompression ZIP
- Syntaxe :
zip [options] [archive] [fichiers] - Exemple :
unzip -q release-v2.1.3.zip -d /tmp/deploy/ - Cas d'usage DevOps : Déployer des applications packagées au format ZIP
gzip/gunzip : Compression/décompression gzip
- Syntaxe :
gzip [fichier] - Exemple :
gzip /var/log/old_logs/*.log - Cas d'usage DevOps : Compresser les anciens logs pour économiser l'espace
Commandes de transfert de fichiers
Le transfert sécurisé de fichiers entre serveurs constitue une opération quotidienne dans les workflows DevOps, que ce soit pour les déploiements ou les sauvegardes.
scp : Copie sécurisée via SSH
- Syntaxe :
scp [options] [source] [destination] - Exemple :
scp -r ./app user@prod-server:/opt/ - Cas d'usage DevOps : Déployer des applications vers des serveurs distants
rsync : Synchronisation efficace de fichiers
- Syntaxe :
rsync [options] [source] [destination] - Exemple :
rsync -avz --delete /local/backup/ user@backup-server:/remote/backup/ - Cas d'usage DevOps : Synchroniser des sauvegardes avec suppression des fichiers obsolètes
Variables d'environnement et configuration
La gestion des variables d'environnement est cruciale pour la configuration des applications selon les environnements (dev, staging, production).
env : Affiche toutes les variables d'environnement
- Syntaxe :
env - Exemple :
env | grep -i java - Cas d'usage DevOps : Vérifier la configuration de l'environnement Java
export : Définit des variables d'environnement
- Syntaxe :
export [VARIABLE=valeur] - Exemple :
export DATABASE_URL="postgresql://user:pass@localhost:5432/app" - Cas d'usage DevOps : Configurer les paramètres d'application avant le déploiement
source : Exécute un script dans le shell courant
- Syntaxe :
source [fichier] - Exemple :
source /opt/app/.env - Cas d'usage DevOps : Charger les variables d'environnement depuis un fichier
Tableau récapitulatif des 50 commandes essentielles
| Catégorie | Commande | Usage principal | Criticité DevOps |
|---|---|---|---|
| Navigation | pwd, ls, cd, find, which | Exploration système | ★★★★★ |
| Fichiers | touch, mkdir, cp, mv, rm | Manipulation fichiers | ★★★★★ |
| Consultation | cat, less, head, tail, grep | Analyse contenu | ★★★★★ |
| Processus | ps, top, htop, kill, killall, nohup | Gestion processus | ★★★★★ |
| Réseau | ping, wget, curl, netstat, ss, iptables | Administration réseau | ★★★★☆ |
| Permissions | chmod, chown, chgrp, umask | Sécurité fichiers | ★★★★☆ |
| Logs | journalctl, dmesg, awk, sed | Analyse logs | ★★★★★ |
| Services | systemctl (start/stop/enable/disable) | Gestion services | ★★★★★ |
| Système | df, du, free, uptime, iostat | Monitoring ressources | ★★★★☆ |
| Archive | tar, zip/unzip, gzip/gunzip | Sauvegarde/déploiement | ★★★☆☆ |
| Transfert | scp, rsync | Déploiement distant | ★★★★☆ |
| Environnement | env, export, source | Configuration app | ★★★★☆ |
Comment progresser efficacement avec Linux en DevOps ?
La maîtrise de ces 50 commandes Linux essentielles représente une base solide, mais l'expertise DevOps nécessite une pratique régulière et contextuelle. Voici comment accélérer votre apprentissage :
Pratiquez dans des environnements réels : Installez une VM Linux ou utilisez des containers Docker pour expérimenter sans risque. L'apprentissage des linux commandes devops nécessite une pratique hands-on.
Automatisez progressivement : Commencez par créer des alias pour vos commandes fréquentes, puis évoluez vers des scripts bash simples. Cette progression naturelle vous mènera vers des outils plus avancés comme Git et les bonnes pratiques GitFlow pour versionner vos scripts.
Intégrez dans des workflows DevOps : Utilisez ces commandes dans des contextes réels : monitoring d'applications, débogage d'incidents, automatisation de déploiements. Cette approche pratique accélère considérablement l'apprentissage.
Pour maîtriser Linux dans un contexte DevOps professionnel et acquérir toutes les compétences techniques nécessaires, notre formation DevOps certifiante vous accompagne sur un parcours complet de 15 semaines. Vous y apprendrez non seulement ces commandes essentielles, mais aussi leur intégration dans des pipelines CI/CD, des outils d'automatisation et des architectures cloud modernes.
Bonnes pratiques pour utiliser Linux en production
L'utilisation de ces commandes en environnement de production nécessite quelques précautions essentielles que tout DevOps confirmé respecte :
Toujours tester avant la production : Utilisez des environnements de staging pour valider vos commandes, particulièrement celles impliquant des modifications système (chmod, systemctl, rm).
Documenter vos interventions : Créez des runbooks détaillant les séquences de commandes pour les opérations courantes. Cette documentation sera précieuse pour votre équipe et pour les astreintes.
Utiliser des outils de monitoring : Combinez ces commandes avec des solutions de monitoring (Prometheus, Grafana) pour une observabilité complète de vos systèmes.
Sécuriser vos accès : Privilégiez l'utilisation de sudo, configurez des accès SSH par clés, et loggez toutes les actions administratives pour maintenir un audit trail complet.
La maîtrise de ces 50 commandes Linux constitue le socle technique indispensable pour exceller dans les métiers DevOps. Combinées à une compréhension solide des architectures cloud et des outils d'automatisation, elles vous permettront de gérer efficacement des infrastructures complexes et d'assurer la stabilité de vos environnements de production.
Pour approfondir ces compétences techniques et les intégrer dans une démarche DevOps complète, candidater maintenant à notre programme de formation et transformez cette base théorique en expertise opérationnelle reconnue sur le marché.