Documente Academic
Documente Profesional
Documente Cultură
M. Ben Salah
https://www.facebook.com/DeptInfoFsaAgadir 1
Chap. 1 : INTRODUCTION AUX SYSTEMES D’EXPLOITATION
2
Qu’est ce qu’un système d’exploitation ?
-Système d’exploitation (SE) ou Operating System (OS) :
Exploiter les ressources matérielles
- Exemple d’OS : Windows, Unix, Linux, Android, iOS, TinyOS …
Contexte :
Matériel *) Un ordinateur est constitué de
Périphériques
ressources matérielles : mémoire,
CPU E/S
Processeur (CPU), mémoire …
- Pour faire fonctionner des programmes
mémoire informatique (applications ou logiciels) un
ordinateur a besoin d'effectuer des
Permet de gérer les liens entre le opérations permettant d'assurer les
monde applicatif (les logiciels) et le échanges entre le processeur, la mémoire,
monde matériel
et les ressources physiques
OS (périphériques).
- On a donc Besoin d’une couche
intermédiaire entre les application et les
ressources matérielles pour assurer la
Application liaison entre les ressources matérielles,
Application 1 ….
N l'utilisateur et les applications : c’est le SE
3
Qu’est ce qu’un système d’exploitation ?
Fonctions primordiales
Les tâches du SE :
- Gestion des processus
SE
- Gestion de la mémoire
- Gestion des fichiers
Matériel
- Gestion des E/S
- Interfaces graphiques
Services
….
Applications utilisateurs
application SE matériel
Définition :
Un système d’exploitation (SE) ou operating system (OS) est un
ensemble de programmes et de sous-programmes qui ont pour rôle de
gérer et piloter les resources matérielles de l’appareil informatique et
fournir des services aux applications et utilisateurs.
C'est donc l'intermédiaire entre les programmes d'application et les
ressources matérielles d’un ordinateur dans la mesure où il est chargé
d'assurer la liaison entre les ressources matérielles, l'utilisateur et les
applications
5
Qu’est ce qu’un système d’exploitation ?
7
Système UNIX
8
Historique d’UNIX
● L’histoire d’UNIX commence aux laboratoires Bell (Filiale d’AT&T).
● Développé a partir de 1969 par Ken Thompson et Dennis Ritchie pour leurs besoins
propres en s’inspirant du système MULTICS. Il a été écrit “Unics” en premier lieu
(UNiplexed Information and Computing System) avant de devenir UNIX
Objectif : un système interactif qui met l’accent sur les utilitaires de développement de
logiciels, le partage de fichiers et les outils de documentation
Ordinateur PDP-7
● 1973:
- besoin de rendre UNIX portable sur d’autres Ordinateurs,
- dans ce but, Denis Ritchie réécrit UNIX en langage C qui a été
crée pour l’occasion par Dennis Ritchie.
9
Ceci explique les liens profonds entre le langage C et UNIX.
Historique d’UNIX
10
Historique d’UNIX
11
Historique d’UNIX
12
Historique d’UNIX
La fin des années 80 est marquée par une croissance sans précédent
du nombre de systèmes Unix.
On trouve alors trois grandes familles: les versions basées sur System
V, celles issues de BSD et les versions Xenix sur micro.
13
Historique d’UNIX
Distributions Linux :
Debiann, Ubuntu, Fedora , Puppy Linux, Emmabuntüs, …
… 14
Historique d’UNIX
Distributions GNU/LINUX
GNU : projet lancé par Richard Stallman en 1983. But initial était de développer un système
d'exploitation libre et non commercial 15
Historique d’UNIX
16
Architecture et Structure générale d’UNIX
● Portabilité (écrit en C)
● Multi-utilisteurs : Plusieurs utilisateurs peuvent se connecter et
travailler en même temps. Chaque utilisateur a son environnement
personnel.
● Multi-tâches : Un même utilisateur peut lancer plusieurs travaux
simultanément.
Possibilité aussi de lancer des processus (tâches) en arrière plan et en
mode différé (batch).
● Un système de fichiers hiérarchisé : Organisation arborescente
18
Caractéristiques d'UNIX
● Un mécanisme de protection :
- identification des utilisateurs par mot de passe
- protection des fichiers
- Un super-utilisateur
● Plusieurs centaines d’outils
19
Le shell
● le shell est une couche qui fournit l'interface utilisateur d'un système
d'exploitation. C’est donc l’interface entre le système d’exploitation (le
noyau ) et l'utilisateur. La principale fonction est de permettre à
l’utilisateur d’interagir avec le SE via des commandes.
Une commande est transmise à l’OS soit :
- en utilisant une interface graphique pour l'utilisateur
(GUI=Graphical User Interface).
- via la ligne de commande Utilisateur
Shell
Noyau
Matériel 20
Le shell
● Connexion :
Pour pouvoir travailler sous Unix il faut se connecter et ouvrir
une session, il faut s’identifier à l'aide d'un nom d'utilisateur et
d'un mot de passe. :
Login : <tapez ici votre nom d’utilisateur>
Password : <tapez ici votre mot de passe>
25
Connexion et session
26
Connexion et session
27
Connexion et session
28
Les fichiers UNIX
29
Les fichiers UNIX
30
Les fichiers UNIX
31
Les fichiers UNIX
33
Les fichiers UNIX
34
Les fichiers UNIX
35
Notion d’i-nod
un i-nœud
Le bloc 0 : Occupe le début du système de fichier(1er secteur en général). Il contient le
bloc d'initalisation (bootstap) contient un exécutable utilise au démarrage
Le superbloc contient en particulier nom et taille du système de fichier, date et mode
de montage, la table d'allocation des blocs, la table d'allocation des i-nœuds, la taille
d’un block …
Liste des i-nœud : contient les caractéristiques de chaque fichiers et les adresses des
blocs de données.
Bloc des données : contiennent les données des fichiers. Les blocs libre sont répertoriés
dans le super bloc (table d’allocation des blocs)
37
Répertoire
Un répertoire :
● Un répertoire est un fichier de type ‘d’
● Comme tout fichier un répertoire possède son i-node pour
accéder aux blocs de données du répertoire il faut accéder à son i-
nœud
● Les données au format N° i-nœud du fichier, nom du fichier
● Les données des répertoires :
- « . » : correspond au répertoire courant (lien vers ce dernier)
- « .. » : correspond au répertoire parent (lien vers ce dernier)
- pour chacun des fichiers qu'il contient la correspondance entre son
nom et son numéro i-node == > données au format n° i-noeud du
fichier, nom de fichier
i-nœud n° 190 n° i-noeud nom du fichier
190 d … @données
(190 , .) (140 , ..) (191,prog.c) (206,file1.txt) (210,rep1)
38
Répertoire
exemple 2 : cd /home/jean/tp
39
Le chemin absolu et le chemin relatif
40
Le chemin absolu
41
Le chemin relatif
TP
TP1
Exemple :
supposons que jean est sur son répertoire d’acceuil (home dir), le
chemin vers le répertoire tp1 est se trouvant dans le répertoire tp est :
tp/tp1
./tp/tp1 /
../jean/tp/tp1
~/tp/tp1
home
jean
tp
tp1
44
Les méta-caractères
● Dans le shell il existe un nombre de caractères spéciaux qui ont une
signification spéciale :
< ; << ; > ; >> et | : utilisés pour les redirections des entrées-sorties
' : délimite une chaîne de caractères sans substitution de variables
" : délimite une chaîne de caractères avec substitution de variables
\ : annule la signification du caractère spécial suivant
47
Chap 2 : Les commandes de base du système Unix
Notion de commande
Quelques commandes utils : date, pwd …
Les commandes : man, wich, echo
Création de blocs de commandes
Créer un fichier
Naviguer dans l’arborescence : cd
Les commandes wc et wl
Lien physique et lien symbolique
lister les fichiers : ls
Créer/copier/déplacer/supprimer un fichier
Les droits d’un fichier
Redirection de la sortie standard et des erreurs
Lecture d’un fichier : cat, cut, head, tail
Trier : sort
Recherche complexe de fichier : find
Recherche dans un fichiers : grep, egrep
Notion de commande
• Une commande ou ligne de commande :
- C’est une chaîne de caractères qui peut être invoquée au travers
d'une invite de commande ou d'un script (script shell).
- Correspond généralement à un programme.
• Pour l’exécuter on écris son nom suivi des options ( s’il en a) suivis
des arguments (si on en possède)
Syntaxe :
commande [options] [liste d’arguments]
option
Exemple :
ls –l rep1
aguments
commande
Types commandes
53
Quelques commandes utiles
Exemple :
La commande echo
● la commande echo
Transmet tous ses paramètres sur écran (ou canal de sortie
standard).
Exemple :
$ echo -e "Bonjour, ça va ?\c"
56
La commande echo
Exemples :
$> echo * == > affiche le contenu du répertoire courant
rep1 fic
$> echo ‘*’ == > affiche *
*
$> echo ‘bonjour l’ami’ =nombre impaire de ‘
== > le shell affiche le prompt secondaire (>)
>
$> a=6
$> echo ‘ la valeur de a est : $a ‘
la valeur de a est :$a
57
La commande echo
L'antislash : \
protège le caractère spécial qui le suit
Exemple :
$> echo \* == > affiche *
*
$> echo $
$
$> a=6
$> echo $a == > affiche la valeur de a
6
$> echo \$a == > affiche $a
$a
58
La commande echo
59
La commande echo
Comment afficher :
1- je m'appelle "toto "
2- je m'appelle ‘toto ‘
3- je m'appelle \toto\
60
Création de blocs de commandes
61
Créer un fichier régulier
● touch :
■ permet de créer un fichier s’il n’existe pas, et s’il existe d’appliquer
une date à ce fichier (modifier sa date d’accès et de sa date de
modification)
Exemple :
touch test.log
1er cas : le fichier test.log n’existe pas == > ce dernier sera crée
2em cas : le fichier test.log existe
== > applique la date et l’heure courante au fichier test.log
comme date et heure d’accès et de dernière modification
62
Créer un répertoire
● mkdir :
■ permet de créer un répertoire vide
Syntaxe :
mkdir [options] [nom répertoire]
■ Options :
-p : Crée les répertoires parents si nécessaire
== > crée un répertoire et ces sous répertoires
exemple :mkdir –p rep1/test/image
-m : Donne des droits d'accès spécifiques
-v : pour indiquer les tâches de mkdir est en cours
63
Naviguer dans l’arborescence
● commandes utiles :
cd .. : monter d'un niveau dans la hiérarchie
cd ../.. : monter de 2 niveaux dans la hiérarchie
cd ~ : aller directement dans le répertoire de l'utilisateur
cd – : revenir au répertoire précédent
● Pour connaitre la position actuelle ou du répertoire courant :
pwd
64
Statistiques (wc)
Syntaxe :
wc [option] file
Les options :
-c : (chars) donne le nombre de caractères
-w : (words) donne le nombre de de mots
-l : (lignes) donne le nombre de de lignes
- L : (Length max ligne) affiche la longueur de la ligne la plus longue
65
Les caractères spéciaux
66
Les caractères spéciaux
Exemples :
Si le répertoire courant contient :
file1.bin file1.txt file2.txt file10.txt file.txt fic
Alors :
file* === > file1.bin file1.txt file2.txt file10.txt file.txt
file1* == => file1.bin file1.txt file10.txt
file*.txt === > file1.txt file2.txt fich10.txt file.txt
file[0-9]* === > file0.txt file1.txt … file9.txt
??? == => fic
67
Lien physique
Lien physique :
Permet, en quelque sort, de donner plusieurs noms à un même fichier.
Le fichier source et les liens pointent vers les données du fichiers source
qui sont stocké sur le disque. Les liens physiques d’un même fichier ont
même numéro i-node que le fichier source (pointent sur le même inode).
syntaxe :
ln –P source lien
ou ln source lien
Même n° i-node
Nombre de liens
exemple :
Lien physique
Pour les liens physique, si le fichier source est effacé les autres lien sont
valides.
syntaxe :
ln –s source lien
N° i-node
*) On remarque que le N° inode de file1
l : pour désigner le fichier est différent du n° inode de file3 (lien
de type lien symbolique symbolique)
Lien Symbolique
Exemple :
ls -l [a-r]?*.txt
== > tous les fichiers commençant par les lettres de a à r,
possédant au moins un second caractère avant la terminaison txt
74
Lister les fichiers
● Les options de ls :
■ -r : inverser l’ordre d’affichage
● Les options de ls :
■ -m : afficher le résultat sous forme de nom séparé par des virgules
● Les options de ls :
■ Tri sur la date (-t) :
Pour afficher les fichiers d'un répertoire en triant sur
la date de mise à jour des fichiers
-t : afficher les fichiers les plus récents en premier == > ls -t
-rt : afficher les fichiers les plus ancienne en premier == > ls -rt
- possibilité de mixer avec l'option l afin d'afficher le listing
détaillé :
ls -rtl ou ls –tl
77
Lister les fichiers
● Les options de ls :
■ -c : Affiche la date de création (si -l) ou tri par date de création (si -t)
■ -C : noms sont affichés sur plusieurs colonnes
78
Copier un fichier ou un répertoire
● Pour Copier un fichier ou un répertoire on utilise la commande cp
Attention:
Gardez à l'esprit que si le fichier cible existe déjà, il sera purement et
simplement écrasé, sans aucun message d'avertissemenuf si on
utilise l’option -i . Soyez donc très prudent en matière de copie de
fichiers
● Pour Copier un fichier : cp source destination
ou cp –i source destination
Exemple : copier un fichier
cp log/stat24.log stat/stat25.log
ou cp log/stat24.log stat/
● Pour copier un répertoire source avec son contenu :
cp -R source destination
79
Copier un fichier ou un répertoire
Exercice :
Si le position courante est le homedir de l'utilisateur toto,
comment faire pour copier le fichier /homme/toto/linux/tp dans
le répertoire courant
80
Renommer et/ou déplacer
● Pour renommer et/ou
déplacer un fichier ou un réperoire on utilise la
commande mv (move) :
Syntaxe :
mv [options] source destination
option :
-i : pour confirmer le remplacement du fichier
exemple :
mv ~/rep1/stat24.log . == > déplacer stat24.log vers le répertoire
courant
mv file.txt rep1 == > déplace file.txt (qui se trouve dans le
repertoire courant) vers le répertoire
rep1
81
Renommer et/ou déplacer
Exemple (suite) :
82
Supprimer un fichier
exemple :
rm *
rm a*
rm *test
rm ?test[0-4]*.txt
rm *test[!0-4]*.txt 83
Supprimer un répertoire
84
Les droits d'accès à un fichier c
85
Les droits d'accès à un fichier
86
Les droits d'accès à un fichier
Signification des droits d'accès pour les répertoires :
87
Changer les droits d'accès d'un fichier
● La commande chmod :
- la commande chmod permet de changer les droits d'accès d'un
fichier donné.
- Seul le propriétaire d ’un fichier peut modifier ses droits d ’ accès
●Il existe deux notations (méthodes) pour modifier les permission :
1- notation symbolique
2- notation octale
88
Changer les droits d'accès d'un fichier
● La notation symbolique :
syntaxe :
chmod [ugoa][+ - =] [rwx] nom_fichier
89
Changer les droits d'accès d'un fichier
Exemple :
chmod go+w file == > autorisation d’écriture au groupe et aux autres
chmod a=rw file == > autorisation de lecture et d’écriture à tout le
monde
chmod go-rw file == > retirer les autorisations de lecture d’écriture au
groupe et aux autres
chmod u+x,g-w+x,o=r file == > ajouter x au propriétaire, enlever w au
groupe et ajouter x au groupe,
affecter uniquement la lecture aux autre
90
Changer les droits d'accès d'un fichier
● La notation octale :
Les permissions du propriétaire ou du groupe ou bien des autres sont
stockées sous forme de nombre octale.
représentation par 3 bits:
r w x
Numéro du bit : 1 2 3
91
Changer les droits d'accès d'un fichier
Ainsi, on a:
92
Changer les droits d'accès d'un fichier
0 ≤ a,b,c ≤ 7
a désigne les droits du propriétaire
b désigne les droits du groupe
c désigne les droits des utilisateurs
93
Changer les droits par défaut : umask
Par défaut un fichier est créé avec les droits maximumm:
- 666 pour un fichier normale (-rw-rw-rw-)
- 777 pour un répertoire (-rwxrwxrwx)
La commande chown :
'chown': permet de changer le propriétaire et/ou le groupe
d'un fichier :
Syntaxe :
chown new_user:new_group filename
95
Redirection d’entrées/sorties sous Unix
sortiestandard
(stdout)
0 1
Entrée standard
(stdin)
2 Sortie erreur standard
(stderr)
96
Redirection d’entrées/sorties sous Unix
98
Redirection de l’entrée standard
99
Redirection entre commande
Syntaxe :
cmd1 | cmd2
== > permet de redirigé la sortie de cmd1 pour servir d’entrée à
cmd2
100
Chap 2 : Les commandes de base du système Unix
Notion de commande
Quelques commandes utils : date, pwd …
Les commandes : man, wich, echo
Création de blocs de commandes
Créer un fichier
Naviguer dans l’arborescence : cd
Les commandes wc et wl
Lien physique et lien symbolique
lister les fichiers : ls
Créer/copier/déplacer supprimer/un fichier : mkdir, rm ,
rmdir, cp, mv
Les droits d'accès à un fichier
Redirection de la sortie standard et des erreurs
Lecture d’un fichier : cat, cut, head, tail
Trier : sort
Recherche complexe de fichier : find
Recherche dans un fichiers : grep, egrepcc
Affichage du contenu du fichier
103
Extraire des données dans un fichier
Application : Extraction des caractères
Soient n et m deux entiers ,
104
Extraire des données dans un fichier
Avec S= , ou ; ou \ ou : etc
105
Extraire des données dans un fichier
Exercice :
soit un fichier nommé file1 ayant cette forme :
nom:prénom:age:numtél:adresse
● Options principales:
-user : recherche par propriétaire
ex : find . –user scott
find . ! –user scott == > ce qui n’appartient pas à cott
Exemple :
find . -mtime +5
find . -mtime +5 -name "*.txt"
syntaxe sens
abc cette chaîne
? un caractère quelconque
* des caractères
[xyz] x ou y ou z
[a-f] un caractère entre a et f
[!xyz] un caractères sauf x, y ou z
[0-9] un chiffre entre 0 et 9
111
Recherche des fichiers : find
Exercices :
112
Recherche des fichiers : find
Exemple :
find . –name ’’*unix*’’ -a -type f
Exemple :
find . –size +10M -o -size 10M
114
Recherche des fichiers : find
● combinaison multiple :
exemples :
- les fichiers de taille >=10M dont le nom contient le mot unix
find . \( -size +10M -o -size 10M \) -a –name ’’*unix*’’
115
Recherche des fichiers : find
117
Exemple :
Déplacer les fichiers régulier commençant par file du répertoire courant vers
le répertoire repT
Exercices :
1- Effacer tous les fichier contenant la chaîne file de votre répertoire home
Exemple 3 :
Couper un fichier en morceau : split
120
Recherche des motifs dans un fichiers
● Pour effectuer des recherches dans un fichier on utilise la commande
grep ou egrep (supporte les expressions régulières étendues)
syntaxe :
grep motif file
Exemple
grep ‘test’ rep1/* == > recherche les lignes contenant la chaîne test
(tous les occurrences de test) dans tous les
fichier du répertoire rep1
Options :
-R : recherche récursive -i : rechercher en ignorant la casse
-w : rechercher exactement un mot
grep –w ‘test’ rep1/* == > affiche les lignes qui contiennent
121
Recherche des motifs dans un fichiers
Options (suite):
-n : affiche, en plus, le numéro de ligne dans lequel figure le mot
recherché
-v : affiche les lignes ne contenant pas le mot
-i : permet d’ignorer la casse
-c: affiche seulement le nombre de lignes contenant la chaîne,
-l : affiche les noms des fichiers où figure au moins une fois le motif
cherché
122
Recherche des motifs dans un fichiers
Exemple :
egrep ‘c?t’ file
egrep ‘c[a-z]?t’ file
Expressions régulières
Les commandes ed, vi, ex, sed, awk, expr et grep utilisent
les expressions régulières.
124
Expressions régulières
Exemple de recherche :
x* : une suite quelconque d’occurrences de x (0 ou plus)
x+ : au moins une occurrence de x (1 ou plus)
x {n, m} : Entre n et m occurrences de x (au moins n, au plus m)
x? : une occurrence optionnelle de x (0 ou 1)
x|y : X ou y
Recherche des motifs dans un fichiers
Ou
egrep ‘a[0-9]{5} file
128
Recherche des motifs dans un fichiers
Exercice :
chercher les lignes contenant le mot ‘uni’ suivi de maximum 3x
ou
ou
Recherche des motifs dans un fichiers
● utiliser les paranthèses ( ) pour délimiter un motif
Exemple :
Chercher les lignes contenant exactement les mots suivants : work ou works ou
working
Chercher les lignes contenant exactement le mot unix suivi par au maximum deux
mots unix :
Recherche des motifs dans un fichiers
● Attention :
*) [A-C^], c'est équivalent aux caractères A,B,C , ^.
*) Les caractère spéciaux doivent être protégé par un \ s’ils font partie du
critère de recherche :
131
Recherche des motifs dans un fichiers
Exemple :
egrep \(‘unix’\|’oracle’) file
ou :
egrep ‘unix|oracle’ file1
Recherche des motifs dans un fichiers
Exercices :
chercher les lignes suivantes :
1- contenant la chaîne bt, afficher aussi les numéros de lignes
2- contenant exactement la chaine bt
3- contenant la chaîne ^bcdf
4- contenant a suivi par un ou plusieurs caractère puis par un c
5- Les lignes se terminant par un de ces caractères : . , ; ! ?
6- lignes dont la 2eme lettre est un f
7- Lister le contenu du répertoire rep1 et chercher les fichiers dans le nom est
exactement file ou File
8- contenant des mots commençant par une voyelle
9- l’inverse de (8)
10- commençant par un B, et après il peut y avoir 6 lettre quelconques
133
Recherche des motifs dans un fichiers
134
Recherche des motifs dans un fichiers
136
Trier un fichier
● Pour spécifier les champs à trier on utilise +pos1 et –pos2
- Le triage s’effectuera à partir du champ +pos1 et s’arrêtera sur le
champ -pos2.
Le champ –pos2 n’est pas inclus dans le triage
- Le séparateur de champs par défaut est la tabulation
- Le comptage des champs commence à 0
● Les options :
–t : permet de désigner le séparateur de champs
-b : Ignore les espaces en début de champ
-f : Pas de différences entre majuscules et minuscules
(conversion en minuscules puis tri)
-r : Reverse, tri en ordre décroissant.
–n : tri par ordre numérique 137
Trier un fichier
Exemple :
sort +0 – 1 file1 == > tri % au 1er champs
sort -n -r +2 -3 liste == > tri numérique sur le champs 3
ls-l | sort -n +4 -5 == > lister +tri suivant la taille du fichier
138
Trier un fichier
Exemple :
file1
Robert M Johnson 344-0909
Lyndon B Johnson 933-1423
Samuel H Johnson 754-2542
Michael K Loukides 112-2535
Jerry O Peek 267-2345
Timothy F O'Reilly 443-2434
Exemples :
$> cat file1
Preduit prix quantites
$> cat file1 | tr ‘oi’ ‘ea’
$> cat liste | tr ‘[a-z]’ ‘[A-Z]’ == > passage de toutes les minuscules en majuscules
Syntaxe :
diff [option] source cible
Quelques options :
- b : ignore les différences dû à des espaces blancs
- B : ignore les différences dû à des lignes blanches
- i : ignore les différences minuscules/MAJUSCULES
- q : indiquer seulement si les fichiers sont différents sans afficher les différences
- s : indiquer lorsque deux fichiers sont identiques
- r : comparaison récursive des fichiers d'un répertoire, sous répertoires
142
Extractions des noms et chemins
143
Les alias
alias nom_alias=‘la_commande’
Exemple :
alias lsl=‘ ls -l’
alias lsd=‘ls -d ’
● Afficher la liste des alias :
alias [nom_alias]
144