Sie sind auf Seite 1von 102

Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Module I1 : systèmes d’exploitation des ordinateurs

P. Martini1
1
Département Réseaux et Télécommunications de l’I.U.T. de Roanne
Université Jean Monnet de Saint-Étienne

Cours de première année, 2010

Module I1 : systèmes d’exploitation des ordinateurs


1 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Module I1

Matière : Informatique ;
Unité d’enseignement : UE2, Informatique et Électronique ;
Volume horaire : 6 CM, 4 TD, 20 TP ;
Semestre : S1 ;
Période : septembre à novembre ;
Intervenants : B. Despinasse (TP) et P. Martini (CM, TD et TP).

Module I1 : systèmes d’exploitation des ordinateurs


2 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Objectifs - compétences minimales

Objectifs
Comprendre le rôle des systèmes d’exploitation et connaître les
systèmes de fichiers des ordinateurs

Compétences minimales
Sur divers SE, être capable de :
ouvrir une session ;
organiser et manipuler les fichiers en mode texte et graphique, en
tenant compte des droits d’accès ;
démarrer ou contrôler l’exécution d’une application ;
initialiser les variables d’environnement et créer des scripts
élémentaires.

Module I1 : systèmes d’exploitation des ordinateurs


3 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Pré-requis, prolongements possibles

Pré-requis
Bac ou équivalent

prolongements possibles
Module réseau R3 : administration des systèmes d’exploitation

Module I1 : systèmes d’exploitation des ordinateurs


4 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Déroulement

3 cours de 2 heures (en salle) seront dispensés dans les 3 premières


semaines ;
ils seront suivis de 2 TD de 2 heures (sur machines) ;
puis de 5 TP de 4 heures (sur machines) ;
vous serez évalués par un QCM ainsi qu’un examen pratique sur
machines lors de la dernière séance de TP.

Module I1 : systèmes d’exploitation des ordinateurs


5 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Moi. . .
Enseignant permanent MCF à l’IUT de Roanne, laboratoire LASPI ;
interventions en RT :
I1 (CM, TD, TP) ;
AA (TD) ;
T2 (CM, TD, TP) ;
R3 (CM, TD, TP) ;
TR3 (CM, TD, TP) ;
interventions en GIM :
Eleca (CM, TD, TP) ;
Elecb (CM, TD, TP) ;
Infoa (CM, TD, TP) ;
interventions en LPGPI :
Réseaux (CM, TD, TP) ;
Activité Aïkido au sein du SUAPS.

Module I1 : systèmes d’exploitation des ordinateurs


6 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Vous ?

Module I1 : systèmes d’exploitation des ordinateurs


7 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Compte-rendus de TP

Module I1 : systèmes d’exploitation des ordinateurs


8 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Qu’est-ce qu’un système d’exploitation ?

Le programme système d’exploitation est le programme


fondamental des programmes systèmes :
il contrôle les ressources de l’ordinateur : processeurs, mémoires,
disques, horloges, périphériques. . . ;
il fournit la base sur laquelle seront construits les programmes
d’application.

Module I1 : systèmes d’exploitation des ordinateurs


9 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Contenu du module

commandes système ;
répertoires et fichiers ;
utilisateurs et droits ;
variables d’environnement ;
scripts élémentaires ;
utilisation des outils informatiques de base.

Module I1 : systèmes d’exploitation des ordinateurs


10 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Différentes générations
Unix

Module I1 : systèmes d’exploitation des ordinateurs


11 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

1re génération (1945–1955) : tubes à vide et


cartes enfichables

Matériel : tubes (peu fiable,


lent, encombrant, fragile) ;
programmes écrits directement
en langage machine ;
il n’existait pas de système
d’exploitation ;
les utilisateurs travaillaient
chacun leur tour sur
l’ordinateur qui remplissait une
salle entière. Figure 1: Eniac (1946)

Module I1 : systèmes d’exploitation des ordinateurs


12 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

2e génération (1955–1965) : transistors et


traitement par lots

Transistors, cicuits imprimés


(fiabilité accrue) ;
premiers périphériques, cartes
perforées, imprimantes,
bandes ;
premiers systèmes
d’exploitation (FMS, IBSYS).
vente aux grandes compagnies,
université ou administrations ;
traitement par lots ; Figure 2: Univac (1951)

utilisations en calcul
scientifique et ingénierie.
Module I1 : systèmes d’exploitation des ordinateurs
13 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

3e génération (1965–1980) : circuits intégrés


et la multi-programmation

Processeurs d’entrées/sorties ;
multi-programmation : plusieurs activités progressent en parallèle ;
famille d’ordinateurs compatibles entre eux ;
une seule architecture et un même jeu d’instructions ;
mini-ordinateurs ;
système d’exploitation énorme et très complexe ;
partage de temps.

