Cours Systèmes Dexploitation Linux S2
Cours Systèmes Dexploitation Linux S2
Cours Systèmes Dexploitation Linux S2
Système
d’Exploitation UNIX
Introduction à l’UNIX
BOUKRI KHALIL
Systèmes d’Exploitation: Rappels
Utilisateurs
Applications
Système d‘exploitation
Noyau
Pilotes
Matériels/Périphériques
Systèmes d’Exploitation: Rappels
Architecture-Type:
Applications
Applications (Jeux, Outils bureautiques, …)
Interpréteur de commandes,
Système
Compilateur, …
d‘Exploitation
Noyau
Matériel
Langage machine
D
ispositifs Physiques
Systèmes d’Exploitation: Rappels
Classification des SE
Système mono-tâche:
Gère une seule tâche à la fois.
Le seule programme lancé utilise les ressources de la machine et ne rend la
main au système d‘exploitation qu‘en fin d‘exécution, ou en cas d‘erreur.
Exemple: MS-DOS
Système multi-tâches:
Gère plusieurs tâches simultanément sur une même
machine.
Le système partage le temps du processeur entre plusieurs
programmes.
Le principe est d‘allouer du temps à différentes applications qui sont
découpées en séquence d‘instructions (Tâche ou Processus), ces tâches seront
tour à tour actives, en attente, suspendues ou détruites suivant la priorité
qui leur est associée.
Exemples: OS2 d‘IBM, Windows 95, 98
Systèmes d’Exploitation: Rappels
Classification des SE
Système multi-utilisateurs:
Gère l'environnement propre à chaque utilisateur (identification, ressources
propres)
Gère la sécurité d'accès aux programmes et aux données
Notion de droits d'accès
Exemples: Windows 2000, 2003, XP, Unix (HP-UX, Solaris, AIX, Linux,
FreeBSD...)
Système multi-processeurs:
C‘est un système nécessairement multi-tâches puisqu'on lui demande d'une part
de pouvoir exécuter simultanément plusieurs applications, mais surtout d'organiser
leur exécution sur les différents processeurs (qui peuvent être identiques ou non).
Ces systèmes peuvent être soit architecturés autour d'un processeur central qui
coordonne les autres processeurs, soit avec des processeurs indépendants qui
possèdent chacun leur système d'exploitation, ce qui leur vaut de communiquer
entre eux par l'intermédiaire de protocoles.
Historique d’UNIX
Vision Portable
Simplifiée Libre et
des E/S gratuit
Système
Un mécanisme Fichiers
de protection Propriétés
hiérarchique
Multi- Multi-
Tâches
Utilisateurs
Interactif
Caractéristiques d’UNIX
Architecture:
Applications
Noyau (Kernel)
Shell Matériel
Utilitaires
Caractéristiques d’UNIX
Utilisateur, groupes
On distingue sous Unix les utilisateurs et les groupes, notion que nous verrons en
détail lors de la gestion des droits. Un groupe définit un ensemble d'utilisateurs, un
utilisateur fait obligatoirement partie d'au moins un groupe, ou de plusieurs.
Le groupe par défaut d'un utilisateur est « users ».
Caractéristiques d’UNIX
Interpréteur de commandes:
Le shell:
Après le login, dans une console, vous voyez (par exemple):
[user@machine]$ _
L'interpréteur de commande (ou Shell) attend vos instructions.
Le shell est un programme qui interprète vos commandes et les transmet au noyau
unix (OS). Ils permettent en plus de définir un environnement.
Il existe plusieurs shells, les plus communs sont: bash et tcsh.
La liste des commandes n‘est pas exhaustive, seules les plus courantes et
les plus adaptées à votre enseignement sont présentées.
De la même façon, seules les options les plus courantes seront indiquées
pour chaque commande.
Distributions Linux
Debian: Ubuntu
BOUKRI KHALIL
Introduction
Une Distribution Linux est un ensemble de logiciels, libres, assemblés autour du noyau
Linux.
Elle se compose de:
Un noyau
Des outils
d‘environne
ment
Un outil de gestion de paquetages logiciels
Un logiciel d‘installation
Choix d’une distribution
Distributions Généralistes:
Les distributions généralistes, les plus utilisées, et leurs dérivés, par famille
sont:
Distributions Spécifiques
OpenWRT
Archlinux
Gentoo
CoreOS
Exemples :
Debian connait un cycle de plusieurs années
Ubuntu connait un cycle de tous les 6 mois
Fedora est révisé tous les 6 mois
Une révision mineure est proposée tous les 12/18 mois chez RHEL
(Red Hat Enterprise Linux)
Une révision majeure est proposée tous les 3/6 ans chez RHEL
Cycle de maintenance
Cycle de maintenance
ArchLinux
Une distribution pour les spécialistes de Linux. Les
performances de cette distribution sont élevées.
Vous pouvez créer votre plateforme
personnalisée ce qui est un avantage indéniable.
Debian
Ubuntu
Ubuntu est une suite Debian. Cette distribution est la plus
connue. La majorité des nouveaux venus sous Linux
débute par cette distribution notamment pour sa
simplicité. Celle-ci possède en outre des accords avec les
fournisseurs de matériels et de logiciels. Par contre, les
plus fervents linuxiens n‘apprécient que modérément
cette distribution.
Linux Mint
Basé sur la distribution Ubutnu, LinuxMint dispose d‘une
interface bien réalisée et facile d‘accès. Mint est en plein
développement et son utilisation est de plus en plus
importante. Vous pourrez également apporter un grand
nombre de personnalisations à Mint.
Les meilleurs distributions Linux
Fedora
Il s‘agit de la suite de RedHat puisque la société a
l‘origine de RedHat a continué son développement, mais
de manières commerciales. Les amateurs de la version
gratuite se sont donc regroupés sous Fedora. Elle est
réputée comme étant plus difficile d‘accès et depuis
plusieurs versions elle a mis l‘accent sur la sécurité par le
biais de différents cryptages.
RedHat Distribution: Fedora
Fedora
Le nom:
Le nom de la distribution vient du projet Fedora Linux : un projet mené par
des bénévoles ayant pour objectif d'intégrer des logiciels tiers à la
distribution Red Hat Linux, et du chapeau représenté sur l'emblème de Red
Hat : un borsalino.
RedHat Distribution: Fedora
Fedora
Système
d’Exploitation UNIX
Système de Fichiers
BOUKRI KHALIL
Système de Fichiers: Principe de base
Fichiers Ordinaires
Ce sont soit des fichiers contenant du texte, soit des exécutables (ou binaires),
soit des fichiers de données.
Par défaut, rien ne permet de différencier les uns des autres, sauf à utiliser
quelques options de certaines commandes (ls -F par exemple) ou la
commande file.
Types de Fichiers
Catalogues
Les répertoires permettent d'organiser le disque dur en créant une
hiérarchie.
Un répertoire peut contenir des fichiers normaux, des fichiers
spéciaux et d'autres répertoires, de manière récursive.
Fichiers Spéciaux
Ce sont le bien souvent des fichiers servant d‘interface pour les
divers périphériques. Ils peuvent s'utiliser, suivant le cas, comme des
fichiers normaux.
Un accès en lecture ou écriture sur ces fichiers est directement dirigé
vers le périphérique (en passant par le pilote Unix associé s'il existe).
Nomenclature des Fichiers
Pour nommer un fichier il faut suivre quelques règles simples. Ces règles sont
valables pour tous les types de fichiers.
Sur les anciens systèmes un nom de fichier ne peut pas dépasser 14
caractères.
Sur les systèmes récents, on peut aller jusqu'à 255 caractères. Il est possible
d'utiliser des extensions de fichiers mais cela ne modifie en rien le
comportement du système (un exécutable n'a pas besoin d'une extension
particulière).
/
Une Arborescence des rep1 rep2
fichiers sous
… Unix
Fich1 rep22
Les Chemins
Le nom de chemin ou
/
path name d'un fichier est
la concaténation, depuis la
racine, de tous les
répertoires qu'il est rep1 rep2 …
nécessaire de traverser
pour y accéder, chacun
Fich1.txt
étant séparé par le rep22
caractère « / ».
rep11 rep12 rep21
Exemple: /rep2/rep22/Fich1.txt
Les Chemins
Chemin relatif:
Un nom de chemin peut aussi être relatif à
sa position courante dans le répertoire. /
Le système (ou le shell) mémorise la usr
position actuelle d'un utilisateur dans le
home
système de fichier, le répertoire actif. On peut
donc accéder à un autre répertoire de Emsig1
l'arborescence depuis l'emplacement actuel Linux
sans taper le chemin complet.
SQL
Le « .. » permet d'accéder au répertoire de
niveau supérieur.
ig2
Ems
Le « . » définit le répertoire actif (répertoire Linux
courant).
C++
Exemple: ../../Emsig1/Linux
Les Chemins
Le Répertoire personnel:
PWD
PWD= Path of Working Directory
Affichage du nom du répertoire de
travail en cours.
CD
CD= Change Directory
Changement de répertoire courant.
Commandes de Déplacement
$ pwd /
/home/Emsig1 usr
$ cd projets/Java bin
$ pwd home
/home/Emsig1/projets/Java
$ cd .. Emsig1
$ pwd Linux
/home/Emsig1/projets
$ cd ../../Emsig2 SQL
$ pwd Projets
/home/Emsig2 Java
$ cd /usr/bin
$pwd Emsig2
/usr/bin Linux
$ cd .././../home/./Emsig1/./..
$ pwd C++
/home
Visualisation de l’arborescence
ls
La commande ls affiche tout d‘abord l‘ensemble de ses arguments
fichiers autres que des répertoires.
Puis ls affiche l‘ensemble des fichiers contenus dans chaque
répertoire
indiqué.
basename
La commande basename élimine les
répertoires en tête du chemin
d‘accès du fichier.
Exemple:
$ basename /usr/local/bin/lynx
lynx
dirname
dirname ne conserve que les
répertoires en tête du chemin d‘accès
du fichier.
Exemple:
$ dirname /usr/local/bin/lynx
/usr/local/bin
Manipulation des noms de fichiers :
basename, dirname
file
Tente de deviner le type du fichier
(répertoire, exécutable, binaire …)
Chapitre 3
Système
d’Exploitation UNIX
Gestions des Fichiers
BOUKRI KHAILL
Arborescence Standard
Emsig1 Emsig2
Arborescence Standard
Le répertoire /home:
Tous les utilisateurs ont un répertoire personnel (répertoire d'accueil, en
anglais home directory) dans le répertoire /home ou dans un de ses
répertoires subordonnés.
mkdir
Syntaxe: mkdir [OPTIONS]
nom_répertoire
Création d‘un répertoire
correspondant au nom mentionné.
rmdir
Syntaxe: rmdir [OPTIONS]
nom_répertoire
Suppression du répertoire vide
indiqué, pour supprimer
Création et suppression de e
répertoir
Exemples:
$ ls -al
drwxr-xr-x 2 Emsig1 Emsi 512 08 fév 13:15 .
drwxr-xr-x 37 Emsig1 Emsi 512 08 fév 13:04 ..
-rw-r--r-- 1 Emsig1 Emsi 642 15 jan 11:42
fich1
$ mkdir myrep
$ ls –al
drwxr-xr-x 2 Emsig1 Emsi 512 08 fév 13:15 .
drwxr-xr-x 37 Emsig1 Emsi 512 08 fév 13:04 ..
-rw-r--r-- 1 Emsig1 Emsi 642 15 jan 11:42
fich1
drwxr-xr-x 2 Emsig1 Emsi 512 08 fév 13:15
myrep
$ cd myrep
$ ls –al
drwxr-xr-x 2 Emsig1 Emsi 512 08 fév 03:15 .
drwxr-xr-x 37 Emsig1 Emsi 512 08 fév 13:15 ..
Création et suppression de e
répertoir
Exemples:
$ rmdir myrep
$ ls –al
drwxr-xr-x 2 Emsig1 Emsi 512 08 fév 13:15 .
drwxr-xr-x 37 Emsig1 Emsi 512 08 fév 13:04 ..
-rw-r--r-- 1 Emsig1 Emsi 642 15 jan 11:42 fich1
ln
Syntaxe: ln [OPTIONS] nomfile1
nomfile2
Création de lien entre fichiers.
Lorsqu‘on crée un lien physique de file1 vers file2, file2 pointe vers le
même numéro d‘inode que file1.
Si file1 est effacé, l’inode continue à exister et est encore accessible
au moins par file2.
Exemples:
$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fich1
$ cat fich1
Bonjour
Au revoir
$ ln fich1 fichLP
$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fich1
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fichLP
$ echo test>>fich1
Exemples:
$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fich1
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fichLP
$ rm fich1
$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fichLP
$ cat fichLP
Bonjour
Au revoir
test
Création de lien symbolique: ln -s
Exemples:
$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fich1
$ cat fich1
Bonjour
Au revoir
$ ln -s fich1 fichLS
$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fich1
65340 lrw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fichLS fich1
$ echo test>>fich1
Exemples:
$ ls -il
65329 -rw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fich1
65340 lrw-r--r-- 1 Emsig1 Emsi 14 8 fév 13:22 fichLS fich1
$ rm fich1
$ cat fichLS
cat: testt1ls: No such file or directory
Déplacement ou renommage des
fichiers
mv
Syntaxe: mv file1 file2
Déplacement ou renommage des fichiers
En réalité, la commande mv n’effectue pas de copie de données
physique mais modifie le nom et transfère les informations d‘un
répertoire à l‘autre.
Déplacement ou renommage des
fichiers
Copie de fichiers : cp
cp
Syntaxe: cp OPTIONS file1... file2
Duplique physiquement les données d‘un
fichier
rm
Syntaxe: rm OPTIONS filename
Supprime un fichier ou un répertoire.
Options :
-r Destruction récursive
-i Mode interactif
-f Force
Caractères spéciaux pour le Shell
$ ls *
achat bateau chat chateau cheval chien gateau rateau
$ ls ?ateau
bateau gateau rateau
$ ls *ateau
bateau chateau gateau rateau
$ ls [gr]ate*
gateau rateau
$ ls [^br]ateau
gateau
$ ls [a-c]*
achat bateau chat chateau cheval chien
Chapitre 4
Système
d’Exploitation UNIX
Les droits d’accès
BOUKRI KHALIL
Introduction
La commande: id
Exemple 1:
Modification des droits
Exemple 2:
Modification des droits
Pour obtenir le droit final il suffit d‘additionner les valeurs. Par exemple si
on veut rwxrw-rw- alors on fera : 400+200+100+40+20+0+4+2+0 =766
et pour rw-r--r--: 400+200+0+40+0+0+4+0+0 = 644
Modification des droits
Exemple:
Masque des droits
Les droits d'un fichier ou d'un répertoire après leur création sont:
rw-r—r-- (644) pour un fichier
rwxr-xr-x (755) pour un répertoire
Pour un fichier :
Maximum rw-rw-rw- (666)
Retirer ---r-xrw- (056)
Reste rw--w---- (620) et PAS
610 !
Changement de propriétaire et de
groupe
Exemples:
Changement de propriétaire et de
groupe
Exemples:
Exercices
Exercice 1:
Exercice 2:
BOUKRI KHALIL
La Recherche multicritères
La commande « Find »
Recherche de fichiers : find
find
Syntaxe: find dir [OPTIONS]
Rechercher des fichiers dans une
hiérarchie de répertoires.
-name : motif Fichier dont le nom de base (sans les répertoires du
chemin d‘accès), correspond au motif du shell
-perm mode : fichier dont les autorisations d‘accès sont fixées exactement
au mode indiqué
-type type : fichier du type donné (bloc b, caractère c, répertoire d, tube
nommé p, régulier f, liens symbolique l, socket s)
-links n : fichiers ayant n liens
-user utilisateur : fichier appartenant à l‘utilisateur indiqué
-size n : fichier utilisant n blocks
-inum n : fichier dont le numéro d‘i-node est n
Recherche de fichiers : find
find
Syntaxe: find dir [OPTIONS]
Rechercher des fichiers dans une
hiérarchie de répertoires.
-newer fichier : fichier modifié plus
récemment que le fichier indiqué
-atime n : dernier accès au fichier
il y a n*24 heures
-mtime n : fichier dont les données
ont été modifiées il y a n*24 heures
-ctime n : dernière modification du
statut du fichier il y a n*24 heures
-print: affiche le nom complet
du fichier sur la sortie standard
-ls: affiche le nom du fichier
en cours dans le format ‗ls –dils‘
-exec cmd : exécute la commande jusqu‘à ce qu‘on rencontre un ‗ ;‘,
Recherche de fichiers : find
La commande: date
La commande: hostname
La commande: uname
La commande: who
La commande: last
La commande last affiche les dernières connexions au système.
Escape disque dur
La commande: du
La commande: df
La commande: tty
BOUKRI KHALIL
Types de Shell
Caractères spéciaux de Shell
Métacaractères: Quotation
Exemples
Flux: Redirections
1: Ecran
0: Clavier
Processus 2: Ecran
Syntaxe: Exemple:
Syntaxe: Exemple:
du
doitcontenu
exister). du fichier (qui ls : abc : No such file or directory
$ cat
erreurstd
Redirection de l’entrée standard
Syntaxe: Exemple:
cmd <<
ETQ
l‘entrée de la commande
provient des lignes de
commandes suivantes
jusqu‘à la ligne ne
contenant que l‘étiquette
Tube (Pipe) entre flux d’entrée et
flux de sortie
Syntaxe:
cmd 1 | cmd 2
redirige la sortie de la commande1 vers l‘entrée de la commande 2
Syntaxe:
cmd 1 | cmd 2
redirige la sortie de la commande1 vers l‘entrée de la commande 2
La commande « xargs »
Certaines commandes ne savent pas lire leur entrée standard:
➔ ls , rm, cp, ln, mv
Exemple :
ls | rm aucun sens
➔ ls | xargs rm
Redirection vers un descripteur
Syntaxe:
c
m
d
>
&
d
e
s
c
redirige la sortie de la commande vers le descripteur donné (0 :entrée std, 1 :
sortie std, 2 : erreur std)
Si l'on ne souhaite pas afficher et/ou enregistrer les erreurs retournées, il est
possible de rediriger le descripteur 2 vers un fichier spécial existant sur tous les
Travaux Pratiques
Exercice 1:
Les caractères: \ ' " annulent, tout ou en partie, les effets des méta-
caractères du shell.
Essayez les commandes:
echo
$USER
echo
"Bonjour
$USER"
echo
'Bonjour
$USER'
echo "* Bonjour $USER *"
echo '* Bonjour $USER *'
echo \* Bonjour $USER \*
Travaux Pratiques
Exercice 2:
Exercice 3:
BOUKRI KHALIL
Les filtres: Introduction
wc
sort
ore
m
Flux Entrant … Flux Sortant
cat
Filtre passif
Grep
Syntaxe: grep [Options] exp
[Fichier1...]
Exemples:
Exemple 1:
$ cat file
Exemple 2:
il fait beau
il fait chaud $ grep "ˆ[A-Z].*[0-9]$" <<fin
beau temps n‘est ce pas ? > je teste la commande grep1
>La ligne 2
$ grep "ˆil" file >Au revoir
il fait beau >fin
il fait chaud
La ligne
2
$ cat file | grep –v "ˆil"
beau temps n‘est ce pas ?
$
Remplacement de caractères: tr
Tr
Syntaxe: tr [OPTIONS] chaine1
chaine2
Transposer ou éliminer des
caractères substitution ou
suppression de
caractères sélectionnés.
Un caractère appartenant à chaine1 est remplacé par le caractère de
même position dans chaine2.
Options principales:
-d : suppression des caractères sélectionnés
-s : "aaaaa" dans chaine1 "a" dans chaine2
Remplacement de caractères
Exemples:
$ echo "coucou" | tr [a-z] [A-Z]
COUCOU
$ echo "BONJOUR EMSI" |tr
'[:upper:]' '[:lower:]'
bonjour emsi
$ echo "aaabbbaaa" | tr -s [a-z] [A-Z]
ABA
Compter les lignes: wc
Wc
Syntaxe: wc [Options] fichier
$ wc liste
12 48 234 liste
Le fichier « liste » contient 12 lignes, 48 mots et 234 caractères.
Filtre Uniq
Uniq
Syntaxe: uniq OPTIONS fichier
Sort
Syntaxe: sort [OPTIONS] fichier
Cut
Syntaxe: cut [OPTIONS] fichier
Join
Syntaxe: join [OPTIONS] fichier1
fichier2
Paste
Syntaxe: paste OPTIONS fichier...
Head
Syntaxe: head OPTIONS fichier
Afficher les 10 premiers lignes du
fichier.
Option:
-n: Afficher les n premières lignes.
Tail
Syntaxe: tail OPTIONS fichier
Afficher les 10 dernières lignes du
fichier.
Option:
-n: Afficher les n premières lignes.
Comparaison de fichiers
Diff
Syntaxe: diff [Options] fich1 fich2
Comparer le contenu de deux fichiers.
indique les modifications à apporter aux deux fichiers en entrée pour que leur
contenu soit identique.
Option:
-b permet d'ignorer les espaces (blank)
Cmp
Syntaxe: cmp OPTIONS fich1 fich2
compare les fichiers caractère par caractère. Par défaut la commande s'arrête
dès la première différence rencontrée et indique la position de l'erreur.
Comparaison de fichiers
Exemple: