Vous êtes sur la page 1sur 35
Merci à Arnaud dupont
Merci à Arnaud dupont

Merci à Arnaud dupont

SSyyssttèèmmee ddeexxppllooiittaattiioonn

è m m e e d d ’ ’ e e x x p p l

• Un système d’exploitation exploite quoi ?

LLeess ssyyssttèèmmeess ddeexxppllooiittaattiioonn

-- iinnttrroodduuccttiioonn --

• C’est l’interface entre l’utilisateur et le matériel

• Ses fonctions principales sont :

– Contrôle des ressources (allocation et gestion du CPU et de la mémoire)
– Contrôle des processus
– Contrôle des périphériques
– …

des processus – Contrôle des périphériques – … • Il contient des outils de gestion utilisables

• Il contient des outils de gestion utilisables par les applications, tels que la manipulation de fichiers, gestion d’impressions, date…

LLeess ssyyssttèèmmeess ddeexxppllooiittaattiioonn

• Exemples:

-- iinnttrroodduuccttiioonn --

– Unix, DOS, Windows, Mac OS, Linux, OS/2, BSD,

• Architecture-type:

Windows, Mac OS, Linux, OS/2, BSD, • Architecture-type: APPLICATIONS SYSTEME D’EXPLOITATION MATERIEL applications

APPLICATIONS

