DÉFI GRATUIT · EN FRANÇAIS
100 jours de Linux
Un plan jour par jour pour passer de « je n’ai jamais ouvert un terminal » à « je déploie une appli sur un serveur ». 10 phases, 100 étapes concrètes.
20 à 45 min par jour, dans un vrai terminal, avec un tuteur IA. La formation N1 est offerte.
Commencer le jour 1 (gratuit) →⌨️
Prendre le terminal en main
Jours 1–10J1Ouvrir un terminal, comprendre le prompt
J2pwd, ls : où suis-je, que vois-je
J3cd : se déplacer dans l’arborescence
J4Chemins absolus et relatifs (., .., ~)
J5cat, less, head, tail : lire un fichier
J6La complétion Tab et l’historique
J7man et --help : trouver de l’aide seul
J8clear, exit, et les raccourcis clavier
J9Créer/supprimer fichiers et dossiers (touch, mkdir, rm)
J10Copier et déplacer (cp, mv)
🔐
Fichiers, permissions & utilisateurs
Jours 11–20J11find : retrouver un fichier
J12grep : chercher dans le contenu
J13Redirections > >> et pipes |
J14Comprendre rwx et ls -l
J15chmod : changer les permissions
J16chown : changer le propriétaire
J17Utilisateurs et groupes (id, whoami)
J18sudo : exécuter en root sans danger
J19Les fichiers cachés et /etc
J20Archiver et compresser (tar, gzip)
⚙️
Processus, services & logs
Jours 21–30J21ps et top : voir ce qui tourne
J22kill : arrêter un processus
J23Jobs, & et nohup
J24systemd : la logique des services
J25systemctl start/stop/enable
J26Écrire un service systemd simple
J27journalctl : lire les logs système
J28Les logs dans /var/log
J29cron : planifier une tâche
J30Diagnostiquer un service en panne
🌐
Réseau Linux
Jours 31–40J31ip a : voir ses interfaces
J32ip route : la passerelle
J33ss / netstat : ports ouverts
J34DNS : /etc/hosts et resolv.conf
J35dig et host : interroger le DNS
J36ping, traceroute : diagnostiquer
J37curl et wget : tester un service
J38SSH : se connecter à distance
J39Clés SSH (fini les mots de passe)
J40scp et rsync : transférer des fichiers
📦
Paquets, disques & sauvegardes
Jours 41–50J41apt : installer/mettre à jour
J42dpkg et les dépôts
J43df et du : l’espace disque
J44Montages et /etc/fstab (théorie)
J45Les variables d’environnement
J46Le PATH et les alias
J47Sauvegarder avec tar + cron
J48Restaurer une sauvegarde
J49Mettre à jour un serveur en sécurité
J50unattended-upgrades
📜
Bash scripting
Jours 51–60J51Premier script et le shebang
J52Variables et guillemets
J53Arguments $1 $@ et read
J54Conditions if / test [ ]
J55Boucles for et while
J56Fonctions bash
J57Codes de retour et set -euo pipefail
J58Manipuler du texte (cut, awk, sed)
J59Un script de sauvegarde robuste
J60Bonnes pratiques et debug (bash -x)
🕸️
Serveur web & HTTPS
Jours 61–70J61Installer Nginx
J62Un premier site statique
J63Les virtual hosts
J64Reverse proxy (proxy_pass)
J65HTTPS avec Let’s Encrypt (certbot)
J66Redirection HTTP → HTTPS
J67En-têtes de sécurité (HSTS…)
J68Logs d’accès et d’erreur Nginx
J69Apache : l’alternative
J70Diagnostiquer un 502 / 504
🗄️
Bases de données & mail
Jours 71–80J71Installer MariaDB
J72Créer une base et un utilisateur
J73Sauvegarde/restore (mysqldump)
J74PostgreSQL : les bases
J75EXPLAIN et index (survol)
J76SMTP : comment part un mail
J77Installer Postfix
J78IMAP avec Dovecot
J79SPF, DKIM, DMARC
J80Tester la délivrabilité
🐳
Docker & conteneurs
Jours 81–90J81Pourquoi les conteneurs
J82docker run, ps, logs
J83Images et Docker Hub
J84Volumes : la persistance
J85Réseaux Docker
J86Écrire un Dockerfile
J87docker compose
J88Un stack web + base de données
J89Bonnes pratiques d’images
J90Introduction à Kubernetes
🛡️
Sécurité, monitoring & projet
Jours 91–100J91Durcir SSH (sshd_config)
J92fail2ban : bannir les bruteforces
J93Pare-feu ufw
J94Auditer avec lynis
J95Prometheus : collecter des métriques
J96Grafana : les dashboards
J97Alerting et SLI/SLO
J98Automatiser avec Ansible
J99Infrastructure as Code (Terraform)
J100Projet final : déployer une appli de A à Z
Prêt à relever le défi ?
Le jour 1 démarre avec la formation N1 Linux Discovery — gratuite, avec terminal réel et tuteur IA. Les phases suivantes correspondent à nos parcours (Sysadmin, DevOps, Automatisation, Sécurité).