Pourquoi apprendre les commandes Linux ?
Linux est partout — dans les serveurs cloud AWS, Google et Azure, dans les téléphones Android, et dans la quasi-totalité des infrastructures mondiales. Maîtriser ses commandes vous rend plus autonome, plus efficace, et ouvre des portes dans le développement et l'administration système.
Ce guide est une référence complète à conserver et à consulter au quotidien.
Navigation dans les fichiers
| Commande |
Description |
Exemple |
pwd |
Affiche le dossier courant |
pwd |
ls |
Liste les fichiers |
ls |
ls -la |
Liste avec permissions et fichiers cachés |
ls -la |
ls -lh |
Tailles lisibles (Ko, Mo) |
ls -lh /var/log |
cd |
Change de dossier |
cd /var/www |
cd .. |
Remonte d'un niveau |
cd .. |
cd ~ |
Retourne au dossier personnel |
cd ~ |
cd - |
Retourne au dossier précédent |
cd - |
mkdir |
Crée un dossier |
mkdir projets |
mkdir -p |
Crée des dossiers imbriqués |
mkdir -p app/src/css |
rmdir |
Supprime un dossier vide |
rmdir ancien |
tree |
Affiche l'arborescence |
tree -L 2 |
Gestion des fichiers
| Commande |
Description |
Exemple |
touch |
Crée un fichier vide |
touch notes.txt |
cp |
Copie un fichier |
cp a.txt b.txt |
cp -r |
Copie un dossier entier |
cp -r src/ backup/ |
mv |
Déplace ou renomme |
mv ancien.txt nouveau.txt |
rm |
Supprime un fichier |
rm fichier.txt |
rm -rf |
Supprime tout (irréversible !) |
rm -rf /tmp/test/ |
ln -s |
Crée un lien symbolique |
ln -s original.txt lien.txt |
stat |
Infos détaillées sur un fichier |
stat fichier.txt |
file |
Détermine le type d'un fichier |
file image.png |
du -sh |
Taille d'un dossier |
du -sh /var/log |
df -h |
Espace disque disponible |
df -h |
Lecture et écriture de fichiers
| Commande |
Description |
Exemple |
cat |
Affiche le contenu d'un fichier |
cat config.txt |
head |
Affiche les premières lignes |
head -n 20 log.txt |
tail |
Affiche les dernières lignes |
tail -n 20 log.txt |
tail -f |
Suit un fichier en temps réel |
tail -f /var/log/nginx/access.log |
less |
Parcours paginé |
less /var/log/syslog |
wc -l |
Compte les lignes |
wc -l fichier.txt |
wc -w |
Compte les mots |
wc -w article.txt |
echo |
Affiche du texte |
echo "Bonjour" |
echo > |
Écrit dans un fichier (écrase) |
echo "contenu" > fichier.txt |
echo >> |
Ajoute à un fichier |
echo "ligne" >> fichier.txt |
nano |
Éditeur simple en terminal |
nano config.txt |
vim |
Éditeur puissant (:wq pour sauvegarder) |
vim script.sh |
Pipes et redirections
Le pipe | permet de chaîner deux commandes — la sortie de l'une devient l'entrée de l'autre.
# Pipe — filtrer la liste des fichiers Python
ls | grep ".py"
# Compter les lignes contenant "error"
cat app.log | grep "error" | wc -l
# Redirection > — écrire dans un fichier (écrase le contenu)
ls -la > liste.txt
# Redirection >> — ajouter à la fin d'un fichier
echo "nouvelle ligne" >> log.txt
# Redirection 2> — capturer uniquement les erreurs
commande 2> erreurs.txt
# Fusionner sortie standard et erreurs
commande > tout.txt 2>&1
# Ignorer toute la sortie
commande > /dev/null 2>&1
Recherche et filtrage
| Commande |
Description |
Exemple |
grep |
Cherche un texte dans un fichier |
grep "erreur" log.txt |
grep -r |
Cherche dans tous les sous-dossiers |
grep -r "TODO" ./src |
grep -i |
Ignore la casse |
grep -i "admin" users.txt |
grep -v |
Exclut les lignes correspondantes |
grep -v "DEBUG" log.txt |
grep -n |
Affiche les numéros de ligne |
grep -n "def " script.py |
find |
Cherche des fichiers |
find . -name "*.py" |
find -type f |
Cherche uniquement des fichiers |
find . -type f -name "*.log" |
find -type d |
Cherche uniquement des dossiers |
find . -type d -name "cache" |
find -mtime -7 |
Fichiers modifiés dans les 7 derniers jours |
find . -mtime -7 |
find -size +10M |
Fichiers de plus de 10 Mo |
find . -size +10M |
which |
Trouve le chemin d'une commande |
which python3 |
whereis |
Localise programme et documentation |
whereis nginx |
locate |
Recherche rapide par index |
locate nginx.conf |
sort |
Trie les lignes |
sort liste.txt |
sort -r |
Tri inverse |
sort -r liste.txt |
uniq |
Supprime les doublons consécutifs |
sort liste.txt \| uniq |
cut -d',' -f1 |
Extrait une colonne CSV |
cut -d',' -f1 data.csv |
awk |
Traitement avancé de texte |
awk '{print $1}' fichier.txt |
sed |
Substitution de texte |
sed 's/ancien/nouveau/g' fichier.txt |
Permissions et sécurité
| Commande |
Description |
Exemple |
ls -l |
Affiche les permissions |
ls -l |
chmod 644 |
Lecture/écriture propriétaire, lecture autres |
chmod 644 fichier.txt |
chmod 755 |
Lecture/exécution pour tous, écriture propriétaire |
chmod 755 dossier/ |
chmod +x |
Rend exécutable |
chmod +x deploy.sh |
chmod -x |
Retire le droit d'exécution |
chmod -x script.sh |
chown |
Change le propriétaire |
chown user:group fichier.txt |
chgrp |
Change le groupe |
chgrp www-data /var/www |
sudo |
Exécute en superutilisateur |
sudo apt update |
sudo -i |
Passe en mode root |
sudo -i |
su |
Change d'utilisateur |
su postgres |
id |
Affiche votre identité et groupes |
id |
whoami |
Affiche votre nom d'utilisateur |
whoami |
groups |
Affiche vos groupes |
groups |
passwd |
Change votre mot de passe |
passwd |
useradd |
Crée un utilisateur |
sudo useradd -m nomutilisateur |
usermod |
Modifie un utilisateur |
sudo usermod -aG sudo nomutilisateur |
Réseau
| Commande |
Description |
Exemple |
ping |
Teste la connexion réseau |
ping google.com |
ping -c 4 |
Envoie 4 paquets puis s'arrête |
ping -c 4 8.8.8.8 |
curl |
Effectue une requête HTTP |
curl https://api.example.com |
curl -o |
Télécharge un fichier |
curl -o fichier.zip https://example.com/f.zip |
curl -X POST |
Envoie une requête POST |
curl -X POST -d '{"key":"val"}' url |
wget |
Télécharge un fichier |
wget https://example.com/fichier.zip |
ssh |
Connexion à un serveur distant |
ssh user@192.168.1.10 |
ssh -i |
Connexion avec une clé spécifique |
ssh -i ~/.ssh/id_ed25519 user@host |
scp |
Copie via SSH |
scp fichier.txt user@host:/tmp/ |
rsync -avz |
Synchronisation efficace |
rsync -avz src/ user@host:/dest/ |
ip a |
Affiche les interfaces réseau |
ip a |
ip r |
Affiche la table de routage |
ip r |
ifconfig |
Interfaces réseau (ancienne commande) |
ifconfig |
netstat -tulnp |
Ports ouverts et processus associés |
netstat -tulnp |
ss -tulnp |
Ports ouverts (version moderne) |
ss -tulnp |
nslookup |
Résout un nom de domaine |
nslookup google.com |
dig |
Infos DNS détaillées |
dig google.com A |
host |
Résolution DNS simple |
host google.com |
traceroute |
Trace le chemin réseau |
traceroute google.com |
ufw status |
État du pare-feu (Ubuntu) |
sudo ufw status |
ufw allow |
Autorise un port |
sudo ufw allow 80 |
Processus et système
| Commande |
Description |
Exemple |
ps aux |
Liste tous les processus |
ps aux |
top |
Moniteur ressources en temps réel |
top |
htop |
Moniteur amélioré et interactif |
htop |
kill |
Arrête un processus par PID |
kill 1234 |
kill -9 |
Arrêt forcé |
kill -9 1234 |
killall |
Arrête par nom de programme |
killall nginx |
pkill |
Arrête par motif de nom |
pkill -f "python app" |
bg |
Envoie en arrière-plan |
bg %1 |
fg |
Ramène au premier plan |
fg %1 |
jobs |
Liste les tâches en arrière-plan |
jobs |
nohup |
Continue après déconnexion |
nohup python app.py & |
uptime |
Durée de fonctionnement |
uptime |
uname -a |
Infos système complètes |
uname -a |
hostname |
Nom de la machine |
hostname |
free -h |
Mémoire disponible |
free -h |
lscpu |
Infos processeur |
lscpu |
lsblk |
Liste les disques et partitions |
lsblk |
dmesg |
Messages du noyau |
dmesg \| tail -20 |
systemctl status |
État d'un service |
systemctl status nginx |
systemctl start |
Démarre un service |
sudo systemctl start nginx |
systemctl restart |
Redémarre un service |
sudo systemctl restart nginx |
systemctl enable |
Active au démarrage |
sudo systemctl enable nginx |
journalctl -u |
Logs d'un service |
journalctl -u nginx -n 50 |
Archives et compression
| Commande |
Description |
Exemple |
tar -czf |
Crée une archive .tar.gz |
tar -czf archive.tar.gz dossier/ |
tar -xzf |
Extrait une archive .tar.gz |
tar -xzf archive.tar.gz |
tar -tf |
Affiche le contenu sans extraire |
tar -tf archive.tar.gz |
tar -xzf -C |
Extrait dans un dossier précis |
tar -xzf archive.tar.gz -C /tmp/ |
zip -r |
Crée un fichier zip |
zip -r archive.zip dossier/ |
unzip |
Extrait un fichier zip |
unzip archive.zip |
unzip -l |
Liste le contenu sans extraire |
unzip -l archive.zip |
gzip |
Compresse un fichier (.gz) |
gzip gros-fichier.log |
gunzip |
Décompresse un .gz |
gunzip fichier.txt.gz |
Gestion des paquets
Debian / Ubuntu (apt)
| Commande |
Description |
sudo apt update |
Met à jour la liste des paquets disponibles |
sudo apt upgrade |
Met à jour tous les paquets installés |
sudo apt install nginx |
Installe le paquet nginx |
sudo apt remove nginx |
Supprime le paquet (garde la config) |
sudo apt purge nginx |
Supprime le paquet et sa configuration |
apt search python3 |
Recherche un paquet par nom |
apt show nginx |
Affiche les infos d'un paquet |
dpkg -l |
Liste tous les paquets installés |
dpkg -i paquet.deb |
Installe un fichier .deb local |
CentOS / RHEL / Fedora (dnf)
| Commande |
Description |
sudo dnf update |
Met à jour le système |
sudo dnf install httpd |
Installe Apache |
sudo dnf remove httpd |
Supprime un paquet |
dnf search nodejs |
Recherche un paquet |
Variables et environnement
| Commande |
Description |
Exemple |
echo $HOME |
Affiche le dossier personnel |
echo $HOME |
echo $USER |
Affiche l'utilisateur actuel |
echo $USER |
echo $PATH |
Affiche les dossiers dans PATH |
echo $PATH |
export |
Définit une variable d'environnement |
export NODE_ENV=production |
env |
Liste toutes les variables d'environnement |
env |
printenv |
Affiche une variable précise |
printenv HOME |
history |
Affiche l'historique des commandes |
history |
history \| grep ssh |
Cherche dans l'historique |
history \| grep ssh |
alias |
Crée un raccourci de commande |
alias ll='ls -la' |
source |
Recharge un fichier de configuration |
source ~/.bashrc |
set |
Affiche toutes les variables et fonctions |
set |
unset |
Supprime une variable |
unset MA_VARIABLE |
Exemple concret — Déploiement sur un serveur
Un développeur à Kinshasa gère son VPS Linux depuis son ordinateur :
# Se connecter au serveur via SSH
ssh ubuntu@41.243.10.55
# Mettre à jour le système
sudo apt update && sudo apt upgrade -y
# Voir l'espace disque et la mémoire
df -h
free -h
# Naviguer vers l'application
cd /var/www/monsite
# Récupérer le dernier code
git pull origin main
# Installer les dépendances
pip install -r requirements.txt
# Redémarrer le service
sudo systemctl restart gunicorn
# Vérifier que tout tourne
sudo systemctl status gunicorn
ps aux | grep gunicorn
# Suivre les logs en direct
tail -f /var/log/nginx/access.log
# Voir les 5 processus qui consomment le plus de mémoire
ps aux --sort=-%mem | head -6
À retenir
ls -la, cd, pwd — navigation quotidienne
grep -r "texte" . — chercher dans tous les fichiers
chmod +x script.sh — rendre un script exécutable
tail -f fichier.log — suivre les logs en direct
df -h et free -h — surveiller l'espace et la mémoire
systemctl status — vérifier l'état d'un service
ps aux — voir tous les processus actifs
Prochaine étape
Apprenez à combiner ces commandes dans des scripts Bash pour automatiser vos tâches répétitives — consultez notre article Bash scripting : automatiser ses tâches.