ÉCOLE SUPÉRIEURE DE TECHNOLOGIE
Université Hassan II de Casablanca
SYSTÈME D’EXPLOITATION
LINUX
Cours Complet
1re année Génie Informatique
Enseignant
Pr. Mohamed OUHSSINI
Année Universitaire 2025–2026
Table des matières
Introduction générale 4
Organisation du cours 4
I Introduction à Linux et au système de fichiers 6
1 Introduction aux systèmes UNIX/Linux 6
1.1 Historique concis : d’UNIX à GNU/Linux . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Philosophie UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Architecture générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Distributions Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Comparaison des systèmes d’exploitation . . . . . . . . . . . . . . . . . . . . . . 7
1.6 Domaines d’utilisation de Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Le shell et le terminal 8
2.1 Le shell : rôle et types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Le terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Structure d’une ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 L’invite de commande (prompt) . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 Variables d’environnement essentielles . . . . . . . . . . . . . . . . . . . . . . . 10
3 Structure du système de fichiers Linux 10
3.1 Arborescence hiérarchique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Répertoires principaux (FHS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 Chemins absolus vs relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.4 Commandes de navigation essentielles . . . . . . . . . . . . . . . . . . . . . . . 12
3.5 Options utiles de la commande ls . . . . . . . . . . . . . . . . . . . . . . . . . 12
II Manipulation de fichiers et répertoires 13
4 Types de fichiers et conventions de nommage 13
4.1 Panorama des types de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Conventions de nommage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 Notion d’inode, liens symboliques et physiques 13
5.1 Qu’est-ce qu’un inode ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.2 Liens symboliques (symlinks) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.3 Liens physiques (hard links) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6 Commandes de manipulation de fichiers et répertoires 15
6.1 Création de fichiers et répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.2 Copie de fichiers et répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.3 Déplacement et renommage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.4 Suppression (avec prudence) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1
TABLE DES MATIÈRES Système d’Exploitation Linux
6.5 Visualisation du contenu des fichiers . . . . . . . . . . . . . . . . . . . . . . . . 17
7 Introduction à l’éditeur vi/vim 17
7.1 Pourquoi apprendre vi/vim ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.2 Lancer vi/vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.3 Les modes essentiels de vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.4 Navigation en mode Normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.5 Édition en mode Normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.6 Recherche et remplacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.7 Sauvegarde et sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
8 Recherche et redirection 20
8.1 Caractères joker (wildcards) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.2 Commandes de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.3 Redirections d’entrées/sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.4 Pipes pour chaîner les commandes . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.5 Commande grep pour la recherche de motifs . . . . . . . . . . . . . . . . . . . . 22
8.6 Documentation et aide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
III Permissions et gestion des utilisateurs 24
9 Modèle de sécurité Linux 24
9.1 Principe du système multi-utilisateurs . . . . . . . . . . . . . . . . . . . . . . . 24
9.2 Notion d’utilisateur et de groupe . . . . . . . . . . . . . . . . . . . . . . . . . . 24
9.3 Le super-utilisateur root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
9.4 Fichiers de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
9.5 Identification : UID, GID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
9.6 Commandes d’information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
10 Système de permissions 25
10.1 Les trois types de permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.2 Les trois catégories d’utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.3 Lecture des permissions avec ls -l . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.4 Notation symbolique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.5 Notation octale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.6 Permissions spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.7 Permissions par défaut : umask . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
11 Gestion des permissions et des propriétaires 27
11.1 Modification des permissions : chmod . . . . . . . . . . . . . . . . . . . . . . . 27
11.2 Changement de propriétaire : chown . . . . . . . . . . . . . . . . . . . . . . . . 27
11.3 Changement de groupe : chgrp . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
11.4 Application récursive avec option -R . . . . . . . . . . . . . . . . . . . . . . . . 28
11.5 Commandes d’administration : sudo, su, su - . . . . . . . . . . . . . . . . . . . . 28
11.6 Configuration de sudo : fichier /etc/sudoers . . . . . . . . . . . . . . . . . . . . 28
11.7 Gestion des utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 2 / 29
TABLE DES MATIÈRES Système d’Exploitation Linux
11.8 Gestion des groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 3 / 29
TABLE DES MATIÈRES Système d’Exploitation Linux
Introduction générale
Le système d’exploitation Linux occupe aujourd’hui une place centrale dans le monde de
l’informatique moderne : serveurs, cloud computing, systèmes embarqués et supercalculateurs.
Héritier de la philosophie Unix, Linux repose sur des principes fondamentaux tels que la
modularité, la simplicité des outils et la règle du « tout est fichier ». Sa nature libre et
communautaire en fait un environnement à la fois puissant, stable et adaptable à de multiples
contextes techniques.
Ce cours a pour objectif d’introduire les étudiants de première année en Génie Infor-
matique aux concepts essentiels des systèmes d’exploitation Linux. À travers une approche
progressive et pratique, il permet de comprendre la logique interne du système, d’en maîtriser
la navigation, la gestion des fichiers et des utilisateurs, ainsi que les mécanismes fondamentaux
de contrôle des processus et de sécurité.
Au fil des quatre parties qui composent ce module, les étudiants apprendront à interagir
efficacement avec le système à travers le terminal et le shell, à manipuler et organiser les
fichiers, à gérer les permissions et comptes utilisateurs, et à comprendre le fonctionnement
des processus, des scripts et des outils d’administration de base.
Objectifs pédagogiques
À l’issue de ce cours, l’étudiant sera capable de :
— Comprendre l’architecture et les principes de fonctionnement d’un système Linux
— Utiliser les commandes essentielles du shell pour naviguer et manipuler le système de
fichiers
— Gérer les utilisateurs, groupes et permissions selon le modèle de sécurité Linux
— Identifier, surveiller et contrôler les processus système
— Écrire des scripts Shell simples pour automatiser des tâches
— Exploiter les principaux outils d’administration et de maintenance du système
Organisation du cours
Le cours est organisé en quatre parties de 1h30 chacune, pour un total de 6 heures :
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 4 / 29
TABLE DES MATIÈRES Système d’Exploitation Linux
Partie I : Introduction à Linux et au système de fichiers
— Historique : Unix, GNU, noyau Linux
— Philosophie Unix : « tout est fichier », modularité
— Distributions Linux : Debian, Ubuntu, Red Hat, Fedora, Arch
— Architecture générale : noyau, espace utilisateur, shell
— Comparaison avec d’autres systèmes (Windows, macOS)
— Structure du système de fichiers et commandes de base : pwd, cd, ls
Partie II : Manipulation de fichiers et répertoires
— Types de fichiers : réguliers, répertoires, liens, fichiers spéciaux
— Commandes principales : touch, mkdir, cp, mv, rm
— Recherche et redirection : find, grep, >, », |
— Travail avec les éditeurs de texte : introduction à vi / vim, modes d’édition (com-
mande, insertion, visualisation), sauvegarde et fermeture (:wq, :q!), et principales
commandes de navigation.
Partie III : Permissions et gestion des utilisateurs
— Modèle multi-utilisateurs, rôles et fichiers de configuration
— Permissions : lecture, écriture, exécution (r, w, x)
— Commandes : chmod, chown, chgrp, sudo, useradd
Partie IV : Gestion des processus et programmation Shell
— Notion de processus : PID, PPID, états, foreground/background
— Commandes de gestion : ps, top, kill, nice
— Outils avancés : grep, sed, awk, tar, gzip, df, history
— Introduction à la programmation Shell (bash scripting) :
— Structure d’un script : ligne shebang (#!/bin/bash), permissions d’exécution
— Variables, entrées/sorties et redirections
— Structures conditionnelles et boucles (if, for, while)
— Exemples pratiques d’automatisation de tâches
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 5 / 29
1 INTRODUCTION AUX SYSTÈMES UNIX/LINUX Système d’Exploitation Linux
Partie I
Introduction à Linux et au système de
fichiers
1 Introduction aux systèmes UNIX/Linux
1.1 Historique concis : d’UNIX à GNU/Linux
Remarque
UNIX (1969) a posé les principes fondateurs toujours présents dans Linux (1991) : multi-
utilisateur, multitâche, portabilité (réécriture en C en 1973), simplicité et modularité.
— 1969–1973 : UNIX développé aux Bell Labs par Thompson et Ritchie. Réécriture
en C → portabilité accrue
— Années 1980 : Diffusion académique (BSD), variantes commerciales (System V,
SunOS)
— 1983–1985 : Lancement du projet GNU par Richard Stallman et création de la
FSF. Développement d’outils libres (GCC, Emacs), mais absence de noyau
— 1991 : Linus Torvalds crée Linux, un noyau libre compatible UNIX
— 1992 : Adoption de la licence GPL → essor communautaire et industriel massif
1.2 Philosophie UNIX
Définition
La philosophie UNIX repose sur trois principes fondamentaux qui guident la conception
des systèmes et outils :
1. Faire une chose et la faire bien : Chaque outil est simple, spécialisé et efficace
2. Tout est fichier : Interface uniforme pour les entrées/sorties (périphériques, pro-
cessus, sockets)
3. Composer les outils : Utiliser pipes et redirections pour résoudre des problèmes
complexes
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 6 / 29
1 INTRODUCTION AUX SYSTÈMES UNIX/LINUX Système d’Exploitation Linux
Exemple
ls *.txt | wc -l — Compte le nombre de fichiers .txt
du -h * | sort -hr | head -10 — Affiche les 10 éléments les plus volumineux
1.3 Architecture générale
Applications Utilisateur
Shell (Interface CLI)
Utilitaires & Bibliothèques
Noyau Linux (Kernel)
Matériel (Hardware)
1. Noyau (kernel) : Gestion des processus, mémoire, périphériques et système de
fichiers
2. Espace utilisateur : Applications, bibliothèques et utilitaires système
3. Shell : Interface en ligne de commande (CLI) entre l’utilisateur et le noyau
Remarque
Le noyau s’exécute en espace protégé (kernel space), isolé de l’espace utilisateur pour
garantir stabilité et sécurité du système.
1.4 Distributions Linux
Définition
Une distribution Linux assemble le noyau Linux, les outils GNU, des bibliothèques
système et un gestionnaire de paquets pour former un système d’exploitation complet et
fonctionnel.
1.5 Comparaison des systèmes d’exploitation
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 7 / 29
2 LE SHELL ET LE TERMINAL Système d’Exploitation Linux
Table 1 – Principales distributions Linux
Distribution Caractéristiques Paquets Public cible
Debian Stabilité, base d’Ubuntu apt Serveurs, développeurs
Ubuntu Convivialité, support LTS apt Grand public, débutants
RHEL Support professionnel dnf Entreprises
Fedora Technologies récentes dnf Développeurs, testeurs
Arch Rolling release, personnalisa- pacman Utilisateurs avancés
tion
Table 2 – Linux vs Windows vs macOS
Critère Linux Windows macOS
Licence Libre (GPL) Propriétaire Propriétaire
Personnalisation Très élevée Modérée Limitée
Usage principal Serveurs, développe- Bureautique, jeux Création, écosystème
ment Apple
Coût Gratuit Payant Inclus avec matériel
Sécurité Excellente Bonne Excellente
1.6 Domaines d’utilisation de Linux
— Serveurs & Cloud : Machines virtuelles Linux omniprésentes (AWS, Google Cloud,
Azure)
— Supercalculateurs : Plus de 95% des supercalculateurs mondiaux utilisent Linux
— Systèmes embarqués & IoT : Android, routeurs (OpenWrt), Raspberry Pi
— Développement logiciel : Environnement privilégié pour la programmation
2 Le shell et le terminal
2.1 Le shell : rôle et types
Définition
Le shell est un interpréteur de commandes qui fait le lien entre l’utilisateur et le noyau.
Il interprète les commandes saisies et orchestre leur exécution.
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 8 / 29
2 LE SHELL ET LE TERMINAL Système d’Exploitation Linux
Table 3 – Shells courants sous Linux
Shell Nom complet Caractéristiques
sh Bourne Shell Shell historique, base minimale, scripts classiques
bash Bourne Again Shell Par défaut sur Linux, alias, complétion avancée
zsh Z Shell Complétion intelligente, thèmes, plugins
fish Friendly Interactive Shell Interface moderne, suggestions automatiques
2.2 Le terminal
Exemple
Un terminal (GNOME Terminal, Konsole, xterm, Alacritty) est l’application graphique
qui affiche le shell et reçoit la saisie des commandes utilisateur.
2.3 Structure d’une ligne de commande
commande [options] [arguments]
Table 4 – Composants d’une commande
Élément Rôle Exemple
Commande Programme ou utilitaire à exécuter ls, cp, mkdir
Option(s) Modifient le comportement de la commande -l, -a, –help
Argument(s) Cible(s) ou paramètre(s) de la commande /home/user/
Exemple
ls -l /home — Liste le contenu de /home en format détaillé
cp -r Documents/ Backup/ — Copie récursive du dossier Documents
2.4 L’invite de commande (prompt)
Exemple
carol@machine:~$ — Utilisateur normal
root@machine:~# — Administrateur (superutilisateur)
Remarque
Le symbole $ indique un utilisateur normal, tandis que # indique l’utilisateur root
(administrateur système).
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 9 / 29
3 STRUCTURE DU SYSTÈME DE FICHIERS LINUX Système d’Exploitation Linux
2.5 Variables d’environnement essentielles
Table 5 – Variables d’environnement de base
Variable Description Exemple
PATH Chemins de recherche des commandes /usr/bin :/bin
HOME Répertoire personnel de l’utilisateur /home/mohamed
USER Nom de l’utilisateur connecté mohamed
SHELL Shell actuellement utilisé /bin/bash
PWD Répertoire de travail actuel /home/mohamed/Documents
Exemple
echo $PATH — Affiche les chemins de recherche
echo $HOME — Affiche le répertoire personnel
echo $USER — Affiche le nom d’utilisateur
3 Structure du système de fichiers Linux
3.1 Arborescence hiérarchique
Définition
L’arborescence Linux commence à la racine / (slash). Contrairement à Windows, il
n’existe qu’un seul arbre : tous les périphériques et points de montage y sont intégrés.
Exemple
Linux : Une seule racine /
Windows : Plusieurs racines (C:, D:, E:, etc.)
3.2 Répertoires principaux (FHS)
Remarque
Répertoires système : /bin, /sbin, /etc, /usr, /var, /dev
Répertoires utilisateur : /home, /root
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 10 / 29
3 STRUCTURE DU SYSTÈME DE FICHIERS LINUX Système d’Exploitation Linux
Table 6 – Répertoires système essentiels (Filesystem Hierarchy Standard)
Répertoire Contenu et rôle
/ Racine de l’arborescence complète
/home Répertoires personnels des utilisateurs
/root Répertoire personnel de l’administrateur root
/etc Fichiers de configuration système et services
/var Données variables (logs, caches, files d’attente)
/usr Applications, bibliothèques et documentation utilisateur
/bin Commandes essentielles (ls, cp, mv)
/sbin Outils d’administration système
/tmp Fichiers temporaires (vidés au redémarrage)
/dev Fichiers spéciaux représentant les périphériques
/proc Système de fichiers virtuel (informations processus)
/sys Informations sur le matériel et le noyau
3.3 Chemins absolus vs relatifs
Définition
Chemin absolu : Commence par / et spécifie l’emplacement complet depuis la racine
Chemin relatif : Spécifie l’emplacement par rapport au répertoire courant
Exemple
Absolu : /home/etudiant/Documents/cours.txt
Relatif : ../Documents/cours.txt ou ./fichier.txt
Remarque
. = répertoire courant .. = répertoire parent ~ = répertoire personnel
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 11 / 29
3 STRUCTURE DU SYSTÈME DE FICHIERS LINUX Système d’Exploitation Linux
3.4 Commandes de navigation essentielles
Table 7 – Commandes de navigation dans l’arborescence
Commande Description Exemple
pwd Affiche le chemin du répertoire courant pwd
cd Change de répertoire cd /etc
cd ~ Retourne au répertoire personnel cd ~
cd .. Remonte au répertoire parent cd ..
cd - Retourne au répertoire précédent cd -
ls Liste le contenu d’un répertoire ls /home
3.5 Options utiles de la commande ls
Table 8 – Options fréquentes de ls
Option Description Exemple
-l Format détaillé (permissions, propriétaire, taille) ls -l
-a Affiche les fichiers cachés (commençant par .) ls -a
-h Tailles lisibles par l’humain (Ko, Mo, Go) ls -lh
-R Liste récursive (inclut sous-répertoires) ls -R /home
-t Trie par date de modification ls -lt
-r Inverse l’ordre de tri ls -lr
-S Trie par taille de fichier ls -lS
Exemple
ls -lha /home — Liste détaillée avec fichiers cachés et tailles lisibles
ls -R /etc — Liste récursive de tous les fichiers dans /etc
ls -lt | head — Affiche les 10 fichiers les plus récents
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 12 / 29
5 NOTION D’INODE, LIENS SYMBOLIQUES ET PHYSIQUES Système d’Exploitation Linux
Partie II
Manipulation de fichiers et répertoires
4 Types de fichiers et conventions de nommage
4.1 Panorama des types de fichiers
— Fichiers réguliers : Texte, scripts, binaires (.txt, .py, .bin)
— Répertoires : Conteneurs organisant d’autres fichiers et répertoires
— Liens symboliques (symlinks) : Alias pointant vers un chemin
— Liens physiques (hard links) : Plusieurs noms pour le même inode
— Fichiers spéciaux : Périphériques (/dev/sda, /dev/tty)
— Sockets et pipes : Communication inter-processus (IPC)
— Fichiers cachés : Nom commençant par . (.bashrc, .config/)
4.2 Conventions de nommage
Remarque
Linux est sensible à la casse : data.txt ̸= Data.txt. Les extensions n’imposent pas
le type de fichier (contrairement à Windows) mais servent de convention.
Exemple
Bonnes pratiques :
✓ rapport_final.txt, rapport-final.txt
✓ script_backup.sh, data_2024.csv
À éviter :
× rapport final.txt (espaces)
× données#test.txt (caractères spéciaux)
5 Notion d’inode, liens symboliques et physiques
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 13 / 29
5 NOTION D’INODE, LIENS SYMBOLIQUES ET PHYSIQUES Système d’Exploitation Linux
5.1 Qu’est-ce qu’un inode ?
Définition
Un inode (index node) est une structure de données contenant les métadonnées d’un
fichier : permissions, propriétaire (UID/GID), tailles, horodatages (timestamps) et
pointeurs vers les blocs de données sur le disque.
Exemple
ls -li fichier.txt — Affiche le numéro d’inode du fichier
Remarque
Le nom du fichier n’est pas stocké dans l’inode, mais dans le répertoire parent qui associe
nom → numéro d’inode.
5.2 Liens symboliques (symlinks)
Définition
Un lien symbolique est un fichier spécial contenant le chemin (absolu ou relatif) vers
un autre fichier. Si la cible est supprimée, le lien devient cassé.
Exemple
ln -s /chemin/vers/original.txt lien_symbolique.txt
ls -l lien_symbolique.txt — Affiche une flèche -> vers la cible
5.3 Liens physiques (hard links)
Définition
Un lien physique est une entrée de répertoire supplémentaire pointant vers le même
inode. Tous les liens physiques sont équivalents ; les données ne sont supprimées que
lorsque le dernier lien est effacé.
Exemple
ln original.txt lien_physique.txt
ls -li original.txt lien_physique.txt — Même numéro d’inode
Remarque
Un lien physique reste valide même si l’autre nom est supprimé. Les données persistent
tant qu’au moins un nom référence l’inode.
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 14 / 29
6 COMMANDES DE MANIPULATION DE FICHIERS ET RÉPERTOIRESSystème d’Exploitation Linux
Table 9 – Comparaison liens symboliques vs physiques
Critère Lien symbolique Lien physique
Inode Différent de la cible Identique à la cible
Suppression cible Lien cassé Données conservées
Systèmes de fichiers Peut traverser Même système uniquement
Répertoires Possible Impossible (sauf cas spéciaux)
6 Commandes de manipulation de fichiers et répertoires
6.1 Création de fichiers et répertoires
Table 10 – Commandes de création
Commande Description
touch fichier Crée un fichier vide ou met à jour son timestamp
mkdir dossier Crée un répertoire
mkdir -p a/b/c Crée l’arborescence complète (parents inclus)
Exemple
touch rapport.txt — Crée un fichier vide
mkdir -p Projets/2024/Linux — Crée toute la hiérarchie
6.2 Copie de fichiers et répertoires
Table 11 – Commandes de copie
Commande Description
cp source dest Copie un fichier
cp -r src/ dest/ Copie récursive d’un répertoire
cp -i Mode interactif (demande confirmation avant écrasement)
cp -v Mode verbeux (affiche les opérations)
cp -p Préserve les attributs (permissions, timestamps)
Exemple
cp fichier.txt Backup/ — Copie simple
cp -rv Documents/ /media/usb/ — Copie récursive avec détails
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 15 / 29
6 COMMANDES DE MANIPULATION DE FICHIERS ET RÉPERTOIRESSystème d’Exploitation Linux
6.3 Déplacement et renommage
Table 12 – Commandes de déplacement
Commande Description
mv source dest Déplace ou renomme un fichier/répertoire
mv -i Mode interactif (confirmation avant écrasement)
mv -v Mode verbeux (affiche les opérations)
mv -n N’écrase jamais un fichier existant
Exemple
mv fichier.txt ./Documents/ — Déplace le fichier
mv ancien.txt nouveau.txt — Renomme le fichier
6.4 Suppression (avec prudence)
Table 13 – Commandes de suppression
Commande Description
rm fichier Supprime un fichier
rm -r dossier/ Supprime récursivement un répertoire
rm -i Mode interactif (demande confirmation)
rm -f Force la suppression (ignore les avertissements)
rm -rf chemin/ DANGEREUX : Force + récursif (à éviter)
rmdir dossier Supprime un répertoire vide uniquement
Remarque
ATTENTION : La suppression sous Linux est définitive (pas de corbeille en CLI).
Toujours vérifier avec pwd et ls avant d’utiliser rm . Privilégier rm -i pour la
confirmation.
Exemple
rm -i fichier.txt — Suppression avec confirmation
rm -rf /tmp/old_data/ — Suppression forcée (PRUDENCE !)
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 16 / 29
7 INTRODUCTION À L’ÉDITEUR VI/VIM Système d’Exploitation Linux
Table 14 – Commandes de visualisation
Commande Description
cat fichier Affiche tout le contenu (petits fichiers)
less fichier Navigation interactive (q pour quitter)
more fichier Affichage page par page (ancien, moins pratique)
head -n 20 fichier Affiche les 20 premières lignes
tail -n 50 fichier Affiche les 50 dernières lignes
tail -f log.txt Suivi en temps réel (logs)
6.5 Visualisation du contenu des fichiers
Exemple
cat /etc/passwd — Affiche le fichier des utilisateurs
less /var/log/syslog — Navigation dans les logs système
tail -f /var/log/apache2/access.log — Suivi en direct
7 Introduction à l’éditeur vi/vim
7.1 Pourquoi apprendre vi/vim ?
Remarque
vi/vim est présent sur toutes les distributions Linux (même sans interface graphique).
C’est un éditeur léger, puissant et indispensable pour l’administration système et les
connexions SSH distantes.
7.2 Lancer vi/vim
Exemple
vi fichier.txt — Ouvre avec vi
vim fichier.txt — Ouvre avec vim (version améliorée)
7.3 Les modes essentiels de vi
Définition
Mode Normal : Mode par défaut, navigation et commandes
Mode Insertion : Saisie de texte (comme un éditeur classique)
Mode Commande : Commandes précédées de : (sauvegarder, quitter)
Mode Visuel : Sélection de texte (optionnel)
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 17 / 29
7 INTRODUCTION À L’ÉDITEUR VI/VIM Système d’Exploitation Linux
7.4 Navigation en mode Normal
Table 15 – Commandes de navigation
Touche Action
hjkl Gauche, Bas, Haut, Droite
w/b/e Mot suivant / précédent / fin de mot
0/ˆ/$ Début de ligne / 1re non-blanc / fin de ligne
gg / G Début / fin du fichier
:n Aller à la ligne n
/mot Rechercher "mot" (n = suivant, N = précédent)
7.5 Édition en mode Normal
Table 16 – Commandes d’édition
Commande Action
i/a Insérer avant / après le curseur
o/O Nouvelle ligne sous / au-dessus
x Supprimer le caractère sous le curseur
dd Couper (supprimer) la ligne courante
yy Copier la ligne courante
p/P Coller après / avant le curseur
u Annuler (undo)
Ctrl+r Rétablir (redo)
. Répéter la dernière commande
7.6 Recherche et remplacement
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 18 / 29
7 INTRODUCTION À L’ÉDITEUR VI/VIM Système d’Exploitation Linux
Table 17 – Commandes de recherche/remplacement
Commande Action
/motif Rechercher "motif" vers le bas
?motif Rechercher "motif" vers le haut
n/N Occurrence suivante / précédente
:%s/ancien/nouveau/g Remplacer dans tout le fichier
:%s/ancien/nouveau/gc Remplacer avec confirmation
:s/ancien/nouveau/ Remplacer sur la ligne courante
7.7 Sauvegarde et sortie
Table 18 – Commandes de sauvegarde/sortie
Commande Action
:w Enregistrer (write)
:q Quitter (si aucune modification)
:wq ou :x Enregistrer et quitter
:q ! Quitter SANS enregistrer (force)
:w fichier.txt Enregistrer sous un nouveau nom
ZZ Enregistrer et quitter (raccourci)
Remarque
Pour quitter vi en cas de blocage : appuyez sur Esc plusieurs fois, puis tapez :q! et
Entrée.
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 19 / 29
8 RECHERCHE ET REDIRECTION Système d’Exploitation Linux
8 Recherche et redirection
8.1 Caractères joker (wildcards)
Définition
Les caractères joker permettent de sélectionner plusieurs fichiers ou répertoires en
utilisant des motifs. Ils sont interprétés par le shell avant l’exécution de la commande.
Table 19 – Caractères joker courants
Joker Description Exemple
* Tout caractère, zéro ou plus ls *.txt
? Un seul caractère ls file ?.txt
[abc] Un caractère parmi a, b ou c ls file[123].txt
[a-z] Un caractère dans la plage a-z ls [A-Z]*.pdf
{mot1,mot2} Expansion de liste cp fichier.{txt,backup}
Exemple
ls *.txt — Liste tous les fichiers se terminant par .txt
rm temp-202??.log — Supprime temp-2024.log, temp-2025.log, etc.
mv rapport{-v1,-final}.doc — Renomme rapport-v1.doc en rapport-final.doc
Remarque
Les wildcards sont expansés par le shell : echo *.txt affiche la liste des fichiers
correspondants, pas le motif littéral.
8.2 Commandes de recherche
Table 20 – Commandes de recherche avancées
Commande Description Exemple
find chemin Recherche récursive de fichiers find /home -name "*.txt"
find -type f Recherche par type (f=fichier) find . -type f -size +10M
locate motif Recherche rapide (base de données) locate config.cfg
which commande Chemin d’une commande which ls
whereis commande Chemins et manuels associés whereis bash
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 20 / 29
8 RECHERCHE ET REDIRECTION Système d’Exploitation Linux
Exemple
find /var/log -name "*.log" -size +1M — Fichiers logs >1Mo
locate -i document — Recherche insensible à la casse
which python3 — Affiche /usr/bin/python3
Remarque
locate utilise une base de données mise à jour par updatedb (root). Plus rapide que
find pour les recherches globales.
8.3 Redirections d’entrées/sorties
Définition
Les redirections permettent de modifier les flux standards : stdin (entrée), stdout
(sortie), stderr (erreur).
Table 21 – Opérateurs de redirection
Opérateur Description Exemple
> fichier Redirige sortie vers fichier (écrase) ls > liste.txt
» fichier Ajoute sortie à fichier (append) echo "Log" » journal.log
< fichier Redirige entrée depuis fichier sort < données.txt
2> fichier Redirige erreurs vers fichier commande 2> erreurs.log
> fichier Redirige sortie et erreurs
commande > output.log
Exemple
cat < entrée.txt > sortie.txt — Copie via redirections
find /etc -name "*.conf" 2> erreurs.log — Redirige erreurs
8.4 Pipes pour chaîner les commandes
Définition
Le pipe | envoie la sortie d’une commande comme entrée de la suivante, permettant de
composer des chaînes complexes.
Exemple
ls -l | grep ".txt" — Liste filtrée par grep
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 21 / 29
8 RECHERCHE ET REDIRECTION Système d’Exploitation Linux
cat /var/log/syslog | tail -n 50 | grep "error" — Derniers erreurs
du -h /home | sort -hr | head -5 — Top 5 dossiers par taille
Remarque
Les pipes respectent la philosophie UNIX : combiner des outils simples pour des tâches
complexes.
8.5 Commande grep pour la recherche de motifs
Définition
grep recherche des motifs dans des fichiers ou flux, avec support pour les expressions
régulières.
Table 22 – Options utiles de grep
Option Description Exemple
-i Insensible à la casse grep -i "error" log.txt
-v Inverse (lignes sans motif) grep -v "# ”conf ig.cf g
-r Récursif dans répertoires grep -r "TODO" /home/projet/
-n Affiche numéros de lignes grep -n "bug" code.py
-E Expressions régulières étendues grep -E "[0-9]3" fichier.txt
Exemple
grep "192.168" /var/log/auth.log — Recherche d’IP
ls /etc | grep -E "pass|shadow" — Fichiers sensibles
8.6 Documentation et aide
Table 23 – Outils de documentation
Commande Description Exemple
man commande Manuel détaillé man ls
info commande Documentation interactive info grep
commande –help Aide concise ls –help
Exemple
man chmod — Manuel des permissions
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 22 / 29
8 RECHERCHE ET REDIRECTION Système d’Exploitation Linux
grep –help — Options rapides
Remarque
Dans man : /motif pour chercher, q pour quitter.
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 23 / 29
9 MODÈLE DE SÉCURITÉ LINUX Système d’Exploitation Linux
Partie III
Permissions et gestion des utilisateurs
9 Modèle de sécurité Linux
9.1 Principe du système multi-utilisateurs
Définition
Linux est conçu comme un système multi-utilisateurs, où chaque utilisateur dispose
d’un espace isolé et de droits limités pour assurer la sécurité et la confidentialité.
Remarque
Chaque session, fichier ou processus est associé à un utilisateur spécifique, évitant les
interférences et renforçant la sécurité globale.
9.2 Notion d’utilisateur et de groupe
Définition
Un utilisateur est une entité identifiée par un nom et un UID (User ID). Un groupe
regroupe des utilisateurs pour partager des accès, identifié par un GID (Group ID).
Exemple
Utilisateurs : root (admin), etudiant (normal)
Groupes : admins, users, developpeurs
9.3 Le super-utilisateur root
Définition
L’utilisateur root (UID 0) possède tous les privilèges : accès illimité aux fichiers, gestion
des utilisateurs et du système.
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 24 / 29
10 SYSTÈME DE PERMISSIONS Système d’Exploitation Linux
Remarque
Éviter d’utiliser root au quotidien pour minimiser les risques. Privilégier sudo pour des
commandes ponctuelles.
9.4 Fichiers de configuration
Table 24 – Fichiers de configuration des utilisateurs/groupes
Fichier Contenu
/etc/passwd Infos utilisateurs : nom, UID, GID, home, shell
/etc/group Infos groupes : nom, GID, membres
/etc/shadow Mots de passe chiffrés (sécurisé)
9.5 Identification : UID, GID
Définition
UID : Identifiant numérique unique de l’utilisateur (0 pour root, 1000+ pour utilisateurs
normaux). GID : Identifiant du groupe primaire.
9.6 Commandes d’information
Table 25 – Commandes pour informations utilisateurs
Commande Description Exemple
whoami Nom de l’utilisateur courant whoami
id UID, GID et groupes id etudiant
groups Groupes de l’utilisateur groups
who Utilisateurs connectés who
w Infos détaillées sur sessions w
Exemple
id — Affiche uid=1000(etudiant) gid=1000(etudiant) groups=...
10 Système de permissions
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 25 / 29
10 SYSTÈME DE PERMISSIONS Système d’Exploitation Linux
10.1 Les trois types de permissions
Définition
Les permissions contrôlent l’accès : r (read/lecture), w (write/écriture), x (execute/exé-
cution).
Remarque
Pour les répertoires : r=lister, w=créer/supprimer, x=naviguer.
10.2 Les trois catégories d’utilisateurs
Définition
Permissions appliquées à : u (user/propriétaire), g (group/groupe), o (others/autres).
10.3 Lecture des permissions avec ls -l
Exemple
ls -l fichier.txt — -rw-r–r– 1 user group 1024 oct 10 12 :00 fichier.txt
Interprétation : type (-=fichier), permissions (rw- pour u, r– pour g, r– pour o)
10.4 Notation symbolique
Table 26 – Notation symbolique
Symbole Signification
u Propriétaire (user)
g Groupe (group)
o Autres (others)
a Tous (all)
10.5 Notation octale
Définition
Permissions en octal : r=4, w=2, x=1. Somme par catégorie : 755 = rwxr-xr-x.
10.6 Permissions spéciales
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 26 / 29
11 GESTION DES PERMISSIONS ET DES PROPRIÉTAIRES Système d’Exploitation Linux
Table 27 – Exemples octaux courants
Octal Symbolique et usage
755 rwxr-xr-x (exécutable public)
644 rw-r–r– (fichier lisible)
777 rwxrwxrwx (tout permis, risqué)
Table 28 – Permissions spéciales
Permission Description Exemple
SUID Exécute avec UID du propriétaire passwd (s)
SGID Exécute avec GID du groupe (s sur groupe)
Sticky bit Restriction suppression dans répertoire /tmp (t)
10.7 Permissions par défaut : umask
Définition
umask définit les permissions par défaut en soustrayant à 666 (fichiers) ou 777 (réper-
toires).
Exemple
umask 022 — Fichiers créés en 644, répertoires en 755
11 Gestion des permissions et des propriétaires
11.1 Modification des permissions : chmod
Exemple
chmod u+x script.sh — Ajoute exécution pour propriétaire
chmod 755 dossier/ — Définit rwxr-xr-x
11.2 Changement de propriétaire : chown
Exemple
chown user fichier.txt — Change propriétaire à user
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 27 / 29
11 GESTION DES PERMISSIONS ET DES PROPRIÉTAIRES Système d’Exploitation Linux
11.3 Changement de groupe : chgrp
Exemple
chgrp groupe dossier/ — Change groupe
11.4 Application récursive avec option -R
Exemple
chmod -R 755 /home/projet/ — Récursif sur arborescence
11.5 Commandes d’administration : sudo, su, su -
Table 29 – Commandes d’élévation
Commande Description
sudo commande Exécute comme root
su Switch user (root par défaut)
su - Switch avec environnement clean
11.6 Configuration de sudo : fichier /etc/sudoers
Remarque
Éditer avec visudo pour éviter erreurs syntaxiques.
11.7 Gestion des utilisateurs
Table 30 – Commandes de gestion utilisateurs
Commande Description Exemple
useradd user Crée un utilisateur useradd -m etudiant
userdel user Supprime un utilisateur userdel -r etudiant
usermod Modifie un utilisateur usermod -aG groupe user
passwd user Change mot de passe passwd etudiant
11.8 Gestion des groupes
Remarque
Utiliser usermod -aG pour ajouter à un groupe sans effacer les existants.
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 28 / 29
11 GESTION DES PERMISSIONS ET DES PROPRIÉTAIRES Système d’Exploitation Linux
Table 31 – Commandes de gestion groupes
Commande Description Exemple
groupadd groupe Crée un groupe groupadd developpeurs
groupdel groupe Supprime un groupe groupdel developpeurs
groupmod Modifie un groupe groupmod -n newname oldname
Pr. Mohamed OUHSSINI EST — Université Hassan II Page 29 / 29