Une formation Linux complète, structurée en 23 modules autonomes. Chaque module est un fichier README.md détaillé, pédagogique et directement utilisable pour apprendre et pratiquer : théorie, commandes détaillées, travaux pratiques guidés, exercices corrigés, lab final et checklist de validation.
L'objectif est simple : te faire progresser depuis la découverte de Linux jusqu'à un niveau d'administrateur système et d'ingénieur DevOps, en pratiquant sur un vrai serveur Ubuntu.
- À qui s'adresse cette formation
- Ce que tu vas apprendre
- Environnement de pratique
- Comment utiliser ce dépôt
- Structure d'un module
- Liste des modules
- Parcours recommandés
- Arborescence du dépôt
- Conventions utilisées
- Avertissement de sécurité
- Contribuer
| Profil | Ce que tu y trouveras |
|---|---|
| Débutant complet | Un point de départ sans prérequis, avec des analogies concrètes et une progression douce |
| Étudiant en informatique | Une base solide pour les cours de systèmes, réseaux et sécurité |
| Futur administrateur système | Tous les domaines du métier : utilisateurs, disques, réseau, services, sécurité, dépannage |
| Futur DevOps / SRE | Conteneurs, automatisation, Infrastructure as Code, CI/CD, haute disponibilité |
| Candidat aux certifications | Une préparation utile pour LPIC, RHCSA/RHCE, CKA et Linux Foundation |
Aucun prérequis technique n'est demandé pour commencer. Il suffit d'être à l'aise avec un ordinateur et d'avoir envie de pratiquer.
À la fin de la formation, tu seras capable de :
- Utiliser le shell avec aisance et comprendre le fonctionnement interne d'un système Linux
- Gérer fichiers, permissions, ACL, utilisateurs, groupes et processus
- Administrer disques, partitions, LVM, RAID et chiffrement LUKS
- Configurer et diagnostiquer un réseau, un pare-feu, SSH et un VPN
- Installer et gérer des logiciels sur les grandes familles de distributions
- Comprendre et réparer la séquence de démarrage (UEFI, GRUB2, systemd)
- Durcir un serveur et mettre en place audit, chiffrement et sauvegardes
- Écrire des scripts Bash robustes et automatiser avec Python et Ansible
- Déployer et exploiter des services : web, bases de données, messagerie, DNS, annuaires
- Conteneuriser avec Docker et Podman, découvrir Kubernetes et le cloud
- Concevoir des architectures hautement disponibles
- Appliquer une méthodologie de dépannage structurée
Cette formation est pensée pour Ubuntu Server (version LTS recommandée). Quand une commande est spécifique à une autre famille de distributions (Red Hat, Arch, SUSE), le module le précise explicitement.
| Option | Avantages | Recommandé pour |
|---|---|---|
| Machine virtuelle (VirtualBox, VMware, KVM) | Isolation totale, snapshots, aucun risque pour ta machine | Tous les modules, surtout disques, démarrage et réseau |
| Serveur dédié ou VPS Ubuntu | Environnement réel, accès SSH | Services, sécurité, haute disponibilité |
| Multipass ou LXD | Instances Ubuntu légères et jetables | Tests rapides, modules de scripting et de services |
| WSL2 sous Windows | Pratique pour débuter | Modules 1 à 6, 13, 19 (limites sur démarrage, noyau, disques) |
| Machine physique dédiée | Comportement matériel authentique | Modules démarrage, noyau, stockage |
| Ressource | Minimum | Confortable |
|---|---|---|
| CPU | 2 coeurs | 4 coeurs |
| RAM | 2 Go | 4 Go ou plus |
| Disque principal | 20 Go | 40 Go |
| Disques supplémentaires | 2 disques virtuels de 5 Go | 3 disques virtuels de 10 Go |
| Réseau | 1 interface en NAT | 1 NAT et 1 réseau interne ou en pont |
Les disques supplémentaires servent aux modules sur les systèmes de fichiers, LVM, RAID, LUKS et sauvegardes. Prends l'habitude de réaliser un snapshot de ta machine virtuelle avant chaque TP risqué.
# Cloner le dépôt (remplace l'URL par celle de ton dépôt)
git clone https://github.com/dspitech/linux-learning-lab
# Se placer dans le dossier
cd linux-learning-lab
# Lister les modules
lsChaque module se lit directement sur la plateforme d'hébergement (GitHub, GitLab, Gitea) ou dans n'importe quel lecteur Markdown. Les solutions des exercices sont masquées dans des blocs <details> : essaie toujours de résoudre l'exercice avant de les ouvrir.
La règle d'or : ne te contente jamais de lire. Tape chaque commande, observe la sortie, casse des choses dans ton environnement de test, puis répare-les.
- Lis l'introduction théorique et le glossaire
- Tape les exemples de la section Commandes détaillées
- Réalise les travaux pratiques dans l'ordre
- Fais les exercices sans regarder les solutions
- Termine par le lab pratique
- Valide la checklist avant de passer au module suivant
Chaque module respecte exactement la même structure, ce qui te permet de te repérer immédiatement.
| Section | Contenu |
|---|---|
| 1. Titre et badge de niveau | Niveau, durée estimée, prérequis |
| 2. Objectifs pédagogiques | Ce que tu sauras faire à la fin |
| 3. Prérequis | Modules précédents et notions nécessaires |
| 4. Introduction théorique | Explications progressives, analogies, schémas ASCII, cas d'usage |
| 5. Concepts clés | Glossaire sous forme de tableau : terme, définition, exemple |
| 6. Commandes détaillées | Description, syntaxe, options, exemples concrets, erreurs fréquentes |
| 7. Travaux pratiques guidés | 3 à 5 TP progressifs avec résultats attendus |
| 8. Exercices corrigés | 8 à 15 exercices classés de facile à challenge, solutions masquées |
| 9. Lab pratique | Mini-projet combinant tout le module |
| 10. Erreurs courantes et pièges | Tableau : erreur, cause, solution |
| 11. Checklist de validation | Cases à cocher pour mesurer ta progression |
| 12. Ressources complémentaires | Pages de manuel, documentation officielle, livres |
| 13. Pour aller plus loin | Lien vers le module suivant et pistes d'approfondissement |
| N° | Module | Contenu principal | Niveau |
|---|---|---|---|
| 01 | Introduction et fondamentaux | Histoire d'Unix et de GNU/Linux, distributions, licences, architecture, installation, UEFI, MBR et GPT | Débutant |
| 02 | Le shell et la ligne de commande | Shells, navigation, aide, historique, redirections, pipes, expansions, variables, alias, fichiers de configuration | Débutant |
| 03 | Gestion des fichiers et répertoires | Arborescence FHS, copie, liens, recherche, filtres, archives, permissions, ACL, attributs étendus | Débutant |
| 04 | Éditeurs de texte | Nano, Vim et Neovim, Emacs, VS Code via SSH, éditeurs alternatifs | Débutant |
| 05 | Utilisateurs et groupes | Comptes, groupes, mots de passe, sudo, sessions, PAM | Débutant |
| 06 | Processus et gestion des tâches | ps, top, signaux, priorités, tmux, systemd, cron, strace, lsof | Débutant |
| N° | Module | Contenu principal | Niveau |
|---|---|---|---|
| 07 | Systèmes de fichiers et disques | ext4, XFS, Btrfs, ZFS, partitionnement, fstab, LVM, RAID, LUKS, quotas, swap | Intermédiaire |
| 08 | Réseau | Modèle OSI et TCP/IP, ip, Netplan, DNS, pare-feu, SSH, VPN, NFS, Samba, tcpdump | Intermédiaire |
| 09 | Gestion des paquets et logiciels | apt, dnf, pacman, zypper, compilation, dépôts, Snap, Flatpak, AppImage | Intermédiaire |
| 10 | Démarrage du système | UEFI, GRUB2, initramfs, systemd, targets, réparation avec live USB et chroot | Intermédiaire |
| 11 | Noyau (Kernel) | Modules, sysctl, initramfs, firmware, DKMS, compilation du noyau | Intermédiaire |
| 12 | Sécurité | Hardening, SELinux, AppArmor, GPG, TLS, OpenSSL, auditd, Fail2ban, logrotate | Intermédiaire |
| N° | Module | Contenu principal | Niveau |
|---|---|---|---|
| 13 | Scripting Bash | Variables, tableaux, conditions, boucles, fonctions, gestion d'erreurs, ShellCheck | Intermédiaire |
| 14 | Scripting avancé | Python pour l'administration, AWK et sed avancés, PowerShell Core, Ansible, Terraform | Avancé |
| 19 | Ligne de commande avancée | xargs, parallel, find avancé, jq, yq, dd, regex, expect | Avancé |
| N° | Module | Contenu principal | Niveau |
|---|---|---|---|
| 15 | Administration système avancée | Logs, monitoring, performance, OOM killer, Docker, Podman, KVM, Kubernetes, CLI cloud | Avancé |
| 16 | Services et serveurs | Apache, Nginx, bases de données, Postfix, DNS, DHCP, LDAP, Samba, CUPS, Git | Avancé |
| 17 | Développement sous Linux | GCC, Make, CMake, Git, langages, environnements virtuels, CI/CD | Intermédiaire |
| 18 | Bureautique et Desktop Linux | GNOME, KDE, XFCE, X11, Wayland, applications, multimédia, périphériques | Débutant |
| N° | Module | Contenu principal | Niveau |
|---|---|---|---|
| 20 | Stockage et sauvegardes | Stratégie 3-2-1, rsync, Borg, Restic, snapshots, rclone, tests de restauration | Avancé |
| 21 | Cloud et DevOps | IaaS, PaaS, SaaS, AWS, GCP, Azure, Terraform, CI/CD, GitOps, serverless | Avancé |
| 22 | Haute disponibilité et scalabilité | HAProxy, Keepalived, Pacemaker, Corosync, réplication, Ceph, GlusterFS, auto-scaling | Expert |
| 23 | Dépannage (Troubleshooting) | Méthodologie, boot cassé, réseau, disque, mémoire, CPU, mode rescue, récupération de données | Expert |
Le plus simple est de suivre les modules dans l'ordre numérique. Si tu as un objectif précis, voici des parcours ciblés.
Modules 01 à 23, dans l'ordre.
| Étape | Modules |
|---|---|
| Bases | 01, 02, 03, 05, 06 |
| Cœur du métier | 07, 08, 09, 10, 11 |
| Sécurité et exploitation | 12, 13, 20 |
| Services et diagnostic | 16, 15, 23 |
| Étape | Modules |
|---|---|
| Bases | 01, 02, 03, 06 |
| Réseau et paquets | 08, 09 |
| Automatisation | 13, 14, 19 |
| Plateformes | 15, 21, 22 |
| Étape | Modules |
|---|---|
| Bases | 01, 02, 03, 05 |
| Système | 06, 07, 10, 11 |
| Réseau et défense | 08, 12 |
| Réponse aux incidents | 20, 23 |
| Étape | Modules |
|---|---|
| Bases | 01, 02, 03, 04 |
| Outillage | 09, 13, 17 |
| Conteneurs et déploiement | 15, 21 |
| Étape | Modules |
|---|---|
| Bases | 01, 02, 03, 04 |
| Environnement | 09, 18 |
Formation-Linux/
├── README.md
├── 01-Introduction-Fondamentaux/
│ └── README.md
├── 02-Shell-Ligne-de-commande/
│ └── README.md
├── 03-Gestion-fichiers-repertoires/
│ └── README.md
├── 04-Editeurs-de-texte/
│ └── README.md
├── 05-Utilisateurs-Groupes/
│ └── README.md
├── 06-Processus-Taches/
│ └── README.md
├── 07-Systemes-de-fichiers-Disques/
│ └── README.md
├── 08-Reseau/
│ └── README.md
├── 09-Gestion-paquets-logiciels/
│ └── README.md
├── 10-Demarrage-systeme/
│ └── README.md
├── 11-Noyau-Kernel/
│ └── README.md
├── 12-Securite/
│ └── README.md
├── 13-Scripting-Bash/
│ └── README.md
├── 14-Scripting-avance/
│ └── README.md
├── 15-Administration-systeme-avancee/
│ └── README.md
├── 16-Services-Serveurs/
│ └── README.md
├── 17-Developpement-sous-Linux/
│ └── README.md
├── 18-Bureautique-Desktop-Linux/
│ └── README.md
├── 19-Ligne-de-commande-avancee/
│ └── README.md
├── 20-Stockage-Sauvegardes/
│ └── README.md
├── 21-Cloud-DevOps/
│ └── README.md
├── 22-Haute-disponibilite-Scalabilite/
│ └── README.md
└── 23-Depannage-Troubleshooting/
└── README.md
Toutes les commandes sont dans des blocs bash commentés. Les sorties attendues sont indiquées en commentaires pour que tu puisses comparer avec ce que tu obtiens.
# Afficher le répertoire courant
pwd
# Sortie attendue :
# /home/utilisateurQuand une commande ne s'applique qu'à une famille de distributions, elle est signalée clairement :
| Famille | Distributions | Gestionnaire de paquets |
|---|---|---|
| Debian | Debian, Ubuntu, Linux Mint | apt, dpkg |
| Red Hat | RHEL, Fedora, Rocky Linux, AlmaLinux | dnf, rpm |
| Arch | Arch Linux, Manjaro | pacman |
| SUSE | openSUSE, SLES | zypper |
| Niveau | Signification |
|---|---|
| Facile | Application directe d'une commande vue dans le module |
| Moyen | Combinaison de plusieurs commandes ou options |
| Difficile | Raisonnement et enchaînement plus longs |
| Challenge | Scénario réel, proche d'une situation de production |
Les commandes dangereuses (suppression récursive, écriture directe sur disque, modification du pare-feu à distance, etc.) sont toujours signalées par la mention ATTENTION avant l'exemple.
Certains modules manipulent des opérations irréversibles ou à risque : formatage de disques, partitionnement, dd, rm -rf, règles de pare-feu, modification de /etc/fstab, de GRUB ou du noyau.
- Réalise les TP uniquement dans une machine virtuelle ou un environnement jetable
- Fais un snapshot avant les modules 07, 10, 11, 12, 20 et 22
- Ne teste jamais une commande destructrice sur un serveur de production
- Garde toujours un second accès (console de la VM, accès hors bande) quand tu modifies SSH, le réseau ou le pare-feu à distance
- Lis la commande en entier avant d'appuyer sur Entrée, surtout après un
sudo
Les contributions sont les bienvenues : corrections de fautes, améliorations d'explications, nouvelles erreurs courantes, exercices supplémentaires.
- Crée un fork du dépôt
- Crée une branche dédiée :
git checkout -b correction-module-08 - Respecte la structure et les conventions décrites plus haut
- Teste toutes les commandes sur Ubuntu Server avant de proposer un changement
- Ouvre une pull request en décrivant clairement la modification
Si une commande ne fonctionne pas, ouvre une issue en précisant :
- Le module et la section concernés
- La version d'Ubuntu utilisée (
lsb_release -a) - La commande exécutée et le message d'erreur complet
Commence par le module 01 et avance à ton rythme. La régularité compte plus que la vitesse : une heure de pratique par jour vaut mieux qu'une journée entière une fois par mois.