⌨️ Navigation : entre modules

🐧 Formation Linux Debian

Niveau 1 : Débutant - Les Fondamentaux

📚 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

whoami # Résultat : ton_nom_utilisateur

2. pwd - Print Working Directory

Syntaxe : pwd

Rôle : Affiche le chemin du répertoire actuel (où tu te trouves)

pwd # Résultat : /home/ton_utilisateur
Tu dois toujours savoir où tu es dans l'arborescence avant d'exécuter des commandes.

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)
ls # Liste simple ls -la # Liste détaillée avec fichiers cachés ls -lh # Liste avec tailles lisibles ls /etc # Liste d'un autre répertoire ls -lhta # Combinaison d'options

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
cd /etc # Aller dans /etc cd .. # Remonter d'un niveau cd ~ # Retourner chez toi cd Documents/projets # Aller dans un sous-dossier

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
man ls # Affiche toute la documentation de ls
man est ton meilleur ami ! Habitue-toi à consulter les manuels.

7. --help - Aide rapide

Syntaxe : [commande] --help

Rôle : Affiche une aide rapide

ls --help # Aide rapide sur ls

8. history - Historique des commandes

Syntaxe : history

Rôle : Affiche l'historique des commandes tapées

history # Affiche tout l'historique history 10 # Affiche les 10 dernières commandes !42 # Ré-exécute la commande n°42 !! # Ré-exécute la dernière commande

9. date - Date et heure

Syntaxe : date

Rôle : Affiche la date et l'heure système

date # Date complète

10. echo - Afficher du texte

Syntaxe : echo [texte]

Rôle : Affiche du texte à l'écran

echo "Bonjour Linux !" echo $HOME # Affiche la variable d'environnement HOME

🎯 Exercices Pratiques

Exercice 1 : Navigation basique

Objectif : Maîtriser la navigation dans l'arborescence

  1. Ouvre ton terminal
  2. Vérifie ton nom d'utilisateur avec whoami
  3. Affiche ton répertoire actuel avec pwd
  4. Liste le contenu de ton répertoire personnel : ls -la
  5. Va dans le répertoire /etc : cd /etc
  6. Liste son contenu : ls
  7. Retourne dans ton répertoire personnel : cd ~

Exercice 2 : Exploration du système

Objectif : Explorer les répertoires importants

  1. Va à la racine du système : cd /
  2. Liste tous les répertoires : ls -l
  3. Explore /home : cd /home puis ls
  4. Explore /var : cd /var puis ls -la
  5. Retourne à ton répertoire en une commande : cd

Exercice 3 : Utilisation des manuels

Objectif : Apprendre à chercher de l'aide

  1. Consulte le manuel de la commande date : man date
  2. Cherche l'option pour afficher l'heure en UTC (cherche "UTC" avec /UTC)
  3. Quitte le manuel avec q
  4. Teste l'option trouvée : date --utc
  5. Utilise --help sur ls : ls --help | less

Exercice 4 : Historique et raccourcis

Objectif : Gagner en efficacité

  1. Tape plusieurs commandes : pwd, ls, date
  2. Affiche l'historique : history
  3. Utilise la flèche ↑ pour naviguer dans l'historique
  4. Ré-exécute la dernière commande : !!
  5. Nettoie l'écran : clear ou Ctrl+L
Pratique ces commandes au moins 30 minutes par jour. La répétition est la clé de la maîtrise !

📁 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)
Retiens cette règle : /home = tes fichiers personnels, /etc = configuration, /var = logs et données dynamiques.

Commandes avancées de navigation

tree - Arborescence visuelle

# Installation si nécessaire sudo apt install tree # Utilisation tree # Affiche l'arborescence complète tree -L 2 # Limite à 2 niveaux tree -d # Affiche uniquement les dossiers

find - Recherche de fichiers

Syntaxe : find [chemin] [critères]

find /home -name "*.txt" # Cherche tous les .txt find . -type d # Cherche les dossiers find . -size +10M # Fichiers > 10 Mo find /etc -name "*conf" # Fichiers se terminant par conf

du - Disk Usage

du -h # Taille des dossiers (human-readable) du -sh * # Taille de chaque élément du dossier actuel du -sh /home # Taille totale de /home

df - Disk Free

