Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande...

44
Systèmes d’exploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge - Mai 2014

Transcript of Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande...

Page 1: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Systèmes d’exploitation et programmation de systèmes

-GPA435-

Cours #3: Interpréteur de commande

Enseignant: Jean-Philippe Roberge

Jean-Philippe Roberge - Mai 2014

Page 2: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Planification du cours #3

Petite révision du cours #2: Terminal de commande et syntaxe des commandes Documentation standard Structure des fichiers

Démonstration de la commande ssh Théorie du cours #3:

Entrée/sortie standard, redirections et tuyaux Exécution en arrière-plan Regroupement et séparation des commandes Fichiers de commandes Interpréteur de commande : démonstration d’une Fork Bomb ! Exercices…

2Jean-Philippe Roberge - Mai 2014

Page 3: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Jean-Philippe Roberge - Mai 20143

1 - Architecture micro-noyau:

Réduire le noyau: seulement quelques processus importants sont assignés au noyau;

les autres services processus utilisateurs appelés « serveurs »;

séparation explicite entre le noyau d’un S.E. et le développement des serveurs;

Révision du cours #2 (1)

Noyau: Partie fondamentale du système d’exploitation, il s’agit de la base, c’est-à-dire l’ensemble des processus qui gèrent les ressources de l’ordinateur. Il permet au matériel et au logiciel de communiquer ensemble.

Page 4: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Jean-Philippe Roberge - Mai 20144

Comparaison entre noyau « monolithic » et micro-noyau:

Révision du cours #2 (2)

Page 5: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

5

Exemple du concept de micro-noyau:

M icro - n o yauO rd in ateur A

Serv eur d u systèm ed e fi ch iers

(O rd in ateur B )

Serv eur d u systèm ed e fi ch iers

(O rd in ateur A )

M icro - n o yauO rd in ateur B

Serv eur d 'in terfacegrap h iq ue

(O rd in ateur A )

Serv eur d 'in terfacegrap h iq ue

(O rd in ateur B )

Jean-Philippe Roberge - Mai 2014

Révision du cours #2 (3)

Page 6: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Jean-Philippe Roberge - Mai 20146

2 - Exécution multi-fils: un processus est divisé en plusieurs chemins d’exécution

simultanée;

fil d’exécution unité de travail interruptible et séquentielle;

fil d’exécution ne possède pas de contexte d’exécution mais utilise celui du processus père;

Révision du cours #2 (4)

Mémoire utilisée, l’état de la pile programme, les ports d’E/S associés, l’état des registres du processeur, etc.

Modèle de programmation concourante

F il p rin cip al

F il # 1 F il # 3

F il # 2 F il # 4 F il # 5

F il # 6

F il # 7

F in d e l'ex écu tio n d u fi l d 'ex écu tio n

Syn ch ro n isatio n d es fi ls d 'ex écu tio n

P ro cessus

Page 7: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Jean-Philippe Roberge - Mai 20147

3 - Traitement parallèle symétrique: réalisation utilisant l’exécution multifils; système à n processeurs (n 256); mémoire commune accessible par tous les processeurs; tous les processeurs sont gérés de la même façon et jouent le

même rôle; ordonnancement des fils d’exécution dans tous les processeurs

libres. Nouvelle exigence «extensibilité» du S.E.; Application du concept de micro-noyau; S.E. décentralisé; Ordonnancement des fils d’exécution réalisé localement par

chacun des processeurs; Collaboration entre les processeurs; Une réalisation plus complexe du S.E.

Révision du cours #2 (5)

Page 8: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

8

4 - Système d’exploitation réparti:

Système d’exploitation qui gère une grappe d’ordinateurs

Complexe, doit gérer la communication et l’allocation des ressources

Méta-SE: Système d’exploitation qui gère d’autres SE, sur des machines locales

5 - Conception orientée des SE: Profiter des avantages de la programmation orienté-objet

Concept d’héritage et de spécialisation

Jean-Philippe Roberge - Mai 2014

Révision du cours #2 (6)

Page 9: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Format des commandesFormat des commandes• Une convention bien établie.Une convention bien établie.

twong@tony-ubuntu-12:~$ commande [—option] twong@tony-ubuntu-12:~$ commande [—option] [paramètre][paramètre]

9

L’invite affichée par l’interpréteur de commande.

L’historique des commandes

lancées.

Une commande peut avoir des options et paramètres. Les options sont toujours précédées d’un tiret (—). Les crochets ([]) signifient qu’ils ne sont pas obligatoires.

Révision du cours #2 (7)

Page 10: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Comment connaître les options et Comment connaître les options et paramètres des commandes?paramètres des commandes?• L’aide enligne est divisée en sections:L’aide enligne est divisée en sections:

10

Section Sujets

1 Commandes et programmes

