Système d'exploitation
description
Transcript of Système d'exploitation
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation I
Pr. Hicham Laanaya [email protected]
20142015
Facult des Sciences Rabat Dpartement d'Informatique
Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Plan du cours
1 Introduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
Notions de systmes d'exploitation
Les principaux systmes d'exploitation
2 Systme Unix
Introduction au systme Unix
Commandes de base du Shell
Systme de gestion de chiers
3 Programmation Shell
Introduction bash
Les scripts Shell
4 Filtre programmable awk
Introduction
Expressions rgulires et commande egrep
Filtre programmable awk
2/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IIntroduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
1 Introduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
Notions de systmes d'exploitation
Les principaux systmes d'exploitation
2 Systme Unix
Introduction au systme Unix
Commandes de base du Shell
Systme de gestion de chiers
3 Programmation Shell
Introduction bash
Les scripts Shell
4 Filtre programmable awk
Introduction
Expressions rgulires et commande egrep
Filtre programmable awk
3/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IIntroduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
Architecture simplie d'un ordinateur
Une unit pour effectuer les traitements, galement appele unit centrale ou processeur,
Une unit pour contenir les programmes excuter qui est le lieu de travail dans un ordinateur appele
mmoire centrale,
Des priphriques de stockage permanent pour y enregistrer les travaux effectus en mmoire centrale tel
que le disque dur,
Des dispositifs pour entrer et rcuprer des donnes appels priphriques d'entre- sortie : un cran, une
souris, un clavier, un lecteur de disquettes et un lecteur de CD- ROM ou DVD-ROM
UC
MC
Carte mre
Disque dur
Priphrique de stockage
Priphrique d'entre/sortie
Bus
Figure: Architecture simplifie d'un ordinateur
4/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IIntroduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
La carte mre
La carte mre est une plaque de rsine contenant l'intrieur et sur les deux faces une fine couche de cuivre sur
laquelle est imprim le circuit imprim, On y trouve les lments suivants :
Le microprocesseur
La mmoire vive RAM (Random Access Memory) : La mmoire vive RAM (Random Access Memory). Elle
reprsente le lieu de travail dans un ordinateur savoir quun programme stock sur le disque dur est charg
en mmoire centrale o ses instructions seront accdes une une pour tre excutes par le processeur. La
RAM est une mmoire volatile c'est--dire que son contenu serait perdu en cas de coupure dlectricit
La mmoire morte ROM (Read Only memory) : Elle contient les programmes du BIOS qui grent le
chargement du systme et les entres-sorties. On distingue plusieurs puces ROM tel que la PROM
(Programmable ROM) et EPROM (Erasable Programmable ROM)
L'horloge qui permet de cadencer le fonctionnement du processeur, du bus. Sa frquence caractrise la carte
mre. Elle est gnralement trs infrieure celle du processeur (de l'ordre de quelques centaines de MHz).
Un ensemble de bus : un bus est un ensemble de fils de cuivre incrusts dans la carte mre qui permettent de
vhiculer l'information. Le bus se caractrise par le nombre de fils qui le composent. Si le nombre de fils est
de 64, on parle alors de bus 64 bits. Il est galement caractris par sa frquence de fonctionnement.
Le "chipset" ou "jeu de composants" soud sur la carte mre. Le chipset rgit tous les changes au sein du
PC en aiguillant les donnes sur les diffrents bus de la carte mre.
5/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IIntroduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
L'unit centrale ou microprocesseur
L'unit centrale est un circuit intgr qui ralise les traitements et les dcisions, elle se compose :
d'une unit de commande et de contrle UCC : elle recherche les instructions, les dcode et en supervise
leur excution par l'UAL.
d'une unit arithmtique et logique UAL : elle ralise les traitements qu'ils soient arithmtiques ou logiques.
de registres : ils sont des zones mmoires internes au processeur destines accueillir les donnes, les
instructions et les rsultats.
d'une horloge qui rythme le processeur : chaque top d'horloge le processeur effectue une instruction, ainsi
plus l'horloge a une frquence leve, plus le processeur effectue d'instructions par seconde (MIPS: Millions
d'instruction par seconde). Par exemple un ordinateur ayant une frquence de 1 GHz (1000 MHz) effectue
1000 millions d'instructions par seconde.
d'un bus interne qui relie ces units aux registres.
De nos jours d'autres composants sont intgrs au processeur tels que :
Une unit flottante pour le calcul des oprations sur les nombres rels.
La mmoire cache : c'est une mmoire de petite taille, accs plus rapide que la mmoire principale. Elle
permet au processeur de se "rappeler" les oprations dj effectues auparavant. La taille de la mmoire
cache est gnralement de l'ordre de quelques centaines de KO. Ce type de mmoire rsidait sur la carte
mre, sur les ordinateurs rcents ce type de mmoire est directement intgr dans le processeur.
Les units de gestion mmoire servent convertir des adresses logiques en des adresses relles situes en
mmoire.
6/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IIntroduction gnrale sur les systmes d'exploitation
Notions de systmes d'exploitation
1 Introduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
Notions de systmes d'exploitation
Les principaux systmes d'exploitation
2 Systme Unix
Introduction au systme Unix
Commandes de base du Shell
Systme de gestion de chiers
3 Programmation Shell
Introduction bash
Les scripts Shell
4 Filtre programmable awk
Introduction
Expressions rgulires et commande egrep
Filtre programmable awk
7/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IIntroduction gnrale sur les systmes d'exploitation
Notions de systmes d'exploitation
Notions de systmes d'exploitation
Le systme d'exploitation est un gestionnaire de ressources :
il contrle l'accs toutes les ressources de la machine,
l'attribution de ces ressources aux diffrents utilisateurs,
la libration de ces ressources lorsqu'elles ne sont plus utilises,
tous les priphriques comme la mmoire, le disque dur ou les imprimantes sont des ressources, le
processeur galement est une ressource.
8/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IIntroduction gnrale sur les systmes d'exploitation
Les principaux systmes d'exploitation
1 Introduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
Notions de systmes d'exploitation
Les principaux systmes d'exploitation
2 Systme Unix
Introduction au systme Unix
Commandes de base du Shell
Systme de gestion de chiers
3 Programmation Shell
Introduction bash
Les scripts Shell
4 Filtre programmable awk
Introduction
Expressions rgulires et commande egrep
Filtre programmable awk
9/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IIntroduction gnrale sur les systmes d'exploitation
Les principaux systmes d'exploitation
Les principaux systmes d'exploitation
MS-DOS est le plus connu des premiers systmes d'exploitation pour PC
Il est mono-utilisateur et mono-tche. On a du greffer des couches logicielles pour rpondre aux
volutions matrielles et aux demandes des utilisateurs
MS-DOS a t rapidement supplant par les systmes Windows
Mac OS : C'est le systme d'exploitation dApple
Il a t livr pour le Macintosh en 1984
La version actuelle est la X (prononcer dix). Mac OS X se distingue par un noyau Darwin qui est un
open source
Mac OS est un des principaux rivaux des Windows
Unix tant distribu gratuitement, il a donn naissance de nombreuses versions :
Les versions les plus connues Unix SYSTEM V (volution de la version initiale d'AT&T et Bell) et
Unix BSD
Les principaux Unix du march sur Intel sont : Open Server et Unixware de SCO (Santa Cruz
Operation), Solaris (Sun Microsystems), BSD (Berkeley),
Trois Unix dominent le monde des serveurs : HP/UX, Sun Solaris, IBM AIX
Linux a pris des parts de march aux Unix, Novell Netware et Windows NT-2000 serveur
Il s'est impos ds la fin du 20me sicle. Linux est multi-utilisateurs, multi-tches, stable et gratuit
Principales distributions de Linux : RedHat, Debian, Caldera, Ubuntu,
10/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IIntroduction gnrale sur les systmes d'exploitation
Les principaux systmes d'exploitation
Les principaux systmes d'exploitation (suite)
La famille des Windows :
Microsoft propose en 1992 Windows 3.10 et Windows pour Workgroups 3.11 dont les mots cls
sont Multifentres et Multitches coopratif. En 1993, on voit apparatre la premire version de
Windows NT 3.1 suivie en 1994 par NT 3.5
L'anne 1995, verra la sortie du fort clbre Windows 95
En 1996, Windows NT 4 avec deux versions station de travail et Serveur. Ensuite,
Windows Terminal Server : un systme qui simule un environnement multi-utilisateurs et prend en
charge la connexion de plusieurs terminaux
En 1998 Windows 98
En 2000, Microsoft commercialise Windows 2000 professionnel et serveur, Windows Millenium,
suivi de Windows XP familial et serveur
Windows 2003 (initialement baptis .NET) sort en 2003
VISTA, Windows Seven, Windows 8
11/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Introduction au systme Unix
1 Introduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
Notions de systmes d'exploitation
Les principaux systmes d'exploitation
2 Systme Unix
Introduction au systme Unix
Commandes de base du Shell
Systme de gestion de chiers
3 Programmation Shell
Introduction bash
Les scripts Shell
4 Filtre programmable awk
Introduction
Expressions rgulires et commande egrep
Filtre programmable awk
12/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Introduction au systme Unix
Systme Unix
Unix est un systme d'exploitation (Operating System)
Multi-utilisateurs : le systme identifie des personnes logiques et permet ces personnes d'utiliser le
systme dans certaines limites
Multi-tches : le systme est tudi pour excuter plusieurs programmes en mme temps, grce au concept
de "temps partag"
Multi-plateforme : Unix n'est pas un systme ddi un processeur, mais que c'est une famille de systmes
que l'on retrouve sur une multitude de plates-formes.
Distributions Unix
Des Unix propritaires :
Nom Propritaire Processeur
Solaris Sun Sparc & Intel
HPUX HP PA
AIX IBM Risc & PowerPC
Digital Unix Digital Alpha
Des Unix libres
Linux sur plate-forme Intel, Sparc, Alpha, Mac,
FreeBSD sur plate-forme Intel, Alpha, PC-98
OpenBSD galement multi-plate-forme
13/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Introduction au systme Unix
Architecture et caractristiques
On peut dcomposer un systme Unix en trois grandes entits :
Le noyau : il assure la gestion de la mmoire et des entres sorties de bas niveau et l'enchanement des tches
Un ensemble d'utilitaires : ddis des tches diverses :
des interprteurs de commande appels Shells permettant de soumettre des tches au systme, tches
pouvant tre concurrentes et/ou communicantes
des commandes de manipulation de fichiers (copie, dplacement, effacement, etc.)
Une base de donnes systme : un ensemble de fichiers contenant :
des informations sur la configuration des diffrents services
des scripts de changement d'tat du systme (dmarrage, arrt, )
Applications
NoyauCPU
RAM
Drivers
Prphiriques
Vido Clavier Souris Disques ...
14/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Introduction au systme Unix
Logiciels propritaires
Ces logiciels sont vendus et sont rgis par une licence restrictive qui interdit aux utilisateurs de copier,
distribuer, modifier ou vendre le programme en question
Logiciels libres
Les logiciels libres sont les logiciels que l'ont peut librement utiliser, changer, tudier et redistribuer. Cela
implique que l'on ait accs leur code source (d'o le terme quivalent OpenSource)
i la libert d'excution : tout le monde a le droit de lancer le programme, quel qu'en soit le but
ii la libert de modification : tout le monde a le droit d'tudier le programme et de le modifier, ce
qui implique un accs au code source
iii la libert de redistribution : tout le monde a le droit de rediffuser le programme, gratuitement
ou non
iv la libert d'amlioration : tout le monde a le droit de redistribuer une version modifie du
programme
15/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Commandes de base du Shell
1 Introduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
Notions de systmes d'exploitation
Les principaux systmes d'exploitation
2 Systme Unix
Introduction au systme Unix
Commandes de base du Shell
Systme de gestion de chiers
3 Programmation Shell
Introduction bash
Les scripts Shell
4 Filtre programmable awk
Introduction
Expressions rgulires et commande egrep
Filtre programmable awk
16/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Commandes de base du Shell
Commandes de base du Shell
Un Shell
est un interprteur de commande en mode texte
peut s'utiliser en mode interactif ou pour excuter des programmes crits dans le langage de programmation
du Shell (appels scripts Shell)
En mode interactif, le Shell
affiche une invite en dbut de ligne (prompt)
La commande est interprte et excute aprs la frappe de la touche "Entre"
Invite affich par l'interprteur de commande
Terminal sous Mac OS X
17/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Commandes de base du Shell
Format des commandes
Le format des commandes suit une convention bien tablie
commande [-options] [paramtres]
Les options et les paramtres sont parfois facultatifs.
Exemple : cp -i /home/profs/prof1/Hello.c /home/etudiants/etudiant1
cp : commande qui va lancer la fonction de copie
l'option -i : permet de contrler certains aspects du comportement de la commande
/home/profs/prof1/Hello.c : Il s'agit de la source ou le fichier que vous souhaitez copier
/home/etudiants/etudiant1 : Il s'agit de la destination ou l'emplacement de la copie
Mta-caractres du Shell
sont interprts spcialement par le Shell avant de lancer la commande entre par l'utilisateur
permettent de spcifier des ensembles de fichiers, sans avoir rentrer tous leurs noms
Voici les plus utiliss :
* : remplac par n'importe quelle suite de caractres
? : remplac par un seul caractre quelconque
[ ] : remplac par l'un des caractres mentionns entre les crochets. On peut spcifier un intervalle avec
- : [a-z] spcifie donc l'ensemble des lettres minuscules
18/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
1 Introduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
Notions de systmes d'exploitation
Les principaux systmes d'exploitation
2 Systme Unix
Introduction au systme Unix
Commandes de base du Shell
Systme de gestion de chiers
3 Programmation Shell
Introduction bash
Les scripts Shell
4 Filtre programmable awk
Introduction
Expressions rgulires et commande egrep
Filtre programmable awk
19/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Concept de base
Le systme de fichiers d'Unix est une vaste arborescence dont les nuds sont des rpertoires et les feuilles
des fichiers
Un fichier peut :
i contenir des donnes
ii tre un lien sur un autre fichier
iii tre un moyen d'accs un priphrique (mmoire, cran, disque dur, ...)
iv tre un canal de communication entre processus
Hirarchie du systme de chiers
/
bin boot etc home usr
bash vmlinuz bash passwd etudiant1 etudiant2 include
java
Go.java
.bashrc sys stdio.h
types.h
rpertoire
fichier
20/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Les diffrents types de chiers
Les fichiers ordinaires (rguliers) sont une suite d'octets sans structure
Les rpertoires contiennent des informations sur les fichiers et les sous-rpertoires
Les liens symboliques sont une catgorie particulire de fichiers (qui contiennent l'emplacement du fichier
prendre en compte)
Les priphriques sont vus comme des fichiers spciaux du rpertoire /dev
Les tubes nomms sont des fichiers sur disque grs comme un tube (pipe) entre deux processus changeant
des donnes
Les i-nuds
chaque fichier correspond un i-noud contenant :
le type du fichier et les droits d'accs des diffrents utilisateurs
l'identification du propritaire du fichier
la taille du fichier exprime en nombre de caractres (pas de sens pour les fichiers spciaux)
le nombre de liens physiques sur le fichier
la date de dernire modification/consultation (criture/lecture) du fichier
la date de dernire modification du nud (modification d'attributs)
l'identification de la ressource associe (pour les fichiers spciaux)
21/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Le nom des chiers
Le nom d'un fichier doit permettre de l'identifier dans un ensemble de fichiers
Le nom est compos de caractres
Le nom est souvent compos de deux parties :
i la base ; et
ii l'extension qui se trouve aprs le caractre '.'
L'extension d'un nom de fichier dsigne la nature de son contenu (texte, image, son, )
Caractres acceptables pour les noms de chiers
Caractres Signification
AZ Lettres majuscules
az Lettres minuscules
09 Chiffres
_ , Caractre soulign et caractre virgule
. Caractre point
UNIX est un systme qui distingue les caractres majuscules et minuscules
Ne pas utiliser le caractre espace comme nom de fichier ou rpertoire !!
22/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Les chemins d'accs
Pour identifier un fichier dans l'arborescence on indique le nom complet du fichier
Le nom complet du fichier est reprsent par :
Le chemin compos de rpertoires qui conduit de la racine de l'arborescence du systme de fichiers
jusqu'au rpertoire qui contient le fichier
Chaque rpertoire est distingu des autres par un symbole sparateur "/"
le nom du fichier
/home/etudiant1/data/Fichier.txt
Sparateur
Chemin Nom
23/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Les chemins d'accs (suite)
On distingue deux expressions d'un chemin :
Le chemin d'accs absolu (chemin absolu)
Le chemin d'accs relatif (chemin relatif)
Le chemin absolu commence par le symbole sparateur, il exprime le chemin complet partir de la racine
de l'arborescence
Le chemin relatif commence par un autre caractre que le caractre sparateur. Il indique un chemin partir
du rpertoire de travail courant
Exemple : Le rpertoire courant est : /var/log
Le chemin absolu pour dsigner le fichier fichier.txt : est /home/etd/etudiant1/fichier.txt
Le chemin relatif est : ../../home/etd/etudiant1/fichier.txt
".." dsigne le rpertoire parent, "." dsigne le rpertoire courant
/
usr etc home lib var
bash vmlinuz prof etd log
acces.datprof1 etudiant1
fichier.txt Hello.c
24/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Les chemins d'accs : Exercice
Dans la hirarchie prcdente, exprimez les chemins suivants :
1 absolu pour prof1
2 absolu pour etc
3 absolu pour prof
4 relatif log pour acces.dat
5 relatif prof pour acces.dat
6 relatif etudiant1 pour acces.dat
/
usr etc home lib var
bash vmlinuz prof etd log
acces.datprof1 etudiant1
fichier.txt Hello.c
25/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Les chemins d'accs : Correction
Dans la hirarchie prcdente, exprimez les chemins suivants :
1 absolu pour prof1 : /home/prof/prof1
2 absolu pour etc : /etc
3 absolu pour prof : /home/prof
4 relatif log pour acces.dat : acces.dat
5 relatif prof pour acces.dat : ../../var/log/acces.dat
6 relatif etudiant1 pour acces.dat : ../../../var/log/acces.dat
/
usr etc home lib var
bash vmlinuz prof etd log
acces.datprof1 etudiant1
fichier.txt Hello.c
26/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Quelques commandes d'accs aux chiers
Commande Explications
cat affiche le contenu du fichier
stat affiche les caractristiques du fichier
ls affiche les caractristiques d'une liste de fichiers
(l'option -i affiche les numros d'i-nuds des fichiers)
rm supprime un fichier
touch modifie les caractristiques de date d'un fichier
(permet galement de crer un fichier vide)
Quelques commandes d'accs aux rpertoires
Commande Explications
ls affiche la liste des fichiers contenus dans un rpertoire
Options :
-a liste aussi les fichiers cachs
-l donne des informations dtailles sur chaque fichier
-i donne le numro de l'i-nud du fichier
mkdir cre un rpertoire
cd change le rpertoire de travail (rpertoire courant)
pwd donne le chemin absolu du rpertoire courant
rmdir supprime un rpertoire vide
27/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Quelques commandes de manipulation du systme de chiers
Commande Explications
cp copie de fichier
syntaxe cp
duplication du contenu du fichier
et cration d'une entre dans un rpertoire
mv dplace/renomme un fichier
syntaxe mv
suppression d'une entre dans un rpertoire
et cration d'une nouvelle entre dans un rpertoire
Si on copie (dplace/renomme) un fichier dans un fichier qui existe dj, ce second fichier est modifi (contenu
cras et caractristiques modifies)
28/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Notion de liens physiques
Un mme fichier peut avoir donc plusieurs noms
Il y a plusieurs liens physiques sur le fichier
Notion de liens symboliques
Un lien symbolique est un fichier (de type lien) qui contient le chemin et le nom d'un autre fichier
Les accs un lien sont donc des redirections vers un autre fichier : les commandes qui manipulent des liens
manipulent en fait le fichier dont le nom est stock dans le lien
Un lien se comporte comme un raccourci (alias) vers un autre fichier
Le contenu d'un lien est :
soit un chemin absolu
soit un chemin relatif (qui doit tre valide depuis le rpertoire dans lequel se trouve le lien !)
29/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Notion de Liens : Rsum
Les liens physiques sont plusieurs entres de rpertoires du mme i-nud (ce sont donc des fichiers
rguliers)
Les liens symboliques ont chacun leur propre i-nud ; leur contenu dsigne un mme fichier rgulier (ils
sont du type liens)
La commande ln permet de crer des liens : ln [options]
sans option : cration de liens physiques
avec l'option -s : cration de liens symboliques
30/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Notions d'utilisateur et de groupe
Pour pouvoir accder au systme de fichier, l'utilisateur doit tre connect
Pour ce connecter, l'utilisateur doit saisir son login et le mot de passe associ
A chaque login le systme fait correspondre un numro d'identification uid (User IDentifier)
Chaque utilisateur appartient au moins un groupe d'utilisateurs
A chaque groupe d'utilisateur le systme fait correspondre un numro d'identification gid (Group IDentifier)
Ces informations sont stockes dans des fichiers d'administration
/etc/passwd contient les informations relatives aux utilisateurs (login, mot de passe crypt, uid,
gid, nom complet, rpertoire de travail au login, commande excute au login) ; et
/etc/group contient les informations relatives aux groupes (nom, mot de passe, gid, liste des
membres du groupe)
Un utilisateur peut appartenir plusieurs groupes.
Le super-utilisateur (root)
Il est toujours considr par le systme comme propritaire de tous les fichiers (et des processus)
La personne qui gre le systme est normalement la seule connatre son mot de passe
Lui seul peut ajouter de nouveaux utilisateurs au systme.
31/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Notions de scurit
Concept de base
sujet Utilisateur ou Processus qui veut excuter une opration ;
objet Fichier sur lequel on veut excuter une opration ; et enfin
opration Action que l'on veut excuter.
Des rgles de scurit ont pour rle d'indiquer les oprations (droits) qui seront autorises pour un sujet
sur un objet
Le systme a pour rle de vrifier que le sujet a le droit d'excuter l'opration sur l'objet.
32/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Scurit sous Unix
Le systme Unix associe des droits chaque fichier (rgles). Ces droits sont fonctions du sujet
Un fichier appartient un utilisateur et un groupe
Unix distingue le sujet comme tant :
1 le propritaire de l'objet (fichier)
2 membre du groupe propritaire de l'objet (fichier)
3 les autres
Les oprations pour les fichiers rguliers :
r : droit de lecture
w : droit de modification et de suppression
x : droit d'excution
Les oprations pour les rpertoires :
r : droit de lister le contenu du rpertoire
w : droit de modification et de suppression du contenu du rpertoire
x : droit d'accs comme rpertoire de travail sur le rpertoire
33/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Scurit sous Unix (suite)
Pour chaque fichier, la rgle va indiquer les oprations acceptes en fonction de la catgorie de sujet
(propritaire, groupe, autre)
La commande ls permet de visualiser les droits. Elle prsente pour chaque catgorie de gauche droite les
droits :
i pour l'utilisateur propritaire du fichierii pour l'utilisateur membre du groupe propritaire du fichieriii pour les autres utilisateurs ;
Chaque droit est dsign par une lettre :
r : signifie que le droit en lecture est accord
w : droit en criture
x : droit d'excution
- : le droit correspondant n'est pas accord
Propritaire Groupe
droits propritaire
droits groupe droits pour les autres
34/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
Commandes pour modier les rgles
Des commandes permettent de modifier les rgles de droits sur les fichiers :
chown : permet de changer le propritaire (utilisateur et groupe)
chgrp : permet de changer le groupe propritaire
chmod : permet de changer les droits
umask : permet d'indiquer les droits la cration
La commande chown
La commande chown permet de changer le propritaire d'un fichier et/ou d'un rpertoire et rcursivement
ce qu'il contient
La syntaxe : chown [OPTION][OWNER][:[GROUP]] FILE
La commande chgrp
La commande chgrp permet de changer le groupe d'un fichier et/ou d'un rpertoire et rcursivement ce
qu'il contient
La syntaxe : chgrp [OPTION][GROUP]] FILE
Conditions : tre le propritaire du fichier et tre membre du groupe auquel on veut donner le fichier
35/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
La commande chmod
La commande chmod permet de changer les droits sur les fichiers
Syntaxe : chmod [options] mode fichier
options : -R : modifier rcursivement les autorisations d'un rpertoire et son contenu
Le mode permet de spcifier les droits :
de manire symbolique (en utilisant les lettres r,w,x et les symboles +,-,=)
de manire numrique (en octal base 8)
Le mode est spcifi par : personne action droits
Personne
u : l'utilisateur propritaire
g : le groupe propritaire
o : les autres
a : tous les utilisateurs
Action
+ : ajouter
- : supprimer
= : initialiser
Droit
r : lecture
w : criture
x : excution
Exemple :
u+rwx : ajouter tous les droits au propritaire
og-w : enlever le droit d'criture aux autres
a=rx : donner le droit de lecture et excution tous (propritaire, groupe et autres)
g=rwx : accorder tous les droits au groupe
36/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
La commande chmod (suite)
Le mode est spcifi par un nombre en octal (base 8), dont les chiffres reprsentent (dans l'ordre de gauche
droite) :
les droits pour l'utilisateur propritaire du fichier
les droits pour le groupe propritaire du fichier
les droits pour tous les autres
Droits Binaire Octal
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
Exemples
700 : reprsente les droits rwx------
751 : reprsente les droits rwxr-x--x
640 : reprsente les droits rw-r-----
37/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
La commande chmod : Exercices
1 Interdire la lecture et l'accs au rpertoire RepertoireUn aux utilisateurs ne faisant pas partie du groupe
staff
2 Donner les droits d'criture au groupe sur le fichier fichierUn
3 Donner le droit d'excution sur le fichier fichierUn l'utilisateur propritaire
4 Prvoir les droits affichs par la commande ls -l aprs excution de ces commandes
5 Rcrire les commandes avec l'utilisation numrique de la commande chmod
38/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
La commande chmod : Correction
Mode symbolique
1 chmod o-rx RepertoireUn
2 chmod g+w fichierUn
3 chmod u+x fichierUn
Mode numrique
1 chmod 750 RepertoireUn
2 chmod 664 fichierUn
3 chmod 764 fichierUn
39/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation ISystme Unix
Systme de gestion de chiers
La commande umask
La commande umask
permet de spcifier des droits par dfaut lors de la cration des fichiers
utilise des masques sous forme numrique octale
sans paramtre : indique le masque courant
avec le masque en paramtre : modifie le masque courant
les droits obtenus sont le complmentaire de ceux indiqus par le masque
Exemple :
Droits 777 rwxrwxrwx 777 rwxrwxrwx
Masque 022 ----w--w- 227 -w--w-rwx
Droits obtenus 755 rwxr-xr-x 550 r-xr-x---
40/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Introduction bash
1 Introduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
Notions de systmes d'exploitation
Les principaux systmes d'exploitation
2 Systme Unix
Introduction au systme Unix
Commandes de base du Shell
Systme de gestion de chiers
3 Programmation Shell
Introduction bash
Les scripts Shell
4 Filtre programmable awk
Introduction
Expressions rgulires et commande egrep
Filtre programmable awk
41/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Introduction bash
Les diffrents Shells
Il existe plusieurs Shells UNIX :
C-Shell (csh ou tcsh)
Bourne Shell (sh ou bash)
Korn Shell (ksh), ....
L'interprtation des commandes simples est semblable pour tous
L'utilisation pour crire des scripts diffre beaucoup (dfinition des variables, structures de contrle, etc)
Initialisation d'un Shell
Lors de leur dmarrage,
les Shell excutent des fichiers de configuration, qui peuvent contenir des commandes quelconques et sont
gnralement utiliss pour dfinir des variables d'environnement et des alias
csh excute le fichier ~/.cshrc (le "rc" signifie run command)
tcsh excute ~/.cshrc
sh excute ~/.profile
bash excute ~/.bash_profile ou dfaut ~/.profile
les fichiers d'initialisation sont "invisibles"
42/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Introduction bash
Variables d'environnement
Elles sont instancies lorsqu'un Shell est excut par le systme
Ce sont des variables dynamiques utilises par les diffrents processus d'un systme d'exploitation
Elles donnent des informations sur le systme, la machine et l'utilisateur, entre autres
La commande set affiche l'cran toutes les variables d'environnement pour le Shell
VARIABLE=VALEUR : donne une valeur une variable
export VARIABLE : dfinit VARIABLE comme une variable d'environnement
echo $VARIABLE : affiche la valeur de la variable
43/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Introduction bash
Entre standard
attache au clavier
numro de descripteur 0
Sortie standard
attache l'cran
numro de descripteur 1
Erreur standard
attache l'cran
numro de descripteur 2
Redirections des entres/sorties
Il est possible de rediriger ces trois flux :
Redirection de la sortie standard : $ echo bonjour > test.txt
Concatnation pour prserver le contenu du fichier de sortie : $ cat < toto.txt >> FichierSortie
Redirection de l'erreur standard : $ ls abdnkjf 2> erreur.txt
Redirection de l'entre standard : $ bc < calcul.dat
Redirection de l'entre et de la sortie standard : $ bc < calcul.dat > resultat.txt
Exemple : $ ls abdnkjf > sortie.txt 2>&1 : La sortie de ls est enregistre dans le fichier
sortie.txt. L'erreur standard est redirige la sortie standard. Donc, l'erreur standard est galement
redirige au fichier sortie.txt
Pipe "|"
Brancher la sortie standard d'une commande l'entre standard d'une autre commande
Exemple : $ ls -l | sort -r (affiche le contenu du rpertoire courant tri l'envers)
44/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Introduction bash
Regroupement des commandes
Pour lancer l'excution squentielle de plusieurs commandes sur la mme ligne de commande, il suffit de les
sparer par un caractre ;
Exemple : $ cd /tmp ; pwd; echo bonjour; cd ; pwd
Excution squentielle d'une ligne de commandes par regroupement
(cmd1 ; cmd2) ; cmd3
(cmd1 ; cmd2) & cmd3
Les commandes regroups sont excutes dans un interprteur enfant (subshell)
Exemple : pwd ; (cd ..; pwd; cp user.txt test.txt; ls -l test.txt); pwd
Contrle des tches
le Shell attend la fin de l'excution d'une commande avant d'afficher le prompt suivant
L'excution en arrire-plan permet un utilisateur de lancer une commande et de rcuprer immdiatement
la main pour lancer "en parallle" la commande suivante (paralllisme logique)
On utilise le caractre & pour lancer une commande en arrire-plan
Exemple : $ sleep 100 &
La commande jobs affiche les commandes lances en arrire plan.
45/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
1 Introduction gnrale sur les systmes d'exploitation
Rappels sur le matriel
Notions de systmes d'exploitation
Les principaux systmes d'exploitation
2 Systme Unix
Introduction au systme Unix
Commandes de base du Shell
Systme de gestion de chiers
3 Programmation Shell
Introduction bash
Les scripts Shell
4 Filtre programmable awk
Introduction
Expressions rgulires et commande egrep
Filtre programmable awk
46/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Scripts
Les scripts sont des programmes crits dans un langage interprt, par exemple le langage du Shell
Un script peut tre une simple liste de commandes
La premire ligne du script doit prciser l'interprteur utilis, elle commence par les deux caractres #!,
suivis du chemin de l'interprteur.
Exemple :
#!/bin/bash
# liste
echo "Contenu du repertoire courant"
ls -l
echo "-----------------------------"
La deuxime ligne est un commentaire
Le fichier contenant ces commandes doit tre rendu excutable : $ chmod u+x liste
47/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Variables
Les variables du Shell sont des symboles auxquels on affecte des valeurs
Une variable est identifie par son nom
Le contenu de la variable est identifi par le symbole $ plac devant le nom
Exemple : Affichage en utilisant la commande echo
$ VARIABLE=VALEUR
$ echo $VARIABLE
VALEUR
Substitution: variables
Bash ralisera la substitution du contenu d'une variable lorsqu'il rencontre $ suivi d'un nom de variable
Deux comportements possibles :
Substitution vide : La variable n'est pas dfinie ou la variable est dfinie mais son contenu est vide
Substitution du contenu : La variable est dfinie et son contenu est non nul
Exemple 1 :
$ MSG1="Jean est un "
$ MSG2="chien fort rput"
$ echo "$MSG1 $METIER $MSG2"
Jean est un chien fort rput
Exemple 2 :
$ MSG1="Jean est un "
$ MSG2="chien fort rput"
$ METIER="dresseur de"
$ echo "$MSG1 $METIER $MSG2"
Jean est un dresseur de chien fort rput
48/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Substitution: commandes
Bash est en mesure de substituer le rsultat d'une ligne de commandes UNIX
Le symbole impliqu dans ce genre de substitution est l'accent grave ( `)
Exemple :
$ echo pwd
pwd
$ echo `pwd`
/Users/Hicham/Desktop
$ echo "Mon rpertoire de travail est: `pwd`"
Mon rpertoire de travail est: /Users/Hicham/Desktop
Il est possible d'assigner le rsultat d'une ligne de commande UNIX une variable
Exemple :
$ REPERTOIRE=`pwd`
$ JESUIS=`who am i`
$ MACHINE=`hostname`
$ echo -e "Utilisateur: $JESUIS\n Rpertoire de travail: $REPERTOIRE\n\
> Machine: $MACHINE"
Utilisateur: Hicham ttys000 Feb 24 22:46
Rpertoire de travail: /Users/Hicham/Desktop
Machine: MacBookPro.local
49/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Neutralisation des caractres
Certains caractres ont des significations particulires pour l'interprteur de commandes
Par exemple : &, (, ), *, !, {, }, etc.
Sans un mcanisme d'chappement, ces caractres spciaux seront interprts par Bash
Les commandes et programmes qui utilisent ces caractres spciaux ne pourront pas s'excuter correctement
D'o la ncessit de neutraliser la signification particulire de ces caractres spciaux pour Bash
Exemple : Nous dsirons afficher la chane de caractres "TOTO & TATA"
$ echo TOTO & TATA
[1] 2527
TOTO
-bash: TATA: command not found
$ echo TOTO \& TATA
TOTO & TATA
Donc, le symbole \permet la neutralisation du caractre qui le suit
Nous pouvons neutraliser la signification spciale du caractre Espace par les symboles "" et ' '
Le guillemet : limine la signification spciale du caractre Espace mais permet la substitution des variables
et commandes
L'apostrophe : limine la signification spciale du caractre Espace et empche la substitution des variables et
commandes
50/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Paramtres de Bash
Paramtres de position : $ cmd par1 par2 par3 par4
Dans un programme Bash, le contenu de ces paramtres de position est reprsent par : $1, $2, $3 jusqu'
$9
Le nom du fichier (cmd) est reprsent par $0
Exemple de paramtres de position l'aide d'un programme Bash
#!/bin/bash
# Nom du fichier param
# param : montrer l'utilisation des parametres Bourne shell
# Lancer le fichier de commande : param -A -B -C
echo "Numero PID de l'interpreteur de commande: $$"
echo "Nom du fichier de commande: $0"
echo "Nombre de parametres: $#"
echo "Parametre 1: $1"
echo "Parametre 2: $2"
echo "Parametre 3: $3"
echo "Parametre 4: $4"
echo "Toute la ligne de commande: $@"
51/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Lecture et afchage
La commande read ralise la lecture partir de l'entre standard : $ read var1 var2 var3
Lecture de l'entre standard et placer les donnes dans les variables var1, var2 et var3.
La sparation des donnes d'entre en champs est ralise par Bash l'aide de la variable IFS (Internal Field
Separator)
Exemple : voici une-ligne de donnes (Il existe 4 champs)
La lecture est ralise partir de l'entre standard
Les donnes lues sont places dans trois variables (REPERTOIRE1, REPERTOIRE2 et REPERTOIRE3)
Le programme termin son excution par l'affichage des donnes lues
Exemple d'utilisation de read
#!/bin/bash
# nom du fichier: lecture
# lecture : montrer comment lire des donnes partir de l'entre standard
echo -e "Les repertoires de l'installation? \c"
read REPERTOIRE1 REPERTOIRE2 REPERTOIRE3
echo "Merci !"
echo -e "L'entree lue : $REPERTOIRE1\n $REPERTOIRE2\n $REPERTOIRE3"
52/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Dcalage de paramtres : shift
La commande shift agit sur les paramtres de position du Bash
A chaque emploi de shift
le paramtre $1 prcdent est perdu
$1 est supprim de $* et $@
$# est dcrment de 1
L'emploi de shift ncessite que le Shell script ait au moins un paramtre
Exemple d'utilisation de shift
#!/bin/bash
echo "$# : arg1 = $1, arg2 = $2; total : $@"
shift
echo "$# : arg1 = $1, arg2 = $2; total : $@"
shift
echo "$# : arg1 = $1, arg2 = $2; total : $@"
shift
echo "$# : arg1 = $1, arg2 = $2; total : $@"
shift
exit 0
53/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Commandes de test : test, [ ]
Permet d'valuer une expression.
Si vrai, renvoie 0 (true), sinon, renvoie 1 (false)
S'il n'y a pas d'expression, renvoie 1
test expression est quivalent [ expression ]
Test sur chiers, rpertoires et chanes
Expression vrai si :
-e fic fic existe
-d fic fic existe et est un rpertoire
-f fic fic existe et est un fichier ordinaire
-h fic fic existe et est un lien symbolique
-s fic fic existe et est non vide
-r fic fic existe et est autoris en lecture
-w fic fic existe et est autoris en criture
-x fic fic existe et est autoris en excution
ch1 = ch2 les deux chanes sont identiques
ch1 != ch2 les deux chanes sont diffrentes
Test sur nombres et oprations logiques sur lesexpressions
Expression vrai si :
n1 eq n2 n1 = n2
n1 -ne n2 n1 n2
n1 -le n2 n1 n2
n1 -ge n2 n1 n2
n1 -lt n2 n1 < n2
n1 -gt n2 n1 > n2
! exp1 exp1 est fausse
exp1 -a exp2 exp1 et exp2 vraies
exp1 -o exp2 exp1 ou exp2 est vraie
54/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Branchement conditionnel : if-then-elif-else-fi
Syntaxe
if liste-commandes-1
then liste-commandes-2
elif liste-commandes-3 autant de fois que ncessaireelse liste-commandes-4 si ncessairefi
La condition (boolenne) est en gnral le code de retour d'une commande UNIX
Le code de retour de la commande dtermine le test if :
Code de retour valant zro : Le test if est vrai.
Code de retour non nul : Le test if est faux
Exemple 1
#!/bin/bash
if [ -d toto ] ; then
echo "toto est un rpertoire"
elif [ -h toto ] ; then
echo "toto est un lien symbolique"
else
echo "autre que rpertoire ou lien"
fi
Exemple 2
#!/bin/bash
if ls toto > /dev/null 2>&1
then
echo "le fichier toto existe"
else
echo "le fichier toto n'existe pas"
fi
55/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Branchement conditionnel : if-then-elif-else-fi : Exemple 3
#!/bin/bash
# Mot secret
#
# Ce programme demande l'utilisateur de deviner un mot.
SECRET_WORD="SMI"
echo "Votre nom ?"
read NAME
echo
echo "Bonjour $NAME. Devinez un mot."
echo -e "Vous avez le choix entre : SMA, SMI et SMP : \c"
read GUESS
if [ $GUESS=$SECRET_WORD ]
then
echo "Congratulations !"
fi
56/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Branchement conditionnel : case-esac
Syntaxe
case expression in
motif ) liste-commandes-1 ;; autant de fois
*) liste-commandes-2 ;;
esac
Excute la liste-commandes suivant le motif (pattern en anglais) reconnu
Le motif reconnaitre peut s'exprimer sous forme d'expression rationnelle (ou rgulire) utilisant les
mta-caractres : * ? [ ] -
Exemple 1
#!/bin/bash
case $1 in
[Yy][eE][sS] | [oO][uU][iI]) echo "affirmatif" ;;
[Nn][oO] | [Nn][Oo][Nn]) echo "ngatif" ;;
yesno) echo "dcide-toi" ;;
*) echo "quelle rponse!" ;;
esac
57/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
case-esac : Exemple 2
#!/bin/bash
# traiter les options d'une commande ; utiliser case esac pour traiter les options
if [ $# = 0 ]
then
echo "Usage : casesac t q l NomFich"
exit 1
fi
for option
do
case "$option" in
-t) echo "option t recu" ;;
-q) echo "option q recu" ;;
-l) echo "option l recu" ;;
[!-]*) if [ -f $option ]
then
echo "fichier $option trouve"
else
echo "fichier $option introuvable"
fi
;;
*) echo "option inconnue $option recontree"
esac
done
58/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Boucle for-do-done
Syntaxe
for variable in liste-de-mots
do
liste-commandes
done
La variable prend successivement les valeurs de la liste de mots, et pour chaque valeur, liste-commandes
est excute
Exemple 1
#!/bin/bash
for i in un deux trois quatre cinq six
do
echo "Semestre $i"
done
Exemple 2
#!/bin/bash
for i in ~/Desktop/*.pdf
do
echo $i
done
59/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Boucle for-do-done : Exemple 3
#!/bin/bash
# Checkfile. Informations sur des fichiers
for file in $@
do
if [ -d $file ]
then # Test file type
echo "$file est un rpertoire"
elif [ -f $file ]
then
echo "$file est rgulier"
if [ -s $file ]
then
echo "$file n'est pas vide"
else
echo "$file est vide"
fi
else
echo "$file non trouv"
fi
Exemple 3 (Suite)
if [ -0 $file ] # check ownership
then
echo "Propritaire de $file"
else
echo "Pas propritaire de $file"
fi
if [ -r $file ] # check permissions
then
echo "Droit de lecture sur $file"
fi
if [ -w $file]
then
echo "Droit d'criture sur $file"
fi
if [ -x $file ]
then
echo "Droit d'excution sur $file"
fi
done
60/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
L'instruction select-do-done
Syntaxe
select variable in liste-de-mots
do
liste-commandes
done
Permet l'utilisateur de slectionner une variable parmi une liste de mots. liste-commandes est excute
L'instruction select gnre un menu partir de liste-de-mots et demande l'utilisateur de faire un
choix
Exemple 1
#!/bin/bash
echo "Quel est votre OS prfr ?"
select var in "Linux" "Mac OS X" "Other"
do
echo "Vous avez slectionn $var"
if [ "$var" = "Other" ]
then
break
fi
done
Exemple 2
#!/bin/bash
PS3="Que voulez vous ? "
select ch in "1er" "2eme" "Abandon" ; do
case $ch in
1) echo "Cst du $ch choix" ;;
2) echo "Que du $ch choix" ;;
3) echo "On abandonne ..." ; break ;;
*) echo "Choix invalide" ;;
esac
done
61/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Boucle while-do-done
Syntaxe
while liste-commandes-1
do
liste-commandes-2
done
La valeur teste par la commande while est l'tat de sortie de la dernire commande de
liste-commandes-1
Si l'tat de sortie est 0, alors le Shell excute liste-commandes-2 puis recommence la boucle
Exemple 1
#!/bin/bash
echo -e "Devinez le mot secret : SMI, SMA, SMP : \c"
read GUESS
while [ $GUESS != "SMI" ]
do
echo -e "Ce n\st pas $GUESS, devinez : \c"
read GUESS
done
echo "Bravo"
Exemple 2
#!/bin/bash
compteur=5
while [ $compt -ge 0 ]
do
echo $compt
compt=`expr $compt - 1`
done
62/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Boucle until-do-done
Syntaxe
until liste-commandes-1
do
liste-commandes-2
done
Le Shell teste l'tat de sortie de liste-commandes-1
Si l'tat de sortie est 1, alors, liste-commandes-2 est excute puis la boucle est recommence
Exemple 1
#!/bin/bash
echo -e "Devinez le mot secret : SMI, SMA, SMP : \c"
read GUESS
until [ $GUESS = "SMI" ]
do
echo "Ce n\st pas $GUESS, devinez encore : \c"
read GUESS
done
echo "Bravo."
Exemple 2
#!/bin/bash
compt=5
until [ $compt -lt 0 ]
do
echo $compt
compt=`expr $compt - 1`
done
63/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Fonctions Bourne Shell
Nous pouvons rendre la programmation plus structure en utilisant des fonctions
La syntaxe est :
NomDeFonction ( ){
commandes
}
Dfinition des fonctions Bourne shell : au dbut du fichier de commande
Prend prsance sur les commandes systmes de mme nom
Peut avoir une valeur de retour : exit n o n est une valeur numrique (=0 : OK, 0 (et
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Exemple 2 : Fonctions Bourne Shell
#!/bin/sh
repertoire () {
echo "Entrer un nom de repertoire: \c"
read REPERTOIRE
if [ -d "$REPERTOIRE" ]
then
return 0 # repertoire existe
else
return 101 # repertoire inexistant
fi
}
gestion_erreur () {
case $ERRNO in
0) ;; # pas d'erreur
101) echo "Rpertoire inexistant" ;;
*) echo "Code d'erreur inconnu"
exit 1 ;;
esac
}
Exemple 2 (suite)
# Programme principal
ERRNO=123
while [ $ERRNO -ne 0 ]
do
# statut de sortie de repertoire ()
# assign ERRNO
repertoire; ERRNO=$?
# invoquer le gestionnaire d'erreur
gestion_erreur
done
65/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Diffrence entre "$@" et "$*"
Lorsque utilis entre guillemet, la variable $@ et la variable $* n'ont pas la mme signification
Pour "$@" l'interprteur de commandes substitue les paramtres de position en leur entourant par des
guillemets
Ce n'est pas le cas pour "$*"
Exemple : Diffrence entre "$@" et "$*"
#!/bin/bash
# Nom fichier : exemple_arobase.sh
echo "Utilisation de \$*"
for OPTION in "$*"
do
echo "Itration : $OPTION"
done
echo "Utilisation de \$@"
for OPTION in "$@"
do
echo "Itration : $OPTION"
done
Rsultat de l'excution
$ ./exemple_arobase.sh un deux troix quatre
Utilisation de $*
Itration : un deux troix quatre
Utilisation de $@
Itration : un
Itration : deux
Itration : troix
Itration : quatre
Le rsultat n'est pas le mme !
Pensez utiliser "$@" dans vos programmes Bash
66/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Dcodage des paramtres
Il existe une commande simple pour le dcodage systmatique des paramtres de position
Il s'agit de la commande getopts
La syntaxe de cette commande : getopts optstring name [arg ]
optstring reprsente les options reconnatre par getopts
name les options reconnues par getopts sont places dans cette variable
arg s'il existe, getopts va tenter d'extraire les options partir de cet argument
Exemple 1 (getopts)
#!/bin/sh
while getopts lq OPT
do
case "$OPT" in
l) echo "OPTION $OPT reue" ;;
q) echo "OPTION $OPT reue" ;;
?) echo "Usage: install [-lq]" ; exit 1 ;;
esac
echo "Valeur de \$OPTIND: $OPTIND"
done
Rsultat de l'excution
$ install_lq -l
OPTION l reue
Valeur de $OPTIND: 2
$ install_lq -l -q
OPTION l reue
Valeur de $OPTIND: 2
OPTION q reue
Valeur de $OPTIND: 3
$ install_lq -x
./install_lq : option incorrecte -- x
Usage: install [-lq]
67/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Exemple 2 (getopts)
#!/bin/sh
while getopts l:q OPT
do
case "$OPT" in
l) OPTION="$OPT"
LOGARG="$OPTARG" ; echo "OPTION $OPT reue; son argument est $LOGARG" ;;
q) OPTION="$OPT" ; echo "OPTION $OPT reue" ;;
?) echo "Option invalide dtecte"
echo "Usage: install [-l logfile -q] [nom_repertoire]"
exit 1 ;;
esac
echo "Valeur de \$OPTIND: $OPTIND"
done
# Chercher le paramtre nom_repertoire
shift `expr $OPTIND - 1`
if [ "$1" ]
then
REPERTOIRE="$1"
echo "Rpertoire d'installation: $REPERTOIRE"
fi
68/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I
-
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Systmes d'exploitation IProgrammation Shell
Les scripts Shell
Dbogage de Script Shell
Pour simplifier la recherche des erreurs dans un programme Bourne Shell :
Utiliser la commande set pour activer les modes de dbogage
Les options disponibles sont :
-n : Lire les commandes mais ne pas les excuter (Vrifie les erreurs de syntaxe sans excuter le
script)
-v : Affiche les lignes lues du programme lors de son excution
-x : Afficher les commandes et les substitutions lors de leur excution
Exemple
#!/bin/sh
# settest : montrer l'utilisation des options de set pour le dbogage
# Utiliser l'option v (affiche les commandes et leur argument)
set -x
pwd
ls -l
echo `who`
69/90 Pr. Hicham Laanaya [email protected] Systmes d'exploitation I