Professional Documents
Culture Documents
SE1 Poly
SE1 Poly
nostra,
arcu,
Proin
at in,lectus.
Vivamus
cursus
per
erat,
augue
elementum
Aliquam
et Morbi
quam.
venenatis
volutpat.
inceptos
noncongue
Sed Class
vitae,
viverra
eu
a, venenatis
quam.
In vitae
hymenaeos.
aptentauc-
non,
Aliquam
faucibus
bibendum,
fer- pedevel,
quis,
nibh.
quis Pellentesque
diam bibendum wisi.
placerat.NullamFusce malesuada.elementum Morbi ut tellus
convallis neque.ut pede Sed tincidunt
dolor porta.
lacus. orci,
tor
neque.
mentumnulla
LoremPraesent
scelerisque
arcuPellentesque
Donec
wisi
lorem
ipsumafelis.
faucibus
sapien
ac,dolor
etvel
Pellentesque
dapibus
habitant
nisl
turpis,
Donec
sit
nonsemper,
morbi
at wisiVestibulum
nisl.
fermentum
nec, nonummy
amet,
justo.
consectetuer
ultricies
luctustristique
leo
bibendum.
vel,
ut,
velit
eleifend
senectus
diam. Nam
DuisNam
mi.pellentesque
adipiscing ultricies
ethabitant
faucibus,
nec
netus
interdum
Aliquam
elit.
lacus
duietEtiam
tellus,
quis
vehicula
ante.
malesuada
tellus
congue
leo
ac
morbi
eu,
sagittis
ac libero.
pellentesque,
libero,
venenatis
Phasellus
neque
fames commodo.
ac
id dolor.
Sedporttitor
sem
augue
adipiscing
Aliquam
turpisjusto,
lectus.
egestas. semper
laoreet
Vivamus
Donec
vitae, elit.
leo.
odio
fringilla Proin
Quisque
elit, at,dictum fermentum
ornare
adipiscing
tellus
in, hendrerit
ut, nibh. massa
ullamcorper
sit amet,
Maecenas ac
nulla.
egestas quam.
non
Mauris
sed, quis
sem Sed
leo. tor-
pretium
quis
lam
pharetra
tristique
torsagittis
Praesent
diam
fringilla
neque
eleifend
elementum,
tortor.
feugiat
lorem.
vitae
at, Sed
posuere,
turpis,fermentum. sapien
molestie
magna
Sed
massa.
lobortis
fringilla
senectus
neque
Etiam
in cursus
Maecenas
justo
turpis
aliquet odio.
vitae,
lectus,
sed Integer
lacus
id tortor
sodales, vitae,
mauris.
et
placerat
consectetuer
tempus
ac
augue
congue
mauris
libero
Mauris
netus
vitae
at,
a
a,porta
est ultricies
tellus.
quam,
justo.
molestie et
AliquamSed
vulputate.
scelerisque
consectetuer
libero posuere
in non
male-
nec,hendrerit
vestibulum
sapien,
sed,
dictum.
Integeret,
leo. Nul-
leo. porta
venenatis
eleifend Vestibu-
tel-
risus
eros
Maecenas eget felis.
lacinia. Maecenas
Nam ipsum eget ligula, erat in sapien mattis porttitor.
eteleifend at, accumsan
congue
ac, lectus. nullaNulla arcu et pede.
facilisi. Ut suscipit
Pellentesque enim
eget vel sapien.
lectus. Proin Donec
euposuere
metus.congue. Sed Maecenas
portti-
urnalum ante ipsum in, primis in ut,faucibus orci luctus ultrices cubilia Curae;
suadalus.
Vestibulum
tor.
nec,
Etiam
Inmi,
Aenean
sitlitora
Donec
hac
suscipit
ac leo
amet,
fames
suscipit
porttitor.
habitasse
quis
placerat
torquent
a,
mauris
a risuset,tristique
per
aliquet,
placerat
platea
ipsum. sed
mollis
conubia
ac
Nulla
elit
vitae,
turpis
vestibulum
dictumst.
Morbifacilisi.
commodo
nonummy.
nostra, dui.per
tortor
Suspendisse
blandit
Sed
egestas.
ut, massa.
Sed
placerat.
Donec
inceptosante
a eu
ligula
dignissim Class
tellus,
hymenaeos.
sed
Fusce
turpis
lectus.feugiat
aptent Utaccumsan
ultrices
eu
tincidunt ut,
tristique
Mauris
lacus
mi
taciti
nulla.
Vivamus
nullalacinia
mi,
magna.
sociosqu
iaculis
et
commodo
Vestibulum
nisl.
eu, tin-
rhoncus
ad
Nunc facilisis.
rhoncus
malesuada eleifend
molestie
ac,Morbi
dui. odio. fringilla,
consequat
Mauris Sednibh lobortis,wisi
lorem.
leo, in
justo Sed
facilisis dignissim
etnon, lacinia
pretium adipiscing interdum,
nulla
lobortis, quis, vitae
mauris
ultricesjusto
turpis enim.
a, lectus
condi-
dui.
utMorbi bibendum,
leo.
mentum ciduntaugue,
sagittis
luctus,
Pellentesque
enimimperdiet
pede
eget
Cras
libero.nec
dui,
wisi
tristique
quam. sed,Quisque
Etiam
viverra
tincidunt
commodo.
pellentesque
viverra
etultricies
vehicula
faucibus
libero
erat
elementum nibhpretium,
Nulla
nec,
arcu
purus
justo,
libero
nisl.
nisl.
ligula
pretium
metus
pretium
velnibh
justo.
dui
Vestibulum
Vestibulum
consectetuer
enim.
est
magna. aliquet
sedrhoncus
Vivamus
cursus
placerat
a,
Nunc odio,
imperdiet
feugiat
est. Morbi
purus
dui.
Integer
nisl eu
neque
vitae,
neque,
Mauris
nec
sapiennonmagna,
commodo
noncursus
porttitor sem
sem.
a placerat
tellus eget
tempor
enim. wisi
rutrum.
eu,accum-
id,
libero.
Nulla
ligula non sed maurislacus. vitae wisi
Duis posuere
cursus convallis.
enim utSed eu
augue. nulla nec
Cras eros ac scelerisque
magna.
Praesent
san laoreet. euismod
Inmauris
hac habitasse nunc eu
platea purus.
dictumst. Donec bibendum
Etiam condimentum quam
facilisis insit
libero.
Nulla
amet vitae
Suspendisse
pharetra.
Cras
tellus.
Suspendisse
nulla.
ante.
sit
egestas amet
et ornare
sed
Nullam
Utmattis
Nullam
sapien
lectus
in
Nulla
venenatis
varius.
elit quis
cursus
necrhoncus,
vitae
lectus.
Etiam
velit.nisl
egestas. odio
vestibulum
elit dignissim
sollicitudin
aliquam dapibus.
Maecenas
pulvinar
sapien
Pellentesquedui
metus
Curabitur
malesuada.
elementum
sed miodio,
lectus.
laoreet vel dui
eget
Donec
vel
dui
nec
aurna
metus.
aPellentesque
leo. neque
mi.
Maecenas
varius
et
ultricies
Vestibulum
Quisque auctor
mi.
Morbi
fringilla
ultricies
euismod.
nibh
bibendum Nam egestas
augue
eros
faucibus,
sapien. Sedmetus
Phasellus
vulpu-
viverra. a enim.
Ali-
ac
wisi
aliquet Fusce volutpat
in ligula.odio.Quisque Vestibulum at Proinante ipsum
magna et nulla primiscommodo in faucibus consequat.orci luctus Proin et accumsan
ultrices
eget nunc. Nam feugiat lacus vel est. Curabitur consectetuer.
orci
tate
posuerequam
ultrices.
libero.
elementum,
Quisque
et
metus
porttitor
cubilia
imperdiet Proin
Suspendisse urna
ante.elementum
nisl
euNunc
nisl
Curae;
sem.
euismod
In ac
enim.
nec
hendrerit
Phasellus
porta
vel
velelitimperdiet
ullamcorper eget
pede.
Pellentesque
porta. Vestibulum
felis.
felis.
sodales,
ipsum
sit amet
Donec
placerat
mattis
Namelitfeugiat
Ut lorem
pharetra
eu
pede
lobortis,
ipsum
mollis.
pellentesque
libero
ipsum.
faucibus. lorem,
vel
attellus
ac
mi metus sem
pharetra
justo.
turpis.
Cras
Maecenas
eleifend
quis Suspendisse
felis
Donec
Phasellus sit
elementum
interdum
ligula,
nibh.
eu massa.
rutrum
amet
consectetuer.
facilisis
eu,
ac pretium
viverra Morbi
commodo,
mauris
ipsum
nulla tincidunt
ante
invel
Nullam
massa.
et
justo
quis
nunc
lectus
a nulla. Curabitur mauris,
tristique eget
arcu eu vulputate
metus. ligula
Vestibulum tellus eu
lectus. neque.Proin Vivamus
mauris. eu
Proin dolor.
eu
Nulla ac nisl.Praesent Nullam eros urna nulla, arcu.ullamcorper in,euismod
interdum ut,sitcommodo
amet, gravida ut, risus.
tortor
Nulla
nunc ut
justo
tesque
tellus
sit
eu massa.
amet,
Aeneanurnagravida
in vitae
ipsum.
habitant
Praesent
scelerisque
laoreet
aclacus
hendrerit In Cras
tincidunt
faucibus.
enim. tristique
morbi
enim
quam, elit,
vitae,
luctus.
pellentesque
placerat.
nulla,
rutrum
nec
ultrices.
congue
Aliquam
Phasellus
senectus
at,
euante.
et netus
hendrerit
Aenean
vitae,
auctor,
molestie
Lorem
quam
ipsum
pede
et malesuada
dolor
ipsum Pellentesque
faucibus
Integer
consequat
vitae
non,
turpisfames
sed
dolorpede
laoreet
viverra
nonummy
augue.
sapien
ac
sit
a,
Nulla
euamet,
wisi.
varius,
pellentesque.
turpis
vel,
nec
ante.
Pellen-
eros
egestas.
nisl.
lacus.
consectetuer
Aenean Duis
nonummyfeugiat magnaadipiscing
felis utnon enim. leo.elit.
Phasellus In
Sedneque,felishac
pharetra,
erat, habitasse sem id porttitor
ullamcorper platea
in, dictum dictumst.
sodales,
non, magna
ultricies ut,
Suspendisse vitae elit.nec Aliquam arcu ornare in, Suspendisse
ullamcorper quis, commodo
est, a
Integer
lectus.
eu,
orci
nunc
Utnulla.iaculis
Proin
libero.
tisluctus
aliquet
lectus
tempusvel
eget,etsemper
nibh,
eros,
arcu
Fusce Cum
ultrices at,
a in,malesuada
convallis
odio
sagittis imperdiet
posuere
sociis
pretium
blandit
lobortis
erat at
cubilia
nisleuismod.
augue.
erat
mauris
sit Curae;
sit natoque
tristique
amet, quam.
amet,
Etiam quis,
atVestibulum
pede.
mollis. fermentum
facilisis.
Quisque
Proin utultrices
ante
Maecenas
est. Aliquam
viverra penatibus
Nunc
ipsum
scelerisque
risus
eu,
sapien elemen-
primis
odio. dapibus
ac,
risus,
sodales
in
libero,
Pellentesque
lobor-
faucibus
nibh.
cursus,
molestie
tum Namfermentum
massa
et, magna.
enim. lobortis
turpis, Lorem cursus
in,
ipsumDonec
sodales
wisi.
eu,Morbi Aenean
dolor
euismod
eu
eget,
sitnec, purus.
dui.placerat.
amet, tempor
Morbi Quisque
consectetuer
congue, Utnulla. vehicula,
rutrum
imperdiet,
adipiscing lorem.
Duiselit.viverra
Namurna
enim
Nunc ut sed
ele-
gravida me-
nunc.et
mentum
sed
mauris.
tristique magnis
tus.
ultricies
gravida
Etiammattis
Nulla
Cras Praesent
ullamcorper
Uttincidunt.
sodales
pede luctus
metus
auctor,
massa,
leo.
justo,
sollicitudin,
est. dis
pede
Curabitur
Maecenas
dapibus
parturient
eget
auctoreros
vitae,
dui.
felis
Aliquam
at, ligula,
lorem ultrices
imperdiet
rhoncus odio sem
egestas
varius
lacinia
sagittis.
eu, sagittis
velitin,eros.
placerat
ut,
velit.
at placerat
montes,
vel
dui,Nunc
ut, et
pulvinar
Cras quam,
posuere,
leo
placerat.
purus.
in,
non
Aliquam
convallis
cursusac
urna. ultricesnasce-
Pellentesque
aliquam.
elit
pulvinar
faucibus,
Morbi
odio. Vestibulum eroserat
augue.
luctus
pede,
elit sed
commodo purus nulla.
suscipit ac,nulla.
eget
lacus. Donec
varius
Morbi enim.
Duis
lacus
commodo
vel,luctus.
egestas
Nunc
dui, tempor Curabitur
non,
vitae sed,
leo.Praesent
tortor.
euismod etAliquam
nunc.
Proin
eget,
vulputate
Aliquam
malesuada,
tempus
condimentum
magna
diamnibhat,idettortor.
dolor leo.
tur
Nampretium
Morbibibendum.
Sed odio,
sit
Cras
ridiculus
vestibulum
Phasellus
amet
molestie
feugiat.
elementum,
commodo
rhoncusnisl.
ullamcorper
aliquet
justo sociis
Cumtellus
odio
et
eros
Vivamus ac mus.
pretium,
pede.
sednatoque
leo.
Aenean
sem
lacus
Vestibulum
dictum
Vivamus tempor
quis Aliquam
tortor,
ultricies
penatibus tortor
eget
condimentum
faucibus. faucibus.
vel
et non,
turpis vitae
consectetuer
sed
magnis
Praesent
pharetra
risus
nisl tincidunt
rutrum
dis cursus
mauris.
odio
sed tempor.
porta
parturient
sem. Morbi
sem
in,montes,
Donec
sed
Praesent
velit.
vehicula. urna.
id mauris.
wisi.
Curabitur
ut nasce-
iaculis.
Integer mollis
sapien condimentum nunc. Injusto
wisiullamcorper
nisl, malesuada sagittis. at, Donecdignissim quis orci.
sitdiam
amet, Sed lobortis tortor quis
in, odio.
tur arcu
ridiculus
tellus consequat est, mus. nonummy
euismod tincidunt. Ut pellentesque in,
Suspendisse fermentum
augue conguesed faucibus,
urna.
nisl elit Vestibulum
eu sit elit.amet egestas
Aliquam eros,
tortor vel,
fringilla
diam, odio.
tempus
elit dolor
Aenean et,Nulla
id,
ultricies
mauris.
consectetuer
tristique
imperdiet.
Curabitur
at, consectetuer
ullamcorper
nulla,arcu
eget, eu, anonummy
ante.
sodales
Nulla
malesuada
quis, lectus.
malesuada
Pellentesque
id,
vel, In
facilisi.
erat
sapien.
nulla.
sithac amet
Praesent vestibulum
porta
Nullam
habitasse
massa.
at
tellus
platea eu,
Fusce
lectus.
mi,dictumst. pulvinar
orci.
In
condimentum
blandit.
turpis.
Etiamultrices
sagittis
Suspendisse
Aliquam
at turpis
sed, viverra
erat
nec
viverra
aliquam
volutpat. risus. Nullam pede justo,In molestie
auctor vehicula nonummy, orci. Sed pedeeu,
Nuncscelerisque
sapien,
facilisis euismod
vel, arcu. in,
suscipit in,Aliquam pharetraeuismod. placerat, Aenean metus. vel lectus. imperdiet
dui non justo odio.nec dolor.
at,Pellentesque mollis ac, nulla.
Année universitaire 2017—2018
cursus
Vivamus
Curabitur
commodo
luctus mauris.
auctor Donec et felis.
Introduction
Figure 1.1: Architecture simplifiée d’un ordinateur
1
Bus
Disque dur
UC
Nous présentons dans cette première partie une présentation générale sur les systèmes
d’exploitation. La section suivante donne un rappel sur le matériel. La deuxième section MC
Périphérique de stockage
de cette partie donne une introduction sur la notion de système d’exploitation. La troisième Périphérique d'entrée/sortie
2.1 Architecture simplifiée d’un ordinateur La carte mère est une plaque de résine contenant à l’intérieur et sur les deux faces une
fine couche de cuivre sur laquelle est imprimé le circuit imprimé, On y trouve les éléments
Un ordinateur est composé (cf. figure 1.1) : suivants :
• d’une unité pour effectuer les traitements, également appelée unité centrale (UC) ou • La mémoire vive RAM (Random Access Memory) : La mémoire vive RAM (Random Access
processeur, Memory) présente le lieu de travail dans un ordinateur à savoir qu’un programme
stocké sur le disque dur est chargé en mémoire centrale où ses instructions seront
• d’une unité pour contenir les programmes à exécuter appelée mémoire centrale (MC), accédées une à une pour être exécutées par le processeur. La RAM est une mémoire
volatile c’est-à-dire que son contenu serait perdu en cas de coupure d’électricité
• des périphériques de stockage permanent pour y enregistrer les travaux effectués
en mémoire centrale tel que le disque dur, • La mémoire morte ROM (Read Only memory) : Elle contient les programmes du BIOS
qui gèrent le chargement du système et les entrées-sorties. On distingue plusieurs
• des dispositifs pour entrer et récupérer des données appelés périphériques d’entrée- puces ROM tel que la PROM (Programmable ROM) et EPROM (Erasable Programmable
sortie : un écran, une souris, un clavier, un lecteur de disquettes et un lecteur de CD- ROM)
ROM ou DVD-ROM
• L’horloge qui permet de cadencer le fonctionnement du processeur, du bus. Sa
3 4
fréquence caractérise la carte mère. Elle est généralement très inférieure à celle
du processeur. 3 Notions de systèmes d’exploitation
• Un ensemble de bus : un bus est un ensemble de fils de cuivre incrustés dans la carte
mère qui permettent de véhiculer l’information. Le bus se caractérise par le nombre 3.1 Introdution
de fils qui le composent. Si le nombre de fils est de 64, on parle alors de bus 64
bits. Il est également caractérisé par sa fréquence de fonctionnement. Le système d’exploitation est un gestionnaire de ressources contrôlant l’accès à toutes les
ressources de la machine. Il permet l’attribution de ces ressources aux différents utilisa-
• Le ”chipset” ou ”jeu de composants” soudé sur la carte mère. Le chipset régit tous les
teurs, et aussi à la libération de ces ressources lorsqu’elles ne sont plus utilisées. Tous les
3.2 Les principaux systèmes d’exploitation
L’unité centrale est un circuit intégré qui réalise les traitements et les décisions, elle se 3.2 Les principaux systèmes d’exploitation
compose :
MS-DOS est le plus connu des premiers systèmes d’exploitation pour PC. Il est mono-
• d’une unité de commande et de contrôle UCC : elle recherche les instructions, les utilisateur et mono-tâche. On a du greffer des couches logicielles pour répondre aux évo-
décode et en supervise leur exécution par l’UAL. lutions matérielles et aux demandes des utilisateurs. MS-DOS a été rapidement supplanté
par les systèmes Windows.
• d’une unité arithmétique et logique UAL : elle réalise les traitements qu’ils soient
Mac OS : C’est le système d’exploitation d’Apple. Il a été livré pour le Macintosh en
arithmétiques ou logiques.
1984. La version actuelle de ce système est macOS (10.12). Mac OS X se distingue par
• de registres : ils sont des zones mémoires internes au processeur destinées à ac- un noyau Darwin (Unix) qui est un open source. Mac OS est un des principaux rivaux des
cueillir les données, les instructions et les résultats. Windows.
Notions de systèmes d’exploitation
• d’un bus interne qui relie ces unités aux registres. • Trois Unix dominent le monde des serveurs : HP/UX, Sun Solaris, IBM AIX
De nos jours d’autres composants sont intégrés au processeur tels que : Linux a pris des parts de marché aux Unix, à Novell Netware et à Windows NT-2000
serveur. Il s’est imposé dès la fin du 20ème siècle. Linux est multi-utilisateurs, multi-tâches,
• Une unité flottante pour le calcul des opérations sur les nombres réels. stable et gratuit. Parmi ses principales distributions on trouve : RedHat, Debian, Caldera,
Ubuntu, …
• La mémoire cache : c’est une mémoire de petite taille, à accès plus rapide que
1. Systèmes d’exploitation
1. Systèmes d’exploitation
La famille des Windows :
la mémoire principale. Elle permet au processeur de se ”rappeler” les opérations
déjà effectuées auparavant. Ce type de mémoire résidait sur la carte mère, sur les • Microsoft propose en 1992 Windows 3.10 et Windows pour Workgroups 3.11 qui
ordinateurs récents ce type de mémoire est directement intégré dans le processeur. sont Multi-fenêtres et Multi-tâches coopératif. En 1993, on voit apparaître la pre-
mière version de Windows NT 3.1 suivie par NT 3.5 en 1994
• Les unités de gestion mémoire servent à convertir des adresses logiques en des
adresses réelles situées en mémoire. • L’année 1995, verra la sortie du fort célèbre Windows 95
• Windows 2003 (initialement baptisé .NET) sort en 2003 suivi de Windows VISTA,
Windows Seven, Windows 8 et Windows 10.
3.2 Les principaux systèmes d’exploitation
1. Systèmes d’exploitation
Systèmes d’Exploitation 1 hicham.laanaya@gmail.com hicham.laanaya@gmail.com Pr. Hicham LAANAYA
2 Système Unix
Drivers
Péréphiriques
Les logiciels sont vendus et sont régis par une licence restrictive qui interdit aux utilisateurs
de copier, distribuer, modifier ou vendre le programme en question.
Les logiciels libres sont les logiciels que l’ont peut librement utiliser, échanger, étudier Format des commandes
2.2
et redistribuer. Cela implique que l’on ait accès à leur code source (d’où le terme équivalent
OpenSource)
Le format des commandes suit une convention bien établie :
i — la liberté d’exécution : tout le monde a le droit de lancer le programme, quel qu’en
Commandes de base du Shell
ii — la liberté de modification : tout le monde a le droit d’étudier le programme et de • Les options et les paramètres sont parfois facultatifs.
le modifier, ce qui implique un accès au code source Exemple : cp -i /home/profs/prof1/Hello.c /home/etudiants/etudiant1
iii — la liberté de redistribution : tout le monde a le droit de rediffuser le programme, • cp : commande qui va lancer la fonction de copie
gratuitement ou non
• l’option -i : permet de contrôler certains aspects du comportement de la commande
iv — la liberté d’amélioration : tout le monde a le droit de redistribuer une version
modifiée du programme • /home/profs/prof1/Hello.c : Il s’agit de la source ou le fichier que vous souhaitez
copier
2. Système Unix
2.3 Méta-caractères du Shell
2.1 Introduction
Ils sont interprétés spécialement par le Shell avant de lancer la commande entrée par
Un Shell est un interpréteur de commande en mode texte et peut s’utiliser en mode inter- l’utilisateur ; et permettent de spécifier des ensembles de fichiers, sans avoir à rentrer
actif ou pour exécuter des programmes écrits dans le langage de programmation du Shell tous leurs noms en voici les plus utilisés :
• * : remplacé par n’importe quelle suite de caractères • Les liens symboliques sont une catégorie particulière de fichiers (qui contiennent
l’emplacement du fichier à prendre en compte)
• ? : remplacé par un seul caractère quelconque
• Les périphériques sont vus comme des fichiers spéciaux du répertoire /dev
• [ ] : remplacé par l’un des caractères mentionnés entre les crochets. On peut spé-
• Les tubes nommés sont des fichiers sur disque gérés comme un tube (pipe) entre deux
cifier un intervalle avec - : [a-z] spécifie donc l’ensemble des lettres minuscules
processus échangeant des données
Le système de fichiers d’Unix est une vaste arborescence dont les nœuds sont des réper- • l’identification du propriétaire du fichier
3.5 Les chemins d’accès
• L’extension d’un nom de fichier désigne la nature de son contenu (texte, image, son,
2. Système Unix
2. Système Unix
…)
3.2 Les différents types de fichiers • UNIX est un système qui distingue les caractères majuscules et minuscules
Remarque 1
On distingue :
Ne pas utiliser le caractère espace comme nom de fichier ou répertoire ! ♣
• Les fichiers ordinaires (réguliers) sont une suite d’octets sans structure
• Les répertoires contiennent des informations sur les fichiers et les sous-répertoires
Table 2.2: Caractères acceptables pour les noms de fichiers Figure 2.4: Exemple de chemins
Caractères Signification /
, Caractère virgule
. Caractère point
• Chaque répertoire est distingué des autres par un symbole séparateur ”/”
• le nom du fichier
Système de gestion de fichiers
Exercice 1
/home/etudiant1/data/Fichier.txt
Chemin Nom Dans la hiérarchie présentée dans la figure 2.4, exprimez les chemins suivants :
• Le chemin d’accès absolu (chemin absolu) : commence par le symbole séparateur, il 2. absolu pour etc
exprime le chemin complet à partir de la racine de l’arborescence
3. absolu pour prof ♡
2. Système Unix
2. Système Unix
• Le chemin d’accès relatif (chemin relatif) : commence par un autre caractère que le
caractère séparateur. 4. relatif à log pour acces.dat
Dans la hiérarchie précédente, exprimez les chemins suivants : • pwd : donne le chemin absolu du répertoire courant
Remarque 2
3.6 Commandes de base de manipulation de fichiers Si on copie (déplace/renomme) un fichier dans un fichier qui existe déjà, ce second fichier est modifié
♣
(contenu écrasé et caractéristiques modifiées)
Les commandes de base d’accès aux fichiers sont :
Système de gestion de fichiers
• ls : affiche les caractéristiques d’une liste de fichiers (l’option -i affiche les numéros 3.7 Notion de liens
d’i-nœuds des fichiers)
Il existe deux types de liens :
• rm : supprime un fichier
1. Lien physique : Un même fichier peut avoir donc plusieurs noms (Il y a plusieurs liens
• touch : modifie les caractéristiques de date d’un fichier (permet également de créer physiques sur le fichier).
un fichier vide)
2. Lien symbolique : c’est un fichier (de type lien) qui contient le chemin et le nom d’un
2. Système Unix
2. Système Unix
Les commandes d’accès aux répertoires sont : autre fichier
• ls : affiche la liste des fichiers contenus dans un répertoire et utilise les options : • Les accès à un lien sont donc des redirections vers un autre fichier : les com-
mandes qui manipulent des liens manipulent en fait le fichier dont le nom est
• -a liste aussi les fichiers cachés (fichiers où le nom commence par .)
stocké dans le lien
• -l donne des informations détaillées sur chaque fichier
• Un lien se comporte comme un raccourci (alias) vers un autre fichier
• -i donne le numéro de l’i-nœud du fichier
• Le contenu d’un lien est soit un chemin absolu ou un chemin relatif (qui doit être
• mkdir : crée un répertoire valide depuis le répertoire dans lequel se trouve le lien !)
Figure 2.5: Liens physiques fait correspondre un numéro d’identification gid (Group IDentifier). Ces informations sont
stockées dans des fichiers d’administration
Le fichier /etc/passwd contient les informations relatives aux utilisateurs (login, mot de
passe crypté, uid, gid, nom complet, répertoire de travail au login, commande exécutée
au login) ; et /etc/group contient les informations relatives aux groupes (nom, mot de
passe, gid, liste des membres du groupe)
Le super-utilisateur (root) : Il est toujours considéré par le système comme propriétaire de
tous les fichiers (et des processus). La personne qui gère le système est normalement
la seule à connaître son mot de passe. Lui seul peut ajouter de nouveaux utilisateurs au
système.
Concept de base
3.9 Sécurité sous Unix
Les liens physiques sont plusieurs entrées de répertoires du même i-nœud (ce sont donc
• sans option : création de liens physiques • Des règles de sécurité ont pour rôle d’indiquer les opérations (droits) qui seront
autorisées pour un sujet sur un objet
• avec l’option -s : création de liens symboliques
Système de gestion de fichiers
Le système Unix associe des droits à chaque fichier (règles). Ces droits sont fonctions du
sujet. Un fichier appartient à un utilisateur et à un groupe. Unix distingue le sujet comme
étant :
2. Système Unix
2. membre du groupe propriétaire de l’objet (fichier)
3. les autres
3.8 Notions d’utilisateur et de groupe
Il faut faire la différence entre les opérations pour les fichiers réguliers et celles pour
Pour pouvoir accéder au système de fichier, l’utilisateur doit être connecté. Pour se con- les répertoires. Pour les fichiers réguliers, nous avons les opérations :
necter, l’utilisateur doit saisir son login et le mot de passe associé. A chaque login le sys- • r : droit de lecture
tème fait correspondre un numéro d’identification uid (User IDentifier). Chaque utilisateur
appartient à au moins un groupe d’utilisateurs et à chaque groupe d’utilisateur le système • w : droit de modification et de suppression
et les opérations pour les répertoires sont données par : • chmod : permet de changer les droits
• r : droit de lister le contenu du répertoire • umask : permet d’indiquer les droits à la création
• w : droit de modification et de suppression du contenu du répertoire La commande chown permet de changer le propriétaire d’un fichier et/ou d’un répertoire
et récursivement ce qu’il contient. Sa syntaxe est :
• x : droit d’accès comme répertoire de travail sur le répertoire
chown [OPTION]…[OWNER][:[GROUP]] FILE…
Pour chaque fichier, la règle va indiquer les opérations acceptées en fonction de la La commande chgrp permet de changer le groupe d’un fichier et/ou d’un répertoire et
catégorie de sujet (propriétaire, groupe, autre). La commande ls permet de visualiser les récursivement ce qu’il contient. La syntaxe est :
chgrp [OPTION]…[GROUP]] FILE…. Pour pouvoir exécuter la commande chgrp, il faut être
3.10 Commandes pour modifier les règles
Exemple :
droits propriétaire
Propriétaire Groupe
• u+rwx : ajouter tous les droits au propriétaire
2. Système Unix
• g=rwx : accorder tous les droits au groupe
3.10 Commandes pour modifier les règles
Le mode peut être spécifié par un nombre en octal (base 8 cf. tableau 2.4), dont les
Des commandes permettent de modifier les règles de droits sur les fichiers : chiffres représentent (dans l’ordre de gauche à droite) :
• chown : permet de changer le propriétaire (utilisateur et groupe) • les droits pour l’utilisateur propriétaire du fichier
Table 2.4: Mode octal Figure 2.8: Données de l’exercice sur chmod
2. Donner les droits d’écriture au groupe sur le fichier fichierUn Figure 2.9: Solution de l’exercice sur chmod
2. Système Unix
4. Prévoir les droits affichés par la commande ls -l après l’exécution de ces
commandes
Cette commande permet de spécifier des droits par défaut lors de la création des fichiers.
Pour cela, elle utilise des masques sous forme numérique octale. En exécutant cette com-
mande :
les droits obtenus sont le complémentaire (à 777 pour les répertoires et à 666 pour les
fichiers) de ceux indiqués par le masque.
3.11 La commande umask
2. Système Unix
Systèmes d’Exploitation 1 hicham.laanaya@gmail.com hicham.laanaya@gmail.com Pr. Hicham LAANAYA
3 Programmation Shell
• Bourne Shell (sh ou bash) • VARIABLE=VALEUR : donne une valeur à une variable
• Korn Shell (ksh), .... • export VARIABLE : définit VARIABLE comme une variable d’environnement
Ces fichiers d’initialisation sont ”invisibles”. • Redirection de l’erreur standard : $ ls abdnkjf 2> erreur.txt
27 28
Figure 3.1: Exemple d’exécution de la commande env • Les commandes regroupés sont exécutées dans un interpréteur enfant (subshell)
• Exemple :
pwd ; (cd ..; pwd; cp user.txt test.txt; ls -l test.txt); pwd
2.1 Définition
Les commandes utilisées pour le contrôle des tâches sont :
• Redirection de l’entrée standard : $ bc < calcul.dat • La combinaison de touches Ctrl+Z permet de suspendre la tâche courante, que nous
pouvons relancer en arrière-plan en exécutant la commande bg
Les scripts Shell
3. Programmation Shell
Exemple : $ ls -l | sort -r (affiche le contenu du répertoire courant trié à l’envers).
2 Les scripts Shell
1.4 Regroupement des commandes
2.1 Définition
Pour lancer l’exécution séquentielle de plusieurs commandes sur la même ligne de com-
mande, il suffit de les séparer par un caractère ;
Exemple : $ cd /tmp ; pwd; echo bonjour; cd ; pwd Les scripts sont des programmes écrits dans un langage interprété, par exemple le langage
Nous pouvons utiliser l’exécution séquentielle d’une ligne de commandes par regroupe- du Shell. Un script peut être une simple liste de commandes. La première ligne du script doit
ment : préciser l’interpréteur utilisé, elle commence par les deux caractères #!, suivis du chemin de
l’interpréteur.
• (cmd1 ; cmd2) ; cmd3
echo "-----------------------------"
$ METIER="dresseur de"
$ VARIABLE=VALEUR Bash est en mesure de substituer le résultat d’une ligne de commandes UNIX. Le symbole
impliqué dans ce genre de substitution est l’accent grave (`).
$ echo $VARIABLE
$ echo pwd
3. Programmation Shell
3. Programmation Shell
Bash réalisera la substitution du contenu d’une variable lorsqu’il rencontre $ suivi d’un pwd
nom de variable. Deux comportements sont possibles :
$ echo `pwd`
1. Substitution vide : La variable n’est pas définie ou la variable est définie mais son /home/compte1/Desktop
Il est possible d’assigner le résultat d’une ligne de commande UNIX à une variable.
Affectation du résultat d'une commande à une variable : Exemple • L’apostrophe : élimine la signification spéciale du caractère Espace et empêche la
substitution des variables et commandes.
$ rep=`pwd`
$ moi=`who am i`
2.5 Paramètres de Bash
$ machine=`hostname`
Pour accéder à un paramètre de position dont le numéro est strictement supérieur à 9, il faut entourer
2.6 Lecture et affichage
Exemple : Nous désirons afficher la chaîne de caractères "TOTO & TATA" # Nom du fichier param
3. Programmation Shell
echo "Nom du fichier de commande: $0"
-bash: TATA: command not found
echo "Nombre de parametres: $#"
$ echo TOTO \& TATA
echo "Parametre 1: $1"
TOTO & TATA
echo "Parametre 2: $2"
L’emploi de shift nécessite que le Shell script ait au moins un paramètre (Le code de retour
2.6 Lecture et affichage
dans le cas où il n’y a pas de paramètres est 1).
La commande read réalise la lecture à partir de l’entrée standard : Exemple d'utilisation de shift
$ read var1 var2 var3. Cette commande permet de lire de l’entrée standard et placer les
données dans les variables var1, var2 et var3. La séparation des données d’entrée en #!/bin/bash
champs est réalisée par Bash à l’aide de la variable IFS (Internal Field Separator). echo "$# : arg1 = $1, arg2 = $2; total : $@"
Exemple : voici une-ligne de données (Il existe 4 champs)
shift; echo "$# : arg1 = $1, arg2 = $2; total : $@"
Dans l’exemple ci-dessous :
2.9 Branchement conditionnel : if-then-elif-else-fi
Syntaxe de la commande if
3. Programmation Shell
then liste-commandes-2
La commande shift agit sur les paramètres de position du Bash. A chaque emploi de shift
elif liste-commandes-3 # autant de fois que nécessaire
• le paramètre $1 précédent est perdu else liste-commandes-4 # si nécessaire
• $1 est supprimé de $* et $@ fi
• $# est décrémenté de 1
Table 3.1: Test sur fichiers, répertoires et chaînes Branchement conditionnel : if-then-elif-else-fi : Exemple 1
Expression vrai si :
#!/bin/bash
-e fic fic existe
if [ -d toto ] ; then
-d fic fic existe et est un répertoire
-f fic fic existe et est un fichier « ordinaire» echo "toto est un répertoire"
-s fic fic existe et est non vide echo "toto est un lien symbolique"
2.9 Branchement conditionnel : if-then-elif-else-fi
#!/bin/bash
Les scripts Shell
code de retour de la commande détermine le test « if » : echo "le fichier toto existe"
else
3. Programmation Shell
• Code de retour non nul : Le test « if » est faux.
#!/bin/bash #!/bin/bash
read GUESS
if [ $GUESS=$SECRET_WORD ]
then
fi
case expression in
...
3. Programmation Shell
3. Programmation Shell
*) liste-commandes-2 ;;
esac
if [ $# = 0 ]; then done
exit 1
fi La variable prend successivement les valeurs de la liste de mots, et pour chaque valeur,
for option; do
liste-commandes est exécutée.
2.11 Boucle for-do-done
fi
;;
3. Programmation Shell
done #!/bin/bash
for i in ~/Desktop/*.pdf
do
echo $i
done
#!/bin/bash
fi
L’instruction select génère un menu à partir de liste-de-mots et demande à l’utilisateur
if [ -o $fichier ]; then # vérifie le propriétaire
de faire un choix. Cette commande permet à l’utilisateur de sélectionner une variable parmi
echo "Propriétaire de $fichier" une liste de mots. liste-commandes est exécutée.
else
3. Programmation Shell
fi
if [ -x $fichier ]; then # Droit d'exécution
done
echo "Droit d'exécution sur $fichier"
fi
done
Dans ce premier exemple, l’utilisateur fait entrée un choix parmi les trois mots "Linux"
"Mac OS X" "Autre". Le script affichera la phrase "Vous avez sélectionné" suivi du choix
de l’utilisateur. Si le choix est Autre, le script quitte la boucle select et termine son exécu-
tion.
#!/bin/bash #!/bin/bash
PS3="Que voulez vous ? " echo -e "Devinez le mot secret : SMI, SMA, SMP : \c"
1) echo "C'est du $ch choix" ;; echo -e "Ce n'est pas $GUESS, devinez : \c"
done
compteur=5
Les scripts Shell
compt=`expr $compt - 1`
done
Syntaxe de la commande while-do-done
3. Programmation Shell
3. Programmation Shell
while liste-commandes-1
do
liste-commandes-2
done
until liste-commandes-1
do
Nous pouvons rendre la programmation plus structurée en utilisant des fonctions :
liste-commandes-2
done
Syntaxe de fonction
#!/bin/bash
read GUESS La définition des fonctions Bourne shell doit être faite au début du fichier de commande
until [ $GUESS = "SMI" ]; do et il faut prendre préséance sur les commandes systèmes de même nom. Ces fonctions
peuvent avoir une valeur de retour : exit n (ou return n) où n est une valeur numérique
echo -e "Ce n'est pas $GUESS, devinez encore : \c"
(=0 : OK, ̸=0 (et <256) : Erreur)
read GUESS
Les scripts Shell
#!/bin/bash
mafonction() {
3. Programmation Shell
}
compt=`expr $compt - 1`
done
#!/bin/sh
Lorsque utilisé entre guillemet, la variable $@ et la variable $* n’ont pas la même significa-
repertoire () { tion. Pour "$@" l’interpréteur de commandes substitue les paramètres de position en leur
echo "Entrer un nom de repertoire: \c"
entourant par des guillemets. Ce n’est pas le cas pour "$*".
read repertoire
Exemple : Différence entre "$@" et "$*"
if [ -d "$repertoire" ]; then
3. Programmation Shell
repertoire; ERRNO=$? Utilisation de $@
Itération : quatre
On remarque que le résultat n’est pas le même. C’est pour cela qu’il faut penser à
utiliser "$@" dans vos programmes Bash. Exemple 1 (getopts) : Résultat d'exécution
$ install -l
OPTION l reçue
2.17 Décodage des paramètres
Indice de la prochaine option à traiter : 2
$ install -l -q
Il existe une commande simple pour le décodage systématique des paramètres de position.
OPTION l reçue
Il s’agit de la commande getopts. La syntaxe de cette commande :
getopts optstring name [arg …] où : Indice de la prochaine option à traiter : 2
OPTION q reçue
2.17 Décodage des paramètres
$ install -x
• arg s’il existe, getopts va tenter d’extraire les options à partir de cet argument
Les scripts Shell
#!/bin/sh
case "$OPT" in
3. Programmation Shell
q) echo "OPTION $OPT reçue" ;;
esac
done
Exemple 2 (getopts) • -n : Lire les commandes mais ne pas les exécuter (Vérifie les erreurs de syntaxe sans
exécuter le script)
#!/bin/sh
• -v : Affiche les lignes lues du programme lors de son exécution
while getopts l:q OPT; do
• -x : Afficher les commandes et les substitutions lors de leur exécution
case "$OPT" in
l) OPTION="$OPT"
Exemple d'utilisation de la commande (set)
LOGARG="$OPTARG" ;
esac
pwd
echo "Indice de la prochaine option à traiter : $OPTIND"
ls -l
done
echo `who`
# Chercher le paramètre nom_repertoire
then
repertoire="$1"
fi
3. Programmation Shell
3. Programmation Shell
2.18 Débogage de Script Shell
Pour simplifier la recherche des erreurs dans un programme Bourne Shell, ce dernier met
à notre disposition la commande set pour activer les modes de débogage. Les options
disponibles sont :
Introduction
– . matche avec n’importe quel caractère
1 – ^ indique un début de chaîne, etc …
Les filtres sont des programmes qui lisent une entrée, effectuent une transformation et • les métacaractères sont neutralisés par le caractère \
écrivent un résultat (sur la sortie standard). Parmi ces filtres on trouve :
Table 4.1: Expressions régulières définies par des méta-caractères
• grep, egrep, fgrep : recherche d’une expression dans des fichiers
• diff, cmp, uniq, tr, dd … : outils de comparaison, conversion de fichiers . n’importe quel caractère
? 0 ou une occurrence du caractère
• sed : éditeur de flots
* répétition du caractère précédent
• awk : outil programmable de transformation de texte + Une ou une infinité d’occurrence
[<liste>] Un choix parmi un ensemble
Ces outils utilisent les ”expressions régulières”. Ces expressions sont :
[^<liste>] Tout sauf un certain caractère
• un moyen algébrique pour représenter un langage régulier ^a a en début de chaîne
• et permettent de décrire une famille de chaînes de caractères au moyen de métacar- a$ a en fin de chaîne
actères a \{n \} n répétitions du caractère a
a \{n ,\} au moins n répétitions de a
a \{n ,p \} entre n et p répétitions de a
2 Expressions régulières et commande egrep
\(...\) sous-expression ”repérée”
\k k -ème sous-expression repérée
• un ”caractère simple” "matche" avec lui-même :
• un métacaractère génère ou précise un ensemble de possibilités • ^.$ : chaîne d’un seul caractère
55 56
• a+b* : au moins un ’a’ suivi de 0 ou une infinité de ’b’ • egrep –n<nombre de lignes> <chaîne> fichier : combinaison des deux options
précédentes
• [ab]+ : au moins un ’a’ ou ’b’ ou une infinité
• egrep –i <chaîne> fichier : respect de la casse
• ˆ\(.*\)\1$ : ligne constituée de 2 occurrences d’une même chaîne de caractères
• egrep –c <chaîne> fichier : nombre d’occurrences
Remarque 4
Exemple
Attention aux confusions avec les méta-caractères du Shell : Sens différents pour méta-caractères : *
♣ Considérons le fichier de notes suivant :
. ?
Table 4.2: Fichier de notes
crepetna:Crepet, Nathalie:CREN1807750:92:87:88:54:70
Exemples 2 yosnheat:Yos Nhean, Trakal:YOST19087603:84:73:70:50:73
3.1 Introduction
3.1 Introduction
• v.+ : Les chaînes contenant un 'v' suivi de n’importe quelle suite de caractères benelaur:Benel, Aurelien:BENA80207700:84:73:89:45:100
(vandalisme, vestiaire, lavage, …) soucypas:Soucy, Pascal:SOUP14067502:95:90:89:87:99
• [vs].+ : Les chaînes contenant un 'v' ou un 's' suivi de n’importe quelle suite de
caractères (vandalisme, voiture, descendre, sandales, …) On peut extraire les lignes qui contiennent une note comprise entre 90 et 99 : $ egrep
:9 notes.txt. Maintenant, comment faire pour extraire les lignes où la dernière note est
• a.*a : Les chaînes contenant deux 'a' (palais, sandales, pascale, cascade, …) comprise entre 90 et 99 ?. Une solution est d’utiliser une expression régulière :
Filtre programmable awk
• egrep –<nombre de lignes> <chaîne> fichier : ligne de contexte • générer des rapports ;
Ces champs n'ont rien à voir avec les $1, $2, … du Bourne Shell. ♣
Si le motif est omis alors l'action associée est toujours effectuée et si l'action est omise on affiche
Structure d'un programme awk ♣
toute la ligne.
4. Filtre programmable awk
motif1 {action1}
• NR, NF numéro de ligne (Record), nombre de champs (Fields) Table 4.4: Les expressions logiques pour les motifs
Remarque 7 || OU logique
~ Permet de comparer l’expression régulière à un champ précis
La variable FS peut aussi être initialisée lors de l'appel de awk via l'option : -Fc : le séparateur de
3.4 Fonctions utilisateur
$1 == $2
instructions
• motif en fonction d’expressions logiques
}
• motif en utilisant les deux formats
La fonction peut être appelée dans n’importe quel bloc action d’une requête awk. Ci-
Exemple de fonctions
return (m < n ? m : n)
}
Table 4.5: Exemple de fonctions prédéfinies
function factoriel (num) {
Fonction Description
3.5 Les structures de contrôle
instruction
else
instruction
b = 0;
else {
• Structure de contrôle for
next
3.5 Les structures de contrôle
print $i;
for (init;condition;itération) (ou for (var in tableau))
i ++;
instruction
}
if ( i < 0 ) break;
Filtre programmable awk
• Instruction "break" : provoque la sortie du niveau courant d’une boucle "while" ou print $i;
"for".
}
BEGIN {printf("%10s %6s %5s %s\n", "Pays","Superf","Pop","Cont")} $ cat texte.txt | tr 'a-z' 'A-Z' > lignes.tmp
superf = superf + $2
pop = pop + $3
pays = $1
}
Filtre programmable awk
compte[$i]++
Exemple : Fréquence des mots dans un texte
Dans le domaine de l’analyse textuelle, la fréquence des mots est un outil très utilisée
dans l’authentification des documents. Nous allons créer un petit programme capable de
donner la fréquence d’apparition des mots dans un texte. Les étapes à suivre sont :
4. Filtre programmable awk
gsub(/[.,:;!?()[]]/, "")
2. Confondre les mots majuscules et les mots minuscules (Cette conversion est réalisée
en dehors du programme awk) :
#!/bin/sh
awk '
3.5 Les structures de contrôle
# numerique
END {
total += compte[mot]
}
Filtre programmable awk