Module I1 : systèmes d’exploitation des ordinateurs


14 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

4e génération (1980 - 1990) : réseaux et


ordinateurs personnels

circuits LSI ;
MS-DOS et UNIX ;
micro-ordinateurs reçoivent la même architecture que les mini ;
réseaux d’ordinateurs individuels.

Module I1 : systèmes d’exploitation des ordinateurs


15 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

5e génération (1980 - . . . ) : ordinateurs


personnels portables et de poche

Apparition des PIC (Personal Intelligent Communicator) et des PDA


(Personal Digital Assistant) ;
systèmes d’exploitation de type micro-noyau.

Module I1 : systèmes d’exploitation des ordinateurs


16 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Différentes générations
Unix

Module I1 : systèmes d’exploitation des ordinateurs


17 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Historique d’Unix

créé aux laboratoires Bell (USA) en 1969.


but : gestion d’un mini-ordinateur pour une petite équipe de
programmeurs.
intéresse rapidement universités puis constructeurs.
nombreuses versions : Linux, AIX, HPIX, SPIX,. . .
de nos jours :
le respect de la norme POSIX apporte la compatibilité
interface graphique amène la convivialité

système multi-tâches, multi-utilisateurs

Module I1 : systèmes d’exploitation des ordinateurs


18 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Qualités d’Unix
Code source facile à lire et à modifier, disponible commercialement ;
interface utilisateur simple, non conviviale mais très puissante ;
le système est construit sur un petit nombre de primitives de base,
de nombreuses combinaisons possibles entre programmes ;
les fichiers ne sont pas structurés au niveau des données, ce qui
favorise une utilisation simple ;
toutes les interfaces avec les périphériques sont unifiées (système de
fichier) ;
le programmeur n’a jamais à se soucier de l’architecture de la
machine sur laquelle il travaille ;
c’est un système disponible sur de nombreuses machines, allant du
supercalculateur au micro-ordinateur ;
les utilitaires et programmes proposés en standard sont très
nombreux.
Module I1 : systèmes d’exploitation des ordinateurs
19 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Linux, le libre d’Unix

1991 - 2000 : Linux, le renouveau d’UNIX ;


linux est une implantation libre des spécifications POSIX (1003.1)
avec des extensions System V (AT&T) et BSD (Berkeley) ;
en 1991, Linus B. Torvalds (Helsinki) utilise MINIX (A.
Tannenbaum) ;
août 1991 : 1re version de Linux 0.01. C’est une réécriture de
MINIX, avec des ajouts de nouvelles fonctionnalités et la diffusion
des sources sur internet ;
mars 1994 : 1er version stable ;
aujourd’hui : les versions 2.6. . . respectent la norme POSIX (code
source portable) et le code source est gratuit.

Module I1 : systèmes d’exploitation des ordinateurs


20 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Fichiers et répertoires
Structure arborescente
Adressage des fichiers
Commandes de manipulation des fichiers
Méta-caractères
Montage de disques
Protection des fichiers
Représentation des fichiers

Module I1 : systèmes d’exploitation des ordinateurs


21 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Fichiers et répertoires

Les documents sur lesquels on travaille sont stockés dans des


fichiers ;
les fichiers peuvent être regroupés dans des dossiers (également
appelés répertoires ou catalogues) ;
l’ensemble des fichiers est stocké sur le disque selon une structure
arborescente.

Module I1 : systèmes d’exploitation des ordinateurs


22 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Fichiers et répertoires
Structure arborescente
Adressage des fichiers
Commandes de manipulation des fichiers
Méta-caractères
Montage de disques
Protection des fichiers
Représentation des fichiers

Module I1 : systèmes d’exploitation des ordinateurs


23 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Arborescence

Racine

nœud1 nœud2 feuille1

feuille2 feuille3 nœud3 feuille4

feuille5 feuille6

Module I1 : systèmes d’exploitation des ordinateurs


24 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Fichiers et répertoires
Structure arborescente
Adressage des fichiers
Commandes de manipulation des fichiers
Méta-caractères
Montage de disques
Protection des fichiers
Représentation des fichiers

Module I1 : systèmes d’exploitation des ordinateurs


25 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Noms des fichiers

Les noms des fichiers comportent souvent une extension : le nom se