df -h # Espace disque disponible df -hT # Avec le type de système de fichiers

Exercice : Exploration approfondie

  1. Installe tree : sudo apt install tree
  2. Affiche l'arborescence de ton home : tree ~ -L 2
  3. Vérifie l'espace disque : df -h
  4. Cherche tous les fichiers .conf dans /etc : sudo find /etc -name "*.conf"
  5. 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

touch fichier.txt # Crée un fichier vide touch doc1.txt doc2.txt doc3.txt # Crée plusieurs fichiers

mkdir - Créer un répertoire

mkdir mon_dossier # Crée un dossier mkdir -p dossier/sous-dossier # Crée la structure complète mkdir dossier1 dossier2 # Crée plusieurs dossiers

cp - Copier

cp fichier.txt copie.txt # Copie un fichier cp fichier.txt /tmp/ # Copie vers un autre répertoire cp -r dossier/ copie_dossier/ # Copie un dossier (-r = récursif) cp -v fichier.txt /tmp/ # Mode verbeux (affiche les actions)

mv - Déplacer / Renommer

mv ancien.txt nouveau.txt # Renomme mv fichier.txt /tmp/ # Déplace mv dossier1 dossier2 # Renomme un dossier mv *.txt Documents/ # Déplace tous les .txt

rm - Supprimer

rm fichier.txt # Supprime un fichier rm -r dossier/ # Supprime un dossier rm -rf dossier/ # Force la suppression rm -i fichier.txt # Demande confirmation
rm -rf est DANGEREUX ! Il supprime sans demander confirmation. rm -rf / pourrait détruire ton système !

Lecture de fichiers

cat - Afficher le contenu

cat fichier.txt # Affiche tout le fichier cat fichier1.txt fichier2.txt # Affiche plusieurs fichiers cat -n fichier.txt # Avec numéros de lignes

less - Lecture paginée

less fichier.txt # Lecture page par page # Navigation : Espace, b, q, /recherche

head / tail - Début et fin de fichier

head fichier.txt # 10 premières lignes head -n 20 fichier.txt # 20 premières lignes tail fichier.txt # 10 dernières lignes tail -f /var/log/syslog # Suit les ajouts en temps réel

wc - Compter (Word Count)

wc fichier.txt # Lignes, mots, caractères wc -l fichier.txt # Nombre de lignes wc -w fichier.txt # Nombre de mots

TP : Manipulation complète

  1. Crée un dossier "formation_linux" : mkdir formation_linux
  2. Entre dedans : cd formation_linux
  3. Crée 3 fichiers : touch notes.txt commandes.txt memo.txt
  4. Écris dans notes.txt : echo "Première note" > notes.txt
  5. Ajoute une ligne : echo "Deuxième ligne" >> notes.txt
  6. Affiche le contenu : cat notes.txt
  7. Copie notes.txt : cp notes.txt backup_notes.txt
  8. Liste tous les fichiers : ls -lh
  9. Compte les lignes : wc -l notes.txt
  10. Crée un sous-dossier : mkdir -p archives/2024
  11. 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

ls -l fichier.txt # Résultat : -rw-r--r-- 1 user group 1234 Jan 10 10:30 fichier.txt

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

# Méthode symbolique chmod u+x fichier.sh # Ajoute l'exécution au propriétaire chmod g-w fichier.txt # Retire l'écriture au groupe chmod o+r fichier.txt # Ajoute la lecture aux autres chmod a+x script.sh # Ajoute l'exécution à tous (all) # Méthode numérique (octal) chmod 755 script.sh # rwxr-xr-x chmod 644 fichier.txt # rw-r--r-- chmod 600 secret.txt # rw------- chmod 777 fichier.txt # rwxrwxrwx (DANGEREUX !)

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

sudo chown user fichier.txt # Change le propriétaire sudo chown user:group fichier.txt # Change propriétaire et groupe sudo chown -R user:group dossier/ # Récursif sur un dossier

chgrp - Change Group

sudo chgrp group fichier.txt # Change le groupe sudo chgrp -R group dossier/ # Récursif

Gestion des utilisateurs

id - Informations utilisateur

id # Infos sur toi id username # Infos sur un autre utilisateur

sudo - Super User Do

