MODULE 2 – Système de fichiers Linux
Objectifs pédagogiques
À la fin de ce module, tu seras capable de :
Comprendre l'architecture du système de fichiers Linux
Navigator efficacement dans l'arborescence
Manipuler fichiers et répertoires via ligne de commande
Comprendre les permissions et la propriété des fichiers
Distinguer les différents types de fichiers Linux
1. Architecture du système de fichiers
La philosophie "Tout est fichier"
Sous Linux, TOUT est traité comme un fichier :
Les fichiers texte → fichiers
Les répertoires → fichiers spéciaux
Les disques durs → fichiers ( /dev/sda )
Les processus → fichiers ( /proc/1234 )
Les périphériques → fichiers ( /dev/usb )
Structure en arbre inversé
/ (racine, root)
├── bin/ (binaires essentiels)
├── boot/ (fichiers de démarrage)
├── dev/ (périphériques)
├── etc/ (configuration système)
├── home/ (répertoires utilisateurs)
│ ├── alice/
│ └── bob/
├── lib/ (bibliothèques partagées)
├── media/ (points de montage amovibles)
├── mnt/ (montages temporaires)
├── opt/ (logiciels optionnels)
├── proc/ (informations processus)
├── root/ (home de l'admin root)
├── run/ (données runtime)
├── sbin/ (binaires système)
├── srv/ (données services)
├── sys/ (infos système/kernel)
├── tmp/ (fichiers temporaires)
├── usr/ (programmes utilisateur)
│ ├── bin/
│ ├── lib/
│ └── share/
└── var/ (données variables)
├── log/
└── www/
2. Les répertoires principaux expliqués
Répertoire Signification Contenu Exemple
/ Root Racine du système Point de départ
/home Home directories Dossiers utilisateurs /home/alice
/root Root's home Dossier de l'admin /root
/bin Binaries Commandes de base ls , cp , cat
/sbin System binaries Commandes admin fdisk , reboot
/etc Et cetera Fichiers de config /etc/passwd
/var Variable Données changeantes logs, bases de données
/tmp Temporary Fichiers temporaires Vidé au redémarrage
/usr Unix System Resources Programmes /usr/bin/firefox
/opt Optional Logiciels tiers /opt/google/chrome
/dev Devices Périphériques /dev/sda1 (disque)
/proc Processes Infos processus (virtuel) /proc/cpuinfo
/sys System Infos kernel (virtuel) /sys/class/net
/boot Boot Noyau et démarrage /boot/vmlinuz
/lib Libraries Bibliothèques système /lib/[Link]
/media Media Montage auto USB/CD /media/usb
/mnt Mount Montages manuels /mnt/disk2
🔍 Astuces mnémotechniques
etc = ET Cetera (et le reste... les configs)
bin = BINaries (programmes)
var = VARiable (change souvent)
tmp = TeMPoraire (jetable)
3. Navigation dans le système
Chemins absolus vs relatifs
Chemin absolu : commence toujours par /
bash
/home/alice/Documents/[Link]
Chemin relatif : depuis ta position actuelle
bash
Documents/[Link]
./[Link]
../alice/Documents/[Link]
Symboles spéciaux
Symbole Signification
/ Racine du système
~ Ton répertoire home ( /home/username )
. Répertoire actuel
.. Répertoire parent
- Répertoire précédent
Commandes de navigation
bash
# Afficher le répertoire courant
pwd # Print Working Directory
# Se déplacer
cd /etc # Aller vers /etc (absolu)
cd Documents # Aller vers Documents (relatif)
cd ~ # Aller vers ton home
cd # Idem (raccourci)
cd .. # Remonter d'un niveau
cd ../.. # Remonter de 2 niveaux
cd - # Retour au dossier précédent
# Lister le contenu
ls # Liste simple
ls -l # Liste détaillée
ls -a # Affiche fichiers cachés (.)
ls -lh # Tailles lisibles (K, M, G)
ls -lah # Combinaison complète
ls -R # Récursif (sous-dossiers)
ls -lt # Tri par date
ls -lS # Tri par taille
# Visualiser l'arborescence
tree # Arbre visuel
tree -L 2 # Limite à 2 niveaux
tree -d # Seulement les dossiers
4. Manipulation de fichiers et répertoires
Créer
bash
# Créer un fichier vide
touch [Link]
touch [Link] [Link] [Link]
# Créer un répertoire
mkdir dossier
mkdir -p chemin/complet/nouveau # Crée parents si besoin
mkdir dossier1 dossier2 dossier3
# Créer avec contenu
echo "Bonjour Linux" > [Link]
cat > [Link] # Tape contenu, Ctrl+D pour finir
Copier
bash
# Copier un fichier
cp [Link] [Link]
cp [Link] /home/alice/backup/
cp [Link] [Link] # Copie + renomme
# Copier un répertoire
cp -r dossier/ copie_dossier/ # -r = récursif
cp -r Documents/ /tmp/sauvegarde/
# Options utiles
cp -i [Link] [Link] # -i = demande confirmation
cp -v [Link] [Link] # -v = verbose (affiche action)
cp -u [Link] [Link] # -u = uniquement si plus récent
Déplacer / Renommer
bash
# Déplacer
mv [Link] /home/alice/Documents/
mv *.txt Documents/ # Tous les .txt
# Renommer (c'est juste un déplacement)
mv ancien_nom.txt nouveau_nom.txt
mv vieux_dossier nouveau_dossier
# Options
mv -i [Link] [Link] # Demande confirmation
mv -v [Link] [Link] # Mode verbose
Supprimer
bash
# Supprimer un fichier
rm [Link]
rm [Link] [Link]
# Supprimer un répertoire
rm -r dossier/ # -r = récursif
rm -rf dossier/ # -f = force (pas de confirmation)
rmdir dossier/ # Seulement si vide
# ⚠️ DANGER : suppression définitive
rm -rf / # NE JAMAIS FAIRE ! Détruit tout
sudo rm -rf /* # CATASTROPHIQUE !
# Suppression sécurisée
rm -i [Link] # Demande confirmation
rm -rI dossier/ # Confirmation pour 3+ fichiers
Visualiser le contenu
bash
# Afficher tout le fichier
cat [Link] # Tout d'un coup
tac [Link] # Inverse (dernier → premier)
# Lecture page par page
less [Link] # Navigation (q pour quitter)
more [Link] # Plus basique
# Début et fin
head [Link] # 10 premières lignes
head -n 20 [Link] # 20 premières lignes
tail [Link] # 10 dernières lignes
tail -n 15 [Link] # 15 dernières lignes
tail -f /var/log/syslog # Suit en temps réel (logs)
# Compter
wc [Link] # Lignes, mots, caractères
wc -l [Link] # Nombre de lignes
Rechercher
bash
# Chercher des fichiers
find /home -name "*.txt" # Tous les .txt dans /home
find . -name "rapport*" # Commence par rapport
find /var -size +100M # Fichiers > 100 Mo
find . -type f # Seulement fichiers
find . -type d # Seulement répertoires
find . -mtime -7 # Modifiés dans 7 derniers jours
# Recherche rapide (base de données)
locate [Link] # Plus rapide que find
sudo updatedb # Met à jour la base locate
# Chercher dans le contenu
grep "mot" [Link] # Lignes contenant "mot"
grep -r "erreur" /var/log/ # Recherche récursive
grep -i "linux" [Link] # Ignore la casse
grep -n "fonction" [Link] # Affiche numéros de ligne
5. Permissions et propriété
Comprendre les permissions
Quand tu fais ls -l , tu vois :
-rwxr-xr-- 1 alice users 2048 Dec 05 10:30 [Link]
Décomposition :
- rwx r-x r-- 1 alice users 2048 Dec 05 10:30 [Link]
││ │ │ │ │ │ │ │ └─ Nom
││ │ │ │ │ │ │ └─ Date modification
││ │ │ │ │ │ └─ Taille (octets)
││ │ │ │ │ └─ Groupe
│ │ │ │ │ └─ Propriétaire
│ │ │ │ └─ Nombre de liens
│ │ │ └─ Permissions "autres"
│ │ └─ Permissions groupe
│ └─ Permissions propriétaire
└─ Type de fichier
Type de fichier (1er caractère)
Symbole Type
- Fichier normal
d Répertoire (directory)
l Lien symbolique
b Périphérique bloc (disque)
c Périphérique caractère (clavier)
s Socket
p Pipe (tube)
Permissions (9 caractères suivants)
3 groupes de 3 caractères : rwx rwx rwx
1. Propriétaire (user)
2. Groupe (group)
3. Autres (others)
Signification :
r = Read (lecture) = 4
w = Write (écriture) = 2
x = eXecute (exécution) = 1
- = pas de permission = 0
Modification des permissions
bash
# Mode symbolique
chmod u+x [Link] # Ajoute exécution au propriétaire
chmod g-w [Link] # Retire écriture au groupe
chmod o+r [Link] # Ajoute lecture aux autres
chmod a+x programme # Ajoute exécution à tous (all)
chmod u+rw,g+r [Link] # Combinaison
# Mode numérique (octal)
chmod 755 [Link] # rwxr-xr-x
chmod 644 [Link] # rw-r--r--
chmod 600 [Link] # rw-------
chmod 777 [Link] # rwxrwxrwx (⚠️ dangereux)
chmod 000 bloqué.txt # ---------
# Récursif
chmod -R 755 dossier/ # Applique à tout le contenu
Calcul numérique :
7 = 4+2+1 = rwx
6 = 4+2 = rw-
5 = 4+1 = r-x
4=4 = r--
3 = 2+1 = -wx
2=2 = -w-
1=1 = --x
0=0 = ---
Modification du propriétaire
bash
# Changer le propriétaire
sudo chown alice [Link]
sudo chown alice:users [Link] # Propriétaire + groupe
sudo chown -R alice dossier/ # Récursif
# Changer le groupe
sudo chgrp users [Link]
sudo chgrp -R developers projet/
6. Liens (symboliques et durs)
Lien dur (hard link)
Pointe directement vers les données sur le disque
Partage le même inode
Si l'original est supprimé, le lien fonctionne encore
bash
ln [Link] lien_dur.txt
ls -li # Affiche les inodes
Lien symbolique (soft link)
Comme un raccourci Windows
Pointe vers le chemin du fichier
Si l'original est supprimé, le lien est cassé
bash
ln -s /chemin/vers/[Link] lien_symbolique.txt
ln -s /usr/bin/python3 python # Raccourci vers python3
ls -l # Affiche → vers la cible
Différence visuelle :
bash
lrwxrwxrwx 1 alice users 15 Dec 05 10:30 lien -> [Link]
-rw-r--r-- 2 alice users 2048 Dec 05 10:25 [Link]
7. Wildcards (caractères jokers)
bash
# * = n'importe quelle séquence
ls *.txt # Tous les fichiers .txt
ls fichier* # Commence par "fichier"
rm *.tmp # Supprime tous les .tmp
# ? = un seul caractère
ls fichier?.txt # [Link], [Link]
ls rapport-200?.pdf # [Link] à [Link]
# [] = un caractère parmi une liste
ls fichier[123].txt # [Link], [Link], [Link]
ls [abc]*.txt # Commence par a, b ou c
ls fichier[0-9].txt # [Link] à [Link]
# {} = alternatives
cp [Link]{,.bak} # Équivaut à: cp [Link] [Link]
mkdir projet-{dev,test,prod} # Crée 3 dossiers
8. Pratique – Exercices progressifs
✅ Exercice 1 : Navigation basique
bash
# 1. Affiche ton répertoire courant
pwd
# 2. Liste le contenu de /etc
ls /etc
# 3. Va dans /tmp
cd /tmp
# 4. Reviens à ton home
cd ~
# 5. Liste tous les fichiers cachés de ton home
ls -la ~
# 6. Affiche l'arborescence de /etc (limité à 2 niveaux)
tree -L 2 /etc
✅ Exercice 2 : Manipulation de fichiers
bash
# 1. Crée un dossier "linux_practice"
mkdir ~/linux_practice
cd ~/linux_practice
# 2. Crée 3 fichiers texte
touch [Link] [Link] [Link]
# 3. Écris du texte dans [Link]
echo "Bonjour Linux" > [Link]
# 4. Affiche son contenu
cat [Link]
# 5. Copie [Link] vers fichier_copie.txt
cp [Link] fichier_copie.txt
# 6. Renomme [Link] en fichier_renommé.txt
mv [Link] fichier_renommé.txt
# 7. Crée un sous-dossier "backup"
mkdir backup
# 8. Copie tous les .txt dans backup/
cp *.txt backup/
# 9. Liste le contenu de backup/
ls -l backup/
# 10. Supprime [Link]
rm [Link]
✅ Exercice 3 : Permissions
bash
# 1. Crée un script
echo '#!/bin/bash' > mon_script.sh
echo 'echo "Hello World"' >> mon_script.sh
# 2. Vérifie les permissions
ls -l mon_script.sh
# 3. Rends-le exécutable
chmod +x mon_script.sh
# 4. Vérifie à nouveau
ls -l mon_script.sh
# 5. Exécute-le
./mon_script.sh
# 6. Crée un fichier privé
touch [Link]
chmod 600 [Link]
ls -l [Link]
✅ Exercice 4 : Recherche
bash
# 1. Trouve tous les .conf dans /etc
find /etc -name "*.conf" 2>/dev/null | head -10
# 2. Cherche les fichiers modifiés aujourd'hui
find ~ -mtime 0 -type f
# 3. Trouve les fichiers > 10 Mo dans ton home
find ~ -size +10M -type f 2>/dev/null
# 4. Cherche le mot "Linux" dans tous tes .txt
grep -r "Linux" ~/linux_practice/*.txt
✅ Exercice 5 : Liens
bash
cd ~/linux_practice
# 1. Crée un lien symbolique
ln -s [Link] lien_sym.txt
# 2. Crée un lien dur
ln [Link] lien_dur.txt
# 3. Affiche les inodes
ls -li
# 4. Supprime [Link]
rm [Link]
# 5. Vérifie quel lien fonctionne encore
cat lien_sym.txt # Devrait échouer
cat lien_dur.txt # Devrait fonctionner
9. Commandes utiles supplémentaires
bash
# Informations fichier
file [Link] # Type de fichier
stat [Link] # Stats détaillées
du -sh dossier/ # Taille d'un dossier
df -h # Espace disque
# Compression
tar -czf [Link] dossier/ # Compresser
tar -xzf [Link] # Décompresser
zip -r [Link] dossier/ # Zip
unzip [Link] # Dézipper
# Comparaison
diff [Link] [Link] # Différences
cmp [Link] [Link] # Comparaison binaire
# Édition rapide
nano [Link] # Éditeur simple
vim [Link] # Éditeur avancé
10. Résumé des commandes essentielles
Commande Action Exemple
pwd Afficher répertoire actuel pwd
cd Changer de répertoire cd /etc
ls Lister contenu ls -lah
mkdir Créer répertoire mkdir dossier
touch Créer fichier vide touch [Link]
cp Copier cp source dest
mv Déplacer/Renommer mv ancien nouveau
rm Supprimer rm [Link]
cat Afficher contenu cat [Link]
less Lire page par page less [Link]
head Premières lignes head -n 10
tail Dernières lignes tail -f [Link]
find Chercher fichiers find . -name "*.txt"
grep Chercher texte grep "mot" fichier
chmod Changer permissions chmod 755 script
chown Changer propriétaire chown user fichier
ln Créer lien ln -s source lien
11. Checklist de maîtrise
Théorie
Je comprends la structure FHS (Filesystem Hierarchy Standard)
Je connais les répertoires principaux et leurs rôles
Je distingue chemin absolu vs relatif
Je comprends le système de permissions rwx
Je sais calculer les permissions en octal
Pratique
Je navigue sans aide avec cd, pwd, ls
Je crée/copie/déplace/supprime fichiers et dossiers
Je modifie les permissions avec chmod
J'utilise les wildcards (*, ?, [])
Je sais chercher avec find et grep
Je crée et utilise des liens symboliques
12. Questions d'auto-évaluation
1. Quel est le répertoire racine sous Linux ?
2. Où se trouvent les fichiers de configuration système ?
3. Que signifie chmod 644 [Link] ?
4. Quelle différence entre cp -r et cp ?
5. Comment chercher tous les .log dans /var ?
6. Que fait la commande cd .. ?
7. Quelle est la différence entre lien dur et lien symbolique ?
8. Comment rendre un script exécutable ?
<details> <summary><strong>Réponses</strong></summary>
1. / (slash)
2. Dans /etc
3. rw-r--r-- (propriétaire: lecture+écriture, groupe: lecture, autres: lecture)
4. -r copie récursivement les répertoires
5. find /var -name "*.log"
6. Remonte d'un niveau dans l'arborescence
7. Lien dur partage l'inode, lien symbolique est un raccourci
8. chmod +x [Link]
</details>
🎓 Conclusion
Tu maîtrises maintenant :
✅ La structure du système de fichiers Linux
✅ La navigation et manipulation de fichiers
✅ Le système de permissions
✅ Les outils de recherche
✅ Les liens et concepts avancés
Prochaine étape : Module 3 - Gestion des utilisateurs et processus
Besoin d'aide ? N'hésite pas à poser des questions ! 🐧💪