100% ont trouvé ce document utile (1 vote)
243 vues30 pages

Cours Linux Complet

Ce document est un cours complet sur le système d'exploitation Linux destiné aux étudiants de première année en génie informatique à l'Université Hassan II de Casablanca. Il couvre divers sujets tels que l'introduction à Linux, la manipulation de fichiers, les permissions et la gestion des utilisateurs, ainsi que l'utilisation de l'éditeur vi/vim. Le cours est structuré en plusieurs sections détaillant les concepts fondamentaux et les commandes essentielles de Linux.

Transféré par

eddebbarhimeryem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
243 vues30 pages

Cours Linux Complet

Ce document est un cours complet sur le système d'exploitation Linux destiné aux étudiants de première année en génie informatique à l'Université Hassan II de Casablanca. Il couvre divers sujets tels que l'introduction à Linux, la manipulation de fichiers, les permissions et la gestion des utilisateurs, ainsi que l'utilisation de l'éditeur vi/vim. Le cours est structuré en plusieurs sections détaillant les concepts fondamentaux et les commandes essentielles de Linux.

Transféré par

eddebbarhimeryem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

É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

Vous aimerez peut-être aussi