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.