termine par un . suivi de quelques lettres (par exemple .txt ;
sous Windows, l’extension indique au système le type du fichier :
texte, fichier lisible par un logiciel particulier. . . ;
sous Unix, l’extension sert principalement à l’utilisateur pour se
souvenir du type de fichier. Certains outils permettent d’associer
une extension à une application particulière.

Module I1 : systèmes d’exploitation des ordinateurs


26 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Adressage des fichiers

Référence absolue
La référence absolue à un fichier constitue le chemin complet pour
y accéder quelle que soit la position courante dans l’arborecence

Référence relative
La référence relative à un fichier constitue le chemin d’accès à un
fichier en fonction d’une position courante dans l’aborescence

Module I1 : systèmes d’exploitation des ordinateurs


27 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Référence absolue (Windows)

C:

Program Files Document and settings Windows

All Users Default User

Bureau NTUSER.DAT

C:\Document and settings\Default User\NTUSER.DAT

Module I1 : systèmes d’exploitation des ordinateurs


28 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Référence absolue (Linux)

bin home usr

etudiant prof

Document fichier.txt

/home/prof/fichier.txt

Module I1 : systèmes d’exploitation des ordinateurs


29 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Référence relative

Répertoire privé (home directory) ;


répertoire de travail (working directory) ;
répertoire courant référencé par .;
répertoire père référencé par ..

Module I1 : systèmes d’exploitation des ordinateurs


30 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Référence relative (Windows)

C:

Program Files Document and settings Windows

All Users Default User

Bureau NTUSER.DAT

..\Default User\NTUSER.DAT

Module I1 : systèmes d’exploitation des ordinateurs


31 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Référence relative (Linux)

bin home usr

etudiant prof

Document fichier.txt

../prof/fichier.txt

Module I1 : systèmes d’exploitation des ordinateurs


32 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Fichiers et répertoires
Structure arborescente
Adressage des fichiers
Commandes de manipulation des fichiers
Méta-caractères
Montage de disques
Protection des fichiers
Représentation des fichiers

Module I1 : systèmes d’exploitation des ordinateurs


33 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Commandes de base
pwd (print working directory)
pwd affiche la référence absolue du répertoire de travail

cd (change directory)
cd référence_répertoire
Le répertoire de travail devient celui dont la référence est
référence_répertoire (référence absolue ou relative).

ls (list)
ls liste_références affiche, pour tout fichier ordinaire dans
liste_références, son nom, et pour tout répertoire dans
liste_références, son nom et son contenu.
ls -l liste_références affiche également des informations sur le
fichier telles que sa taille, la date de dernière modification. . .
Module I1 : systèmes d’exploitation des ordinateurs
34 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Copie, renommage et suppression

cp (copy)
cp ancien nouveau
copie le fichier de référence ancien dans un fichier de référence
nouveau.

mv (move)
mv ancien_nom nouveau_nom
attribue au fichier de référence ancien_nom la référence
nouveau_nom.

rm (remove)
rm liste_références
supprime toutes les références dans liste_références.

Module I1 : systèmes d’exploitation des ordinateurs


35 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Création et suppression de répertoire

mkdir (make directory)


mkdir référence_répertoire
crée un répertoire dont la référence est référence_répertoire
(référence absolue ou relative).

rmdir (remove directory)


rmdir liste_références
supprime tous les répertoires vides dont la référence est dans
liste_références.

Module I1 : systèmes d’exploitation des ordinateurs


36 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Fichiers et répertoires
Structure arborescente
Adressage des fichiers
Commandes de manipulation des fichiers
Méta-caractères
Montage de disques
Protection des fichiers
Représentation des fichiers

Module I1 : systèmes d’exploitation des ordinateurs


37 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Méta-caractères

* : toute chaîne de caractères ne commençant pas par un .


? : un caractère quelconque
[. . .] : un caractère quelconque parmi ceux entre crochets.
[c − j] : un caractère quelconque dans la plage allant du caractère c
au caractère j.
{mot1, mot2, mot3} : une chaîne de caractères égale à mot1, ou
mot2, ou mot3.

Module I1 : systèmes d’exploitation des ordinateurs


38 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Fichiers et répertoires
Structure arborescente
Adressage des fichiers
Commandes de manipulation des fichiers
Méta-caractères
Montage de disques
Protection des fichiers
Représentation des fichiers

Module I1 : systèmes d’exploitation des ordinateurs


39 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Montage de disques

Arborescence unique : disque logique


Disques physiques : sous-arborescences
Monter un disque : inclure l’arborescence du disque physique dans
l’arborescence générale.
mount disque point_de_montage monte le disque à l’endroit
référencé par point_de_montage dans l’arborescence générale.
Démonter un disque : retirer son arborescence de l’arborescence
générale.
umount disque démonte le disque.

Module I1 : systèmes d’exploitation des ordinateurs


40 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Fichiers et répertoires
Structure arborescente
Adressage des fichiers
Commandes de manipulation des fichiers
Méta-caractères
Montage de disques
Protection des fichiers
Représentation des fichiers

Module I1 : systèmes d’exploitation des ordinateurs


41 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Droits d’accès aux fichiers

Tout utilisateur :
possède un numéro d’utilisateur (uid – user identification)
appartient à au moins un groupe (gid – group identification)

Module I1 : systèmes d’exploitation des ordinateurs


42 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Droits d’accès aux fichiers

Il y a 3 types d’utilisateurs de fichiers :


propriétaire (user) : l’utilisateur propriétaire du fichier ;
groupe (group) : les utilisateurs appartenant au même groupe que le
fichier ;
autres (other) : tous les autres utilisateurs.

À chaque fichier sont associés différents droits :


lecture (read) : possibilité de lire le fichier ou de regarder le contenu
du répertoire ;
écriture (write) : possibilité d’écrire le fichier ou d’écrire des fichiers
dans le répertoire ;
exécution (execute) : possibilité d’exécuter le fichier ou de traverser
le répertoire.

Module I1 : systèmes d’exploitation des ordinateurs


43 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Droits d’accès aux fichiers

9 couples (type d’utilisateur, droit d’accès au fichier)


les droits d’accès sont codés sur 9 bits (ils sont indiqués par la
commande ls -l)
user group other
z}|{ z}|{ z}|{
rwx rwx rwx
7 5 0
z}|{ z}|{ z}|{
Codage en octal : r w x r − x − − − = 111 101 000 = 750

Module I1 : systèmes d’exploitation des ordinateurs


44 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Modification des droits d’accès

chmod (change mode)


chmod droits liste_fichiers
Pour chaque fichier référencé dans liste_fichiers, les droits du
fichier deviennent droits. Les droits peuvent être caractérisées de 2
manières :
code octal
utilisateur opération droits où :
utilisateur : u (user), g (group), o (other)
opération : + (ajout), - (suppression), = (égale)
droits : r (read), w (write), x (execute)

Module I1 : systèmes d’exploitation des ordinateurs


45 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Changements de propriétaire et de groupe


chown (change owner )
chown utilisateur liste_fichiers
Pour chaque fichier référencé dans liste_fichiers, le propriétaire du
fichier devient utilisateur
chown utilisateur.groupe liste_fichiers
change également le groupe auquel le fichier appartient
chown -R utilisateur.groupe liste fichiers
Avec l’option -R, la modification est également apportée aux
fichiers contenus dans les répertoires de liste_fichiers

chgrp (change group)


chgrp groupe liste_fichiers
change le groupe auxquels les fichiers de liste_fichiers
appartiennent.
Module I1 : systèmes d’exploitation des ordinateurs
46 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Autres permissions

3 bits spéciaux :
set-uid permet d’exécuter un fichier avec les privilèges de son
propriétaire et non pas ceux de l’utilisateur qui lance l’exécution.
set-gid même chose avec le groupe.
bit de collage (sticky bit) permet de faire la différence entre
modification et suppression.

Module I1 : systèmes d’exploitation des ordinateurs


47 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Fichiers et répertoires
Structure arborescente
Adressage des fichiers
Commandes de manipulation des fichiers
Méta-caractères
Montage de disques
Protection des fichiers
Représentation des fichiers

Module I1 : systèmes d’exploitation des ordinateurs


48 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Types de fichiers

fichiers ordinaires : programmes, données. Un fichier est décrit par


un i-nœud.
répertoires : ensemble de fichiers. Le contenu d’un répertoire est un
ensemble de couples (nom_fichier, i-nœud).
fichiers spéciaux : spécifient les périphériques. Ces fichiers sont vus
par l’utilisateur comme des fichiers ordinaires.

Module I1 : systèmes d’exploitation des ordinateurs


49 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Structure d’un i-nœud

i-nœud = descripteur de fichier


taille en nombre d’octets
adresse sur le disque
identification du propriétaire
permissions d’accès : lecture, écriture, exécution
type de fichier
date de dernière modification
compteur de références

Module I1 : systèmes d’exploitation des ordinateurs


50 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Liens

Un lien permet de désigner un fichier à partir de plusieurs endroits


différents dans l’arborescence, et éventuellement avec des noms
différents.
compteur de références = nombre de façons de désigner un même
fichier.
La suppression d’un fichier n’est effective que lorsque le compteur
de références est nul.

ln (link)
ln ancien nouveau
crée un lien de référence nouveau vers le fichier de référence ancien.

Module I1 : systèmes d’exploitation des ordinateurs


51 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Manuel en ligne
Visualisation de fichiers
Manipulation de lignes de fichiers
Recherche de fichiers

Module I1 : systèmes d’exploitation des ordinateurs


52 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Manuel en ligne

man commande
affiche page à page le chapitre du manuel sur la commande
commande ;
pour quitter la page de manuel, vous pouvez appuyer à n’importe
quel moment sur la touche q.

commande –help
permet d’obtenir un résumé de l’aide concernant l’utilisation de la
commande et les divers paramètres associés.

Module I1 : systèmes d’exploitation des ordinateurs


53 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Manuel en ligne
Visualisation de fichiers
Manipulation de lignes de fichiers
Recherche de fichiers

Module I1 : systèmes d’exploitation des ordinateurs


54 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Visualisation de fichiers
more (less) liste_fichiers
affiche page à page le contenu des fichiers référencés dans
liste_fichiers.
Entrer descend d’une ligne, Espace descend d’une page, q quitte.

cat liste_fichiers
affiche sur la sortie standard le contenu des fichiers dans liste
fichiers, ou reproduit l’entrée standard si la liste est vide.

diff fichier1 fichier2


affiche les lignes de fichier1 et fichier2 qui diffèrent.

head (tail) -n liste_fichiers


affiche les n premières (dernières) lignes des fichiers référencés.
Module I1 : systèmes d’exploitation des ordinateurs
55 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Manuel en ligne
Visualisation de fichiers
Manipulation de lignes de fichiers
Recherche de fichiers

Module I1 : systèmes d’exploitation des ordinateurs


56 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Manipulation de lignes de fichiers

wc liste_fichiers (word count)


affiche sur la sortie standard le nombre de lignes, mots et
caractères des fichiers dans liste_fichiers, ou de l’entrée standard si
la liste est vide.

tr chaîne1 chaîne2 (transpose)


copie son entrée standard sur sa sortie standard en remplaçant
toutes les occurrences de chaîne1 par chaîne2.

Module I1 : systèmes d’exploitation des ordinateurs


57 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Manipulation de lignes de fichiers


cut options liste_fichiers
imprime sur la sortie standard, les parties de lignes des fichiers
référencés, comme spécifié par les options.
cut -d. -f3 fich.txt sélectionne, dans le fichier fich.txt le troisième
champ (option -f3, f=field) de chaque ligne, les champs étant
délimités par des . (option -d., d = delimiter).

sort liste_fichiers
trie les lignes des fichiers référencés. Attention : s’il y a plusieurs
fichiers, leurs lignes sont mélangées.

uniq liste_fichiers
quand plusieurs lignes identiques se suivent, n’en garde qu’une.
Donc, supprime les lignes dupliquées dans un fichier trié.
Module I1 : systèmes d’exploitation des ordinateurs
58 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Manuel en ligne
Visualisation de fichiers
Manipulation de lignes de fichiers
Recherche de fichiers

Module I1 : systèmes d’exploitation des ordinateurs


59 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Recherche de fichiers

grep chaîne liste_fichiers


recherche, dans les fichiers référencés, les lignes contenant chaîne.

find répertoire critères


recherche tous les fichiers de la sous-arborescence de répertoire
satisfaisant les critères indiqués.
find -name "t*a*" recherche, dans l’arborescence de l’utilisateur,
tous les fichiers dont le nom commence par t et contient a.
find -name "t*a*" -exec grep coucou {} \ ; recherche, dans
l’arborescence de l’utilisateur, tous les fichiers dont le nom
commence par t et contient a. Puis, parmi les fichiers dont le nom
convient, sélectionne ceux contenant la chaîne de caractères
coucou.

Module I1 : systèmes d’exploitation des ordinateurs


60 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Entrées-sorties
Redirections
Processus
Signaux

Module I1 : systèmes d’exploitation des ordinateurs


61 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Entrées-sorties

Entrées : données fournies à une commande


Sorties : ce qui est écrit par la commande
Les entrées et sorties se font a priori sur des canaux spécifiques :
entrée standard (numéro 0 ou stdin) associée au clavier
sortie standard (numéro 1 ou stdout) associée à l’écran
sortie erreur standard (numéro 2 ou stderr) également associée à
l’écran

Module I1 : systèmes d’exploitation des ordinateurs


62 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Entrées-sorties
Redirections
Processus
Signaux

Module I1 : systèmes d’exploitation des ordinateurs


63 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Redirections

On peut vouloir modifier les entrées/sorties, parce que, par


exemple :
les entrées sont contenues dans un fichier
les sorties sont trop longues pour être lues à l’écran, donc on veut
les mettre dans un fichier
on redirige donc le canal associé

Module I1 : systèmes d’exploitation des ordinateurs


64 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Redirections des entrées

Redirection de l’entrée standard


commande < nom_fichier
La commande commande prend ses entrées dans le fichier
référencé par nom_fichier.

Module I1 : systèmes d’exploitation des ordinateurs


65 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Redirections des sorties


Redirection de la sortie standard
commande > nom_fichier
redirige les sorties de la commande commande sur le fichier
référencé par nom_fichier. Ce fichier est créé s’il n’existe pas ou
écrasé s’il existe déjà.
commande » nom_fichier
redirige les sorties de la commande commande sur le fichier
référencé par nom_fichier. Ce fichier est créé s’il n’existe pas ou les
sorties sont écrites à la fin du fichier s’il existe déjà.

Redirection de la sortie erreur standard


commande 2> nom_fichier
redirige les erreurs générées lors de l’exécution de la commande
commande sur le fichier référencé par nom_fichier.

Module I1 : systèmes d’exploitation des ordinateurs


66 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Entrées-sorties
Redirections
Processus
Signaux

Module I1 : systèmes d’exploitation des ordinateurs


67 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Processus

Un processus est l’activité liée à l’exécution d’un programme ;


un utilisateur peut avoir plusieurs processus en cours à un instant
donné ;
les différents processus existant à un instant donné sont
indépendants et le processeur leur est attribué de façon imprévisible
pour l’utilisateur ;
un interpréteur de commandes (shell) est lancé lorsqu’un utilisateur
se connecte.

Module I1 : systèmes d’exploitation des ordinateurs


68 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Exécution de commandes

Deux cas sont possibles :


commande interne : l’action est exécutée par l’interpréteur de
commandes lui-même ;
commande externe : le nom de l’action est le nom d’un fichier
contenant un programme exécutable. Le processus shell est
dupliqué, et sa copie est remplacée par l’exécutable de la commande.
Le processus d’origine attend la fin de l’exécution de la commande.

Module I1 : systèmes d’exploitation des ordinateurs


69 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Enchaînements de processus
séquentiel
commande1 ; commande2
si une des commandes n’existe pas, l’exécution s’arrête

parallèle
commande1 | commande2
la sortie de commande1 et dirigée sur l’entrée de commande2. |
représente un tube (pipe) : les sorties de commande1 sont les
entrées de commande2.

en tâche de fond
commande &
l’utilisateur récupère l’interpréteur pour lancer d’autres
commandes. Le système affiche le numéro du processus créé.
Module I1 : systèmes d’exploitation des ordinateurs
70 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Enchaînements conditionnels

Enchaînement conditionnel &&


commande1 && commande2
commande2 est exécutée si l’exécution de commande1 a réussi

Exécution conditionnelle ||
commande1 || commande2
commande2 est exécutée si l’exécution de commande1 a échoué

Module I1 : systèmes d’exploitation des ordinateurs


71 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Suspension et reprise

La suspension d’un processus qui s’exécute en avant-plan s’effectue


en appuyant sur les touches <CTRL>-z ;
la reprise d’une tâche suspendue peut se faire de deux manières :
fg (foreground) relance la tâche dans le terminal ;
bg (background) relance la tâche en tâche de fond.
L’arrêt complet du processus s’effectue en utilisant la commande
kill.
Attention : lorsque l’on a appuyé sur <CTRL>-z, on a l’impression
que le processus est mort. Ce n’est pas le cas, il est seulement
suspendu.

Module I1 : systèmes d’exploitation des ordinateurs


72 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Gestion des tâches


Table des processus
L’interpréteur de commandes (shell) maintient une table des
processus en cours d’exécution, qu’ils soient alloués ou non au
processeur et suspendus ou non. Lorsqu’un processus est lancé en
tâche de fond, une ligne est affichée :
[1] 25647
Cette ligne indique que c’est la tâche numéro 1, et que
l’identificateur du processus est 25647.

Terminaison d’une tâche de fond


Lors de la terminaison d’une tâche de fond, un ligne est affichée
dans le terminal :
[2]+ Done emacs
Ceci indique que la tâche numéro 2 s’est terminée, et que c’était
emacs.
Module I1 : systèmes d’exploitation des ordinateurs
73 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Contrôle des tâches

jobs affiche la table des tâches.


%n ou fg %n met la tâche numéro n en avant-plan.
%n & ou bg %n met la tâche numéro n en arrière-plan (tâche de
fond).
Au lieu de préciser le numéro, on peut utiliser le nom de la
commande ou le début de ce nom (s’il n’y a pas d’ambiguité).

Module I1 : systèmes d’exploitation des ordinateurs


74 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Liste des processus


Deux commandes permettent d’accéder aux processus en cours
d’exécution :
ps
affiche l’état des processus en cours : identificateur de processus
(PID), terminal (TTY), temps, et commande.
Options de ps :
u les processus avec le nom de l’utilisateur propriétaire ;
a les processus des autres utilisateurs ;
x tous les processus non attachés à un terminal.

top
affiche l’état des processus en temps réel.
Les touches h (help) ou ? permettent d’accéder à l’aide en ligne de
la commande top.
Module I1 : systèmes d’exploitation des ordinateurs
75 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Entrées-sorties
Redirections
Processus
Signaux

Module I1 : systèmes d’exploitation des ordinateurs


76 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Signaux
Les signaux permettent d’avertir un processus qu’un événement
important s’est produit. Le processus peut alors réagir à cet
événement.
Principaux signaux :
SIGINT (2) (interrupt) est émis lorsque l’on tape <CTRL>-c
SIGQUIT (3) (quit) est émis lorsque l’on tape <CTRL>-\
SIGKILL (9) (kill) tue un processus, quel que soit son état
SIGALRM (13) (alarm) est associé à une horloge
SIGTERM (15) (terminate) est émis lorsqu’un processus termine
normalement
SIGTSTP (20) (terminal stop) est émis lorsque l’on tape
<CTRL>-z

Module I1 : systèmes d’exploitation des ordinateurs


77 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Arrêt d’une tâche

L’arrêt d’une tâche se fait par envoi de signaux.


kill -l
affiche la liste des signaux connus

kill signal liste_de_pid


envoie le signal à tous les processus de la liste_de_pid

Module I1 : systèmes d’exploitation des ordinateurs


78 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Environnement utilisateur
Variables
Scripts shell

Module I1 : systèmes d’exploitation des ordinateurs


79 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Exécution lors de la connexion

Lorsque l’utilisateur se connecte, un processus shell est exécuté.


De plus, des commandes, soit communes, soit propres à chacun,
sont exécutées.
Elles se trouvent dans un fichier du répertoire utilisateur :
.login
.profile
.cshrc
.bashrc

Module I1 : systèmes d’exploitation des ordinateurs


80 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Environnement utilisateur
Variables
Scripts shell

Module I1 : systèmes d’exploitation des ordinateurs


81 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Environnement utilisateur

Les commandes du shell permettent d’initialiser des variables, soit


pour leur donner une valeur différente de la valeur par défaut, soit
pour les définir ;
L’ensemble de ces variables constitue l’environnement shell ;
le nom d’une variable est une chaîne de caractères contenant des
lettres, des chiffres ou le caractère _ et commençant toujours par
une lettre ;
La valeur d’une variable est une chaîne de caractères.

Module I1 : systèmes d’exploitation des ordinateurs


82 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Variables d’environnement

Les principales variables d’environnement sont :


PS1 : premier prompt ;
PS2 : second prompt, utilisé pour continuer une commande pas
terminée ;
HOME : référence absolue du répertoire utilisateur ;
PATH : liste des chemins dans lesquels les commandes appelées
vont être cherchées ;
LOGNAME : nom d’utilisateur ;
TERM : type du terminal utilisé.

Module I1 : systèmes d’exploitation des ordinateurs


83 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Environnement et commandes

printenv
affiche la liste des variables d’environnement et leur valeur

which commande
affiche le chemin d’accès à la commande

locate chaîne
affiche tous les noms de fichiers (depuis la racine) contenant la
chaîne de caractères chaîne et auxquels l’utilisateur a accès

Module I1 : systèmes d’exploitation des ordinateurs


84 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Utilisation de variables

Affectation : var=val
Valeur : $var
Si la variable var n’a pas été définie, son contenu est la chaîne de
caractères vide.
Portée : la variable est seulement connue du processus shell dans
laquelle elle a été affectée. Pour qu’elle soit transmise aux
sous-shells, elle doit être exportée : export var

Module I1 : systèmes d’exploitation des ordinateurs


85 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Variables numériques

Une variable peut avoir une valeur numérique entière. Le shell peut
alors évaluer des expressions arithmétiques.
var1=3
var2=$(($var1+4))
var3=$[$var1*5]

Module I1 : systèmes d’exploitation des ordinateurs


86 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Délimiteurs
Les délimiteurs permettent d’effectuer des opérations à l’intérieur
de chaînes de caractères.
’chaîne’
la chaîne de caractères entre apostrophes (quotes) est utilisée telle
quelle. En particulier, s’il y a des appels à des variables, aucune
substitution n’est effectuée.

"chaîne"
la substitution des variables contenues dans la chaîne de caractères
entre guillemets est effectuée.

‘chaîne‘
la chaîne de caractères entre apostrophes inversées (backquotes)
est considérée comme une commande shell et est exécutée.
Module I1 : systèmes d’exploitation des ordinateurs
87 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Affichage

echo chaîne
affiche la chaîne de caractères, avec éventuelle substitution des
variables, suivant les délimiteurs utilisés.

echo -n chaîne
affiche la chaîne de caractères, sans retour à la ligne.

Module I1 : systèmes d’exploitation des ordinateurs


88 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Alias

Les alias permettent de substituer une chaîne de caractères à un


mot lorsqu’il est utilisé comme premier mot d’une commande
simple.
Création d’un alias : alias nom alias = chaîne
Suppression d’un alias : unalias nom alias
Liste des alias définis : alias

Module I1 : systèmes d’exploitation des ordinateurs


89 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Systèmes d’exploitation

Environnement utilisateur
Variables
Scripts shell

Module I1 : systèmes d’exploitation des ordinateurs


90 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Scripts shell

Un script shell est un fichier contenant une suite de commandes


shell. Il permet de rassembler plusieurs commandes, par exemple, si
l’on doit exécuter plusieurs fois une suite de commandes
relativement longue. C’est alors une commande écrite par
l’utilisateur.
Début d’un script shell
On peut indiquer, dans la première ligne du fichier, l’interpréteur
shell à utiliser :
# !/bin/bash
Des commentaires peuvent être insérés dans le fichier, et ne sont
pas interprétés par le shell. Les commentaires sont des chaînes de
caractères commençant par #.

Module I1 : systèmes d’exploitation des ordinateurs


91 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Paramètres et autres variables

Paramètres
Un script shell peut accepter des paramètres :
monscript param1 . . . paramn
Les paramètres sont référencés comme des variables de nom 1,
2,. . . 9.
echo "valeur du paramètre 2 = $2"

Autres variables
$0 : nom de la commande appelée
$* : liste des paramètres
$# : nombre de paramètres
$$ : numéro du processus shell correspondant à la commande

Module I1 : systèmes d’exploitation des ordinateurs


92 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Exécution d’un script shell

Pour exécuter un script shell, il y a deux manières :


source monscript
./monscript en changeant le mode de monscript pour qu’il devienne
exécutable, puis en m’éxécutant (comme une commande).

Module I1 : systèmes d’exploitation des ordinateurs


93 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Structures de contrôle
si. . . alors. . . sinon. . . finsi
if liste commandes 1
then liste commandes 2
else liste commandes 3
fi

cas
case chaîne caractères in
motif 1 ) liste commandes 1 ; ; .
.
.. . .
motif n ) liste commandes n ; ;
* ) liste commandes défaut ; ;
esac

