1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D.,...
-
Upload
fiacre-henri -
Category
Documents
-
view
102 -
download
0
Transcript of 1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D.,...
1
GPA435 Systèmes GPA435 Systèmes d’exploitation et d’exploitation et programmation de programmation de systèmesystème
Copyright, 2000 © Tony Wong, Ph.D., ing.
Chapitre 5Interpréteur de commande,
Bourne shell, E/S standard, tuyauxséparation et regroupement
des commandes
Université du Québec
École de technologie supérieureDépartem ent de génie de la production autom atisée
2
Interpréteur de Interpréteur de commandescommandes
Bourne shell:Bourne shell:
•créé par Steve Bourne;créé par Steve Bourne;
•interpréteur par défaut de nombreux interpréteur par défaut de nombreux système UNIX.système UNIX.
Pourquoi utiliser le Bourne shell?Pourquoi utiliser le Bourne shell?
•plus ancien et plus répandu;plus ancien et plus répandu;
•très utilisé parmi les gestionnaires de très utilisé parmi les gestionnaires de systèmes et les développeurs de systèmes et les développeurs de logiciels.logiciels.
Interpréteur de commande
4
Entrée-sortie standardEntrée-sortie standardEntrée standard Entrée standard normalement attachée à l’écran. normalement attachée à l’écran.• possède le numéro de descripteur 0.possède le numéro de descripteur 0.
Sortie standard Sortie standard normalement attachée au clavier. normalement attachée au clavier.• possède le numéro de descripteur 1.possède le numéro de descripteur 1.
Erreur standard Erreur standard normalement attachée à l’écran. normalement attachée à l’écran.• possède le numéro de descripteur 2.possède le numéro de descripteur 2.
Interpréteur de commande
5
Entrée-sortie standardEntrée-sortie standard
Il est possible de rediriger les entrées-Il est possible de rediriger les entrées-sorties standards à des fichiers ou à sorties standards à des fichiers ou à d’autres programmes et commandes.d’autres programmes et commandes.
Redirection de l’entrée standardRedirection de l’entrée standard cat < NomFichiercat < NomFichier
Démonstration de la procédureDémonstration de la procédure
Interpréteur de commande
CommandeCommande Redirection de l’entrée standard à un fichier. Redirection de l’entrée standard à un fichier. L’entrée de la commande L’entrée de la commande cat(1)cat(1) est le fichier est le fichier
NomFichierNomFichier
6
Entrée-sortie standardEntrée-sortie standard
Redirection de la sortie standardRedirection de la sortie standard• cat > NomFichiercat > NomFichier
Redirection de l’entrée et de la sortie standardRedirection de l’entrée et de la sortie standard• cat < FichierEntree > FichierSortiecat < FichierEntree > FichierSortie
Interpréteur de commande
Démonstration de la procédureDémonstration de la procédure
CommandeCommande Redirection de la sortie standard à un Redirection de la sortie standard à un fichier. La sortie de la commande fichier. La sortie de la commande cat(1)cat(1) est est
enregistré dans le fichier enregistré dans le fichier NomFichierNomFichier
7
Entrée-sortie standardEntrée-sortie standard
Effet de la redirection:Effet de la redirection:
Interpréteur de commande
Clavier
C o m m an de
Ent
rée
stan
dard
Sans red irection
Clavier
C o m m an de
Fichiers
Fichiers
Term inal
Sort
ie sta
ndar
dTerm inal
E ntrée et sortiestand ard red irigées
< >
8
Entrée-sortie standardEntrée-sortie standard
Rediriger la sortie vers un fichier Rediriger la sortie vers un fichier écrase le contenu du fichier de sortie.écrase le contenu du fichier de sortie.
Utiliser la concaténation pour préserver Utiliser la concaténation pour préserver le contenu du fichier de sortie:le contenu du fichier de sortie:• cat < toto.txt >> FichierSortiecat < toto.txt >> FichierSortie
Démonstration de la procédureDémonstration de la procédure
Interpréteur de commande
La sortie de la commande La sortie de la commande catcat est est ajoutée à la fin du fichier ajoutée à la fin du fichier FichierSortieFichierSortie
9
Entrée-sortie standardEntrée-sortie standardRediriger l’erreur standard Rediriger l’erreur standard implique une syntaxe un peu implique une syntaxe un peu
différente.différente.Utilisation des numéros de descripteur.Utilisation des numéros de descripteur.commande < FichierEntreecommande < FichierEntreecommande <0 FichierEntreecommande <0 FichierEntreecommande > FichierSortiecommande > FichierSortiecommande 1> FichierSortiecommande 1> FichierSortiecommande 2> FichierErreurcommande 2> FichierErreur
Interpréteur de commande
ÉquivalentÉquivalentee
ÉquivalentÉquivalentee
Redirection de l’erreur standardRedirection de l’erreur standard
10
Entrée-sortie standardEntrée-sortie standard
cat < entree.txt > sortie.txt 2> erreur.txtcat < entree.txt > sortie.txt 2> erreur.txt
cat > sortie.txt 2>&1cat > sortie.txt 2>&1
Démonstration de la procédureDémonstration de la procédure
Interpréteur de commande
Les messages d ’erreur de la commande Les messages d ’erreur de la commande cat cat seront enregistrés dans ce fichierseront enregistrés dans ce fichier
La sortie de La sortie de catcat est enregistrée dans le fichier est enregistrée dans le fichier sortie.txtsortie.txt. L ’erreur standard est redirigée à la . L ’erreur standard est redirigée à la
sortie standard. Donc, l’erreur standard est sortie standard. Donc, l’erreur standard est également redirigée au fichier également redirigée au fichier sortie.txtsortie.txt..
11
TuyauxTuyaux
Tuyaux Tuyaux brancher la sortie brancher la sortie standard d’une commande à standard d’une commande à l’entrée standard d’une autre l’entrée standard d’une autre commande.commande.
Interpréteur de commande
commandeA [-option] [parametres] | commandeB [-option] [parametres] | commandeC
cmd1 cmd2
C o m m an de C o m m an de| (tuyau)
So rtiestan d ard
E n tréestan d ard
12
TuyauxTuyaux
ls -lR | morels -lR | moreLa sortie de la commande La sortie de la commande lsls est l’entrée est l’entrée
de la commande de la commande moremore.. cat document.txt | tr abc ABC > traduit.txtcat document.txt | tr abc ABC > traduit.txt
Interpréteur de commande
TuyauTuyau
trtr ( (translatetranslate) remplace le ) remplace le caractère a par A, b par B et c caractère a par A, b par B et c
par C.par C.La sortie de La sortie de trtr est enregistrée est enregistrée dans le fichier dans le fichier traduit.txttraduit.txt
13
Exécution arrière-planExécution arrière-planToutes les commandes vues jusqu’à présent sont Toutes les commandes vues jusqu’à présent sont
exécutées en avant-plan.exécutées en avant-plan.Monopolisent le terminal.Monopolisent le terminal.Ne convient pas à des tâches de longue durée.Ne convient pas à des tâches de longue durée.Lancer les commandes en arrière-plan:Lancer les commandes en arrière-plan:
• commande [-options] [paramètre] commande [-options] [paramètre] &&
Interpréteur de commande
Symbole indiquant une Symbole indiquant une exécution en arrière-plan d’une exécution en arrière-plan d’une
commandecommande
14
Exécution arrière-planExécution arrière-plan
Exemple:Exemple: cat passwd.dat | sort > sortie.txt &cat passwd.dat | sort > sortie.txt &
Attention aux entrées-sorties des Attention aux entrées-sorties des commandes exécutées en arrière-plan !!!commandes exécutées en arrière-plan !!!
Interpréteur de commande
Laquelle des commandes sera-t-elle exécutée Laquelle des commandes sera-t-elle exécutée en arrière-plan ?en arrière-plan ?
Démonstration de la procédureDémonstration de la procédure
15
Regroupement des Regroupement des commandescommandesExécution séquentielle d’une ligne de commandes:Exécution séquentielle d’une ligne de commandes:
• cmd1 ; cmd2 ; cmd3cmd1 ; cmd2 ; cmd3
Exécution séquentielle d’une ligne de commandes Exécution séquentielle d’une ligne de commandes par regroupement:par regroupement:• (cmd1 ; cmd2) ; cmd3(cmd1 ; cmd2) ; cmd3
• (cmd1 ; cmd2) & cmd3(cmd1 ; cmd2) & cmd3
Interpréteur de commande
Commandes regroupés sont exécutées dans un Commandes regroupés sont exécutées dans un interpréteur enfant (interpréteur enfant (subshellsubshell).).
Plusieurs Plusieurs combinaisons combinaisons sont possiblessont possibles
16
Regroupement des Regroupement des commandescommandesExemple:Exemple:
Démonstration de la procédureDémonstration de la procédure
Interpréteur de commande
$ pwd ; (cd ..; pwd; cp user.txt test.txt; ls -l test.txt); pwd
Quelle sera la sortie de Quelle sera la sortie de ces deux commandes ?ces deux commandes ?
Commandes entre parenthèses sont Commandes entre parenthèses sont exécutées par un interpréteur enfant.exécutées par un interpréteur enfant.
17
Regroupement des Regroupement des commandescommandes
Explication de l’exemple précédent:Explication de l’exemple précédent: pwdpwd affiche le nom du répertoire courant. affiche le nom du répertoire courant. (cd ..; pwd; cp user.txt test.txt; ls -l test.txt)(cd ..; pwd; cp user.txt test.txt; ls -l test.txt)
pwdpwd revient à l’interpréteur père et affiche le revient à l’interpréteur père et affiche le nom du répertoire courant.nom du répertoire courant.
Interpréteur de commande
Remonter Remonter vers le vers le répertoirrépertoire parente parent
Affiche le nom du Affiche le nom du répertoire courantrépertoire courant
Copier le fichier Copier le fichier user.txtuser.txt vers le fichier vers le fichier test.txttest.txt
Montrer que le Montrer que le fichier a été fichier a été copiécopié
Toutes ces Toutes ces commandes sont commandes sont exécutées dans un exécutées dans un interpréteur enfantinterpréteur enfant
18
Regroupement des Regroupement des commandescommandes Explication de l’exemple précédent Explication de l’exemple précédent
(suite):(suite):
Interpréteur de commande
I n terp réteurd e
co m m an de
I n terp réteurd e
co m m an de
P aren t E n fan tE x écutio n d es co m m an d es regro up ées
C réatio n d 'un n o uv eau in terp réteur
F in d e l'ex écutio n d es co m m an d es regro up éesD estructio n d u n o uv eau in terp réteur
19
Fichiers de commandeFichiers de commande Conditions d’un fichier de commande:Conditions d’un fichier de commande:
• contient des commandes et instructions contient des commandes et instructions légales de Bourne shell;légales de Bourne shell;
• fichier est lisible et/ou exécutable par le fichier est lisible et/ou exécutable par le Bourne shell.Bourne shell.
Exécution d’un fichier de commande:Exécution d’un fichier de commande:• sh FichierCommandesh FichierCommande
• contient contient à la première ligneà la première ligne du fichier la du fichier la directive: directive: #!/bin/sh#!/bin/sh
Interpréteur de commande
Dém
on
stra
tion
de la p
rocé
dure
Dém
on
stra
tion
de la p
rocé
dure