2 Interfaces de programmation (API)

3 Fonctions des bibliothèques du langage C

4 Interfaces des périphériques et du réseau

5 Formats de fichiers

6 Jeux et application de démonstration

7 Divers (ensemble de macros, etc.)

8 Commandes pour l’administration du système

GPA435GPA435

Révision du cours #2 (8)

Page 11: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Contenu d’un répertoireContenu d’un répertoire• Utiliser la commande Utiliser la commande ls(1)ls(1) (list directory (list directory

content) pour voir le contenu d’un répertoirecontent) pour voir le contenu d’un répertoire

11

La signification des couleurs• Bleu: répertoire• Bleu pâle: lien (raccourci)• Vert: fichier exécutable ou répertoire standard• Rose: fichier image

Note: Ces couleurs sont générées par l’option --color de la commande ls. Voir man dircolors pour les couleurs

utilisées.

Révision du cours #2 (9)

Page 12: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Permissions des fichiers et répertoiresPermissions des fichiers et répertoires

12

drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Desktopdrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Documentsdrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Downloads-rw-r--r-- 1 twong twong 8445 Dec 17 19:56 examples.desktopdrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Musicdrwxrwxr-x 2 twong twong 4096 Dec 18 22:52 MySharedrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Picturesdrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Publicdrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Templatesdrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Videos

Permissions d’accès

Propriétaire (créateur)

Groupe LinuxLe c

ara

ctère

« d

 » d

e la p

rem

ière

co

lon

ne indiq

ue q

u’il s’

agit

d’u

n

répert

oir

e (

dir

ect

ory

)Révision du cours #2 (10)

Page 13: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Permissions des fichiers et répertoiresPermissions des fichiers et répertoires

13

Fichiers et répertoires (11)Fichiers et répertoires (11)

Changement des permissions d’accèsChangement des permissions d’accès• Utilisation de la commande Utilisation de la commande chmod(1)chmod(1) (change (change

mode)mode)o Par valeurs octalesPar valeurs octales

chmod 664 exemples.desktopchmod 664 exemples.desktop

o Par symbolesPar symboles

chmod u+r+w-x,g+r+w-x.o+r-w-x exemples.desktopchmod u+r+w-x,g+r+w-x.o+r-w-x exemples.desktop

Page 14: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Jean-Philippe Roberge - Mai 201414

Révision cours #2 (12)

Page 15: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Jean-Philippe Roberge - Mai 201415

Cours #3

Page 16: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

16

Interpréteur de commandes (1)

Qu’est-ce qu’un Interpréteur de commande (CLI: Command-Line Interpreter) ? Un programme faisant partie des composants de base du S.E. Un programme dont la fonction est d’interpréter les commandes qu’un

utilisateur entre dans l’interface de commande (i.e. le terminal)

Sous Windows: cmd.exe, maintenant largement remplacé par Powershell. L’interface graphique demeure privilégiée depuis plusieurs années!

Sous UNIX / Linux: Plusieurs interpréteurs existent et l’utilisation du terminal de commande est très répandue, bien que ces dernières années de nombreuses distributions ont fait naître une interface graphique bien élaborée.

Page 17: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Interpréteur de commandes (2)

17

Au niveau des systèmes UNIX / Linux, plusieurs interpréteurs ont vu le jour!

Tableau tiré intégralement de http://bash.leyan.org/

Page 18: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

18

Bourne shell (sh): créé par Steve Bourne; interpréteur par défaut de

nombreux système UNIX / Linux.

Pourquoi utiliser le Bourne shell? plus ancien et plus répandu; très utilisé parmi les

gestionnaires de systèmes et les développeurs de logiciels.

Interpréteur de commandes (3)

Comment un interpréteur traite-t-il Comment un interpréteur traite-t-il généralement une ligne de commande?généralement une ligne de commande?

P ren d re le p rem ierjeto n . L e co n sid érer

co m m e le n o m d 'un eco m m an d e

F in d e la lign e d eco m m an d e ?

L a co m m an d e ex iste ?

P ren d re leseco n d jeto n

co m m eargum en ts d ela co m m an d e

A ff ich er" C o m m an d ein ex isten te"

A ff ich erle curseur

E x écuter laco m m an d e

Page 19: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

19

Interpréteur de commandes (4)

Actuellement, bash est certainement l’interpréteur le plus répandu pour les systèmes Linux!

Page 20: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

20

Concernant l’entrée et la sortie standard: Entrée standard Elle est normalement attachée au clavier

Elle possède un numéro de descripteur égal à 0 Sortie standard Elle est normalement attachée à l’écran

Elle possède un numéro de descripteur égal à 1 Erreur standard Elle est normalement attachée à l’écran

Elle possède un numéro de descripteur égal à 2

En bref:

Entrée-Sortie standard (1)