Module I1 : systèmes d’exploitation des ordinateurs


94 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Tests

Tests sur les chaînes de caractères


[ chaîne1 = chaîne2 ]
teste si les deux chaînes de caractères sont égales
[ chaîne1 != chaîne2 ]
teste si les deux chaînes de caractères sont différentes
[ -n chaîne ]
teste si la chaîne de caractères est non vide
[ -z chaîne ]
teste si la chaîne de caractères est vide

Module I1 : systèmes d’exploitation des ordinateurs


95 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Tests

Tests sur les valeurs numériques


[ nb1 -eq nb2 ] : égalité (equal)
[ nb1 -ne nb2 ] : inégalité (not equal)
[ nb1 -gt nb2 ] : plus grand (greater than)
[ nb1 -ge nb2 ] : plus grand ou égal (greater or equal)
[ nb1 -lt nb2 ] : plus petit (lower than)
[ nb1 -le nb2 ] : plus petit ou égal (lower or equal)

Module I1 : systèmes d’exploitation des ordinateurs


96 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Tests

Tests sur les fichiers


[ -d fichier ] : teste si le fichier est un répertoire
[ -f fichier ] : teste si fichier est un nom de fichier
[ -r fichier ] : teste le droit de lecture sur le fichier
[ -w fichier ] : teste le droit d’écriture sur le fichier
[ -x fichier ] : teste le droit d’exécution sur le fichier

