📚 Module 1 : Premier Contact avec Linux
Concepts Essentiels
1.1 Qu'est-ce que Linux ?
Linux est un système d'exploitation open-source basé sur Unix. Il fonctionne avec :
- Un noyau (kernel) : le cœur du système
- Des distributions (distros) : Debian, Ubuntu, RedHat, etc.
- Un shell : l'interface en ligne de commande (CLI)
Debian est une distribution stable, robuste et très utilisée en production.
1.2 L'architecture Linux
┌─────────────────────────────────┐
│ Applications / Utilisateur │
├─────────────────────────────────┤
│ Shell (bash) │
├─────────────────────────────────┤
│ Système de fichiers │
├─────────────────────────────────┤
│ Noyau Linux (Kernel) │
├─────────────────────────────────┤
│ Matériel (VM) │
└─────────────────────────────────┘
1.3 Le Shell Bash
Le shell est l'interpréteur de commandes. Sur Debian, c'est Bash (Bourne Again Shell).
Pourquoi utiliser le terminal ?
- Plus rapide et puissant que l'interface graphique
- Automatisable via scripts
- Essentiel pour l'administration de serveurs distants
- Consomme moins de ressources
🛠️ Commandes à Maîtriser
1. whoami - Qui suis-je ?
Syntaxe : whoami
Rôle : Affiche le nom de l'utilisateur actuel
2. pwd - Print Working Directory
Syntaxe : pwd
Rôle : Affiche le chemin du répertoire actuel (où tu te trouves)
3. ls - List
Syntaxe : ls [options] [répertoire]
Rôle : Liste les fichiers et dossiers
Options essentielles :
| Option | Description |
|---|---|
| -l | Format long (détails) |
| -a | Affiche les fichiers cachés (commencent par .) |
| -h | Tailles lisibles (human-readable) |
| -t | Tri par date |
| -R | Récursif (sous-dossiers) |
4. cd - Change Directory
Syntaxe : cd [chemin]
Rôle : Change de répertoire
Raccourcis importants :
- cd ~ ou cd : va dans ton répertoire personnel
- cd .. : remonte d'un niveau
- cd - : retourne au répertoire précédent
- cd / : va à la racine du système
5. clear - Nettoyer l'écran
Syntaxe : clear ou Ctrl + L
Rôle : Vide l'écran du terminal
6. man - Manual
Syntaxe : man [commande]
Rôle : Affiche le manuel d'une commande
Navigation :
- Espace : page suivante
- b : page précédente
- /mot : recherche un mot
- q : quitter
7. --help - Aide rapide
Syntaxe : [commande] --help
Rôle : Affiche une aide rapide
8. history - Historique des commandes
Syntaxe : history
Rôle : Affiche l'historique des commandes tapées
9. date - Date et heure
Syntaxe : date
Rôle : Affiche la date et l'heure système
10. echo - Afficher du texte
Syntaxe : echo [texte]
Rôle : Affiche du texte à l'écran
🎯 Exercices Pratiques
Exercice 1 : Navigation basique
Objectif : Maîtriser la navigation dans l'arborescence
- Ouvre ton terminal
- Vérifie ton nom d'utilisateur avec whoami
- Affiche ton répertoire actuel avec pwd
- Liste le contenu de ton répertoire personnel : ls -la
- Va dans le répertoire /etc : cd /etc
- Liste son contenu : ls
- Retourne dans ton répertoire personnel : cd ~
Exercice 2 : Exploration du système
Objectif : Explorer les répertoires importants
- Va à la racine du système : cd /
- Liste tous les répertoires : ls -l
- Explore /home : cd /home puis ls
- Explore /var : cd /var puis ls -la
- Retourne à ton répertoire en une commande : cd
Exercice 3 : Utilisation des manuels
Objectif : Apprendre à chercher de l'aide
- Consulte le manuel de la commande date : man date
- Cherche l'option pour afficher l'heure en UTC (cherche "UTC" avec /UTC)
- Quitte le manuel avec q
- Teste l'option trouvée : date --utc
- Utilise --help sur ls : ls --help | less
Exercice 4 : Historique et raccourcis
Objectif : Gagner en efficacité
- Tape plusieurs commandes : pwd, ls, date
- Affiche l'historique : history
- Utilise la flèche ↑ pour naviguer dans l'historique
- Ré-exécute la dernière commande : !!
- Nettoie l'écran : clear ou Ctrl+L
📁 Module 2 : Gestion du Système de Fichiers
L'arborescence Linux
Contrairement à Windows (C:, D:), Linux utilise une arborescence unique qui commence à la racine /
Répertoires importants
| Répertoire | Contenu |
|---|---|
| / | Racine du système |
| /home | Répertoires personnels des utilisateurs |
| /etc | Fichiers de configuration système |
| /var | Données variables (logs, bases de données) |
| /usr | Programmes et bibliothèques utilisateur |
| /tmp | Fichiers temporaires (effacés au redémarrage) |
| /bin | Commandes binaires essentielles |
| /sbin | Commandes système (admin) |
Commandes avancées de navigation
tree - Arborescence visuelle
find - Recherche de fichiers
Syntaxe : find [chemin] [critères]
du - Disk Usage
df - Disk Free
Exercice : Exploration approfondie
- Installe tree : sudo apt install tree
- Affiche l'arborescence de ton home : tree ~ -L 2
- Vérifie l'espace disque : df -h
- Cherche tous les fichiers .conf dans /etc : sudo find /etc -name "*.conf"
- Calcule la taille de /var : sudo du -sh /var
📝 Module 3 : Manipulation de Fichiers
Commandes de création et manipulation
touch - Créer un fichier vide
mkdir - Créer un répertoire
cp - Copier
mv - Déplacer / Renommer
rm - Supprimer
Lecture de fichiers
cat - Afficher le contenu
less - Lecture paginée
head / tail - Début et fin de fichier
wc - Compter (Word Count)
TP : Manipulation complète
- Crée un dossier "formation_linux" : mkdir formation_linux
- Entre dedans : cd formation_linux
- Crée 3 fichiers : touch notes.txt commandes.txt memo.txt
- Écris dans notes.txt : echo "Première note" > notes.txt
- Ajoute une ligne : echo "Deuxième ligne" >> notes.txt
- Affiche le contenu : cat notes.txt
- Copie notes.txt : cp notes.txt backup_notes.txt
- Liste tous les fichiers : ls -lh
- Compte les lignes : wc -l notes.txt
- Crée un sous-dossier : mkdir -p archives/2024
- Déplace backup_notes.txt : mv backup_notes.txt archives/
👥 Module 4 : Utilisateurs et Permissions
Système de permissions Linux
Chaque fichier/dossier a des permissions pour :
- u (user) : le propriétaire
- g (group) : le groupe
- o (others) : les autres utilisateurs
Types de permissions :
- r (read) : lecture = 4
- w (write) : écriture = 2
- x (execute) : exécution = 1
Lecture des permissions
Décodage : -rw-r--r--
- - : type de fichier (- = fichier, d = dossier, l = lien)
- rw- : propriétaire peut lire et écrire
- r-- : groupe peut lire uniquement
- r-- : autres peuvent lire uniquement
Modification des permissions
chmod - Change Mode
Calcul des permissions octales
| Permission | Octal | Usage |
|---|---|---|
| rwx | 7 (4+2+1) | Lecture + Écriture + Exécution |
| rw- | 6 (4+2) | Lecture + Écriture |
| r-x | 5 (4+1) | Lecture + Exécution |
| r-- | 4 | Lecture seule |
| -wx | 3 (2+1) | Écriture + Exécution |
| -w- | 2 | Écriture seule |
| --x | 1 | Exécution seule |
| --- | 0 | Aucune permission |
chown - Change Owner
chgrp - Change Group
Gestion des utilisateurs
id - Informations utilisateur
sudo - Super User Do
• Fichiers normaux : 644 (rw-r--r--)
• Scripts exécutables : 755 (rwxr-xr-x)
• Fichiers secrets : 600 (rw-------)
• Dossiers : 755 (rwxr-xr-x)
TP : Gestion des permissions
- Crée un script : touch mon_script.sh
- Vérifie ses permissions : ls -l mon_script.sh
- Rends-le exécutable : chmod +x mon_script.sh
- Vérifie à nouveau : ls -l mon_script.sh
- Crée un fichier secret : touch secret.txt
- Protège-le : chmod 600 secret.txt
- Vérifie : ls -l secret.txt
- Crée un dossier : mkdir test_permissions
- Change ses permissions : chmod 755 test_permissions
⚙️ Module 5 : Processus et Surveillance
Qu'est-ce qu'un processus ?
Un processus est un programme en cours d'exécution. Chaque processus a :
- Un PID (Process ID) : identifiant unique
- Un PPID (Parent PID) : processus parent
- Un utilisateur propriétaire
- Une priorité (nice value)
- Un état : running, sleeping, stopped, zombie
Visualisation des processus
ps - Process Status
top - Surveillance en temps réel
htop - Version améliorée (à installer)
Gestion des processus
kill - Arrêter un processus
Processus en arrière-plan
Surveillance système
free - Mémoire disponible
uptime - Temps de fonctionnement
uname - Informations système
TP : Gestion des processus
- Installe htop : sudo apt install htop
- Lance htop et explore l'interface : htop
- Identifie les processus les plus gourmands (CPU et RAM)
- Lance Firefox en arrière-plan : firefox &
- Liste les jobs : jobs
- Trouve le PID de Firefox : ps aux | grep firefox
- Vérifie la mémoire disponible : free -h
- Vérifie l'uptime : uptime
- Vérifie la version du kernel : uname -r
📚 Glossaire des Termes Techniques
🔤 A-D
APT (Advanced Package Tool) : Système de gestion de paquets utilisé par Debian pour installer, mettre à jour et supprimer des logiciels.
Bash : Bourne Again Shell, l'interpréteur de commandes par défaut sur la plupart des systèmes Linux.
Démon (Daemon) : Programme qui s'exécute en arrière-plan pour fournir un service spécifique (ex: serveur web, SSH).
Distribution (Distro) : Version complète de Linux avec le noyau + outils + gestionnaire de paquets (ex: Debian, Ubuntu).
🔤 E-L
Groupe : Collection d'utilisateurs partageant des permissions communes.
IP (Internet Protocol) : Adresse numérique unique identifiant une machine sur un réseau.
Kernel (Noyau) : Cœur du système d'exploitation qui gère le matériel et les ressources.
Log : Fichier enregistrant les événements système, erreurs et activités.
🔤 M-P
Paquet : Archive contenant un logiciel + ses dépendances + sa configuration.
Permissions : Droits d'accès (lecture, écriture, exécution) sur un fichier ou dossier.
PID (Process ID) : Numéro unique identifiant un processus en cours d'exécution.
Port : Point d'entrée numérique pour les communications réseau (ex: port 80 = HTTP).
🔤 R-Z
Root : Super-utilisateur ayant tous les droits sur le système.
Service : Programme tournant en arrière-plan (synonyme de démon).
Shell : Interface en ligne de commande pour interagir avec le système.
Sudo : Commande permettant d'exécuter une action avec les privilèges root.
Systemd : Gestionnaire de système et de services qui contrôle le démarrage et l'arrêt des services.
🎓 Quiz Final - Niveau 1
Teste tes connaissances ! Réponds aux 15 questions suivantes.
🎯 Projet Final du Niveau 1
Mini-Projet : Organisation complète
Objectif : Créer une structure de dossiers professionnelle et la manipuler
- Crée l'arborescence suivante dans ton home :
projets/ ├── web/ │ ├── html/ │ └── css/ ├── scripts/ │ ├── backup/ │ └── monitoring/ └── docs/ ├── guides/ └── notes/
- Crée 5 fichiers de test dans différents dossiers
- Applique les permissions :
- Scripts : 755
- Docs : 644
- Dossiers : 755
- Écris un README.md dans projets/ avec quelques lignes
- Crée une copie complète de projets/ nommée projets_backup/
- Vérifie la taille totale du dossier projets/
- Liste tous les fichiers de projets/ de manière récursive
- Crée un fichier dans scripts/ contenant la date et l'heure
✅ Checklist de Validation Niveau 1
- Je sais naviguer dans l'arborescence Linux sans hésitation
- Je maîtrise les commandes de base (ls, cd, pwd, etc.)
- Je peux créer, copier, déplacer et supprimer des fichiers/dossiers
- Je comprends le système de permissions Linux
- Je sais modifier les permissions avec chmod
- Je peux visualiser et gérer les processus
- J'utilise régulièrement man et --help
- Je connais l'arborescence Linux (/etc, /var, /home, etc.)
- Je suis à l'aise avec le terminal
- J'ai réussi le quiz avec plus de 80%
Tu vas apprendre : gestion des paquets, configuration réseau, services systemd, logs et scripting bash !