Tableau tiré intégralement de http://bash.leyan.org/

Page 21: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

21

Effet de la redirection:

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

< >

Entrée-Sortie standard (2)

Page 22: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

22

Il est possible de rediriger les entrées-sorties standards à des fichiers ou à d’autres programmes et commandes.

Redirection de l’entrée standard:

cat < NomFichier

Démonstration de la procédureDémonstration de la procédure

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

Entrée-Sortie standard (3)

Page 23: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

23

Redirection de la sortie standard:

cat cat > NomFichier> NomFichier

Redirection de l’entrée et de la sortie standard:

cat < FichierEntree > FichierSortiecat < FichierEntree > FichierSortie

Démonstration des procéduresDémonstration des procédures

CommandeCommandeRedirection de la sortie standard à un fichier. La Redirection de la sortie standard à un fichier. La

sortie de la commande sortie de la commande cat(1)cat(1) est enregistré dans est enregistré dans le fichier le fichier NomFichierNomFichier

Entrée-Sortie standard (4)

Page 24: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

24

Rediriger la sortie vers un fichier écrase le contenu du fichier de sortie.

Utiliser la concaténation pour préserver le contenu du fichier de sortie:

cat < toto.txt >> FichierSortiecat < toto.txt >> FichierSortie

Démonstration de la procédureDémonstration de la procédure

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

Entrée-Sortie standard (5)

Page 25: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

25

Rediriger l’erreur standard implique une syntaxe un peu

différente.

Utilisation des numéros de descripteur.

commande < FichierEntree

commande <0 FichierEntree

commande > FichierSortie

commande 1> FichierSortie

commande 2> FichierErreur

ÉquivalentesÉquivalentes

ÉquivalentesÉquivalentes

Redirection de l’erreur standardRedirection de l’erreur standard

Entrée-Sortie standard (6)

Page 26: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

26

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

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 sortie standard. L ’erreur standard est redirigée à la sortie standard.

Donc, l’erreur standard est également redirigée au fichier Donc, l’erreur standard est également redirigée au fichier sortie.txtsortie.txt..

Entrée-Sortie standard (7)

Page 27: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

27

Tuyaux brancher la sortie standard d’une commande à l’entrée

standard d’une autre commande.

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

Tuyaux (1)

Page 28: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

28

ls -lR | more

La sortie de la commande ls est l’entrée de la commande

more.

cat document.txt | tr abc ABC > traduit.txtcat document.txt | tr abc ABC > traduit.txtTuyauTuyau

trtr ( (translatetranslate) remplace le caractère a ) remplace le caractère a par A, b par B et c par C.par A, b par B et c par C.

La sortie de La sortie de trtr est enregistrée dans est enregistrée dans le fichier le fichier traduit.txttraduit.txt

Tuyaux (2)

Page 29: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

29

Toutes les commandes vues jusqu’à présent sont exécutées en avant-plan.

Monopolisent le terminal.

Ne convient pas à des tâches de longue durée.

Lancer les commandes en arrière-plan:

commande [-options] [paramètre] commande [-options] [paramètre] &&Symbole indiquant une exécution en Symbole indiquant une exécution en

arrière-plan d’une commandearrière-plan d’une commande

Exécution en arrière-plan (1)

Page 30: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

30

Exemple:

cat passwd.dat | sort > sortie.txt &cat passwd.dat | sort > sortie.txt &

Attention aux entrées-sorties des commandes exécutées en arrière-plan !!!

Laquelle des commandes sera-t-elle exécutée en Laquelle des commandes sera-t-elle exécutée en arrière-plan ?arrière-plan ?

Démonstration de la procédureDémonstration de la procédure

Exécution en arrière-plan (2)

Page 31: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

31

Exécution séquentielle d’une ligne de commandes:

cmd1 ; cmd2 ; cmd3cmd1 ; cmd2 ; cmd3 Exécution séquentielle d’une ligne de commandes par

regroupement:

(cmd1 ; cmd2) ; cmd3(cmd1 ; cmd2) ; cmd3

(cmd1 ; cmd2) & cmd3(cmd1 ; cmd2) & cmd3Commandes 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 sont combinaisons sont possiblespossibles

Regroupement des commandes (1)

Page 32: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

32

Exemple:

Démonstration de la procédureDémonstration de la procédure

Quelle sera la sortie de ces Quelle sera la sortie de ces deux commandes ?deux commandes ?

Commandes entre parenthèses sont exécutées par Commandes entre parenthèses sont exécutées par un interpréteur enfant.un interpréteur enfant.

Regroupement des commandes (2)

Page 33: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

33

Explication de l’exemple précédent:

pwd affiche le nom du répertoire courant.

(cd ..; pwd; cp user.txt test.txt; ls -l test.txt)