sudo commande # Exécute en tant que root sudo -i # Devient root (déconseillé) sudo -u user cmd # Exécute en tant qu'un autre utilisateur
Permissions recommandées :
• 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

  1. Crée un script : touch mon_script.sh
  2. Vérifie ses 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. Crée un fichier secret : touch secret.txt
  6. Protège-le : chmod 600 secret.txt
  7. Vérifie : ls -l secret.txt
  8. Crée un dossier : mkdir test_permissions
  9. 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

ps # Processus du terminal actuel ps aux # Tous les processus (format BSD) ps -ef # Tous les processus (format standard) ps aux | grep firefox # Chercher un processus spécifique

top - Surveillance en temps réel

top # Vue dynamique des processus # Dans top : # q : quitter # k : tuer un processus # M : trier par mémoire # P : trier par CPU # h : aide

htop - Version améliorée (à installer)

sudo apt install htop htop # Interface colorée et interactive

Gestion des processus

kill - Arrêter un processus

kill PID # Envoie SIGTERM (arrêt propre) kill -9 PID # Envoie SIGKILL (force l'arrêt) kill -15 PID # SIGTERM (équivalent à kill PID) killall firefox # Tue tous les processus firefox pkill -f "nom" # Tue par nom de programme
kill -9 force l'arrêt brutal. Utilise-le en dernier recours car le processus n'a pas le temps de sauvegarder ou de nettoyer.

Processus en arrière-plan

commande & # Lance en arrière-plan jobs # Liste les jobs en arrière-plan fg # Ramène en premier plan bg # Relance en arrière-plan Ctrl+Z # Suspend le processus actuel nohup commande & # Continue après fermeture du terminal

Surveillance système

free - Mémoire disponible

free # Mémoire en Ko free -h # Format lisible free -m # En Mo

uptime - Temps de fonctionnement

uptime # Temps depuis le dernier démarrage + charge

uname - Informations système

uname -a # Toutes les infos système uname -r # Version du noyau uname -m # Architecture (x86_64, etc.)

TP : Gestion des processus

  1. Installe htop : sudo apt install htop
  2. Lance htop et explore l'interface : htop
  3. Identifie les processus les plus gourmands (CPU et RAM)
  4. Lance Firefox en arrière-plan : firefox &
  5. Liste les jobs : jobs
  6. Trouve le PID de Firefox : ps aux | grep firefox
  7. Vérifie la mémoire disponible : free -h
  8. Vérifie l'uptime : uptime
  9. 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.

💡 Astuce : Marque les commandes importantes comme favorites en cliquant sur l'icône ⭐ pour les retrouver facilement !

🎓 Quiz Final - Niveau 1

Teste tes connaissances ! Réponds aux 15 questions suivantes.

1. Quelle commande affiche le répertoire courant ?

✓ Réponse correcte : pwd
Explication : pwd signifie "Print Working Directory". Cette commande affiche le chemin complet du répertoire dans lequel tu te trouves actuellement. C'est essentiel pour toujours savoir où tu es dans l'arborescence Linux.

2. Comment afficher les fichiers cachés avec ls ?

✓ Réponse correcte : ls -a
Explication : L'option -a (all) affiche TOUS les fichiers, y compris les fichiers cachés qui commencent par un point (.). Sous Linux, les fichiers cachés sont simplement des fichiers dont le nom commence par un point.

3. Que fait la commande 'cd ..' ?

✓ Réponse correcte : Remonter d'un niveau
Explication : cd .. permet de remonter d'un niveau dans l'arborescence. Le .. représente le répertoire parent. Par exemple, si tu es dans /home/user/documents, cd .. te ramène dans /home/user.

4. Quelle commande permet de consulter le manuel d'une commande ?

✓ Réponse correcte : man
Explication : man (manual) affiche la documentation complète d'une commande. C'est ton meilleur ami pour apprendre ! Utilise man ls pour voir toutes les options de ls par exemple.

5. Où se trouvent les fichiers de configuration système ?

✓ Réponse correcte : /etc
Explication : Le répertoire /etc contient TOUS les fichiers de configuration du système. C'est là que tu trouveras les configs d'Apache, SSH, réseau, etc. À retenir : /home = utilisateurs, /var = données variables, /etc = configuration.