Module I1 : systèmes d’exploitation des ordinateurs


97 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Boucles

pour. . . faire. . . finpour


for variable in liste_chaînes_caractères
do
liste_commandes
done

tant que. . . faire. . . fintq


while liste_commandes_1
do
liste_commandes_2
done

Module I1 : systèmes d’exploitation des ordinateurs


98 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Autres instructions

set chaîne
la chaîne de caractères devient la nouvelle liste de paramètres

read liste_variables
les variables prennent les valeurs fournies par l’entrée standard

exit entier
le script termine et renvoie entier comme code de retour

Module I1 : systèmes d’exploitation des ordinateurs


99 / 102
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Exemple 1
set ‘ls‘
for i in $*
do
if [ -d $i ]
then echo "$i est un répertoire"
fi
if [ $i = "toto" ]
then echo "Voulez-vous voir le contenu de toto ?"
read rep
case $rep in
o|O ) cat $i ; ;
n|N ) echo "Pas de visualisation de toto" ;;
* ) echo "Réponse incorrecte" ;;
esac
fi
done Module I1 : systèmes d’exploitation des ordinateurs
100 / 10
Historique Systèmes de fichiers Commandes Entrées-sorties et processus Environnement utilisateur matériel

Exemple 2

chaine = $1
ps | grep chaine | grep -v grep |
while read pid reste
do
kill -9 $pid
done

Module I1 : systèmes d’exploitation des ordinateurs


101 / 10
Annexe

Lectures complémentaires I

Andrew Tannenbaum
Architecture de l’ordinateur.
InterÉditions.
C. Quelqu’un.
Internet.
Google est ton ami.

Module I1 : systèmes d’exploitation des ordinateurs


102 / 10

Das könnte Ihnen auch gefallen