pwd revient à l’interpréteur père et affiche le nom du répertoire courant.

Remonter Remonter vers le vers le répertoire répertoire parentparent

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é copiéfichier a été copié

Toutes ces commandes Toutes ces commandes sont exécutées dans un sont exécutées dans un interpréteur enfantinterpréteur enfant

Regroupement des commandes (3)

Page 34: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

34

Explication de l’exemple précédent (suite):

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

Regroupement des commandes (4)

Page 35: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

35

Conditions d’un fichier de commande:• contient des commandes et instructions légales de Bourne

shell;

• fichier est lisible et/ou exécutable par le Bourne shell.

Exécution d’un fichier de commande:• sh FichierCommande

• contient à la première ligne du fichier la directive:

#!/bin/sh

Démonstration de la procédureDémonstration de la procédure

Fichier de commande (1)

Page 36: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

36

Variables prédéfinies:

Variable Signification

HOME Répertoire de travail de l’utilisateur.

PATH Chemins de fouille pour trouver une commande, un programme. Leschemins sont séparés par le caractère :.

MAIL Chemin indiquant la boîte de courriers de l’utilisateur.

PS1 Le caractère représentant le curseur. Par défaut, le caractère $ joue lerôle de curseur.

PS2 Lorsqu’une commande s’étend sur plus d’une ligne, l’interpréteur decommande affiche un second caractère pour indiquer qu’il fautcontinuer l’entrée. Par défaut c’est le caractère > qui est contenu danscette variable.

IFS Les caractères qui jouent le rôle de séparateur des commandes. En plusdes caractères espace et TAB, l’interpréteur considère les caractèrescontenus dans IFS comme séparateurs supplémentaires.

CDPATH Le contenu de cette variable modifie le comportement de la commandecd(1). Voir le manuel en-ligne pour les détails de cette commande.

TZ Cette variable indique la zone horaire (Time Zone) utilisée.

Variables de l’interpréteur (1)

Page 37: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

37

Variables prédéfinies (suite):

Variable Signification

$* Contient les paramètres entrées dans la ligne de commandes lors del’invocation du fichier de commandes.

$0 Nom du fichier de commande.

$n Valeur du ne paramètre de la ligne de commande.

$* Le contenu de la ligne de commande.

$# Le nombre de paramètres dans la ligne de commandes lors del’invocation du fichier de commandes.

$? L’état de terminaison (un numéro) de la dernière commande exécutée.

$$ Le numéro du processus PID correspondant à l’interpréteur decommande.

$! Le numéro du processus PID correspondant à la dernière tâcheexécutant en arrière-plan.

Variables de l’interpréteur (2)

Page 38: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

38

Réglage des variables:• var=valeur

• TOTO="Bonjour les SEPSistes"

• Allo="$TOTO du cours GPA435"

Explication:TOTO $TOTO

N o m d e la v ariab le

C o n ten u d e la v ariab le

Variables de l’interpréteur (3)

Page 39: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

39

Éliminer une variable de l’environnement: unset NomVariable

Voir le contenu d’un variable: echo $NomVariable

Voir le contenu de toutes les variables d’environnement: set(1)

Variables de l’interpréteur (4)

Page 40: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

40

Transmettre une variable à un interpréteur enfant:• export(1)

Exemple d’exportation d’une variable:

Variable Variable REPERTOIREREPERTOIRE n’est pas exportée et elle n’est pas n’est pas exportée et elle n’est pas disponible dans les interpréteurs enfants.disponible dans les interpréteurs enfants.

Variables de l’interpréteur (5)

Page 41: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

41

Exemple d’exportation d’une variable:

Variable Variable REPERTOIREREPERTOIRE est exportée et elle est disponible est exportée et elle est disponible dans les interpréteurs enfants.dans les interpréteurs enfants.

Fin du chapitre 5Fin du chapitre 5

Variables de l’interpréteur (6)

Page 42: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

42

Démonstration d’une Fork Bomb

Comment faire « planter » un système d’exploitation Linux à l’aide de l’interpréteur de commandes ? En créant un processus

qui créé récursivement des processus…

C’est-à-dire:

Démonstration de la procédureDémonstration de la procédure

Page 43: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

43

Exercices (1)

Page 44: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Références

[1] Présentations PowerPoint du cours GPA435, Tony Wong.

[2] Notes de cours, GPA435

[3] Levasseur, Yan, Wiki GPA435: http://bash.leyan.org/Accueil , consulté en avril 2014.

[4] Tanenbaum, A.S., Systèmes d’exploitation. Pearson Education France, 2008.

[5] Stallings, W., Operating Systems : Internals and Design Principals. Upper Saddle River, NJ : Prentice Hall, 1998.

[6] Références citées dans le premier chapitre des notes de cours.

44 Jean-Philippe Roberge - Avril 2014