49
Syst ` eme d’exploitation Jean-S ´ ebastien Coron [email protected] Universit ´ e du Luxembourg

Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Syst eme d’exploitation

Jean-Sebastien Coron

[email protected]

Universite du Luxembourg

Page 2: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Système d’exploitation

� Enseignement :� Professeur: Jean-Sébastien Coron.

� But du cours :� Approfondir la connaissance des systèmes

d’exploitation.� Continuer à se familiariser avec UNIX.

� Environnement de programmation :� PC sous Windows avec Cygwin (environnement

linux).� Compilateur gcc.

03/10/05 2/49 Syst eme d’exploitation

Page 3: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Système d’exploitation

� Deux catégories de logiciels.� Les programmes systèmes qui s’occupent du

fonctionnement de l’ordinateur.� Les programmes d’applications qui rendent

service aux utilisateurs.X Lecture du courrier, traitement de texte, jeux.

� Système d’exploitation: programme fondamentaldes programmes systèmes.� Contrôle les ressources systèmes.� Fournit les bases des programmes d’application.

03/10/05 3/49 Syst eme d’exploitation

Page 4: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Deux fonctions

� Machine virtuelle.� Masquer les éléments fastidieux du matériel pour

fournir une interface simple à utiliser.� Permettre à plusieurs programme de fonctionner

en même temps, chaque programme ayant sapropre machine virtuelle. Le systèmed’exploitation permet de maintenir cette illusion.

� Gestionnaire de ressource.� Ordonnancer et controler l’allocation des

ressources.� Processeur, mémoire, périphériques.

03/10/05 4/49 Syst eme d’exploitation

Page 5: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Introduction à UNIX

� UNIX est un système d’exploitation multi-tache etmulti-utilisateur.� Permet à un ordinateur mono ou

multi-processeurs de faire exécutersimultanément plusieurs programmes par un ouplusieurs utilisateurs.

� Caractéristiques :� Fichiers.� Processus.� Droits d’accès.

03/10/05 5/49 Syst eme d’exploitation

Page 6: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Caractéristique

� Fichier:� Unité élémentaire de gestion des ressources.

Utilisé pour le stockage des données surdisque-dur et pour la gestion des entrées/sorties.

� Processus� Programme possédant son propre espace

d’adressage mémoire. Partage des ressourcesentre les processus.

� Droits d’accès:� Chaque ressource admet un ensemble de droits

d’accés.

03/10/05 6/49 Syst eme d’exploitation

Page 7: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Linux

� Système d’exploitation de type UNIX pour PC, créépar Linus Torvalds et un grand nombre dedéveloppeurs bénévoles

� Logiciel libre.

� Composants:� Noyau: coeur du système, fournit aux logiciels

une interface pour utiliser le matériel.� Interface de commande Bash, compilateur GCC,

éditeur Emacs.� Interface graphique: système X window.

03/10/05 7/49 Syst eme d’exploitation

Page 8: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Caractéristique du noyau

� Multi-tache et multi-utilisateur.� Plusieurs utilisateurs peuvent travailler en même

temps. Chaque utilisateur peut exécuter plusieurstaches en même temps.

� Tache: programme s’exécutant dans unenvironnement spécifique.

� Certaines tachent peuvent communiquer entreelles.

� Système de fichier arborescent.� Arborescence unique de fichier, même avec

plusieurs disques.

03/10/05 8/49 Syst eme d’exploitation

Page 9: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Cygwin

� Cygwin fournit un environnement proche de Linux,sous Windows.� Gratuitement disponible à www.cygwin.com.� Evite d’installer et configurer Linux sur une

machine.

� Lancer Cygwin.� Cliquer sur le raccourci Cygwin dans le bureau.� Taper startx.

03/10/05 9/49 Syst eme d’exploitation

Page 10: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Syntaxe d’une commande UNIX

� Commande [option] [argument]� Une commande peut comprendre des options qui

modifient son comportement.� Elle peut comprendre des arguments (par

exemple nom de fichier).� Exemple: ls -l fichier donne des

informations plus longues sur fichier.

� Format de [option]: -l [arg]� L’option peut aussi avoir un argument, qui est

facultatif.

03/10/05 10/49 Syst eme d’exploitation

Page 11: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Structure des fichiers UNIX

� Organisé en une arborescence avec racine unique:le répertoire racine /.

� Spécifier une location:� Chemin absolu: /home/enseign/cours/� Chemin relatif à partir du répertoire courant.X "." Répertoire courant.X ".." Répertoire parent.X Exemple: pour accéder à

/home/enseign/cours/premier depuis/home/enseign/exo, on utilise../cours/premier.

03/10/05 11/49 Syst eme d’exploitation

Page 12: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Manipulation de fichiers

� pwd, cd, ls, ls -l, ls -a -l.

� Informations sur un fichier:� drwxrwxrwx 2 Administ None 4096 May 9 10:52 www

� d: type de fichier. d=directory, -=fichier, l=lien.� rwxrwxrwx: permissions.� 2: liens sur ce fichier.� Administ: propriétaire.� None: groupe.� 4096: taille du fichier.� May 9 10:52: date de dernière modification.� www: nom du fichier ou répertoire.

03/10/05 12/49 Syst eme d’exploitation

Page 13: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Autres commandes

� mkdir: création d’un répertoire.

� rmdir: suppression d’un répertoire.

� cp source destination: copie d’un fichier.

� mv source destination: renommer ou déplacerun fichier.

� rm: supprimer un fichier.

� cat: affiche le contenu d’un fichier.

� more, less: affiche le contenu d’un fichier avec despauses.

03/10/05 13/49 Syst eme d’exploitation

Page 14: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Spécifier plusieurs fichiers

� On utilise des méta-caractères:� ? : remplace un seul caractère.� * : remplace zéro, un ou plusieurs caractères.� [ ] : remplace un des caractères dans [].

� Exemple:� * : tous les fichiers.� *.* : tous les fichiers avec un ".".� ?are? : tous les fichiers de 5 caractères avecare au milieu

� [m-z]* : tous les fichiers commançant par unelettre entre m et z.

03/10/05 14/49 Syst eme d’exploitation

Page 15: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Exemple

� Afficher tous les fichiers du répertoire courant:� $ ls *fich1.c fich2.c prog.c toto.txt

� Afficher tous les fichiers qui se terminent par .c.� $ ls *.cfich1.c fich2.c prog.c

� Afficher tous les fichiers qui commencent par fich� $ ls fich*fich1.c fich2.c

03/10/05 15/49 Syst eme d’exploitation

Page 16: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Les permissions de fichier

� Chaque fichier UNIX a trois types de permission quidéterminent ce que l’on peut faire avec.

� Lecture:� Fichier: l’utilisateur peut lire le contenu du fichier� Répertoire: l’utilisateur peut avoir la liste des

fichiers dans le répertoire.

� Ecriture:� Fichier: l’utilisateur peut modifier le contenu du

fichier.� Répertoire: l’utilisateur peut créer ou supprimer

des fichiers du répertoire.

03/10/05 16/49 Syst eme d’exploitation

Page 17: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Les permissions de fichier

� Exécution:� Fichier: l’utilisateur peut exécuter le fichier.� Répertoire: l’utilisateur peut se déplacer dans le

répertoire.

� 3 catégories d’utilisateur.� L’utilisateur qui possède le fichier.� Le groupe auquel appartient le fichier.� Tous les autres utilisateurs.

03/10/05 17/49 Syst eme d’exploitation

Page 18: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Les permissions de fichier

� Sructure:� rwxrwxrwx pour utilisateur, groupe, autre.

� Exemple:� -rw-r----- 1 dupond User 9 Oct 14 10:00 toto

� Le fichier toto appartient à l’utilisateur dupond etau group User.

� L’utilisateur dupond peut lire et modifier le fichier.� Le group User peut lire le fichier mais pas le

modifier.� Les autres utilisateurs ne peuvent ni lire ni

modifier le fichier.

03/10/05 18/49 Syst eme d’exploitation

Page 19: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Commandes de permissions

� Seul le propriétaire d’un fichier ou l’administrateurpeuvent modifier les permissions.

� La commande chmod permet de modifier lespermissions d’un fichier.� chmod options files.

� chown permet de changer le propriétaire d’unfichier.

� chgrp permet de changer le groupe auquelappartient un fichier.

03/10/05 19/49 Syst eme d’exploitation

Page 20: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Processus

� Un processus est un programme qui s’exécute.� Ex: quand on lance un utilitaire système ou un

programme d’application, le shell créé unnouveau processus.

� Identifiés par un numéro unique appelé PID.

03/10/05 20/49 Syst eme d’exploitation

Page 21: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Redirection entrées/sorties

� Par défaut, une commande écrit dans la sortiestandard (l’écran) et prend en entrée l’entréestandard (le clavier).

� On peut rediriger la sortie d’une commande dans unfichier.� Exemple: ls -l > liste. Stocke dans le

fichier liste la liste des fichiers.

� Pour écrire à la fin d’un fichier, on utilise >>

� ls >> liste.

03/10/05 21/49 Syst eme d’exploitation

Page 22: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Redirection entrées/sorties

� On peut rediriger l’entrée d’une commande à partird’un fichier:� cat < input: la commande lit le fichier input

et l’imprime, au lieu de lire le clavier.

� On peut rediriger l’entrée et la sortie en mêmetemps:� cat < input > output

03/10/05 22/49 Syst eme d’exploitation

Page 23: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Les pipes

� On peut rediriger la sortie d’un processus versl’entrée d’un autre avec l’opérateur pipe ’|’.� Les processus s’exécutent en parallèles.

� Permet de combiner plusieurs commandes pourobtenir de fonctions plus élaborées.� cat hello.txt | sort | uniq. Afficher les

lignes de hello.txt triées en éliminant les lignesidentiques.

� ls | sort -r. Affiche les fichier d’un répertoiretrié à l’envers.

03/10/05 23/49 Syst eme d’exploitation

Page 24: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Contrôle des processus

� Le shell permet de contrôler les processus quis’exécutent.

� Un processus s’exécute soit en foreground, soit enbackground.

� Foreground.� Le processus reçoit les commandes du clavier et

renvoie sa sortie à l’écran.� Un seul processus en foreground par shell.� Peut être suspendu avec Ctrl-Z.� Relancé en foreground par fg, en background

par bg.� Définitivement interrompu en tapant Ctrl-C.

03/10/05 24/49 Syst eme d’exploitation

Page 25: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Contrôle des processus

� Exécution d’un processus en background:� On utilise le caractère &.$ find -name hello.txt &[1] 2812$

� Cherche un fichier nommé hello.txt dans lerépertoire courant.

� Le processus s’exécute en tache de fond.� 1 représente le numéro du processus s’exécutant

en background. 2812 représente son PID.

� jobs permet d’avoir la liste de tous les processusen background.

03/10/05 25/49 Syst eme d’exploitation

Page 26: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Affichage des processus

� La commande ps permet d’avoir la liste desprocessus qui s’exécutent sur la machine.$ ps

PID TTY TIME CMD2653 con 00:01:03 bash3672 0 00:00:05 find3687 0 00:00:00 ps

� Pour stopper un process, on utilise la commandekill.� kill 3672 stoppe l’exécution de la commandefind.

03/10/05 26/49 Syst eme d’exploitation

Page 27: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Les variables shell

� Une variable est une donnée identifiée par un nom.

� On accède au contenu d’une variable en ajoutant $.$ var=’hello world’

$ echo $var

hello world

� Pour qu’une variable soit visible en dehors du shell,il faut l’exporter vers l’environnement.� export var.� Exemple: la variable PAGER est utilisée par man

pour déterminer comment afficher le texte.X export PAGER=cat: tout s’affiche à la fois.X export PAGER=less: page par page.

03/10/05 27/49 Syst eme d’exploitation

Page 28: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Les scripts shell

� Un script shell est un fichier texte contenant descommandes du shell.

� Permet l’automatisation des taches.

03/10/05 28/49 Syst eme d’exploitation

Page 29: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Un script simple

� Soit le script suivant dans le fichier simple

#!/bin/sh# commentaireecho "Le nombre d’argument est $#"echo "Les arguments sont $*"echo "Le premier est $1"echo "Le numéro du process est $$"echo "Entrez un nombre:"read nombreecho "Le nombre entré est $nombre"

� Pour exécuter le script, il faut rendre le fichiersimple exécutable (chmod).

03/10/05 29/49 Syst eme d’exploitation

Page 30: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Evaluation des variables

� Le shell substitue les valeurs des variables dans untexte avant son évaluation.

� Pour modifier l’évaluation, on peut utiliser "" ou ”.

� Les guillemets "":� Permet de grouper des mots, sans supprimer le

remplacement des variables.� x=hello worldworld: command not found.

� x="hello world" est correct.� y="phrase=$x"; echo $yphrase=hello world.

03/10/05 30/49 Syst eme d’exploitation

Page 31: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Les quotes ’ ’

� Les quotes ’ ’� Groupent les mots et suppriment toute évaluation.� z=’phrase=$x’;echo $zphrase=$x

03/10/05 31/49 Syst eme d’exploitation

Page 32: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Evaluation des commandes

� Les back-quotes (‘) permettent de stocker le résultatd’une commande dans une variable.� $ x=‘ls‘$ echo $xfich1 fich2

� Equivalent: $ x=$(ls)

03/10/05 32/49 Syst eme d’exploitation

Page 33: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Découpage des chaines

� Les caractères ## permettent d’éliminer la plusgrande chaîne en correspondance avec le motif, enpartant du début.� $ x=’babar’$ echo ${x##*ba}r

� $ y=’hello.txt’$ echo ${y##*.}txt

� Le caractère # élimine la plus courte.� $ x=’babar’$ echo ${x##*ba}bar

03/10/05 33/49 Syst eme d’exploitation

Page 34: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Découpage des chaînes

� % élimine la plus courte correspondance en partantde la fin, et %% élimine la plus longue.� $ y=’hello.tar.gz’echo ${y%.*}hello.tar

� $ y=’hello.tar.gz’echo ${y%%.*}hello

03/10/05 34/49 Syst eme d’exploitation

Page 35: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Découpage des chaînes

� ${string:position}: extrait la sous-chaîne destring à partir de $position.� $ y=’bonjour’echo ${y:3}jour

� ${string:position:length}: extrait $lengthcaractères de la sous-chaîne de string à partir de$position.� $ y=’bonjour’echo ${y:3:2}jo

03/10/05 35/49 Syst eme d’exploitation

Page 36: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

La commande cut

� La commande cut

� Permet de sélectionner certaines parties deslignes d’un fichier ou de l’entrée standard (siaucun fichier n’est précisé).

� cut [-c] [-f] list [-n] [-d delim][-s] [file]

� Options:� -c list: spécifie les caractères à sélectionner.X -c2-5 sélectionne les caratères 2 à 5 de

chaque ligne.

03/10/05 36/49 Syst eme d’exploitation

Page 37: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

La commande cut

� Options:� -f list: sélectionne pour chaque ligne les

champs spécifiés, les champs étant délimités parun caractère délimiteur.

X -f1,5 sélectionne les champs 1 et 5.� -d delim: spécifie le caractère délimiteur.� -s: supprime les lignes sans caractère délimiteur.

� list:� Liste de nombres séparés par une virgule, avec -

pour indiquer un intervalle.� 1,2,3,5 ou 1-3,5

03/10/05 37/49 Syst eme d’exploitation

Page 38: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Exemples

� Exemples:� $ echo "hello" | cut -c 2-4ell

� $ echo "he ll o wo" | cut -f2,3 -d’ ’ll o

03/10/05 38/49 Syst eme d’exploitation

Page 39: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Execution conditionnelle

� Il est possible d’exécuter une suite d’instruction sousune certaine condition.� if [ test ]then

commande-si-vraielse

commande-si-fauxfi

� Le test peut être une condition sur un fichier, ou unecomparaison de chaine ou de valeur.� Ne pas oublier les espaces dans if [ test ]then

03/10/05 39/49 Syst eme d’exploitation

Page 40: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Conditions sur les fichiers

� [ -s file ]: vrai si le fichier existe et est nonvide.

� [ -f file ]: vrai si c’est un fichier ordinaire.

� [ -d file ]: vrai si c’est un répertoire.

� [ -r file ]: vrai si le fichier est libre en lecture.

� [ -w file ]: vrai si le fichier est libre en écriture.

� [ -x file ]: vrai si le fichier est exécutable.

03/10/05 40/49 Syst eme d’exploitation

Page 41: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Example

� Afficher le contenu d’un fichier s’il existe.� #/bin/bashif [ -f $1 ]then

cat $1fi

� Créer un répertoire toto s’il n’existe pas déjà.� #/bin/bashif [ ! -d toto ]then

mkdir totofi

03/10/05 41/49 Syst eme d’exploitation

Page 42: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Comparison de valeurs et chaines

� Entiers� [ $X -eq $y ]: vrai si X=Y.� [ $X -ne $Y ]: vrai si X<>Y.� [ $X -lt $Y ]: vrai si X<Y.� [ $X -le $Y ]: vrai si X<=Y.

� Chaîne:� [ "$A" = "$B" ]: vrai si chaine A = chaine B.� [ "$A" != "$B" ]: vrai si chaine A <> chaine

B.

03/10/05 42/49 Syst eme d’exploitation

Page 43: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Exemple

� Script pos déterminant si un nombre est positif.� #/bin/bashif [ $1 -gt 0 ]thenecho "$1 est positif"

� $ pos 22 est positif

03/10/05 43/49 Syst eme d’exploitation

Page 44: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Exemple

� Script quitter demandant si l’utisateur veut quitter.� #/bin/bashecho "Voulez vous quitter ?"read repif [ "$rep" = y ]then

echo "exiting..."exit 0

fi

� $ quitterVoulez-vous quitter ?yexiting...$03/10/05 44/49 Syst eme d’exploitation

Page 45: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Exemple

� Script fichtxt déterminant si un fichier al’extension .txt� #!/bin/bashif [ "${1##*.}" = "txt" ]then

echo $1 est un fichier .txtelse

echo $1 n’est pas un fichier .txtfi

� $ fichtxt toto.txttoto.txt est un fichier .txt

03/10/05 45/49 Syst eme d’exploitation

Page 46: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Combinaison de tests

� Expressions:� [ $E -a $F ]: vrai si les expressions E et F

sont vraies.� [ $E -o $F ]: vrai si E ou F est vraie.

� Example: script demandant une valeur en 0 et 100.� #/bin/bashif [ \( $1 -gt 100 \) -o \( $1 -lt 0\) ]then

echo "out of range"fi

03/10/05 46/49 Syst eme d’exploitation

Page 47: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Boucle for

� La boucle for permet d’exécuter une suited’instruction avec une variable parcourant une suitede valeurs.� for variable in listdo

statementdone

� La liste peut être un ensemble de fichier.� for x in *.txtdo

statementdone

03/10/05 47/49 Syst eme d’exploitation

Page 48: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Boucle for

� Exemple:� Le script:for x in chien chat canarddo

echo "x=$x"done

� Affiche:x=chienx=chatx=canard

03/10/05 48/49 Syst eme d’exploitation

Page 49: Systeme d’exploitation`Système d’exploitation Deux catégories de logiciels. Les programmes systèmes qui s’occupent du fonctionnement de l’ordinateur. Les programmes d’applications

Traitement de fichier

� La boucle for permet d’appliquer la même suited’instruction à un ensemble de fichiers:� for fichier in *do

if [ -d "$fichier" ]then

echo "$fichier: rpertoire"fi

done

� Affiche la liste des répertoires dans le répertoirecourant.

03/10/05 49/49 Syst eme d’exploitation