Les commandes Linux essentielles se répartissent en groupes : navigation (pwd, ls, cd), gestion des fichiers (cp, mv, rm, mkdir), droits (chmod, chown), paquets (apt), processus (ps, top, kill), recherche et traitement de texte (find, grep, sed, awk), réseau (ip, ss, curl) et services (systemctl, journalctl). Vous trouverez ci-dessous des tableaux de commandes et d'exemples qui couvrent l'essentiel du travail quotidien dans le terminal.
Cet aide-mémoire des commandes Linux est organisé par tâches : trouver un fichier, installer un paquet, tuer un processus bloqué, extraire une ligne d'un journal, vérifier un port. Les commandes ont été testées sur Ubuntu et Debian ; presque tout fonctionne aussi sur les autres distributions, la différence portant surtout sur le gestionnaire de paquets.
Aide et indications
| Commande | Ce qu'elle fait |
man ls | manuel complet de la commande ; quitter avec q, rechercher avec /mot |
ls --help | aide résumée des options |
type cd | ce que c'est : commande intégrée, alias ou fichier |
which python3 | chemin du fichier exécutable |
history | historique des commandes ; !123 relance la commande numéro 123 |
Ctrl+R | recherche dans l'historique |
Ctrl+C / Ctrl+D | interrompre une commande / fermer le shell |
Navigation dans le système de fichiers
| Commande | Ce qu'elle fait |
pwd | répertoire courant |
ls -la | tous les fichiers, y compris cachés, avec droits et tailles |
ls -lh | tailles lisibles (K, M, G) |
ls -lt | tri par date de modification |
cd /var/log | aller à un chemin absolu |
cd .. / cd ~ / cd - | un niveau au-dessus / répertoire personnel / répertoire précédent |
tree -L 2 | arborescence sur 2 niveaux (paquet tree) |
Travail avec les fichiers et les répertoires
| Commande | Ce qu'elle fait |
touch fichier.txt | créer un fichier vide ou mettre à jour sa date de modification |
mkdir -p a/b/c | créer des répertoires avec leurs parents |
cp fichier.txt sauvegarde.txt | copier un fichier |
cp -r source/ cible/ | copier un répertoire récursivement |
mv ancien.txt nouveau.txt | renommer ou déplacer |
rm fichier.txt | supprimer un fichier (sans corbeille) |
rm -r dossier/ | supprimer un répertoire et son contenu ; -f — sans confirmation, prudence |
rmdir dossier | supprimer un répertoire vide |
ln -s /opt/app/current app | lien symbolique |
stat fichier.txt | détails : taille, droits, inode, dates |
file image.bin | déterminer le type du fichier d'après son contenu |
Consulter le contenu
| Commande | Ce qu'elle fait |
cat fichier | afficher le fichier en entier |
less fichier | affichage page par page, recherche /, sortie q |
head -n 20 fichier | les 20 premières lignes |
tail -n 50 fichier | les 50 dernières lignes |
tail -f /var/log/syslog | suivre un fichier en temps réel |
wc -l fichier | nombre de lignes |
diff a.conf b.conf | différences entre deux fichiers |
Droits et propriétaires
| Commande | Ce qu'elle fait |
chmod +x script.sh | autoriser l'exécution |
chmod 644 fichier | rw-r--r-- : le propriétaire écrit, les autres lisent |
chmod 755 dossier | rwxr-xr-x : courant pour les répertoires et les scripts |
chmod 600 ~/.ssh/id_ed25519 | propriétaire seul : pour les clés privées |
sudo chown www-data:www-data fichier | changer le propriétaire et le groupe |
sudo chown -R alice /srv/app | changer le propriétaire récursivement |
id | votre UID, GID et vos groupes |
sudo -i | shell root |
sudo usermod -aG docker alice | ajouter un utilisateur à un groupe |
Paquets (apt, Debian et Ubuntu)
| Commande | Ce qu'elle fait |
sudo apt update | actualiser les listes de paquets des dépôts |
sudo apt upgrade | mettre à jour les paquets installés |
sudo apt install nginx | installer un paquet |
sudo apt remove nginx | supprimer en conservant les configurations ; purge — avec les configurations |
sudo apt autoremove | supprimer les dépendances devenues inutiles |
apt search htop | rechercher un paquet |
apt show nginx | description et version |
dpkg -l | grep nginx | savoir si un paquet est installé |
dpkg -L nginx | fichiers installés par le paquet |
Sur RHEL, Fedora et Rocky Linux, les équivalents sont dnf install, dnf remove, dnf upgrade et rpm -qa.
Environnement et profil
| Commande | Ce qu'elle fait |
echo $PATH | où le shell cherche les programmes |
env | toutes les variables d'environnement |
export APP_ENV=prod | définir une variable pour la session courante et les processus enfants |
alias ll='ls -la' | raccourci d'une commande |
source ~/.bashrc | relire le profil sans se reconnecter |
crontab -e / crontab -l | modifier / afficher les tâches cron |
Processus
| Commande | Ce qu'elle fait |
ps aux | tous les processus avec utilisateur, CPU et mémoire |
ps aux | grep nginx | trouver un processus |
pgrep -a nginx | PID et ligne de commande à partir du nom |
top / htop | charge en temps réel |
kill 1234 | demander au processus de se terminer (SIGTERM) |
kill -9 1234 | arrêt forcé (SIGKILL) — dernier recours |
pkill -f "python app.py" | arrêter selon une correspondance dans la ligne de commande |
commande &, jobs, fg | lancement en arrière-plan et gestion des tâches |
nohup ./job.sh & | le processus survit à la fermeture du terminal |
free -h | mémoire et swap |
uptime | durée de fonctionnement et charge moyenne |
strace -p 1234 | appels système d'un processus |
Services et journaux (systemd)
| Commande | Ce qu'elle fait |
systemctl status nginx | état du service et dernières lignes de son journal |
sudo systemctl start|stop|restart nginx | démarrer, arrêter, redémarrer |
sudo systemctl reload nginx | relire la configuration sans arrêt |
sudo systemctl enable --now nginx | activer le démarrage automatique et lancer maintenant |
systemctl --failed | unités en échec |
journalctl -u nginx -f | journal du service en temps réel |
journalctl -u nginx --since "1 hour ago" | journal de la dernière heure |
journalctl -p err -b | erreurs depuis le dernier démarrage |
Recherche de fichiers
| Commande | Ce qu'elle fait |
find /var/log -name "*.log" | rechercher par nom |
find . -type f -mtime -1 | fichiers modifiés au cours des dernières 24 heures |
find / -size +500M 2>/dev/null | gros fichiers, erreurs d'accès masquées |
find . -name "*.tmp" -delete | rechercher et supprimer |
du -sh * | taille de chaque élément d'un répertoire |
df -h | espace libre sur les systèmes de fichiers |
Recherche et traitement de texte : grep, sed, awk, jq
| Commande | Ce qu'elle fait |
grep "error" app.log | lignes contenant le mot |
grep -i -n "error" app.log | sans tenir compte de la casse, avec numéros de ligne |
grep -r "listen" /etc/nginx/ | récursivement dans un répertoire |
grep -v "DEBUG" app.log | lignes où le mot est absent |
grep -c "500" access.log | nombre de correspondances |
grep -E "warn|error" app.log | expressions régulières étendues |
sed 's/ancien/nouveau/g' fichier | remplacer et afficher le résultat |
sed -i 's/8080/9090/' app.conf | remplacer directement dans le fichier |
sed -n '10,20p' fichier | afficher les lignes 10 à 20 |
awk '{print $1}' access.log | le premier champ de chaque ligne |
awk -F: '{print $1}' /etc/passwd | noms d'utilisateurs (séparateur :) |
awk '$9 == 500' access.log | lignes où le neuvième champ vaut 500 |
sort | uniq -c | sort -rn | compter les répétitions et trier par fréquence |
cut -d, -f2 donnees.csv | la deuxième colonne d'un CSV |
jq '.items[].name' donnees.json | extraire des champs d'un JSON |
Exemple de chaîne de traitement : les dix adresses IP ayant envoyé le plus de requêtes à nginx.
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
Redirections et tubes
| Construction | Ce qu'elle fait |
cmd > sortie.txt | écrire la sortie dans un fichier (écrasement) |
cmd >> sortie.txt | ajouter à la fin du fichier |
cmd 2> erreurs.txt | rediriger les erreurs |
cmd > tout.log 2>&1 | sortie et erreurs dans un même fichier |
cmd1 | cmd2 | transmettre la sortie d'une commande à l'entrée d'une autre |
cmd | tee sortie.txt | afficher à l'écran et enregistrer |
cmd1 && cmd2 | exécuter la seconde seulement si la première réussit |
cmd1 || cmd2 | exécuter la seconde si la première échoue |
Archives
| Commande | Ce qu'elle fait |
tar -czf sauvegarde.tar.gz dossier/ | empaqueter et compresser avec gzip |
tar -xzf sauvegarde.tar.gz | extraire |
tar -tzf sauvegarde.tar.gz | afficher le contenu |
zip -r site.zip site/ / unzip site.zip | archives zip |
Réseau
| Commande | Ce qu'elle fait |
ip a | interfaces et adresses IP |
ip r | table de routage |
ping -c 4 8.8.8.8 | disponibilité d'une machine |
ss -tulpn | ports ouverts et processus qui les utilisent |
dig example.com / nslookup example.com | requête DNS |
curl -I https://example.com | uniquement les en-têtes de réponse |
curl -s https://api.example.com | jq | requête vers une API avec JSON mis en forme |
wget URL | télécharger un fichier |
traceroute example.com | chemin des paquets jusqu'à la machine |
ssh utilisateur@hote | se connecter à un serveur |
ssh-keygen -t ed25519 | créer une paire de clés SSH |
scp fichier utilisateur@hote:/tmp/ | copier un fichier sur le serveur |
rsync -avz dossier/ utilisateur@hote:/srv/dossier/ | synchroniser un répertoire |
sudo ufw status | règles du pare-feu |
Système et disques
| Commande | Ce qu'elle fait |
uname -a | noyau et architecture |
cat /etc/os-release | distribution et version |
hostnamectl | nom d'hôte et informations système |
lsblk | disques et partitions |
sudo mount /dev/sdb1 /mnt | monter une partition |
who / w | qui est connecté en ce moment |
sudo reboot / sudo shutdown -h now | redémarrage / extinction |
Synthèse
Quelques dizaines de commandes suffisent pour le travail quotidien : ls, cd, cp, mv, rm, chmod, sudo, apt, ps, kill, systemctl, journalctl, grep, find, ss, curl et ssh. Gardez cet aide-mémoire des commandes Linux sous la main et consultez-le jusqu'à ce que les commandes deviennent naturelles. Chaque groupe de commandes est traité pas à pas et en pratique dans notre cours sur Linux.
Comment quitter man ou less ?
Appuyez sur q. Pour rechercher, tapez une barre oblique suivie du mot ; n passe à la correspondance suivante.
Comment quitter l'éditeur vim ?
Appuyez sur Échap, tapez :q! puis Entrée pour quitter sans enregistrer, ou :wq pour enregistrer et quitter. Les débutants trouveront nano plus simple pour modifier des fichiers.
Pourquoi rm -rf est-il dangereux ?
La commande supprime sans confirmation et sans corbeille, et une erreur dans le chemin (par exemple un espace en trop avant l'astérisque) peut effacer le mauvais répertoire. Vérifiez le chemin avec ls avant de lancer la commande.
Comment relancer la dernière commande avec sudo ?
Tapez sudo !! — le shell remplace l'intégralité de la commande précédente.
Comment arrêter une commande bloquée dans le terminal ?
Ctrl+C envoie un signal d'interruption. Si la commande ne réagit pas, trouvez son PID avec ps ou pgrep dans un autre terminal et terminez-la avec kill.