Cours Système d’Exploitation
Esprit School of Business 2024 -2025
Dr. Mlouhi yosra
Dr. Jlassi Wadii
1
PLAN
Chapitre 1
• INTRODUCTION AU SYSTÈME D’EXPLOITATION
Chapitre 2
• UNIX: ARCHITECTURE ET COMMANDES DE BASE
Chapitre 3
• SYSTÈME DE GESTION DE FICHIERS (SGF)
Chapitre 4
• PERMISSIONS ET DROIT D’ACCES
Chapitre 5
• REDIRECTION DES ENTREES/SORTIES ET FILTRES
Chapitre 6
• PROGRAMMATION SHELL
2
Chapitre 3
Système de Gestion de Fichiers (SGF)
3
Chapitre 3: Système de Gestion de Fichiers (SGF)
Les inodes
Inode (abréviation de index node) est une structure de données utilisée pour représenter un fichier ou
un répertoire dans un système de fichiers.
Chaque fichier ou répertoire est associé à un inode qui contient des informations importantes à son
sujet.
Un inode stocke les informations suivantes :
o Numéro d'inode : Chaque fichier ou répertoire possède un numéro d'inode unique sur le système de fichiers.
o Type de fichier : Indique si l'inode représente un fichier, un répertoire, un lien symbolique, etc.
o Permissions : Les autorisations de lecture, écriture et exécution pour l'utilisateur, le groupe, et les autres.
o Propriétaires : L'utilisateur (UID) et le groupe (GID) propriétaires du fichier.
o Taille : La taille du fichier en octets.
o Liens matériels : Le nombre de liens matériels (hard links) qui pointent vers ce fichier.
o Timestamps : Informations sur la date de création, la dernière modification, et la dernière consultation du fichier.
o Pointeurs vers les blocs de données : Les adresses des blocs où les données du fichier sont stockées sur le disque.
Chapitre 3: Système de Gestion de Fichiers (SGF)
Répertoire (Directory)
Il est caractérisé par un nom et un emplacement dans l’arborescence.
Il est essentiel pour l'organisation du système de fichiers.
Il permet de structurer et de hiérarchiser les fichiers et les dossiers afin de faciliter la gestion et la
navigation.
Techniquement, un répertoire contient les informations suivantes :
o Les noms des fichiers ou des sous-répertoires qu'il contient.
o Le numéro d'inode associé à chaque fichier ou sous-répertoire Permet au système de fichiers de trouver les
métadonnées (permissions, emplacement sur le disque, etc.) relatives à ces fichiers.
Il existe des répertoires spéciaux :
o / : Le répertoire racine, qui contient tous les autres répertoires et fichiers du système.
o .. : Ce répertoire spécial représente le répertoire parent du répertoire courant.
o . : Ce répertoire spécial représente le répertoire courant lui-même.
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulation des répertoires
Commande cd (Change Directory)
Elle permet de changer de répertoire dans le terminal et de se déplacer dans l’arborescence.
Syntaxe :
cd [chemin_absolu ou relatif du_répertoire]
Exemple : cd /home/utilisateur/Documents
cd tmp/usr
Aller dans le répertoire parent : cd ..
Aller au répertoire personnel (home directory) : cd ~ ou simplement : cd
Changer vers le répertoire précédent : cd –
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulation des repertoires
Commande cd (Change Directory)
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulation des repertoires
Commande ls (list)
C’est une commande fondamentale dans les systèmes Unix/Linux utilisée pour afficher le contenu d'un
répertoire.
Permet aux utilisateurs de voir une liste des fichiers et des sous-répertoires présents dans un répertoire
donné, ainsi que des informations optionnelles sur chaque fichier comme les permissions, la taille et la
date de modification.
Syntaxe :
ls [-option]
Lister les fichiers dans le répertoire courant : ls
Lister les fichiers d'un répertoire spécifique : ls /chemin/vers/le/répertoire
Afficher les fichiers avec des détails : ls –l
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulation des repertoires
Commande ls (list)
Les options de ls peuvent être combiner pour personnaliser la sortie.
Trier les fichiers par date de modification : ls –lt
Afficher la taille des fichiers de manière lisible : ls –lh
Lister le contenu des sous-répertoires récursivement : ls -R
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulation des repertoires
Création de répertoires
La commande mkdir(make directory) permet créer un ou plusieurs répertoires (ou dossiers) dans le système de fichiers.
Syntaxe :
mkdir nom_ nouveau_Répertoire : Le répertoire sera créé dans le répertoire courant.
Exemple :
mkdir rep1
Créer plusieurs répertoires à la fois en une seule commande en fournissant plusieurs noms de répertoires :
mkdir nom_Rep1 nom_Rep2 nom_Rep 3
Création de repA et repB comme sous répertoires de rep1 :
$ mkdir rep1/{repA,repB} ou bien rep1$ repA repB
Créer un répertoire et ses parents manquants avec l’option –p qui force la création de créer des sous-répertoires dans une
hiérarchie qui n'existe pas encore:
mkdir –p chemin d’accès/nom_nouveau_Répertoire
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulation des repertoires
Création de répertoires
Créer un répertoire avec des permissions spécifiques avec l’option –m :
mkdir -m 755 mon_repertoire
Création de repA et repB comme sous répertoires de rep1 :
$ mkdir rep1/{repA,repB} ou bien rep1$ repA repB
Créer un répertoire et ses parents manquants avec l’option –p qui force la création de créer des sous-répertoires dans une
hiérarchie qui n'existe pas encore:
mkdir –p chemin d’accès/nom_nouveau_Répertoire
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulation des repertoires
Suppression de répertoires
La commande rmdir(remove directory) permet de supprimer un répertoire vide (ne contient aucun fichier ni sous-
répertoire).
Syntaxe :
rmdir [-options] nom_ Répertoire
Suppression d'un répertoire vide :
rmdir nom_du_répertoire
Suppression de plusieurs répertoires vides :
rmdir nom_Rep1 nom_Rep2 nom_Rep 3
Suppression de répertoires parentaux imbriqués vides avec l’option –p :
rmdir -p /chemin/vers/mes/répertoires/vides
Mode verbeux avec l'option –v pour afficher un message confirmant la suppression des répertoires :
rmdir -v nom_du_répertoire
Supprimer un répertoire qui contient des fichiers ou des sous-répertoires il faut utiliser la commande rm:
rm –r nom_du_répertoire
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulation des repertoires
Déplacement / Renommage de repertoires
La commande mv (move) permet de renommer un fichier.
Syntaxe :
mv ancien_nom_repertoire nouveau_nom_repertoire mv REP2 REP4
option -i : si fichier2 existe déjà, demande confirmation avant écrasement.
La commande mv permet de déplacer un répertoire dans l’arborescence.
Syntaxe :
mv /chemin/ancien_dossier /chemin/nouveau_dossier
Chapitre 3: Système de Gestion de Fichiers (SGF)
Les fichiers
Un fichier est caractérisé par plusieurs attributs essentiels qui sont gérés par le système :
o Un nom : Il peut contenir des lettres, des chiffres, des points, des tirets, etc.
o Une extension: fichiers texte (.txt), scripts (.sh), binaire, etc.
o Un bloc de données : Texte, des programmes, des images, etc.
o Un i-node: Il contient des informations essentielles sur le fichier, telles que ses permissions, son propriétaire,
sa taille, et la date de sa dernière modification. Il ne contient pas le nom du fichier.
o Chemin : Un fichier peut être référencé par un chemin absolu (à partir de la racine /ou un chemin relatif (par
rapport au répertoire courant).
Chapitre 3: Système de Gestion de Fichiers (SGF)
Les fichiers
Il existe différents types de « fichiers » :
– ordinaires (ou réguliers) : Ils contiennent des données, que ce soit du texte, des programmes, des images, ou tout autre type
d'information.
Représenté par « - »
– Répertoires (ou dossiers) : Se sont des fichiers spéciaux qui contiennent des listes d'autres fichiers ou répertoires.
Représenté par « d »
– Fichiers spéciaux de périphériques :
o character device : représenté par « c» s’ils ne stockent pas des données (souris, clavier, etc.).
o bloc device : représenté par « b » s’ils stockent des données (disque externe, disque dur, etc.).
– Fichiers de liens :
o Lien symbolique (ou "symlink") : C’est un fichier spécial qui pointe vers un autre fichier. Il ne contient pas de données lui-même, mais agit
comme un raccourci vers un autre fichier.
Représenté par « l »
Exemple : lrwxrwxrwx
o Lien matériel (hard link) : Un pointeur supplémentaire vers les données d’un fichier existant. Contrairement à un lien symbolique, il n’est
pas un simple raccourci, mais une deuxième référence au même fichier dans le système de fichiers.
Représenté par un nombre de liens supérieur à 1.
Exemple :-rw-r--r-- 2 ...
Chapitre 3: Système de Gestion de Fichiers (SGF)
Les fichiers
– Fichiers de liens :
o Lien symbolique (ou "symlink") : C’est un fichier spécial qui pointe vers un autre fichier. Il ne contient pas de données lui-
même, mais agit comme un raccourci vers un autre fichier.
Représenté par « l »
Exemple : lrwxrwxrwx
o Lien matériel (hard link) : Un pointeur supplémentaire vers les données d’un fichier existant. Contrairement à un lien
symbolique, il n’est pas un simple raccourci, mais une deuxième référence au même fichier dans le système de fichiers.
Représenté par un nombre de liens supérieur à 1.
Exemple :-rw-r--r-- 2 ...
– Les Unix définissent les droits d'accès sur un objet du filesystem relativement à trois droits fondamentaux. Leur notation
symbolique est :
o r [read]: lecture
o w [write]: écriture
o x [execution]: exécution.
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulation des fichiers
Afficher les fichiers avec des détails : ls –l
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulation des fichiers
Afficher les fichiers cachés : ls –a
Lister avec numéro d'inode : ls –i
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulation des fichiers
Création de fichier
Création d'un fichier vide ou mettre à jour la date de modification d'un fichier existant: touch nom_du_fichier
Créer un fichier et y écrire directement plusieurs lignes de texte : cat nom_du_fichier
N.B: Appuyez sur Ctrl+D pour enregistrer le fichier
Création d'un fichier à partir de nano ou vi (éditeurs de texte) : Les éditeurs de texte permettent de créer des fichiers
et d'éditer leur contenu directement dans un environnement interactif.
nano nom_du_fichier
N.B: Pour enregistrer le fichier appuyer sur Ctrl+O suivi de Entrée, et fermer l'éditeur avec Ctrl+X
vi nom_du_fichier
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulations de fichiers
Copie de fichiers : commande cp
Elle est utilisée pour copier des fichiers et des répertoires d'un emplacement à un autre.
Elle permet de dupliquer des fichiers ou des dossiers dans le même répertoire ou vers un autre répertoire.
Elle dispose de nombreuses options pour ajuster son comportement.
Syntaxe générale :
cp [-options] source destination
o source : Le fichier ou répertoire à copier.
o destination : Emplacement où copier le fichier ou répertoire.
o options : Options pour modifier le comportement de la commande.
Exemple :
cp fichier1 fichier2 : effectue une copie de fichier1 en un nouveau fichier appelé fichier2
option -i : si fichier2 existe, le shell demande confirmation avant l'écrasement
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulations de fichiers
Copie de fichiers : commande cp
si destination est un répertoire
cp fichier1 Rep1 : effectue une copie de fichier1 dans le répertoire Rep1
cp fichier1 fichier2 Rep1 : effectue une copie de fichier1 et fichier2 dans le répertoire
repertoire
option –i : demande confirmation d'écrasement si le (ou l'un des) fichier(s) existe(nt) dans le répertoire de
destination
Copier un répertoire :
La commande cp ne copie pas les répertoires à moins d'utiliser l'option –r (récursif), qui permet de copier le
contenu d'un répertoire ainsi que tous ses sous-répertoires.
Syntaxe :
cp -r dossier_source/ /chemin/du/dossier_destination/
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulations de fichiers
Commande cp
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulations de fichiers
Commande cp
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulations de fichiers
Supression de fichier
La commande rm en Unix/Linux est utilisée pour supprimer des fichiers .
Elle permet de dupliquer des fichiers ou des dossiers dans le même répertoire ou vers un autre répertoire.
Elle dispose de nombreuses options pour ajuster son comportement.
Syntaxe générale :
rm [options] fichier(s)
o option -i : demande confirmation avant la destruction
o L’option –f permet une suppression forcée (sans confirmation)
N.B: La commande rm ne déplace pas les fichiers vers la corbeille mais elle assure une suppression définitive. Une fois
supprimés, les fichiers ne peuvent pas être récupérés à moins d'utiliser des outils spécialisés de récupération de données.
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulations de fichiers
Déplacement / Renommage de fichier
La commande mv (move) permet de renommer un fichier.
Syntaxe :
mv ancien_nom.txt nouveau_nom.txt mv fichier1 fichier2
option -i : si fichier2 existe déjà, demande confirmation avant écrasement.
option –n : Permet de déplacer un fichier sans écraser les fichiers existants.
La commande mv permet de déplacer un fichier dans l’arborescence.
Syntaxe :
mv fichier1 Rep1 déplace fichier1 dans le répertoire Rep1
ou bien
mv fichier1 /chemin/vers/repertoire/
N.B: supporte également l'option -i
Chapitre 3: Système de Gestion de Fichiers (SGF)
Manipulations de fichiers
Lecture de fichier
La commande cat (concatenate) par défaut, permet de concaténer le contenu de deux fichiers.
o Elle permet aussi de créer des nouveaux fichiers
o Elle permet aussi d’afficher le contenu des fichiers
Chapitre 3: Système de Gestion de Fichiers (SGF)
Caractères Spéciaux
Lecture de fichier
Caractères spéciaux Unix :
• * (joker) : Remplace n'importe quelle chaîne de caractères
Exemple :
o ls *.txt : désigne tous les fichiers se terminant par l'extension .txt
o ls results* : désigne tous les fichiers commençant par results
o ls ~/test/* : désigne tous les fichiers du répertoire test
• ? : Remplace n'importe quel caractère
o ls results?.dat : désigne tous les fichiers commençant par results suivis d'un caractère
quelconque et se terminant par .dat
Chapitre 3: Système de Gestion de Fichiers (SGF)
Caractères Spéciaux
[...]: Remplace un seul caractère appartenant à l’ensemble (ou l’intervalle) des valeurs existants cité
dans les crochets
[a,b,c] : Remplace 1 seul caractère appartenant à l’ensemble des caractères entre crochet.
- : spécifier un intervalle.
[a-g] : Remplace 1 seul caractère appartenant à l’intervalle spécifiée entre crochet.
! : Utilisé entre les crochets en première position, signifie tout caractère excepté ceux spécifiés entre
crochets
Exemple : [!a-g] remplace 1 seul caractère n’appartenant pas à l’intervalle spécifié entre crochet
29