OS, Linux, OS/2, BSD, • Architecture-type: APPLICATIONS SYSTEME D’EXPLOITATION MATERIEL applications (jeux,

SYSTEME

D’EXPLOITATION

• Architecture-type: APPLICATIONS SYSTEME D’EXPLOITATION MATERIEL applications (jeux, outils bureautiques, …)

MATERIEL

applications (jeux, outils bureautiques, …)
applications
(jeux, outils bureautiques, …)
Interpréteur de commandes, compilateur, … noyau
Interpréteur de commandes, compilateur, …
noyau
Langage machine Dispositifs physiques
Langage machine
Dispositifs physiques

LLiinnuuxx:: oonn yy vvaa !!

• Propriétés

– multi-tâches

– multi-utilisateurs

– multi-postes

– Libre (et gratuit) !!

• Ouverture/Fermeture d’une session

– Travailler sous Linux implique une connexion au système

– Login:

• Identification de l’utilisateur: login + mot-de-passe

• droits accordés par le super-utilisateur (root)

– Logout:

NE PAS ETEINDRE une machine “sauvagement”

• commande “logout” dans la console

IInniittiiaattiioonn aauu sshheellll

• Une fois connecté, le système nous connaît, ouvre une session à notre nom et attend nos instructions via un programme spécial:

• Le Shell = interpréteur de commandes

– interface utilisateur “de base” (interlocuteur avec le syst.)

– interprétation ligne à ligne

– plusieurs shells: sh, csh, tcsh, bash, ksh, zsh,

– configurable: fichiers d’environnement (commençant par un “.”)

fichiers d’environnement (commençant par un “ . ”) • “ .login ” • “ .logout ”

• “.login

• “.logout

• “.bashrc

– langage de programmation

• shell par défaut : bash

IInniittiiaattiioonn aauu sshheellll

-- ccoommmmaannddeess --

• Format des commandes:

s s h h e e l l l l - - c c o o

cde [-option(s)] [argument(s)]

IInniittiiaattiioonn aauu sshheellll

• Exemples:

date

whoami

-- ccoommmmaannddeess --

affiche le nom de l’utilisateur connecté

echo

affiche un message (echo "bonjour !")

ls

liste le contenu d’un répertoire

man <cde>

manuel en ligne

un message ( echo "bonjour !" ) – ls liste le contenu d’un répertoire – man

IInniittiiaattiioonn aauu sshheellll

• Caractères spéciaux:

-- mmééttaa ccaarraaccttèèrreess --

é t t a a c c a a r r a a c c t

!

^

*

?

[]

\

;

&

<

>

|

>>

• L'astérisque ou étoile: *

 

– interprété comme toute suite de caractères alphanumériques

 

– utiliser avec précaution (commande rm par ex

)

• Le point d’interrogation: ?

– remplace 1 seul caractère alphanumérique

IInniittiiaattiioonn aauu sshheellll

• Le point-virgule: ;

– Séparateur de commandes

• Les crochets:

[]

-- mmééttaa ccaarraaccttèèrreess --

– Remplace un caractère choisi parmi ceux énumérés entre les crochets

• L’anti-slash:

\

– Inhibe la signification du méta-caractère qui suit

• Interprétation des chaînes de caractères

– Texte entre '' (simples quotes): le texte n’est pas interprété mais considéré comme un mot

– Texte entre "" (doubles quotes): seuls sont interprétés les métacaractères $, \ et `

– Texte entre `` (anti quotes): considéré comme une commande à interpréter, et c’est le résultat qui sera utilisé.

IInniittiiaattiioonn aauu sshheellll

Exemples:

echo *

-- mmééttaa ccaarraaccttèèrreess --

Tous les fichiers sauf ceux dont le nom commence par un point

echo *c

Tous les fichiers dont le nom se termine par un ‘c’

echo .*

Tous les fichiers dont le nom commence par un point

echo [0-9]*

Tous les fichiers dont le nom commence par un chiffre

Tous les fichiers dont le nom commence par un point – echo [0-9]* Tous les fichiers

LLee ssyyssttèèmmee ddee ffiicchhiieerrss

• Stocke les données:

– de façon hiérarchique

– structure arborescente

– TOUT est fichier

• 3 types de fichiers:

– fichiers ordinaires

– répertoires

– fichiers spéciaux (périph., …)

LLee ssyyssttèèmmee ddee ffiicchhiieerrss

-- ffiicchhiieerrss --

• Accès aux fichiers réglementé (sauf: tous les droits pour root)

• 3 types d’utilisateurs:

– propriétaire (user)

– personnes du mm groupe (group)

– les autres (others)

• 3 types de permissions

– lecture (r)

afficher le contenu

afficher le contenu

– écriture (w)

modifier

créer/supp fichiers

– exécution (x)

exécuter

traverser

fichier

répertoire

LLee ssyyssttèèmmee ddee ffiicchhiieerrss

-- ffiicchhiieerrss --

• Affichage des caractéristiques: ls -l

groupe

s s - - • Affichage des caractéristiques: ls -l groupe -rw-r--r-- 1 dupont staff 58K
s s - - • Affichage des caractéristiques: ls -l groupe -rw-r--r-- 1 dupont staff 58K

-rw-r--r-- 1 dupont staff 58K 16 Jul 09:19 tp1.tex

-l groupe -rw-r--r-- 1 dupont staff 58K 16 Jul 09:19 tp1.tex nb liens propriétaire taille date

nb liens

-rw-r--r-- 1 dupont staff 58K 16 Jul 09:19 tp1.tex nb liens propriétaire taille date nom type

propriétaire

1 dupont staff 58K 16 Jul 09:19 tp1.tex nb liens propriétaire taille date nom type -

taille

1 dupont staff 58K 16 Jul 09:19 tp1.tex nb liens propriétaire taille date nom type -
1 dupont staff 58K 16 Jul 09:19 tp1.tex nb liens propriétaire taille date nom type -

date

nom

type

1 dupont staff 58K 16 Jul 09:19 tp1.tex nb liens propriétaire taille date nom type -
- rw-
- rw-
1 dupont staff 58K 16 Jul 09:19 tp1.tex nb liens propriétaire taille date nom type -

user

group

1 dupont staff 58K 16 Jul 09:19 tp1.tex nb liens propriétaire taille date nom type -
1 dupont staff 58K 16 Jul 09:19 tp1.tex nb liens propriétaire taille date nom type -
1 dupont staff 58K 16 Jul 09:19 tp1.tex nb liens propriétaire taille date nom type -

r--r--

1 dupont staff 58K 16 Jul 09:19 tp1.tex nb liens propriétaire taille date nom type -

others

1 dupont staff 58K 16 Jul 09:19 tp1.tex nb liens propriétaire taille date nom type -

LLee ssyyssttèèmmee ddee ffiicchhiieerrss

-- ffiicchhiieerrss --

• Changer les permissions: chmod chmod <classe op perm, …>|nnn <fic>

– classe:

– chaque perm = 1 valeur:

u

: user

r

4

 

g

: group

w

2

o

: others

x

1

a

: all

rien

0

– op:

– déf. des permissions (par addition) pour chaque classe

= : affectation

- : suppr.

 

+ : ajout

– perm:

r

: lecture

w : écriture

x

: exécution

LLee ssyyssttèèmmee ddee ffiicchhiieerrss

-- ffiicchhiieerrss --

• Manipulation des fichiers

– copier :

– déplacer/renommer :

– effacer :

– afficher le contenu :

– trier le contenu :

cp fic1 fic2 mv fic1 fic2 rm fic cat fic sort fic

VVooiirr lleess ppaaggeess dduu ““mmaann”” !!!!
VVooiirr lleess ppaaggeess dduu ““mmaann”” !!!!

LLee ssyyssttèèmmee ddee ffiicchhiieerrss

-- llaarrbboorreesscceennccee --

répertoire racine

• le répertoire de login:

• le répertoire courant:

• le répertoire supérieur:

• connaître le rép. courant: pwd

• lister le contenu: ls

(voir “man ls”)

/
/
pwd • lister le contenu: ls (voir “ man ls ”) / tmp bin home Dupont
pwd • lister le contenu: ls (voir “ man ls ”) / tmp bin home Dupont
pwd • lister le contenu: ls (voir “ man ls ”) / tmp bin home Dupont
pwd • lister le contenu: ls (voir “ man ls ”) / tmp bin home Dupont
pwd • lister le contenu: ls (voir “ man ls ”) / tmp bin home Dupont
pwd • lister le contenu: ls (voir “ man ls ”) / tmp bin home Dupont

tmp

bin

home

le contenu: ls (voir “ man ls ”) / tmp bin home Dupont cours .cshrc docs

Dupont

contenu: ls (voir “ man ls ”) / tmp bin home Dupont cours .cshrc docs •
contenu: ls (voir “ man ls ”) / tmp bin home Dupont cours .cshrc docs •
contenu: ls (voir “ man ls ”) / tmp bin home Dupont cours .cshrc docs •
contenu: ls (voir “ man ls ”) / tmp bin home Dupont cours .cshrc docs •

cours

.cshrc

docs

• chemin d’accès au fichier tp1.tex:

.cshrc docs • chemin d’accès au fichier tp1.tex : – /home/ldupont/cours/tp1.tex – ou bien:

/home/ldupont/cours/tp1.tex

– ou bien: ~/cours/tp1.ex

tp1.tex

LLee ssyyssttèèmmee ddee ffiicchhiieerrss

pwd retourne:

/home/dupont/cours

-- llaarrbboorreesscceennccee --

/

• se déplacer: cd [/home/dupont/cours]$ cd [/home/dupont]$

tmp home dupont cours tp1.tex
tmp
home
dupont
cours
tp1.tex

docs

• • chemin chemin relatif relatif • • chemin chemin absolu absolu
• • chemin chemin relatif relatif
• • chemin chemin absolu absolu

[/home/dupont]$ cd /tmp [/tmp]$

buzz

.cshrc

• créer un répertoire: mkdir [/tmp]$ mkdir buzz

• supprimer un répertoire: rmdir [/tmp]$ rmdir buzz

répertoire courant

LLee ssyyssttèèmmee ddee ffiicchhiieerrss

-- ppaarrttiittiioonnss --

• le disque est “découpé” en partitions

commandes & applications

comptes utilisateurs

swap

fichiers temp

périphériques (disques,

)

• accès transparent

LLee ssyyssttèèmmee ddee ffiicchhiieerrss

-- ppaarrttiittiioonnss --

• exemple: les comptes utilisateurs

/

dupont

bourguin

marion

exemple: les comptes utilisateurs / dupont bourguin marion home QuickTime™ et un décompresseur TIFF (non compressé)

home

les comptes utilisateurs / dupont bourguin marion home QuickTime™ et un décompresseur TIFF (non compressé) sont

QuickTime™ et un décompresseur TIFF (non compressé) sont requis pour visionner cette image.

QuickTime™ et un décompresseur TIFF (non compressé) sont requis pour visionner cette image.

m

m

serveur

ontage effectué sur /home

de façon transparente

m serveur ontage effectué sur /home de façon transparente postes dans la salle home usr etc

postes dans la salle

home

usr

etc

tmp

QuickTime™ et un décompresseur TIFF (non compressé) sont requis pour visionner cette image.

QuickTime™ et un décompresseur TIFF (non compressé) sont requis pour visionner cette image.

QuickTime™ et un décompresseur TIFF (non compressé) sont requis pour visionner cette image.

LLee ssyyssttèèmmee ddee ffiicchhiieerrss

-- ppaarrttiittiioonnss --

• tous les disques amovibles (disquette, cdrom, clé usb) dans : /mnt

• ex pour utiliser une disquette:

– Montage:

mount /mnt/floppy

– lire/ecrire dans

– Démontage:

/mnt/floppy

umount /mnt/floppy

• idem pour clés usb

LLee ssyyssttèèmmee ddee ffiicchhiieerrss

• Liens physiques

-- lliieennss --

ln <nom_fic> <nouveau_nom_fic>

– permet de donner plusieurs noms à un fichier

– pas pour les répertoires

– ne traverse pas les partitions

– un fic est détruit quand TOUS ses liens physiques sont supprimés (

• Liens symboliques

ln -s <nom_fic> <nouveau_nom_fic>

– crée un raccourci

– traverse les partitions

– fonctionne aussi pour les répertoires

• Lister les liens d’un fichier: ls -l <nom_fic>

LLeess rreeddiirreeccttiioonnss

• Une commande ouvre 3 descripteurs de fichiers; par défaut:

stdin

ouvre 3 descripteurs de fichiers; par défaut: stdin stdout commande stderr QuickTime™ et un décompresseur
stdout commande stderr
stdout
commande
stderr
de fichiers; par défaut: stdin stdout commande stderr QuickTime™ et un décompresseur TIFF (non compressé)

QuickTime™ et un décompresseur TIFF (non compressé) sont requis pour visionner cette image.

• Redirections= remplacer les canaux par défaut, rediriger vers une autre commande ou un fichier

LLeess rreeddiirreeccttiioonnss

<

redirige l’entrée standard

>

redirige la sortie standard

>>

concatène la sortie standard

2>

redirige la sortie d’erreur

&>

redirige la sortie standard et la sortie d’erreur

2> redirige la sortie d’erreur &> redirige la sortie standard et la sortie d’erreur

LLeess ttuubbeess ((ppiippeess))

• Tube: |

• pour “connecter 2 commandes”

stdin

stdout

stdin

stdout

commande

commande

commande
commande
commande
commande
commande
commande
p e e s s ) ) • Tube: | • pour “connecter 2 commandes” stdin

stderr

commande

commande

commande
commande
commande
commande
commande
commande
p e e s s ) ) • Tube: | • pour “connecter 2 commandes” stdin

stderr

p e e s s ) ) • Tube: | • pour “connecter 2 commandes” stdin
p e e s s ) ) • Tube: | • pour “connecter 2 commandes” stdin
p e e s s ) ) • Tube: | • pour “connecter 2 commandes” stdin
p e e s s ) ) • Tube: | • pour “connecter 2 commandes” stdin

LLeess pprroocceessssuuss

• Processus = objet dynamique qui représente un programme en cours d’exécution et son contexte

• Caractéristiques:

identification (pid)

identification du proc. parent (ppid)

propriétaire

priorité

• Pour voir les processus en cours: ps

LLeess pprroocceessssuuss

• Infos retournées par ps:

[lewandow:~] ps

temps CPU utilisé

retournées par ps : [lewandow:~] ps temps CPU utilisé PID TT p1 p1 3899 4743 numéro

PID

TT

p1

p1

3899 4743
3899 4743
3899 4743
3899 4743
3899 4743
3899 4743
3899 4743

3899

4743

ps temps CPU utilisé PID TT p1 p1 3899 4743 numéro de processus 4180 std terminal
ps temps CPU utilisé PID TT p1 p1 3899 4743 numéro de processus 4180 std terminal

numéro de processus

4180 std

terminal

associé

STAT S S+ S
STAT
S
S+
S

TIME COMMAND 0:00.08 -zsh 0:00.14 emacs 0:00.04 -zsh

S+ S TIME COMMAND 0:00.08 -zsh 0:00.14 emacs 0:00.04 -zsh commande exécutée état du processus: R

commande

exécutée

état du processus:

R

actif

T

bloqué

P

en attente de page

D

en attente de disque

S

endormi

IW

swappé

Z

tué

LLeess pprroocceessssuuss

• Options de ps:

-a

liste tous les processus actifs

-u

format d’affichage long

-x

inclut les processus sans terminal

• Tuer un processus:

kill-9 <PID>

• Processus en arrière-plan: &

(le terminal n’est pas bloqué) exemple: emacs monfichier.c &

LLeess ffiillttrreess

• Filtres simples

cat

– affiche le contenu des fichiers passés en paramètres (par défaut, stdin)

 

– options -b, -n, -v

more

– affiche page par page les fichiers passés en paramètres (par défaut, stdin) h pour avoir le détail des commandes

 

tee

– recopie l’entrée std sur la sortie standard et dans le fichier passé en paramètre

 

– option -a

 
 

Voir le man !!

Voir le man !!

exemples:

   

cat fic1 fic2 ls | tee liste.fic

more enormous_file cat -n toto | more

 

LLeess ffiillttrreess

Plus de filtres sort

– trie l’entrée ligne par ligne

– options:

-r (inverse l’ordre de tri)

+n

(ignore les n 1 ers champs)

– ex:

comm

ls | sort ls -l | sort +4

– sélectionne les lignes entre deux fichiers

– syntaxe: comm [-123] fic1 fic2

1 = lignes de fic1 (fic2) 2 = lignes de fic2 (fic1) 2 = lignes communes

LLeess ffiillttrreess

uniq

– détruit les lignes consécutives dupliquées

options: -u -d

– ex:

(affiche les lignes "uniques"), (affiche les lignes "dupliquées")

uniq -u fic uniq -d fic

diff

– compare deux fichiers

– options: -b

– ex:

(ignorer les lignes vides)

diff fic1 fic2

LLeess ffiillttrreess

cut

– sélectionne uniquement certaines colonnes du fichier passé en paramètre

– options:

-f<liste> : liste des champs à garder -c<liste> : liste des colonnes à garder

-d<char>

: séparateur de champs

– ex:

cut -c-10 rep.txt

1 tonton 0

2 tux 0077

3 vuja 013

rep.txt

1 tonton 0311333300

2 tux 0077885566

3 vuja 0133220011

1 tonton 0311333300 2 tux 0077885566 3 vuja 0133220011

cut -f1,2 -d" " rep.txt

1 tonton

2 tux

3 vuja

LLeess ffiillttrreess

tr

– recopie stdin sur stdout en substituant des caractères

– syntaxe: tr [-cds] [s1 [s2]]

– options:

-c (complément de s1) -d efface les car. de s1 -s tte séquence dans s1 est substituée par un car. unique dans s2

– ex:

tr A-Z a-z < essai remplace les majuscules par des minuscules tr A-Z a-z < essai | tr -sc a-z ‘\012’ remplace les majuscules par des minuscules, puis remplace tout ce qui n’est pas une lettre minuscule par un retour chariot (‘\012’)

LLeess ffiillttrreess

grep

– recherche, dans le fichier passé en paramètre, les lignes vérifiant une expression régulière donnée

– syntaxe : grep expr_reg [fichier]

– ex:

grep'toto'essai cherche dans essaitoutes les lignes qui contiennent le mottoto •grep'^[A-Z]'essai cherche dans essaitoutes les lignes qui commencent par une majuscule

– (voir TP sur grep et les expressions régulières)

LLeess ffiillttrreess

• Et encore plein d’autres

sed, awk, cmp,

• • Beaucoup Beaucoup de de filtres filtres et et commandes commandes • • Savoir
• • Beaucoup Beaucoup de de filtres filtres et et commandes commandes
• • Savoir Savoir qu’elles qu’elles existent existent
• • Savoir Savoir ce ce qu’on qu’on peut peut en en attendre attendre
• • Pour Pour le le reste, reste, => => man man !! !!