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

CommandeDescriptionExemple
pwdAffiche le répertoire courantpwd
lsListe le contenu d'un répertoirels -la /var/log
cdChange de répertoirecd ~/Documents
cd -Retourne au répertoire précédentcd -
cd ~Retourne au répertoire personnelcd ~

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

CommandeDescriptionExemple
touchCrée un fichier vide ou met à jour sa datetouch notes.txt
mkdirCrée un répertoiremkdir -p projet/src
cpCopie un fichier ou un répertoirecp -r dossier/ backup/
mvDéplace ou renommemv ancien.txt nouveau.txt
rmSupprime un fichier ou répertoirerm -i fichier.txt
rmdirSupprime un répertoire vidermdir 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

CommandeDescriptionExemple
catAffiche tout le contenu d'un fichiercat /etc/os-release
lessAffiche un fichier page par pageless /var/log/syslog
moreVariante ancienne de lessmore fichier.txt
headPremières lignes d'un fichierhead -n 20 log.txt
tailDernières lignes, en temps réel avec -ftail -f /var/log/nginx/access.log
nlAffiche avec numéros de lignenl script.sh

Recherche et transformation

CommandeDescriptionExemple
grepCherche un motif dans du textegrep -n "error" /var/log/syslog
sedÉditeur de fluxsed -i 's/ancien/nouveau/g' file.txt
awkTraitement de colonnesawk '{print $1, $4}' access.log
cutExtrait des colonnes ou champscut -d: -f1 /etc/passwd
sortTrie les lignessort -n nombres.txt
uniqSupprime les doublons adjacentssort liste.txt | uniq -c
wcCompte lignes, mots, octetswc -l fichier.txt
diffCompare deux fichiersdiff 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

CommandeDescriptionExemple
whoamiNom de l'utilisateur courantwhoami
idID, groupes de l'utilisateurid
sudoExécute une commande en rootsudo apt update
su -Passe à l'utilisateur rootsu -
passwdChange le mot de passepasswd
useraddAjoute un utilisateursudo useradd -m -s /bin/bash alice
usermodModifie un utilisateursudo usermod -aG sudo alice
userdelSupprime un utilisateursudo userdel -r alice
groupaddAjoute un groupesudo 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.

CommandeDescriptionExemple
chmodModifie les permissionschmod 755 script.sh
chownChange le propriétairesudo chown alice:users fichier
chgrpChange le groupesudo chgrp devs fichier
umaskDéfinit les permissions par défautumask 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.

ActionCommandeExplication
Mettre à jour la liste des paquetssudo apt updateTélécharge les informations sur les versions disponibles.
Mettre à jour les paquets installéssudo apt upgradeInstalle les mises à jour sans supprimer de paquets.
Mise à jour complètesudo apt full-upgradeAutorise la suppression de paquets obsolètes si nécessaire.
Installer un paquetsudo apt install nginxTélécharge et installe nginx et ses dépendances.
Supprimer un paquetsudo apt remove nginxSupprime nginx mais conserve sa configuration.
Supprimer totalementsudo apt purge nginxSupprime nginx et ses fichiers de configuration.
Rechercher un paquetapt search éditeur markdownCherche dans les dépôts.
Infos sur un paquetapt show nginxAffiche la description, la version, les dépendances.
Liste des fichiers installésdpkg -L nginxMontre tous les fichiers du paquet.
Nettoyer les dépendances inutilessudo apt autoremoveSupprime les paquets orphelins.
Vider le cachesudo apt cleanLibè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.

ActionCommandeExplication
Mettre à jour le systèmesudo dnf updateMet à jour tous les paquets.
Mettre à jour un paquetsudo dnf update nginxMet à jour uniquement nginx.
Installer un paquetsudo dnf install nginxInstalle nginx et ses dépendances.
Supprimer un paquetsudo dnf remove nginxSupprime nginx.
Rechercher un paquetdnf search nginxCherche dans les dépôts.
Infos sur un paquetdnf info nginxDescription, version, dépendances.
Historiquednf historyListe les opérations récentes.
Annuler une opérationsudo dnf history undo 5Annule l'opération numéro 5.
Nettoyer les paquets orphelinssudo dnf autoremoveSupprime les dépendances inutiles.
Vider le cachesudo dnf clean allLibè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.

ActionCommandeExplication
Mettre à jour le systèmesudo pacman -SyuSynchronise les dépôts et met à jour.
Installer un paquetsudo pacman -S nginxInstalle nginx.
Supprimer un paquetsudo pacman -R nginxSupprime nginx.
Supprimer avec dépendancessudo pacman -Rs nginxSupprime nginx et ses dépendances inutilisées.
Supprimer totalementsudo pacman -Rns nginxSupprime aussi les fichiers de configuration.
Rechercher un paquetpacman -Ss nginxCherche dans les dépôts.
Infos sur un paquet installépacman -Qi nginxVersion, description, dépendances.
Liste des fichiers installéspacman -Ql nginxTous les fichiers du paquet.
Nettoyer le cachesudo pacman -ScSupprime les anciennes versions du cache.
Nettoyer tout le cachesudo pacman -SccSupprime tout le cache (attention).
Supprimer les orphelinssudo 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.

