Transparents GNU/Linux 2005/2006 (pdf 261 Ko)

publicité
M1 EEAS
Système d’exploitation GNU/Linux
UPS
Système d’exploitation GNU/Linux
Plan du cours:
➽ I-Introduction
➽ II-Système de fichiers
➽ III-Processus
➽ IV-Langage de Shell
➽ V-Compléments sur les commandes
Jean-Michel ENJALBERT - [email protected], 2005/2006
–1–
M1 EEAS
Système d’exploitation GNU/Linux - Introduction
UPS
I-Introduction
I-1 Rôles d’un Système d’Exploitation
S.E.= ensemble d’outils logiciels permettant de gérer le fonctionnement d’un
ordinateur.
– fournit une interface entre les programmes utilisateurs et le matériel
– assure la gestion des ressources du système (processeur, mémoire, clavier,
écran, disques, imprimantes, etc..).
On distingue:
– le programme qui gère les ressources du système et les processus (le noyau)
– les outils logiciels associés au SE (compilateur, éditeur de texte, commandes,
etc...).
Jean-Michel ENJALBERT - [email protected], 2005/2006
–2–
M1 EEAS
Système d’exploitation GNU/Linux - Introduction
UPS
Applications
Outils
Noyau
Materiel
Un système d’exploitation doit concilier:
– utilisation optimale des ressources (processeur, mémoire, ...)
– facilité d’utilisation pour l’utilisateur
Jean-Michel ENJALBERT - [email protected], 2005/2006
–3–
M1 EEAS
Système d’exploitation GNU/Linux - Introduction
UPS
I-2 Concepts de base des SE
premiers ordinateurs (années 50) ➯ une seule personne: programmeur et
opérateur.
lecteur de
cartes
Ordinateur
perforatrice
imprimante
sous utilisation des machines (très coûteuses) ➯ séparation des tâches de
programmation et d’utilisation.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–4–
M1 EEAS
UPS
Système d’exploitation GNU/Linux - Introduction
Apparition des bandes magnétiques: programme résidant en mémoire chargé
d’enchaı̂ner les tâches: le moniteur.
lecteur/enreg.
bandes
lecteur de
cartes
perforatrice
imprimante
Ordinateur
Notion de traitement par lots.
execution
resultats
Programmeur
Operateur
travaux
chargement
bandes
moniteur
UC
Inconvénient: séparation du programmeur/utilisateur et de la machine.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–5–
M1 EEAS
Système d’exploitation GNU/Linux - Introduction
UPS
Evolution de la technique: décalage entre lenteur des entrées/sorties et rapidité de
l’unité centrale.
Concept de multi-programmation. Interruption des tâches.
Principe: entrelacer les tâches demandées au système pour ne pas bloquer l’UC
dans l’attente de la fin d’une opération d’E/S.
P1
E/S
P4
P4
P1
P2 P3
P2
E/S
P3
P1
P2
P3 P4
Jean-Michel ENJALBERT - [email protected], 2005/2006
–6–
M1 EEAS
UPS
Système d’exploitation GNU/Linux - Introduction
Amélioration de la puissance des machines: concept de temps partag é.
Commutations périodiques des tâches.
Rapidité des commutations (linux:1ms) ➯ pseudo-paralléllisme.
P1
P1
P2
P2
P3
P4
P1
P3
P2
P3
P4
P4
fin P2
P1
P3
P4
P1
fin P3
P4
fin P1
Concepts utilisés par tous les systèmes d’exploitation modernes.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–7–
M1 EEAS
Système d’exploitation GNU/Linux - Introduction
UPS
I-3 Historique: de UNIX a GNU/LINUX
Naissance d’UNIX: 1969 (K. Thomson aux laboratoires Bell)
Objectif: disposer, sur un mini-ordinateur, d’un système d’exploitation puissant.
Ecrit quasi entièrement en langage C en 1973 par D. Ritchie ➯ “invention” du
langage C.
➯ UNIX portable sur toute machine possédant un compilateur C.
1984, Richard STALLMAN: Création de la Free Software Foundation (FSF) Projet
de développement d’un système Unix entièrement libre (projet GNU).
Développement d’outils: un compilateur C (gcc), un éditeur de texte (emacs), un
débogueur (gdb) etc.. Noyau (nom de code: hurd) en retard.
➯ en 1991, Linus Thorwald: noyau Unix: Linux.
Aujourd’hui (2005), GNU/Linux concurrent des UNIX commerciaux et de
Microsoft/Windows.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–8–
M1 EEAS
Système d’exploitation GNU/Linux - Introduction
UPS
I-4 Caractéristiques principales d’UNIX
I-4.1
Multi-plateformes
Ecrit en C ➯ Compilateur C disponible ➯ UNIX disponible.
➯ Systèmes embarqués (micro-contrôleurs)
➯ Ordinateurs personnels (PC et MAC)
➯ Stations de travail et serveurs.
I-4.2
Multi-tâches
Ordinateur mono-processeur: une chose à la fois.
Multi-taches: utilisation de l’attente d’E/S (lentes) et temps partag é: plusieurs taches
“ouvertes”. Pour l’utilisateur, identique a un système parallèle.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–9–
M1 EEAS
I-4.3
Système d’exploitation GNU/Linux - Introduction
UPS
Multi-utilisateurs
UNIX conçu pour permettre à plusieurs utilisateurs d’utiliser le même système de
manière sécurisé
➯ Gestion des fichiers permettant de leur affecter un propriétaire et des droits
d’accès. Notion de groupe permettant de distinguer différentes catégories
d’utilisateur.
➯ Multi-tâches. Utilisation du système par plusieurs utilisateurs en même temps
Chaque utilisateur exécute ses tâches sans perturber les tâches des autres.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–10–
M1 EEAS
I-4.4
Système d’exploitation GNU/Linux - Introduction
UPS
Système de fichiers hiérarchisé
“en UNIX, tout est fichier”
➯ Fichier UNIX: chaı̂ne de caractères non structurée
➯ A tout fichier est associé un bloc d’informations (i-node) décrivant ses propriétés
identifié par un index unique.
➯ Désignation d’un fichier fait par des fichiers particuliers: les répertoires. Un
répertoire est un fichier formé d’un ensemble de couples: (index, nom de fichier)
➯ Racine du système: répertoire sans nom d’index 2.
Contient des fichiers non-répertoires et/ou des répertoires L’ensemble forme
une arborescence dont les feuilles sont des fichiers non-répertoires ou des
répertoires vides.
➯ Périphériques (clavier, souris, disques, etc...) sous UNIX: fichiers spéciaux
intégrés dans l’arborescence.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–11–
M1 EEAS
I-4.5
Système d’exploitation GNU/Linux - Introduction
UPS
Gestion des processus
Processus: ensemble des programmes chargés en mémoire centrale en exécution
ou en attente d’exécution.
Gérés par le noyau du SE (ordonnancement et allocation des ressources).
Processus initial: init. Crée des processus fils qui eux-même...
Arborescence unique de processus.
Un processus est caractérisé par un numéro (ID). Il possède un espace mémoire
propre.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–12–
M1 EEAS
Système d’exploitation GNU/Linux - Introduction
UPS
I-5 Utilisateur d’un système UNIX
I-5.1
➯
➯
➯
➯
Compte utilisateur
créé par administrateur (utilisateur root).
login: nom de l’utilisateur
mot de passe: protection de l’accès
´
repertoire
personnel: répertoire /home/nom
I-5.2
login. Fichiers personnels.
Processus de login
➯ Au démarrage du système, lancement du processus login: affichage d’un
message et attente de caractères.
➯ Entrée du nom de login et du mot de passe
➯ Vérification de l’existence du compte et de la validité du mot de passe, puis
création d’un processus de shell (interpréteur de commande)
Jean-Michel ENJALBERT - [email protected], 2005/2006
–13–
M1 EEAS
I-5.3
Système d’exploitation GNU/Linux - Introduction
UPS
Administration du système
UNIX: droits limités pour les utilisateurs (sur les fichiers et les processus).
Utilisateur particulier qui possède tous les droits: root. Administrateur du système.
➯ Création de comptes utilisateurs
➯ Configuration du système
➯ Accès à tous les fichiers et à tous les processus.
➯ Peut détruire le système!
Jean-Michel ENJALBERT - [email protected], 2005/2006
–14–
M1 EEAS
Système de fichiers GNU/Linux
UPS
II-Système de fichiers
II-1 Différents types de fichiers
Fichier: chaı̂ne de caractères non structuré + i-node.
– Fichiers ordinaires: Inclus fichiers ’textes’ et fichiers binaires.
– Fichiers spéciaux: associés à des périphériques. Ils sont placés dans le
répertoire /dev et peuvent être à accès par bloc ou par caractère.
– Répertoires: Fichiers qui permettent de référencer d’autres fichiers.
Répertoire: ➯ liste de couples (nom fichier, index i-node) qui permet d’acc éder
à un fichier à partir de son nom. Deux entrées au moins: (. , son propre index) et
(.., l’index de son répertoire père).
– Liens: Permet d’accéder à un même fichier en utilisant des noms différents.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–15–
M1 EEAS
Système de fichiers GNU/Linux
UPS
II-2 L’arborescence des fichiers
Le système de fichiers UNIX se présente sous la forme d’une arborescence:
mkdir
bin
/
chmod
home
projet
jme
projet.c
Chemin absolu: chemin unique partant de la racine permettant de désigner un
fichier donné.
Exemple sur la figure: /home/jme/projet.
Chemin relatif: chemin faisant référence a un répertoire de travail.
Exemple: a partir du répertoire /bin: ../home/jme/projet
Jean-Michel ENJALBERT - [email protected], 2005/2006
–16–
M1 EEAS
UPS
Système de fichiers GNU/Linux
Exemple d’arborescence
/
.,2
bin,3
home,4
bin
.,3
..,2
mkdir,5
chmod,6
home
.,4
..,2
jme,7
mkdir
chmod
jme
.,7
..,4
projet,8
projet.c,9
Jean-Michel ENJALBERT - [email protected], 2005/2006
projet
.,8
..,7
projet.c
–17–
M1 EEAS
Système de fichiers GNU/Linux
UPS
II-3 Commandes de base
➯ pwd: affiche le chemin abolu du répertoire de travail.
➯ cd permet de se déplacer (c’est à dire de changer la valeur du répertoire de
travail) dans l’arborescence.
– Sans argument, fixe le répertoire de travail comme étant le répertoire
personnel de l’utilisateur.
– L’argument de cd peut être un chemin absolu ou un chemin relatif.
– Le fichier .., qui fait référence au répertoire père, permet de remonter dans
l’arborescence.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–18–
M1 EEAS
Système de fichiers GNU/Linux
UPS
II-4 Unités logiques
Unités logiques = unités de stockage (locales ou distantes): disque dur, lecteur de
disquettes, lecteur de CD, etc...
➯ Chaque unité contient sa propre arborescence de fichiers.
➯ Ces unités logiques sont accessibles à partir de l’arborescence générale du
système à condition d’être rattaché à cette arborescence. C’est ce que l’on
appelle le ”montage”.
➯ Chaque unité peut être placé à n’importe quel endroit de l’arborescence.
➯ La commande mount permet d’effectuer ce montage. Elle est associée a la
commande umount qui permet le démontage. Les unités logiques
”montables” doivent être décrites dans le fichier /etc/fstab.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–19–
M1 EEAS
UPS
Système de fichiers GNU/Linux
Exemple de montage
Arbre systeme
Arbre unite logique
bin
mkdir
bin
/
/
chmod
home
src
data
projet
jme
mnt
projet.c
Montage au point /mnt
Montage au point /home/jme
mkdir
mkdir
bin
/
bin
chmod
home
/
projet
jme
mnt
bin
projet.c
chmod
home
bin
jme
mnt
src
src
data
data
Jean-Michel ENJALBERT - [email protected], 2005/2006
–20–
M1 EEAS
Système de fichiers GNU/Linux
UPS
II-5 Caractéristiques des fichiers
II-5.1
Descripteur de fichiers
Chaque fichier UNIX est associé à un descripteur (i-node) qui contient:
– un numéro unique d’identification
– l’identification de son propriétaire
– un compteur de références à ce fichier
– l’adresse des blocs utilisés sur le disque pour ce fichier
– sa taille en octets
– son type: ordinaire, spécial,...
– la date de sa création , de sa dernière modification, ...
– les droits d’accès pour les différents utilisateurs
– etc...
Jean-Michel ENJALBERT - [email protected], 2005/2006
–21–
M1 EEAS
II-5.2
Système de fichiers GNU/Linux
UPS
les droits d’accès
Les droits d’accès à un fichier peuvent être donnés soit:
– au seul propriétaire du fichier
– à tous les membres du groupe auquel il appartient
– à tous les autres utilisateurs (non-membres du groupe)
Un utilisateur appartient à un ou plusieurs groupes.
Trois types de droits d’accès:
– droits en lecture: Permet de visualiser le contenu du fichier et d’en effectuer une
copie.
– droits en écriture: Permet de modifier le contenu du fichier.
– droits d’exécution: Permet d’exécuter le fichier. Pour un répertoire, permet de le
”traverser” c’est à dire de se déplacer à l’intérieur.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–22–
M1 EEAS
Système de fichiers GNU/Linux
UPS
Représentation des type et droits d’accès d’un fichier:
➯ chaı̂ne de 10 caractères du type:
drwxrwxrwx
Premier caractère:
➯
➯
➯
➯
- pour un fichier ordinaire
d pour un répertoire
l pour un lien
b ou c pour un fichier spécial.
3 groupes de 3 caractères: droits pour: propriétaire, groupe, autres (dans l’ordre).
➯
➯
➯
➯
- absence de droits,
r droits en lecture
w droits en écriture
x droits en exécution.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–23–
M1 EEAS
Système de fichiers GNU/Linux
UPS
II-6 Commandes sur les fichiers
Une commande UNIX se présente sous la forme générale:
commande -options arguments
Les options comme les arguments peuvent être omis suivant la commande
concernée. Chaque argument doit être séparé par un espace.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–24–
M1 EEAS
II-6.1
Système de fichiers GNU/Linux
UPS
Liste de fichiers
La commande ls permet d’afficher la liste des fichiers contenu dans un
répertoire.Principales options:
-l pour un affichage détaillé (long)
-a pour afficher les fichiers cachés (commencant par un .)
Exemple: ls -l
total 982
-rw-r--r-drwxr-xr-x
drwxr-xr-x
drwx-----drwxrwx--drwx-----drwxr-x---rw-r--r-drwx-----drwx------
1
2
2
2
9
15
2
1
2
5
enjalber
enjalber
enjalber
enjalber
enjalber
enjalber
enjalber
enjalber
enjalber
enjalber
rst
rst
rst
rst
rst
rst
rst
rst
rst
rst
62107
1024
512
512
512
1024
512
40960
512
1536
Sep
Jul
Jul
Sep
Jul
Jul
Jul
Aug
Sep
Jul
12
20
18
6
21
20
20
31
8
20
13:44
09:12
08:56
11:14
09:54
13:15
08:16
05:16
16:41
10:00
7296_data.pdf
C167/
Desktop/
PERSO/
Topo/
UPS/
UTILS/
automate2.tar
mail/
nsmail/
Sans argument, ls affiche la liste des fichiers du répertoire courant.
Sinon affiche le contenu du répertoire donné en argument,
Jean-Michel ENJALBERT - [email protected], 2005/2006
–25–
M1 EEAS
II-6.2
Système de fichiers GNU/Linux
Modification des droits d’accès: chmod
Syntaxe: chmod
➯
➯
➯
➯
➯
➯
➯
➯
➯
UPS
[ugoa][+-][rwx] nom fichier
u user: le propriétaire du fichier
g group: les membres du groupe
o others: les autres (non-membres du groupe)
a all: Tout le monde
+ Donne le droit d’accès
- Supprime le droit d’accès
r read: accès en lecture
w write: accès en écriture
x : accès en exécution
Remarque: Un utilisateur ne peut modifier que les droits des fichiers qui lui
appartiennent (excepté root).
Jean-Michel ENJALBERT - [email protected], 2005/2006
–26–
M1 EEAS
II-6.3
Système de fichiers GNU/Linux
UPS
Caractères génériques
Parmi les caractères spéciaux réservés, les caractères ? et *, appelés aussi
caractères génériques permettent de sélectionner un sous-ensemble de fichiers
(pour l’affichage de leur liste par exemple).
? remplace un et un seul caractère.
* remplace une chaı̂ne de caractères de longueur quelconque.
Exemples:
ls *.c affiche uniquement la liste de tous les fichiers d’extension .c.
ls a?? affiche la liste de tous les fichiers dont le nom contient 3 lettres et
commence par a.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–27–
M1 EEAS
II-6.4
Système de fichiers GNU/Linux
UPS
Commandes de manipulation des fichiers
– Copie de fichiers: cp
Syntaxe: cp
origine destination ou origine est le nom d’un
fichier et destination le nom d’un fichier ou d’un répertoire (nom absolu
ou relatif)
– Déplacement de fichiers mv
Syntaxe: mv
origine destination. Le déplacement est un
changement de nom.
– Suppression de fichiers rm
Syntaxe: rm
fichiers
Attention, sous UNIX il n’est pas possible de récupérer un fichier supprimé.
On peut utiliser les caractères génériques? et *.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–28–
M1 EEAS
II-6.5
Système de fichiers GNU/Linux
UPS
Commandes de visualisation
Les fichiers ordinaires de type texte peuvent être visualisés par différentes
commandes UNIX:
–
cat
Affiche a l’écran le contenu du fichier.
–
more
Comme cat mais l’affichage se fait page par page.
–
head
Affiche les premières lignes d’un fichier.
–
tail
Affiche les dernières lignes d’un fichier.
La commande wc permet d’afficher le nombre de lignes, de mots et de caract ères
d’un fichier (dans cet ordre).
Jean-Michel ENJALBERT - [email protected], 2005/2006
–29–
M1 EEAS
II-6.6
Système de fichiers GNU/Linux
UPS
Commandes de manipulation des répertoires
Les commandes mv et cp s’appliquent aussi aux répertoires mais deux
commandes supplémentaires permettent de créer et de supprimer un répertoire:
–
mkdir
Pour créer un répertoire.
–
rmdir
Pour supprimer un répertoire vide.
Pour un répertoire non-vide, il faut utiliser la commande:
rm -r nom repertoire.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–30–
M1 EEAS
II-6.7
Système de fichiers GNU/Linux
UPS
Les liens
Un lien vers un fichier est un pointeur qui permet d’accéder à un fichier en utilisant
un nom différent. Création d’un lien: commande ln.
Syntaxe: ln
[-s] fichier lien vers fichier
➯ Lien physique Nouvelle entrée dans un répertoire pour un numéro d’inode
identique.
➯ Lien symbolique (option -s de la commande)
Fichier spécial dont le contenu spécifie le chemin (absolu ou relatif) conduisant
au fichier pointé.
Si le fichier pointé est supprimé, le lien existe toujours mais ne peut plus
fonctionner.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–31–
M1 EEAS
Système de fichiers GNU/Linux
UPS
Illustration
Lien physique:
ln progV2 prog
Lien symbolique:
ln −s progV2 prog
bin
bin
.,61
..,60
progV1,62
progV2,63
prog,63
.,61
..,60
progV1,62
progV2,63
(prog−>progV2)
prog,64
Jean-Michel ENJALBERT - [email protected], 2005/2006
–32–
M1 EEAS
UPS
Processus GNU/Linux
III-Processus
III-1 Notion de processus
Un processus peut être vu comme un programme en cours d’exécution.
Il est caractérisé par un environnement: registres, pile, segment de données.
DISQUE
Programmes
Lancement
(fichiers
executables)
MEMOIRE
Processus
Ordonnanceur
Unite
Centrale
Chaque processus est pris en charge par le noyau du S.E. qui lui attribue les
ressources nécessaires: processeur, mémoire, ...
Jean-Michel ENJALBERT - [email protected], 2005/2006
–33–
M1 EEAS
Processus GNU/Linux
UPS
III-2 Etats d’un processus
Dans un système multi-tâches comme UNIX, un processus peut se trouver dans
différents états au cours de sa vie:
– En exécution
Le processus est exécuté par le processeur
– Prêt
Le processus est prêt a être exécuté mais il attend que le processeur se libère.
– Suspendu
Le processus est en attente d’une ressource (entrée/sortie par exemple)
– Stoppé
Le processus a été suspendu par un signal externe.
– Zombie
Le processus est terminé mais reste référencé dans le système.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–34–
M1 EEAS
UPS
Processus GNU/Linux
´
Graphe de changements d’etats
du processus
Creation
Stoppe
Signal
Signal
Pret
Ordonnancement
En
Execution
Terminaison
Zombie
Requete
Entree/Sortie
Fin
Entree/Sortie
Suspendu
L’ordonnancement est le mécanisme qui permet de décider quel processus doit être
exécuté par le processeur à un instant donné.
Lorsqu’un processus se termine, il reste dans l’état zombie jusquà ce que son
processus père prenne connaissance de son état de terminaison.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–35–
M1 EEAS
Processus GNU/Linux
UPS
III-3 Attributs d’un processus
Durant son existence, un processus est caractérisé par:
– son état
– son identificateur (PID)
– la valeur des registres du processeur
– l’identité de l’utilisateur sous le nom duquel il s’exécute
– les informations utilisés pour l’ordonnancement: priorité,...
– les informations concernant l’espace d’adressage (code, données, pile)
– les informations concernant les entrées/sorties
– ...
Jean-Michel ENJALBERT - [email protected], 2005/2006
–36–
M1 EEAS
Processus GNU/Linux
UPS
III-4 Liste des processus
La commande ps permet d’afficher des informations sur les processus existants
dans le système. Elle possède différentes options. Utilisé sans options, elle affiche
la liste des processus fils du terminal (shell) à partir duquel elle a été lancée.
Exemple:
[jme@tamia AUTOMATE]$ ps
PID TTY
TIME CMD
584 pts/0
00:00:00 bash
617 pts/0
00:00:00 simulateur
618 pts/0
00:00:00 ps
Jean-Michel ENJALBERT - [email protected], 2005/2006
–37–
M1 EEAS
UPS
Processus GNU/Linux
Il existe aussi la commande top qui affiche en interactif des informations sur les
processus en cours et sur leur état.
36 processes: 33 sleeping, 3 running, 0 zombie, 0 stopped
CPU states: 44.6% user, 1.5% system, 0.0% nice, 53.7% idle
Mem:
38792K av, 37796K used,
996K free, 26320K shrd,
3672K buff
Swap: 66488K av,
3356K used, 63132K free
18592K cached
PID
528
582
619
1
2
3
336
363
415
464
499
500
USER
root
jme
jme
root
root
root
root
daemon
root
xfs
root
root
PRI
19
1
4
0
0
0
0
0
0
0
0
0
NI
0
0
0
0
0
0
0
0
0
0
0
0
SIZE
3184
4160
1016
108
0
0
200
316
80
1096
248
68
RSS SHARE STAT
3064
964 R
4160 2984 R
1016
824 R
52
44 S
0
0 SW
0
0 SW
148
108 S
300
236 S
0
0 SW
1020
624 S
0
0 SW
0
0 SW
LIB %CPU %MEM
0 33.2 7.8
0 3.7 10.7
0 3.7 2.6
0 0.0 0.1
0 0.0 0.0
0 0.0 0.0
0 0.0 0.3
0 0.0 0.7
0 0.0 0.0
0 0.0 2.6
0 0.0 0.0
0 0.0 0.0
Jean-Michel ENJALBERT - [email protected], 2005/2006
TIME
0:13
0:01
0:00
0:04
0:00
0:00
0:00
0:00
0:00
0:00
0:00
0:00
COMMAND
X
konsole
top
init
kflushd
kupdate
syslogd
atd
lpd
xfs
login
mingetty
–38–
M1 EEAS
UPS
Processus GNU/Linux
III-5 Création des processus
➯ Duplication du processus courant (appel système fork). Le père crée un fils.
➯ Recouvrement du code exécutable du fils (appel système exec)
fork:exec "commande"
bash
commande
wait
Processus pere
Processus fils
fork:exec "commande1"
commande
1
bash
fork:exec "commande2" commande
2
A l’initialisation le processus init est lancé. Ce processus crée lui-même des
processus fils. Le résultat est une arborescence de processus.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–39–
M1 EEAS
UPS
Processus GNU/Linux
III-6 Mode utilisateur et mode noyau
Protection des ressources paratagées (mémoire, E/S, ...):
➯ Seuls les processus systémes peuvent y accéder.
Processus utilisateur: doit utiliser des appels système.
requete E/S
Processus
Utilisateur
Processus
Systeme
E/S
resultat
requete
Exemple: Permet de vérifier les droits de l’utilisateur sur un fichier.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–40–
M1 EEAS
UPS
Processus GNU/Linux
III-7 Communication entre processus
III-7.1
Les signaux
Un processus peut émettre un signal vers un autre processus. Appel système:
kill signal PID
III-7.2
Les tubes
Files de caractères de type FIFO.
Un processus peut ouvrir un tube vers un autre processus et envoyer des donn ées.
Processus
emetteur
tube de communication
ecriture
lecture
Processus
recepteur
Jean-Michel ENJALBERT - [email protected], 2005/2006
–41–
M1 EEAS
III-7.3
UPS
Processus GNU/Linux
Mémoire partagée
➯ Sous UNIX, chaque processus possède sa mémoire propre.
➯ Le mécanisme de mémoire partagée permet de définir une zone mémoire
accessible depuis plusieurs processus.
➯ Une clé permet l’accès à cette zone.
➯ Le processus qui réserve la mémoire partagée génère cette clé et la transmet
aux processus avec qui il doit partager cette mémoire.
Processus 1
Processus 2
lecture/ecriture
Memoire
propre
Memoire
commune
Memoire
propre
Jean-Michel ENJALBERT - [email protected], 2005/2006
–42–
M1 EEAS
III-7.4
Processus GNU/Linux
UPS
Sémaphores
➯ Servent à gérer l’allocation de ressources limitées.
➯ Dans le cas des ressources systèmes (entrées/sorties, mémoires,
processeur...) c’est le SE qui arbitre entre les différentes demandes (en utilisant
des sémaphores!).
➯ Un sémaphore est un compteur associé à une ressource.
– Si ce compteur vaut zéro, c’est que la ressource est indisponible.
– Un processus qui veut accéder à une ressource ne peut le faire que si la
valeur du sémaphore n’est pas nulle.
– Il décrémente alors le compteur. A la libération de la ressource, il incrémente
le compteur.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–43–
M1 EEAS
III-7.5
UPS
Processus GNU/Linux
Files de messages
Les files de messages fonctionnent comme des boı̂tes aux lettres. Chaque
processus autorisé peut mettre un message dans la boı̂te aux lettres ou en retirer
un.
envoi mess.
lecture mess.
Processus 1
Processus 2
Processus 3
boite aux lettres
Jean-Michel ENJALBERT - [email protected], 2005/2006
–44–
M1 EEAS
Processus GNU/Linux
UPS
III-8 Redirection des Entrées/Sorties
III-8.1
Entrée et sortie standards
Création d’un processus ➯ ouverture de 3 fichiers.
– Entrée standard: descripteur 0, clavier.
– Sortie standard: descripteur 1, écran
– Sortie d’erreurs: descripteur 2, écran
Redirections et pipeline: Ecran et clavier=fichiers spéciaux ➯
– Redirection de la sortie d’un processus vers un fichier
– Redirection d’un fichier vers l’entrée d’un processus.
– Redirection de la sortie d’un processus vers l’entrée d’un processus.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–45–
M1 EEAS
III-8.2
Processus GNU/Linux
UPS
Redirection de la sortie
commande > fichier
permet de rediriger la sortie standard vers un fichier
S’il existait précédemment, le fichier est écrasé.
On peut aussi rediriger la sortie vers un fichier existant sans l’ écraser (à la suite) en
écrivant
commande >> fichier
Un fichier particulier: /dev/null permet d’envoyer la sortie vers le n éant...
Jean-Michel ENJALBERT - [email protected], 2005/2006
–46–
M1 EEAS
III-8.3
Processus GNU/Linux
UPS
Sortie d’erreur
En plus de la sortie standard, un processus peut écrire sur la sortie erreurs
On peut rediriger cette sortie (l’écran par défaut) en utilisant la syntaxe:
commande 2> fichier ou commande 2>> fichier
On peut aussi rediriger les deux sorties:
(commande > fichier1) 2> fichier2
qui redirige la sortie standard vers fichier1 et la sortie erreur vers
fichier2.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–47–
M1 EEAS
III-8.4
Processus GNU/Linux
UPS
Redirection de l’entrée
La redirection de l’entrée standard se fait en utilisant la syntaxe:
commande < fichier
Le processus vient lire dans le fichier les données précédemment rentrées au
clavier.
On peut bien sùr rediriger à la fois l’entrée et la sortie en écrivant:
commande < fichier1 > fichier2
La commande prend ses entrées dans fichier1 et met ses sorties dans
fichier2.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–48–
M1 EEAS
Processus GNU/Linux
III-8.5
UPS
Enchainement de processus
On peut lier deux processus, l’un prenant en entrée la sortie de l’autre (on parle de
pipeline):
commande1 | commande2
commande2 prend en entrée la sortie de commande1. Ceci est équivalent à:
commande1 > tempo; commande2 < tempo; rm tempo
Remarque: Le caractère ; permet d’enchaı̂ner des commandes.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–49–
M1 EEAS
Processus GNU/Linux
UPS
III-9 Lancement des commandes
Les commandes sont généralement lancées à partir d’un terminal.
Lancement en avant-plan (terminal bloqué tant que la commande s’exécute):
commande
Lancement en arrière-plan (le terminal reste disponible)
commande &
Remarque: si le processus attend des entrées clavier, il va être stoppé.
Passage arrière-plan ➯ avant-plan: fg
Passage avant-plan ➯ arrière-plan: bg (il faut d’abord stopper le processus)
Signals envoyés à un processus en avant-plan:
– CTRL-Z: processus stoppé
– CTRL-C: processus supprimé.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–50–
M1 EEAS
Langage de shell: Bash
UPS
IV-Langage de shell
IV-1 Introduction
Shell = Interpréteur de commandes
Analyse et exécute des commandes UNIX
Mode interactif: commandes rentrées au clavier dans un terminal. L’analyse de la
commande et son exécution commence après le retour-chariot (caractère CR).
Mode “batch”: la commande est un fichier contenant des commandes UNIX.
L’interpréteur exécute ce fichier ligne par ligne.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–51–
M1 EEAS
Langage de shell: Bash
UPS
IV-2 Interpréteur interactif
L’algorithme que suit un interpréteur de commande en mode interactif peut-être
décrit ainsi:
1. Ouverture de 3 fichiers: entrée standard, sortie standard, sortie d’erreur.
2. Affichage du message d’accueil (prompt).
3. Lecture sur l’entrée standard (avec stockage des caractères dans un buffer)
jusqu’au caractère retour chariot.
4. Interprétation des caractères spéciaux (par exemple “?” et “*”).
5. Recherche de la commande (dans les répertoires listés dans la variable PATH).
6. Lancement de la commande en avant-plan: fork:exec:wait:prompt
ou en arrière-plan: fork:exec:prompt. En arrière plan, on revient
directement en 2. En avant-plan, on attend la fin de la commande (fonction
wait) avant de revenir en 2.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–52–
M1 EEAS
Langage de shell: Bash
UPS
IV-3 Fichiers de configuration
A la connection au système, celui-ci exécute un fichier de configuration. Pour bash il
s’agit du fichier: .bash
profile.
Remarques:
Le caractère # en début de ligne indique un commentaire.
Le fichier .bash
profile n’est exécuté qu’à la connection au système et pas
lors de l’ouverture d’un nouveau terminal.
.bashrc est lui exécuté à l’ouverture de chaque nouveau terminal.
On notera la commande alias qui permet de donner un synonyme à une
commande. L’inverse de la commande alias est la commande unalias.
Voici un exemple des fichiers .bash
profile et .bashrc:
Jean-Michel ENJALBERT - [email protected], 2005/2006
–53–
M1 EEAS
Langage de shell: Bash
UPS
# .bash_profile
# Get the aliases and functions
if [ -f ˜/.bashrc ]; then
. ˜/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:.
BASH_ENV=$HOME/.bashrc
USERNAME=""
export USERNAME BASH_ENV PATH
Jean-Michel ENJALBERT - [email protected], 2005/2006
–54–
M1 EEAS
Langage de shell: Bash
UPS
# .bashrc
# User specific aliases and functions
alias rm="rm -i"
alias mv="mv -i"
alias cp="cp -i"
alias cls="clear"
alias ls="ls --color=auto"
alias ll="ls -l"
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
Jean-Michel ENJALBERT - [email protected], 2005/2006
–55–
M1 EEAS
Langage de shell: Bash
UPS
IV-4 Variables d’environnement
Variables initialisées par le système (fichiers d’iniitialisation).
Exemples:
➯ PWD Contient le chemin absolu du répertoire de travail.
➯ HOSTNAME Contient le nom de la machine.
➯ USERNAME Contient le nom de l’utilisateur.
➯ PATH Contient la liste des chemins de recherche des commandes. Chaque
chemin est séparée par :. Les répertoires sont explorés dans l’ordre de la liste
jusqu’a ce que la commande soit trouvée.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–56–
M1 EEAS
UPS
Langage de shell: Bash
IV-5 Les scripts-shell
Un script-shell est un fichier texte contenant des commandes UNIX qui vont être
exécutées par l’interpréteur de commandes.
On doit le rendre exécutable (commande chmod).
Il doit commencer par une ligne indiquant l’interpréteur de commandes à utiliser
(Exemple: .#!/bin/bash).
Une commande UNIX a la forme générale suivante: commande
-options
arguments ou options et arguments sont des listes de chaı̂nes de
caractères séparés par des blancs. Par exemple: rm -i *.c *.o.
Elle renvoie un code de retour qui vaut zéro en cas de succès et une valeur positive
en cas d’ erreur.
Une commande UNIX peut-être une commande interne au noyau ou une
commande externe.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–57–
M1 EEAS
IV-5.1
UPS
Langage de shell: Bash
Paramètres positionnels
Les paramètres positionnels permettent de récupérer les valeurs passées à une
commande (arguments ou options).
On utilise la notation: $x ou x représente le numéro du paramètre.
$0 représente le nom du fichier script lui-même.
$# représente le nombre de paramètres passés au script.
Exemple: Soit le script-shell essai. Si l’on exécute: essai
du shell
Les paramètres positionnels ont les valeurs suivantes:
`
parametre
valeur
$#
2
$0
essai
$1
du
$2
shell
Jean-Michel ENJALBERT - [email protected], 2005/2006
–58–
M1 EEAS
IV-5.2
Langage de shell: Bash
UPS
Variables utilisateurs
On peut aussi définir des variables locales dans un script simplement en les
affectant.
A l’intérieur d’un script, les valeurs des variables sont accessibles en les pr éfixant
par le symbole $. Elles peuvent être rendues accessibles en dehors du script gràce
à la commande export.
IV-5.3
Divers
– Les commentaires commencent avec le symbole # et se terminent en fin de
ligne.
– Le séparateur de commande est la fin de ligne ou le caractère ;
Jean-Michel ENJALBERT - [email protected], 2005/2006
–59–
M1 EEAS
Langage de shell: Bash
UPS
Exemple de script
La commande: echo permet d’afficher des chaı̂nes de caractères à l’écran et
notamment les valeurs des variables.
La commande read permet de lire une variable au clavier.
#!/bin/bash
#
# Exemple de variables utilisateurs
#
VAR1=52
# VAR1 = la chaine ’52’
VAR2=VAR1
# VAR2 = la chaine ’VAR1’ !
VAR3=$VAR1
# VAR3 = la valeur de VAR1 soit la chaine ’52’
VAR4=$((VAR1+1)) # VAR4 = la chaine: ’53’
echo $VAR1 $VAR2 $VAR3 $VAR4 # Affiche: 52 VAR1 52 53
echo "Votre reponse?"
read REP
echo "vous avez repondu: $REP"
Jean-Michel ENJALBERT - [email protected], 2005/2006
–60–
M1 EEAS
IV-5.4
Langage de shell: Bash
UPS
La commande test
La commande test permet de réaliser des comparaisons. On peut écrire: test
comparaisons ou [ comparaisons ] (espaces obligatoires!).
Quelques opérateurs de comparaison:
`
Sur les chaı̂nes de caracteres:
test v1 = v2 (égalité de chaı̂nes de caractères)
test v1 != v2 (non-égalité de chaı̂nes de caractères)
´
Sur les expressions arithmetiques:
test v1 -eq v2 (égalité de valeurs entières)
test v1 -ne v2 (non-égalité de valeurs entières)
Pour les expressions arithmétiques, les opérateurs de comparaison suivants
peuvent être utilisés: -eq, -ne, -lt, -le, -gt, -ge.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–61–
M1 EEAS
Langage de shell: Bash
UPS
Sur les fichiers: (tirées du manuel de bash):
-a
-b
-c
-d
-r
-s
-w
-x
-O
-G
file
file
file
file
file
file
file
file
file
file
True
True
True
True
True
True
True
True
True
True
if
if
if
if
if
if
if
if
if
if
file
file
file
file
file
file
file
file
file
file
exists.
exists and
exists and
exists and
exists and
exists and
exists and
exists and
exists and
exists and
is a block special file.
is a character special file.
is a directory.
is readable.
has a size greater than zero.
is writable.
is executable.
is owned by the effective user id.
is owned by the effective group id.
Exemple:
#!/bin/bash
# teste si le paramètre passé en ligne de commande est un répertoire
#
if test -d $1 ; then
echo $1 est un répertoire
else
echo $1 n’est pas un répertoire
fi
Jean-Michel ENJALBERT - [email protected], 2005/2006
–62–
M1 EEAS
IV-5.5
UPS
Langage de shell: Bash
Evaluation des expressions arithmétiques
L’évaluation arithmétique permet de remplacer une expression par le résultat de son
évaluation. Il existe deux formes (équivalentes) d’évaluation arithmétique:
$[expression]
$((expression))
Les opérateurs sont les mêmes que ceux du langage C: +,
-, *, /, >>,
<<, etc...
Par exemple, le script suivant:
#!/bin/bash
x=3
y=5
echo $x+$y $[$x+$y]
$(($x*$y))
affiche:
3+5
8
15
Jean-Michel ENJALBERT - [email protected], 2005/2006
–63–
M1 EEAS
IV-5.6
Langage de shell: Bash
UPS
Structures de contrôle
if
if <condition1>; then
<commandes1>
elif <condition2>; then
<commandes2>
else
<commandes3>
fi
condition1 et condition2 sont des commandes (test en général).
#!/bin/bash
# lance latex et dvips si l’utilisateur a donné nom en argument
#
if test $# -ne 1; then
echo "erreur de syntaxe"
else
latex $1; dvips -o $1.ps $1.dvi
fi
Jean-Michel ENJALBERT - [email protected], 2005/2006
–64–
M1 EEAS
Langage de shell: Bash
UPS
for
for <variable> [in <liste_de_cas>]
do
<commandes>
done
([] signifie optionnel)
Exemple:
#!/bin/bash
#
# supprime les droits d’acces en lecture sur les fichiers
# d’extension .c aux utilisateurs autre que le proprietaire
# des fichiers
#
for FICHIER in *.c
do
chmod go-r $FICHIER
done
Jean-Michel ENJALBERT - [email protected], 2005/2006
–65–
M1 EEAS
Si in
Langage de shell: Bash
UPS
... est omis, liste prend successivement la valeur de chacun des
paramètres positionnels.
Exemple:
#!/bin/bash
#
# Calcule la moyenne des paramètres (entiers) passés en
# ligne de commande
#
SOMME=0
for NOTE
do
SOMME=$((SOMME+NOTE))
done
if [ $# -ne 0 ]; then
echo moyenne:$(($SOMME/$#))
fi
Jean-Michel ENJALBERT - [email protected], 2005/2006
–66–
M1 EEAS
Langage de shell: Bash
UPS
while
while <condition>
do
<commandes>
done
Exécute les commandes tant que condition est vraie.
Exemple:
#!/bin/bash
#
x=0
while test $[$x] -lt 5 # evalue x
do
# fait tant que x<5
x=$[$x+2]
# incrémente x de 2
echo $x
# affiche x
done
Jean-Michel ENJALBERT - [email protected], 2005/2006
–67–
M1 EEAS
Langage de shell: Bash
UPS
until
until <condition>
do
<commandes>
done
Exécute les commandes jusqu’a ce que condition soit vraie.
Exemple:
#!/bin/bash
#
# Exemple de boucle ’until’
# boucle jusqu’a ce que l’utilisateur tape ’fin’
#
REP=encore
until [ $REP = "fin" ]
do
echo ?
read REP
done
Jean-Michel ENJALBERT - [email protected], 2005/2006
–68–
M1 EEAS
Langage de shell: Bash
UPS
case
case <variable> in
<cas1>)
<commande1>
;;
<cas2>)
<commande2>
;;
*)
<commande_defaut>
;;
esac
cas1, cas2 sont des chaı̂nes de caractères.
Exécute la commande pour laquelle il y a correspondance entre variable et
cas. Sinon exécute la commande par défaut.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–69–
M1 EEAS
Langage de shell: Bash
UPS
Exemple:
#!/bin/bash
#
# Calculatrice basique sur les nombres entiers
#
if [ $# -ne 3 ]; then
echo "3 paramètres: opérande opérateur(+,-,/,x) opérande"
else
case $2 in
+) echo $[$1+$3]
;;
-) echo $[$1-$3]
;;
x) echo $[$1 * $3]
;;
/) echo $[$1 / $3]
;;
*) echo "opérateur inconnu" # traitement par défaut
esac
fi
Jean-Michel ENJALBERT - [email protected], 2005/2006
–70–
M1 EEAS
Compléments sur les commandes
UPS
´
V-Complements
sur les commandes
Voici quelques commandes usuelles Unix, certaines sont détaillées par la suite:
➯ man commande affiche l’aide en ligne de la commande
➯ grep motif fichier recherche de chaı̂nes dans un fichier.
➯ find chemin expression recherche de fichiers.
➯ which commande recherche de commandes.
➯ tar options archive fichiers archivage de fichiers.
➯ gzip fichier compression d’un fichier
➯ file fichier affichage du type d’un fichier (ascii, binaire, ...)
➯ du rep affichage de l’espace utilisé par l’arborescence spécifiée.
➯ touch fichier crée un fichier vide ou met à jour sa date.
➯ diff fichier1 fichier2 affiche les différences entre fichiers texte.
➯ sort fichier tri un fichier texte
Jean-Michel ENJALBERT - [email protected], 2005/2006
–71–
M1 EEAS
V-1
Compléments sur les commandes
UPS
Manuel en ligne: man
La commande man permet d’afficher le manuel en ligne des commandes
disponibles sur le système.
Sous sa forme la plus simple sa syntaxe est: man
Exemple: man
commande.
man.
On peut aussi préciser la section de recherche: man
section nom. Ainsi la
section 3 regroupe les fonctions systèmes du langage C.
Exemple: man
3 printf
Pour afficher toutes les sections correspondants à une commande, on utilise l’option
-a.
Exemple: man
-a time
Jean-Michel ENJALBERT - [email protected], 2005/2006
–72–
M1 EEAS
Compléments sur les commandes
Exemple: man
UPS
grep (extraits)
Nom: grep - Afficher les lignes correspondant à un motif donné.
Synopsis:
grep [ -[[AB] ]num ] [ -[chnvx] ] motif
[ fichiers... ]
Description:
grep recherche dans les fichiers d’entrée indiqués les lignes correspondant à un certain motif.
Si aucun fichier n’est fourni, la lecture se fait depuis l’entrée standard.
Par défaut, grep affiche les lignes correspondant au motif.
grep accepte les options suivantes :
-num Les correspondances seront affichées avec num lignes supplémentaires avant et après.
-A num Afficher num lignes supplémentaires après la ligne correspondante.
-B num Afficher num lignes supplémentaires avant la ligne correspondante.
-c Ne pas afficher les résultats normaux. A la place, afficher un compte des lignes correspondantes pour chaque fichier
d’entrée. Avec l’option -v (voir plus bas), afficher les nombres de lignes ne correspondant pas au motif.
-h Ne pas afficher le nom des fichiers dans les ér sultats lorsque plusieurs fichiers sont parcourus.
-n Ajouter à chaque ligne de sortie un préfixe contenant son numéro dans le fichier d’entrée.
-v Inverser la mise en correspondance, pour sélectionner les lignes ne correspondant pas au motif.
-x Ne sélectionner que les correspondances qui occupent une ligne entière.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–73–
M1 EEAS
Compléments sur les commandes
UPS
V-2 Utilisation de grep
➯ Affichage des lignes contenant la chaine: “1000” de prog.c:
grep 1000 prog.c
➯ Compte des lignes contenant “while”:
grep -c while prog.c
➯ Recherche du PID du processus: emacs
ps | grep emacs
➯ Suppression des lignes contenant “printf” de prog.c et sauvegarde dans
prog2.c:
grep -v printf prog.c > prog2.c
Jean-Michel ENJALBERT - [email protected], 2005/2006
–74–
M1 EEAS
Compléments sur les commandes
UPS
V-3 Recherche de fichiers find
Syntaxe: find
chemin expression
Chemin: la recherche s’effectue dans le répertoire dont le chemin est donné en
argument et tous ses sous-répertoires.
Expression: affiche la liste des fichiers pour laquelle expression est vraie.
Exemples d’expressions: -name
nom, -size +nk, ...
Exemples:
find /home/jme -name prog.c
Affiche le chemin de tous les fichiers prog.c contenu dans l’arborescence ayant pour
racine /home/jme
find . -size +50k
Affiche tous les fichiers du répertoire courant de taille supérieure à 50 Koctets.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–75–
M1 EEAS
Compléments sur les commandes
UPS
V-4 Recherche de commandes: which
Recherche du chemin de l’exécutable donné en argument. La recherche se fait
dans les répertoires listés dans la variable d’environnement PATH.
Option: -a Affiche toutes les occurences de l’exécutable.
Exemple:
which bash
/bin/bash
Jean-Michel ENJALBERT - [email protected], 2005/2006
–76–
M1 EEAS
Compléments sur les commandes
UPS
V-5 Archivage: tar
tar permet de concaténer des fichiers et des répertoires dans un seul fichier
(fichier archive)
Création d’une archive:
tar cvf archive.tar fichiers
ou:
tar cvf archive.tar repertoires
Vérification de l’archive (affichage de son contenu):
tar tvf archive.tar
Désarchivage (extraction des fichiers):
tar xvf archive.tar
´
Remarque: les fichiers archiv´
es ne sont pas supprimes.
Jean-Michel ENJALBERT - [email protected], 2005/2006
–77–
M1 EEAS
Compléments sur les commandes
UPS
V-6 Compression de fichiers: gzip
Il existe plusieurs utilitaires de compression de fichier. gzip est le plus utilis é sous
Linux.
Compression:
gzip fichier : remplace fichier par sa version compressée fichier.gz
Affichage du contenu du fichier compressé:
gzip -l fichier.gz
Décompression:
gzip -d fichier.gz
Jean-Michel ENJALBERT - [email protected], 2005/2006
–78–
Téléchargement