Guide complet des commandes Linux : tutoriel et aide-mémoire
Guide indépendant
Ce guide est une référence complète pour maîtriser le terminal Linux. Il est pensé à la fois comme un tutoriel progressif pour les débutants et comme un aide-mémoire pour les utilisateurs expérimentés. Chaque section présente les commandes essentielles, leur fonctionnement, des exemples concrets, et des variantes selon votre famille de distribution : Debian/Ubuntu (APT), RHEL/Fedora (DNF), et Arch Linux (Pacman).
1. Introduction au terminal
Le terminal, ou shell, est l'interface texte de Linux. Contrairement à une interface graphique, il offre un contrôle précis et reproductible du système. Le shell par défaut sur la plupart des distributions est Bash, mais on trouve aussi Zsh, Fish et d'autres.
Apprendre le terminal, c'est gagner en rapidité, en automatisation et en compréhension profonde du système. Ce guide vous accompagne des premières commandes jusqu'aux usages avancés.
Notations utilisées
$indique une commande exécutée en utilisateur normal.#indique une commande nécessitant les droits administrateur (sudo).~représente votre répertoire personnel (/home/nom_utilisateur)..désigne le répertoire courant,..le répertoire parent.
2. Premiers pas : navigation et fichiers
Ces commandes sont les premières à connaître. Elles permettent de se déplacer dans l'arborescence, de lister, créer, copier, déplacer et supprimer des fichiers.
Navigation dans l'arborescence
| Commande | Description | Exemple |
|---|---|---|
pwd | Affiche le répertoire courant | pwd |
ls | Liste le contenu d'un répertoire | ls -la /var/log |
cd | Change de répertoire | cd ~/Documents |
cd - | Retourne au répertoire précédent | cd - |
cd ~ | Retourne au répertoire personnel | cd ~ |
Options utiles pour ls :
ls -l: format long avec permissions, propriétaire, taille, date.ls -a: affiche aussi les fichiers cachés (ceux commençant par un point).ls -h: affiche les tailles en Ko, Mo, Go.ls -t: trie par date de modification.ls -Sr: trie par taille croissante.
Manipulation de fichiers et répertoires
| Commande | Description | Exemple |
|---|---|---|
touch | Crée un fichier vide ou met à jour sa date | touch notes.txt |
mkdir | Crée un répertoire | mkdir -p projet/src |
cp | Copie un fichier ou un répertoire | cp -r dossier/ backup/ |
mv | Déplace ou renomme | mv ancien.txt nouveau.txt |
rm | Supprime un fichier ou répertoire | rm -i fichier.txt |
rmdir | Supprime un répertoire vide | rmdir vide/ |
Attention : rm -rf / supprime tout le système. Vérifiez toujours votre commande avant d'appuyer sur Entrée, surtout avec rm -rf.
3. Lire, écrire et modifier du texte
Sous Linux, presque tout est fichier texte : configuration, logs, scripts. Savoir lire et modifier du texte efficacement est essentiel.
Lecture de fichiers
| Commande | Description | Exemple |
|---|---|---|
cat | Affiche tout le contenu d'un fichier | cat /etc/os-release |
less | Affiche un fichier page par page | less /var/log/syslog |
more | Variante ancienne de less | more fichier.txt |
head | Premières lignes d'un fichier | head -n 20 log.txt |
tail | Dernières lignes, en temps réel avec -f | tail -f /var/log/nginx/access.log |
nl | Affiche avec numéros de ligne | nl script.sh |
Recherche et transformation
| Commande | Description | Exemple |
|---|---|---|
grep | Cherche un motif dans du texte | grep -n "error" /var/log/syslog |
sed | Éditeur de flux | sed -i 's/ancien/nouveau/g' file.txt |
awk | Traitement de colonnes | awk '{print $1, $4}' access.log |
cut | Extrait des colonnes ou champs | cut -d: -f1 /etc/passwd |
sort | Trie les lignes | sort -n nombres.txt |
uniq | Supprime les doublons adjacents | sort liste.txt | uniq -c |
wc | Compte lignes, mots, octets | wc -l fichier.txt |
diff | Compare deux fichiers | diff fichier1.txt fichier2.txt |
Éditeurs de texte en terminal
- nano : simple, idéal pour les débutants.
nano fichier.txt - vim : très puissant, courbe d'apprentissage plus forte.
vim fichier.txt - micro : moderne, raccourcis classiques.
micro fichier.txt
4. Utilisateurs, groupes et permissions
Linux est un système multi-utilisateurs. Chaque fichier appartient à un utilisateur et à un groupe. Les permissions définissent qui peut lire, écrire ou exécuter.
Commandes utilisateurs
| Commande | Description | Exemple |
|---|---|---|
whoami | Nom de l'utilisateur courant | whoami |
id | ID, groupes de l'utilisateur | id |
sudo | Exécute une commande en root | sudo apt update |
su - | Passe à l'utilisateur root | su - |
passwd | Change le mot de passe | passwd |
useradd | Ajoute un utilisateur | sudo useradd -m -s /bin/bash alice |
usermod | Modifie un utilisateur | sudo usermod -aG sudo alice |
userdel | Supprime un utilisateur | sudo userdel -r alice |
groupadd | Ajoute un groupe | sudo groupadd devs |
Permissions
Les permissions s'affichent avec ls -l sous la forme rwxr-xr-x :
- r (read) : lecture
- w (write) : écriture
- x (execute) : exécution
Les trois groupes de trois caractères correspondent à : propriétaire, groupe, autres.
| Commande | Description | Exemple |
|---|---|---|
chmod | Modifie les permissions | chmod 755 script.sh |
chown | Change le propriétaire | sudo chown alice:users fichier |
chgrp | Change le groupe | sudo chgrp devs fichier |
umask | Définit les permissions par défaut | umask 022 |
Modes numériques courants :
777: tout le monde peut tout faire (à éviter).755: exécutable par tout le monde, modifiable par le propriétaire.644: fichier lisible par tout le monde, modifiable par le propriétaire.700: accessible uniquement par le propriétaire.
5. Gestion des paquets logiciels
Installer, mettre à jour et supprimer des logiciels se fait via un gestionnaire de paquets. Les trois grandes familles sont présentées ci-dessous. Choisissez la section correspondant à votre distribution.
5.1 APT — Debian, Ubuntu, Linux Mint, Pop!_OS
APT (Advanced Package Tool) est le gestionnaire de paquets des distributions basées sur Debian.
| Action | Commande | Explication |
|---|---|---|
| Mettre à jour la liste des paquets | sudo apt update | Télécharge les informations sur les versions disponibles. |
| Mettre à jour les paquets installés | sudo apt upgrade | Installe les mises à jour sans supprimer de paquets. |
| Mise à jour complète | sudo apt full-upgrade | Autorise la suppression de paquets obsolètes si nécessaire. |
| Installer un paquet | sudo apt install nginx | Télécharge et installe nginx et ses dépendances. |
| Supprimer un paquet | sudo apt remove nginx | Supprime nginx mais conserve sa configuration. |
| Supprimer totalement | sudo apt purge nginx | Supprime nginx et ses fichiers de configuration. |
| Rechercher un paquet | apt search éditeur markdown | Cherche dans les dépôts. |
| Infos sur un paquet | apt show nginx | Affiche la description, la version, les dépendances. |
| Liste des fichiers installés | dpkg -L nginx | Montre tous les fichiers du paquet. |
| Nettoyer les dépendances inutiles | sudo apt autoremove | Supprime les paquets orphelins. |
| Vider le cache | sudo apt clean | Libère l'espace utilisé par les paquets téléchargés. |
5.2 DNF — RHEL, Fedora, CentOS Stream, AlmaLinux, Rocky Linux
DNF (Dandified YUM) est le gestionnaire moderne des distributions Red Hat. Il remplace l'ancien yum.
| Action | Commande | Explication |
|---|---|---|
| Mettre à jour le système | sudo dnf update | Met à jour tous les paquets. |
| Mettre à jour un paquet | sudo dnf update nginx | Met à jour uniquement nginx. |
| Installer un paquet | sudo dnf install nginx | Installe nginx et ses dépendances. |
| Supprimer un paquet | sudo dnf remove nginx | Supprime nginx. |
| Rechercher un paquet | dnf search nginx | Cherche dans les dépôts. |
| Infos sur un paquet | dnf info nginx | Description, version, dépendances. |
| Historique | dnf history | Liste les opérations récentes. |
| Annuler une opération | sudo dnf history undo 5 | Annule l'opération numéro 5. |
| Nettoyer les paquets orphelins | sudo dnf autoremove | Supprime les dépendances inutiles. |
| Vider le cache | sudo dnf clean all | Libère le cache. |
5.3 Pacman — Arch Linux, Manjaro, EndeavourOS
Pacman est le gestionnaire de paquets d'Arch Linux. Il est rapide, simple et puissant.
| Action | Commande | Explication |
|---|---|---|
| Mettre à jour le système | sudo pacman -Syu | Synchronise les dépôts et met à jour. |
| Installer un paquet | sudo pacman -S nginx | Installe nginx. |
| Supprimer un paquet | sudo pacman -R nginx | Supprime nginx. |
| Supprimer avec dépendances | sudo pacman -Rs nginx | Supprime nginx et ses dépendances inutilisées. |
| Supprimer totalement | sudo pacman -Rns nginx | Supprime aussi les fichiers de configuration. |
| Rechercher un paquet | pacman -Ss nginx | Cherche dans les dépôts. |
| Infos sur un paquet installé | pacman -Qi nginx | Version, description, dépendances. |
| Liste des fichiers installés | pacman -Ql nginx | Tous les fichiers du paquet. |
| Nettoyer le cache | sudo pacman -Sc | Supprime les anciennes versions du cache. |
| Nettoyer tout le cache | sudo pacman -Scc | Supprime tout le cache (attention). |
| Supprimer les orphelins | sudo pacman -Qdtq | sudo pacman -Rs - | Supprime les dépendances orphelines. |
6. Processus, services et surveillance
Un processus est un programme en cours d'exécution. Linux fournit de nombreux outils pour les surveiller et les contrôler.
| Commande | Description | Exemple |
|---|---|---|
ps | Liste les processus | ps aux |
top | Moniteur interactif | top |
htop | Moniteur amélioré (à installer) | htop |
pgrep | Cherche un processus par nom | pgrep firefox |
pkill | Envoie un signal par nom | pkill -9 firefox |
kill | Envoie un signal à un PID | kill 1234 |
killall | Tue tous les processus d'un nom | killall firefox |
nice | Lance avec une priorité | nice -n 10 backup.sh |
renice | Change la priorité d'un processus | sudo renice -n 5 -p 1234 |
Services avec systemd
La plupart des distributions modernes utilisent systemd pour gérer les services.
| Action | Commande |
|---|---|
| Voir l'état d'un service | sudo systemctl status sshd |
| Démarrer un service | sudo systemctl start sshd |
| Arrêter un service | sudo systemctl stop sshd |
| Redémarrer un service | sudo systemctl restart sshd |
| Recharger la configuration | sudo systemctl reload sshd |
| Activer au démarrage | sudo systemctl enable sshd |
| Désactiver au démarrage | sudo systemctl disable sshd |
| Voir les logs en temps réel | sudo journalctl -u sshd -f |
| Voir les logs depuis le boot | sudo journalctl -xb |
7. Disques, partitions et système de fichiers
| Commande | Description | Exemple |
|---|---|---|
df | Espace disque disponible | df -h |
du | Taille d'un répertoire | du -sh /var/log |
lsblk | Arborescence des blocs | lsblk -f |
fdisk | Partitionnement | sudo fdisk -l |
parted | Partitionnement avancé | sudo parted /dev/sda print |
mkfs.ext4 | Formate en ext4 | sudo mkfs.ext4 /dev/sdb1 |
mount | Monte un système de fichiers | sudo mount /dev/sdb1 /mnt |
umount | Démonte | sudo umount /mnt |
blkid | UUID et type des partitions | blkid |
fsck | Vérifie et répare un système de fichiers | sudo fsck /dev/sdb1 |
8. Réseau et connexions distantes
| Commande | Description | Exemple |
|---|---|---|
ip | Configuration réseau moderne | ip addr, ip route |
ping | Teste la connectivité | ping -c 4 1.1.1.1 |
curl | Requêtes HTTP/HTTPS | curl -I https://auxinux.ca |
wget | Télécharge un fichier | wget https://example.com/file.zip |
ssh | Connexion distante sécurisée | ssh user@serveur |
scp | Copie de fichiers via SSH | scp fichier user@serveur:/tmp |
rsync | Synchronisation incrémentale | rsync -avz src/ dest/ |
ss | Sockets et ports ouverts | ss -tlnp |
netstat | Alternative à ss (legacy) | netstat -tlnp |
nslookup | Requête DNS simple | nslookup auxinux.ca |
dig | Requête DNS avancée | dig auxinux.ca |
traceroute | Route vers un hôte | traceroute 1.1.1.1 |
mtr | Traceroute amélioré | mtr 1.1.1.1 |
9. Recherche et filtres avancés
find
find est l'outil le plus puissant pour chercher des fichiers.
find /home -name "*.txt" # fichiers .txt
find /var/log -type f -mtime +7 # fichiers modifiés il y a +7 jours
find / -size +100M # fichiers de plus de 100 Mo
find /etc -type f -exec grep -l "motif" {} \; # cherche dans les fichiers
find . -type f -perm 644 # fichiers avec permissions 644
grep avancé
grep -r "motif" /etc # recherche récursive
grep -i "motif" fichier # insensible à la casse
grep -v "motif" fichier # inverse la sélection
grep -E "motif1|motif2" fichier # expressions régulières
grep -n "motif" fichier # avec numéros de ligne
locate
locate utilise une base d'index et est très rapide, mais peut être obsolète si la base n'a pas été mise à jour.
sudo updatedb # met à jour la base
locate nginx.conf # recherche rapide
10. Redirections, pipes et scripts rapides
| Symbole | Description | Exemple |
|---|---|---|
> | Redirige la sortie vers un fichier (écrase) | echo "ok" > fichier.txt |
>> | Ajoute à la fin d'un fichier | echo "log" >> app.log |
| | Pipe : sortie d'une commande vers une autre | cat log | grep error |
2> | Redirige les erreurs | cmd 2> erreurs.log |
&> | Redirige sortie et erreurs | cmd &> tout.log |
< | Redirige l'entrée depuis un fichier | sort < liste.txt |
& | Exécute en arrière-plan | long_cmd & |
&& | Exécute si la première réussit | cd /tmp && ls |
|| | Exécute si la première échoue | cmd1 || cmd2 |
; | Exécute séquentiellement | cmd1 ; cmd2 |
Exemples de pipes utiles
ps aux | grep nginx # trouve le processus nginx
cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr # top IP
find . -type f | wc -l # compte les fichiers
du -sh * | sort -h # répertoires triés par taille
Script bash minimal
#!/bin/bash
# Mon premier script
echo "Démarrage du backup..."
rsync -avz ~/Documents /mnt/backup/
echo "Backup terminé à $(date)"
Rendez le script exécutable avec chmod +x script.sh puis exécutez-le avec ./script.sh.
11. Trucs et astuces du terminal
- Tabulation : appuyez sur Tab pour compléter automatiquement les noms de fichiers et commandes. Double Tab affiche les possibilités.
- Historique : ↑ / ↓ pour naviguer dans l'historique.
historyliste toutes les commandes.!42relance la commande n°42. - Recherche dans l'historique : Ctrl+R, puis tapez un fragment.
- Raccourcis de ligne : Ctrl+A début, Ctrl+E fin, Ctrl+U supprime la ligne, Ctrl+K supprime jusqu'à la fin, Ctrl+W supprime le mot précédent.
- sudo !! : relance la dernière commande avec
sudo. - Alias : ajoutez dans
~/.bashrcou~/.zshrc:
Puis rechargez avecalias ll='ls -alF' alias update='sudo apt update && sudo apt upgrade -y' alias ..='cd ..' alias ...='cd ../..'source ~/.bashrc. - Man pages :
man lsouls --help. - tldr : exemples simplifiés. Installez-le avec votre gestionnaire de paquets, puis
tldr tar. - Variables d'environnement :
echo $PATH,export EDITOR=nano. - Quitter un programme bloqué : Ctrl+C.
- Suspendre un programme : Ctrl+Z, puis
bgpour le relancer en arrière-plan,fgpour le reprendre.
12. Aide-mémoire rapide
| Je veux... | Commande |
|---|---|
| Savoir où je suis | pwd |
| Lister les fichiers | ls -la |
| Changer de dossier | cd chemin |
| Voir l'espace disque | df -h |
| Voir la taille d'un dossier | du -sh dossier |
| Voir la mémoire | free -h |
| Voir les processus | ps aux ou htop |
| Chercher un fichier | find / -name "nom" |
| Chercher dans des fichiers | grep -r "motif" /chemin |
| Mettre à jour (Debian) | sudo apt update && sudo apt upgrade |
| Mettre à jour (Fedora) | sudo dnf update |
| Mettre à jour (Arch) | sudo pacman -Syu |
| Redémarrer un service | sudo systemctl restart nom |
| Me connecter à un serveur | ssh user@ip |
| Copier des fichiers distants | scp fichier user@ip:/chemin |
| Voir les logs | journalctl -u service -f ou tail -f /var/log/fichier |
| Modifier les permissions | chmod 755 fichier |
| Changer le propriétaire | sudo chown user:group fichier |
| Créer un alias permanent | echo "alias ll='ls -alF'" >> ~/.bashrc |
Merci d'avoir consulté ce guide ! N'hésitez pas à l'ajouter à vos favoris et à y revenir régulièrement. Pour aller plus loin, explorez man, tldr et la documentation de votre distribution.