CommandeDescriptionExemple
psListe les processusps aux
topMoniteur interactiftop
htopMoniteur amélioré (à installer)htop
pgrepCherche un processus par nompgrep firefox
pkillEnvoie un signal par nompkill -9 firefox
killEnvoie un signal à un PIDkill 1234
killallTue tous les processus d'un nomkillall firefox
niceLance avec une prioriténice -n 10 backup.sh
reniceChange la priorité d'un processussudo renice -n 5 -p 1234

Services avec systemd

La plupart des distributions modernes utilisent systemd pour gérer les services.

ActionCommande
Voir l'état d'un servicesudo systemctl status sshd
Démarrer un servicesudo systemctl start sshd
Arrêter un servicesudo systemctl stop sshd
Redémarrer un servicesudo systemctl restart sshd
Recharger la configurationsudo systemctl reload sshd
Activer au démarragesudo systemctl enable sshd
Désactiver au démarragesudo systemctl disable sshd
Voir les logs en temps réelsudo journalctl -u sshd -f
Voir les logs depuis le bootsudo journalctl -xb

7. Disques, partitions et système de fichiers

CommandeDescriptionExemple
dfEspace disque disponibledf -h
duTaille d'un répertoiredu -sh /var/log
lsblkArborescence des blocslsblk -f
fdiskPartitionnementsudo fdisk -l
partedPartitionnement avancésudo parted /dev/sda print
mkfs.ext4Formate en ext4sudo mkfs.ext4 /dev/sdb1
mountMonte un système de fichierssudo mount /dev/sdb1 /mnt
umountDémontesudo umount /mnt
blkidUUID et type des partitionsblkid
fsckVérifie et répare un système de fichierssudo fsck /dev/sdb1

8. Réseau et connexions distantes

CommandeDescriptionExemple
ipConfiguration réseau moderneip addr, ip route
pingTeste la connectivitéping -c 4 1.1.1.1
curlRequêtes HTTP/HTTPScurl -I https://auxinux.ca
wgetTélécharge un fichierwget https://example.com/file.zip
sshConnexion distante sécuriséessh user@serveur
scpCopie de fichiers via SSHscp fichier user@serveur:/tmp
rsyncSynchronisation incrémentalersync -avz src/ dest/
ssSockets et ports ouvertsss -tlnp
netstatAlternative à ss (legacy)netstat -tlnp
nslookupRequête DNS simplenslookup auxinux.ca
digRequête DNS avancéedig auxinux.ca
tracerouteRoute vers un hôtetraceroute 1.1.1.1
mtrTraceroute 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

SymboleDescriptionExemple
>Redirige la sortie vers un fichier (écrase)echo "ok" > fichier.txt
>>Ajoute à la fin d'un fichierecho "log" >> app.log
|Pipe : sortie d'une commande vers une autrecat log | grep error
2>Redirige les erreurscmd 2> erreurs.log
&>Redirige sortie et erreurscmd &> tout.log
<Redirige l'entrée depuis un fichiersort < liste.txt
&Exécute en arrière-planlong_cmd &
&&Exécute si la première réussitcd /tmp && ls
||Exécute si la première échouecmd1 || cmd2
;Exécute séquentiellementcmd1 ; 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. history liste toutes les commandes. !42 relance 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 ~/.bashrc ou ~/.zshrc :
    alias ll='ls -alF'
    alias update='sudo apt update && sudo apt upgrade -y'
    alias ..='cd ..'
    alias ...='cd ../..'
    Puis rechargez avec source ~/.bashrc.
  • Man pages : man ls ou ls --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 bg pour le relancer en arrière-plan, fg pour le reprendre.

12. Aide-mémoire rapide

Je veux...Commande
Savoir où je suispwd
Lister les fichiersls -la
Changer de dossiercd chemin
Voir l'espace disquedf -h
Voir la taille d'un dossierdu -sh dossier
Voir la mémoirefree -h
Voir les processusps aux ou htop
Chercher un fichierfind / -name "nom"
Chercher dans des fichiersgrep -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 servicesudo systemctl restart nom
Me connecter à un serveurssh user@ip
Copier des fichiers distantsscp fichier user@ip:/chemin
Voir les logsjournalctl -u service -f ou tail -f /var/log/fichier
Modifier les permissionschmod 755 fichier
Changer le propriétairesudo chown user:group fichier
Créer un alias permanentecho "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.