Aide-mémoire

Commandes Linux : aide-mémoire pour débutants et administrateurs

Mis à jour: · Skillaria.Top

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

CommandeCe qu'elle fait
man lsmanuel complet de la commande ; quitter avec q, rechercher avec /mot
ls --helpaide résumée des options
type cdce que c'est : commande intégrée, alias ou fichier
which python3chemin du fichier exécutable
historyhistorique des commandes ; !123 relance la commande numéro 123
Ctrl+Rrecherche dans l'historique
Ctrl+C / Ctrl+Dinterrompre une commande / fermer le shell
CommandeCe qu'elle fait
pwdrépertoire courant
ls -latous les fichiers, y compris cachés, avec droits et tailles
ls -lhtailles lisibles (K, M, G)
ls -lttri par date de modification
cd /var/logaller à un chemin absolu
cd .. / cd ~ / cd -un niveau au-dessus / répertoire personnel / répertoire précédent
tree -L 2arborescence sur 2 niveaux (paquet tree)

Travail avec les fichiers et les répertoires

CommandeCe qu'elle fait
touch fichier.txtcréer un fichier vide ou mettre à jour sa date de modification
mkdir -p a/b/ccréer des répertoires avec leurs parents
cp fichier.txt sauvegarde.txtcopier un fichier
cp -r source/ cible/copier un répertoire récursivement
mv ancien.txt nouveau.txtrenommer ou déplacer
rm fichier.txtsupprimer un fichier (sans corbeille)
rm -r dossier/supprimer un répertoire et son contenu ; -f — sans confirmation, prudence
rmdir dossiersupprimer un répertoire vide
ln -s /opt/app/current applien symbolique
stat fichier.txtdétails : taille, droits, inode, dates
file image.bindéterminer le type du fichier d'après son contenu

Consulter le contenu

CommandeCe qu'elle fait
cat fichierafficher le fichier en entier
less fichieraffichage page par page, recherche /, sortie q
head -n 20 fichierles 20 premières lignes
tail -n 50 fichierles 50 dernières lignes
tail -f /var/log/syslogsuivre un fichier en temps réel
wc -l fichiernombre de lignes
diff a.conf b.confdifférences entre deux fichiers

Droits et propriétaires

CommandeCe qu'elle fait
chmod +x script.shautoriser l'exécution
chmod 644 fichierrw-r--r-- : le propriétaire écrit, les autres lisent
chmod 755 dossierrwxr-xr-x : courant pour les répertoires et les scripts
chmod 600 ~/.ssh/id_ed25519propriétaire seul : pour les clés privées
sudo chown www-data:www-data fichierchanger le propriétaire et le groupe
sudo chown -R alice /srv/appchanger le propriétaire récursivement
idvotre UID, GID et vos groupes
sudo -ishell root
sudo usermod -aG docker aliceajouter un utilisateur à un groupe

Paquets (apt, Debian et Ubuntu)

CommandeCe qu'elle fait
sudo apt updateactualiser les listes de paquets des dépôts
sudo apt upgrademettre à jour les paquets installés
sudo apt install nginxinstaller un paquet
sudo apt remove nginxsupprimer en conservant les configurations ; purge — avec les configurations
sudo apt autoremovesupprimer les dépendances devenues inutiles
apt search htoprechercher un paquet
apt show nginxdescription et version
dpkg -l | grep nginxsavoir si un paquet est installé
dpkg -L nginxfichiers 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

CommandeCe qu'elle fait
echo $PATHoù le shell cherche les programmes
envtoutes les variables d'environnement
export APP_ENV=proddéfinir une variable pour la session courante et les processus enfants
alias ll='ls -la'raccourci d'une commande
source ~/.bashrcrelire le profil sans se reconnecter
crontab -e / crontab -lmodifier / afficher les tâches cron

Processus

CommandeCe qu'elle fait
ps auxtous les processus avec utilisateur, CPU et mémoire
ps aux | grep nginxtrouver un processus
pgrep -a nginxPID et ligne de commande à partir du nom
top / htopcharge en temps réel
kill 1234demander au processus de se terminer (SIGTERM)
kill -9 1234arrêt forcé (SIGKILL) — dernier recours
pkill -f "python app.py"arrêter selon une correspondance dans la ligne de commande
commande &, jobs, fglancement en arrière-plan et gestion des tâches
nohup ./job.sh &le processus survit à la fermeture du terminal
free -hmémoire et swap
uptimedurée de fonctionnement et charge moyenne
strace -p 1234appels système d'un processus