6. Comment créer un fichier vide nommé test.txt ?

✓ Réponse correcte : touch
Explication : touch crée un fichier vide ou met à jour la date de modification d'un fichier existant. C'est rapide et simple : touch fichier.txt crée un fichier vide.

7. Quelle commande copie un fichier ?

✓ Réponse correcte : cp
Explication : cp (copy) copie des fichiers ou dossiers. Pour copier un dossier, utilise l'option -r (récursif). Exemple : cp -r dossier/ copie/.

8. Que signifie 'rwxr-xr--' ?

✓ Réponse correcte : Propriétaire: tout, Groupe: lecture+exécution, Autres: lecture
Explication : rwxr-xr-- se lit ainsi : rwx (propriétaire a tout), r-x (groupe peut lire et exécuter), r-- (autres peuvent seulement lire). Chaque trio représente user, group, others.

9. Comment rendre un script exécutable ?

✓ Réponse correcte : chmod +x script.sh
Explication : chmod +x ajoute la permission d'exécution à TOUS (user, group, others). C'est le moyen le plus simple de rendre un script exécutable. Tu peux aussi utiliser chmod u+x pour ne donner l'exécution qu'au propriétaire.

10. Quelle commande affiche tous les processus ?

✓ Réponse correcte : ps aux
Explication : ps aux affiche TOUS les processus en cours d'exécution avec leurs détails. a = tous les utilisateurs, u = format utilisateur, x = inclut les processus sans terminal. C'est la commande la plus complète pour voir tous les processus.

11. Comment forcer l'arrêt d'un processus avec le PID 1234 ?

✓ Réponse correcte : kill -9 1234
Explication : kill -9 envoie le signal SIGKILL qui force l'arrêt IMMÉDIAT du processus. À utiliser en dernier recours car le processus n'a pas le temps de sauvegarder ou nettoyer. Essaie d'abord kill seul (SIGTERM) qui demande un arrêt propre.

12. Quelle option de rm est DANGEREUSE ?

✓ Réponse correcte : rm -rf
Explication : rm -rf est TRÈS DANGEREUX ! -r = récursif (supprime dossiers), -f = force (pas de confirmation). rm -rf / pourrait détruire tout le système ! Utilise toujours rm -i pour avoir une confirmation.

13. Comment afficher la mémoire disponible en format lisible ?

✓ Réponse correcte : free -h
Explication : free -h affiche la mémoire disponible en format "human-readable" (Go, Mo au lieu de Ko). C'est pratique pour vite voir si tu manques de RAM. df -h c'est pour l'espace disque, pas la mémoire.

14. Que fait 'sudo' ?

✓ Réponse correcte : Exécute une commande en tant que root
Explication : sudo (Super User DO) permet d'exécuter une commande avec les privilèges root (administrateur). Tu dois faire partie du groupe sudo pour l'utiliser. C'est beaucoup plus sûr que de se connecter en tant que root directement.

15. Quelle permission en octal correspond à 'rw-r--r--' ?

✓ Réponse correcte : 644
Explication : 644 = rw-r--r--. Calcul : 6 (rw- = 4+2), 4 (r-- = 4), 4 (r-- = 4). C'est la permission standard pour les fichiers normaux : le propriétaire peut lire/écrire, les autres peuvent seulement lire.

🎯 Projet Final du Niveau 1

Mini-Projet : Organisation complète

Objectif : Créer une structure de dossiers professionnelle et la manipuler

  1. Crée l'arborescence suivante dans ton home :
    projets/ ├── web/ │ ├── html/ │ └── css/ ├── scripts/ │ ├── backup/ │ └── monitoring/ └── docs/ ├── guides/ └── notes/
  2. Crée 5 fichiers de test dans différents dossiers
  3. Applique les permissions :
    • Scripts : 755
    • Docs : 644
    • Dossiers : 755
  4. Écris un README.md dans projets/ avec quelques lignes
  5. Crée une copie complète de projets/ nommée projets_backup/
  6. Vérifie la taille totale du dossier projets/
  7. Liste tous les fichiers de projets/ de manière récursive
  8. 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%
Prochaine étape : Niveau 2 - Intermédiaire
Tu vas apprendre : gestion des paquets, configuration réseau, services systemd, logs et scripting bash !