Services et journaux (systemd)

CommandeCe qu'elle fait
systemctl status nginxétat du service et dernières lignes de son journal
sudo systemctl start|stop|restart nginxdémarrer, arrêter, redémarrer
sudo systemctl reload nginxrelire la configuration sans arrêt
sudo systemctl enable --now nginxactiver le démarrage automatique et lancer maintenant
systemctl --failedunités en échec
journalctl -u nginx -fjournal du service en temps réel
journalctl -u nginx --since "1 hour ago"journal de la dernière heure
journalctl -p err -berreurs depuis le dernier démarrage

Recherche de fichiers

CommandeCe qu'elle fait
find /var/log -name "*.log"rechercher par nom
find . -type f -mtime -1fichiers modifiés au cours des dernières 24 heures
find / -size +500M 2>/dev/nullgros fichiers, erreurs d'accès masquées
find . -name "*.tmp" -deleterechercher et supprimer
du -sh *taille de chaque élément d'un répertoire
df -hespace libre sur les systèmes de fichiers

Recherche et traitement de texte : grep, sed, awk, jq

CommandeCe qu'elle fait
grep "error" app.loglignes contenant le mot
grep -i -n "error" app.logsans 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.loglignes où le mot est absent
grep -c "500" access.lognombre de correspondances
grep -E "warn|error" app.logexpressions régulières étendues
sed 's/ancien/nouveau/g' fichierremplacer et afficher le résultat
sed -i 's/8080/9090/' app.confremplacer directement dans le fichier
sed -n '10,20p' fichierafficher les lignes 10 à 20
awk '{print $1}' access.logle premier champ de chaque ligne
awk -F: '{print $1}' /etc/passwdnoms d'utilisateurs (séparateur :)
awk '$9 == 500' access.loglignes où le neuvième champ vaut 500
sort | uniq -c | sort -rncompter les répétitions et trier par fréquence
cut -d, -f2 donnees.csvla deuxième colonne d'un CSV
jq '.items[].name' donnees.jsonextraire 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

ConstructionCe qu'elle fait
cmd > sortie.txtécrire la sortie dans un fichier (écrasement)
cmd >> sortie.txtajouter à la fin du fichier
cmd 2> erreurs.txtrediriger les erreurs
cmd > tout.log 2>&1sortie et erreurs dans un même fichier
cmd1 | cmd2transmettre la sortie d'une commande à l'entrée d'une autre
cmd | tee sortie.txtafficher à l'écran et enregistrer
cmd1 && cmd2exécuter la seconde seulement si la première réussit
cmd1 || cmd2exécuter la seconde si la première échoue

Archives

CommandeCe qu'elle fait
tar -czf sauvegarde.tar.gz dossier/empaqueter et compresser avec gzip
tar -xzf sauvegarde.tar.gzextraire
tar -tzf sauvegarde.tar.gzafficher le contenu
zip -r site.zip site/ / unzip site.ziparchives zip

Réseau

CommandeCe qu'elle fait
ip ainterfaces et adresses IP
ip rtable de routage
ping -c 4 8.8.8.8disponibilité d'une machine
ss -tulpnports ouverts et processus qui les utilisent
dig example.com / nslookup example.comrequête DNS
curl -I https://example.comuniquement les en-têtes de réponse
curl -s https://api.example.com | jqrequête vers une API avec JSON mis en forme
wget URLtélécharger un fichier
traceroute example.comchemin des paquets jusqu'à la machine
ssh utilisateur@hotese connecter à un serveur
ssh-keygen -t ed25519cré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 statusrègles du pare-feu

Système et disques

CommandeCe qu'elle fait
uname -anoyau et architecture
cat /etc/os-releasedistribution et version
hostnamectlnom d'hôte et informations système
lsblkdisques et partitions
sudo mount /dev/sdb1 /mntmonter une partition
who / wqui est connecté en ce moment
sudo reboot / sudo shutdown -h nowredé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.

Questions fréquentes

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.