introduction à l'unix

71
Plan du cours Présentation générale Bourne Shell Interface C / Unix systemesdeproduction.blogspot.c om Système UNIX LAZREK Mohamed Département Informatique

Upload: amine

Post on 15-Jun-2015

405 views

Category:

Documents


2 download

DESCRIPTION

Introduction au cours de l'unix avec des exemples

TRANSCRIPT

Page 1: Introduction à l'unix

Plan du cours

Présentation généraleBourne ShellInterface C / Unix

systemesdeproduction.blogspot.com

Système UNIX

LAZREK Mohamed Département Informatique

Page 2: Introduction à l'unix

LE SYSTEME UNIXLE SYSTEME UNIX

PRESENTATION GENERALE

PRESENTATION GENERALE

Page 3: Introduction à l'unix

UNIX ?

Est un système d’exploitation

Permet la gestion des ressources de la machine :

matérielset

logiciels

Page 4: Introduction à l'unix

Version V Rel.4Version V Rel.4

Version V Rel. 3Version V Rel. 3

Version V Rel.2Version V Rel.2

Version V Rel. 0Version V Rel. 0

Version IIIVersion III

Version 7Version 7

Naissance d’UNIXNaissance d’UNIX

Version 6Version 6

BSD 4.3BSD 4.3

BSD 4.4BSD 4.4

BSD 4.2BSD 4.2

BSD 4.1BSD 4.1

AIX 3.0AIX 3.0

AIX 3.2AIX 3.2 OSF/1OSF/1

OSF/DCEOSF/DCEAIX 4.2AIX 4.21995

1991

1987

1985

1983

1981

1979

1969

1976

LE SYSTEME UNIXun peu d'histoire :

UNIX LINUX

Page 5: Introduction à l'unix

Mais la philosophie de l’Unix reste la même :

Un seul arborescence pour tous les utilisateurs

Les E/S sur les périphériques sont identiques aux E/S sur les fichiers

Page 6: Introduction à l'unix

MAIS AU FAIT ...... QUI ES TU ?

Un système opératoire :

Multi-Utilisateurs

Multi-tâchesréseau

Page 7: Introduction à l'unix

Mémoire Centrale

Processeur

P1 P1

Déroulement de l’exécution d’un programme dans un système :

mono utilisateur

et

mono tache

Page 8: Introduction à l'unix

Mémoire Centrale

ProcesseurProcesseur

E/S

P1

P2

P3

P4

P1P2P3P4 P2P4

Fin E/S et du Programme

Fin E/S

Fin Quantum

Fin du Programme

Lancer l‘exécution

Demande E/SArchitecture d’un système multi utilisateur

P1

P2

P3

P1

P2

P4P2

P4

P4

Page 9: Introduction à l'unix

Temps de réponse d’un programme dépend :

nombre d’utilisateurs connectés durée du quantum nombre d’opérations d’E/S durée des programmes ....

Page 10: Introduction à l'unix

Un langage de commande : séquentiel pseudo parallèle abréviations re-directions d'entrée-sorties synchronisation...

MAIS AU FAIT ...... QUI ES TU ?

Page 11: Introduction à l'unix

Ma philosophie :

"Keep it simple, and take it easy"

Mon succés

Toute une génération d'informaticiens a été

éduquée sur UNIX

Les champs d'application :

- développement de logiciel

- applications industrielles (extensions

temps réel)

- communications (courrier électronique,

transfert de fichier)

Une documentation en ligne

Page 12: Introduction à l'unix

Matériel

Noyau

Applications

Shell

Le noyau : gère les ressources matérielles (mémoire, unités

d'E/S...), les fichiers, l'allocation de temps UC gère les processus écrit en C et en assembleur

Structure du système

Le shell : est l’interface entre le noyau et l’utilisateur, des centaines de commande sont à la disposition des

utilisateurs

Page 13: Introduction à l'unix

Shell

Shell

Shell

utilisateur y

utilisateur z

utilisateur x

noyau

matériel

Connections des utilisateurs

Page 14: Introduction à l'unix

Documentation

$ man commande

Remarque :

majuscule # minuscule

Page 15: Introduction à l'unix

Tout utilisateur est enregistré dans deux fichiers :

/etc/groupnom de groupenuméro unique de groupe

/etc/passwdnom de loginmot de passe crypténuméro unique d'utilisateurnuméro unique de groupenom complet de l'utilisateurrépertoire initialinterpréteur de commande

NOTION D'UTILISATEUR

Page 16: Introduction à l'unix

avec possibilité de changer le mot de passe:

login : alipassword : *******

$ passwdchanging password for aliold password : ********new password : ********retrype new password : *******

La commande who permet de connaître les utilisateurs connectés

Page 17: Introduction à l'unix

Interface uniforme pour toute opération d'E/S

Trois types de fichiers : fichiers ordinaires répertoires fichiers spéciaux et périphériques :

terminaux

liens symboliques

prises réseaux

LE SYSTEME DE FICHIERS

Page 18: Introduction à l'unix

LE SYSTEME DE FICHIERSStructure arborescente

/

usr etc bin lib

group passwd

élève1

fich

Fich3Fich2Fich1

adm etudiant

profs

élève3élève2

TP2TP1

Fich5Fich4

home

oldenim

Page 19: Introduction à l'unix

/

bin dev usr

local

/

local bin

readme

Volume 1

Volume 2

Montage du volume 2

montage d’un volume

Page 20: Introduction à l'unix

Propriétaire et droits d’accèsa- protectionstrois catégories utilisateurs :

son propriétaire les utilisateurs qui font partie du même

groupe que le propriétaire les autres, excluant le propriétaire et les

usagers du groupe

A chacune de ces trois classes d’utilisateurs, trois types de droits accès sont définis

Ces types ont des significations différentes s’il s’agit d’un répertoire ou d’un fichier.

Page 21: Introduction à l'unix

LE SYSTEME DE FICHIERSStructure arborescente

/

usr etc bin lib

group passwd

élève1

fich

Fich3Fich2Fich1

adm etudiant

profs

élève3élève2

TP2TP1

Fich5Fich4

home

oldenim

Page 22: Introduction à l'unix

Pour un fichier :

r (read) droit de lire le fichier

w (write) droit de modifier le contenu du fichier

x (execute) droit d’exécuter le fichier.

Page 23: Introduction à l'unix

Pour un répertoire :r (read) droit de lire le répertoire, c a d

droit d’appliquer la commande lsW (write) droit d’écrire dans le répertoire. Cela permet

d’ajouter une entrée au répertoire : de créer un fichier ou un répertoirede modifier une ligne : changer le nom d’un fichierde retirer une ligne : détruire un fichier.

remarque : ce droit n’autorise pas à détruire le répertoire lui-même : il faut pour cela avoir le droit w sur le père de répertoirex droit de traverser le répertoire.

Page 24: Introduction à l'unix

Exemple :

r - - : chez le père : ls sr

- - x

- w x

Page 25: Introduction à l'unix

b- Changement des protections : chmod

chmod mode [fichier]+Le paramètre mode peut prendre deux formes :

1- dans la forme absolue, mode est composé de trois chiffres octaux. Le codage est :

un chiffre binaire un signifie donner le droit correspondant

un chiffre binaire zéro signifie retirer le droit correspondant

Exemple : chmod 300 fichier

Page 26: Introduction à l'unix

chmod mode [fichier]+

2- dans la forme symbolique, mode est composé de deux ou trois champs collés les uns aux autres, de la façon suivante :

[qui ]* position [droit]+

qui : est l’un des caractères suivants :u pour le propriétaire g pour le groupe o pour les autres eta pour tous ( user, group, others, all )

et indique pour qui on donne les droits qui suivent (défaut : a );

position : est l’un des caractères suivants : + pour mettre un droit - pour le retirer = pour mettre un droit et supprimer les autres;

droit : est l’un des caractères suivants : r pour le droit r, w pour le w x pour le droit x.

Page 27: Introduction à l'unix

Exemple : soit un fichier f

Permission avantValeur de mode Permission après

rw_ r_ _ _ _ _ chmod +x f

rw_ r_ _ _ _ _ chmod u-w f

rw_rw_rw_ chmod a=r f

rwx r_x _ _ x

r_ _r_ _ _ _ _

r_ _r_ _ r_ _

Page 28: Introduction à l'unix

Commande qui permet d’ajouter le droit d’exécution pour le propriétaire du fichier toto

chmod u+x totoCommande qui permet d’ajouter le droit d’écriture

pour le groupe du fichier totochmod g+w toto

Commande qui permet d’ajouter le droit d’exécution pour les autres et retirer ce droit au propriétaire et au groupe du fichier toto

chmod o=x totoCommande qui permet d’ajouter le droit

d’exécution à tous du fichier toto

chmod +x toto

Page 29: Introduction à l'unix

Forme générale d’une commande UNIX

commande [ paramètres ]

Convention :

.. répertoire parent

. répertoire courant

/ racine de l'arborescence

entrée

Page 30: Introduction à l'unix

Manipulation de répertoirescd #home directory

se positionner sur le répertoire personnel

pwd #print working directoryimpression du répertoire courant

cd <nom_rep> # change directorychangement de répertoire courant

mkdir <nom_rep> # make directorycréation d'un sous- répertoire

rmdir <nom_rep> # remove directorydestruction d'un répertoire si vide

mvdir <nom_rep1> <nom_rep2>re-nommage de répertoire #move directory

entrée

entrée

entrée

entrée

entrée

entrée

Page 31: Introduction à l'unix

Copie d’un ou de plusieurs fichiers : cp

cp origine résultat

Les droits de résultat sont les droits de origine.

cp [ origine ]+ rep

Page 32: Introduction à l'unix

REP1 :

REP2 :

cp a REP2/nf

cp ../a nf

REP1

REP2a b

c

nf

Page 33: Introduction à l'unix

Déplacement ou renommage : mv

mv ancien nouveau

Page 34: Introduction à l'unix

Exemple :

Avant :

Aprés :

REP1

REP2a b

c

REP1

REP2a b

nc

REP1 :

REP2 : mv c nc

mv REP2/c REP2/nc

Page 35: Introduction à l'unix

Autre exemple :

Avant :

Aprés :

REP1

REP2a b

nc

REP1

REP2a autreb

nc

REP1 :

REP2 : mv ../b autreb

mv b REP2/ autreb

Page 36: Introduction à l'unix

avant :

aprés :

REP1

REP2a autreb

nc

REP1

REP2a autreb

nc

REP1 :

REP2 : mv autreb nc ..

mv REP2/autreb REP2/nc .

Page 37: Introduction à l'unix

créer des liens sur fichier

ln anciennom nouveaunom

pas de duplication physique du fichier.

ln [fichier]+ rep

G5 j’ai donné le Mini ProjetG1 à refaire

Page 38: Introduction à l'unix

REP2 : ln ../* .

REP1

REP2a

autreb nc

REP1 : ln * REP2/

Page 39: Introduction à l'unix

Destruction d’un fichier ou d’un lien : rm

rm [ option ] [ fichier ]+

rm –r sous_rep

Appliquer à un lien symbolique, rm retire le lien symbolique.Destruction physique

options :r (récursif)

i

Page 40: Introduction à l'unix

Attributs d’un fichier, contenu d’un répertoire

ls [option][nom]*Quelques options :

-a affiche tous les noms de fichiers, même ceux qui commencent par un point

-i affiche le numéro de i-nœud devant chaque nom de fichier ou répertoire.

-l affiche pour chaque fichier successivement : la nature du fichier :

- : fichier ordinaire, d : répertoire,

l : lien symbolique les droits d’accès le nombre de liens de fichier les noms du propriétaire et du groupe la taille des fichiers en caractères la date de dernière modification le nom du fichier

-t affiche trié par la date de dernière modification

Page 41: Introduction à l'unix

$ lsREP2 REP3 a.c b.c c.o $ ls REP2d.c e.c$ ls -il34982 drwxr_x_ _ _ 2 ali 64 Mar 11 1:43 REP222782 drwxr_x_ _ _ 2 ali 1024 Mar 11 14:46 REP347267 _rwxr_x_ _ x 1 ali 16364 Mar 1 11:43 c.o69789 _rwxr_x_ _ _ 2 ali 64 Mar 1 11:43 a.c67659 _rwxr_x_ _ _ 2 ali 64 Mar 1 11:43 b.c

REP1

REP3REP2a.c b.c

d.c e.c

c.o

Page 42: Introduction à l'unix

Affichage interactifa- Appel simple :

more fichier

affichage page par page d’un fichier de texte, avec une pause en fin de chaque page.

Après une pause, on peut reprendre le défilement.

Page 43: Introduction à l'unix

b- Appel avec options :more [option] [-n] [+nl] [+/ chaîne] [fichier ]*-n nombre de lignes affichées;

+nl démarrer l’affichage à la ligne nl;

+/ chaîne démarrer deux lignes avant de rencontrer chaîne dans le fichier.

Parmi les options :-d affichage d’un message plus explicite que -More- en fin de page :

press space to continue, ‘q’ to quit-l ne pas tenir compte des (fin de page) du

fichier.

Page 44: Introduction à l'unix

Requêtes :A la fin de chaque page, l’utilisateur peut envoyer une requête :

entrée affiche la ligne suivante;

espace affiche la page suivante;

q quitter more;

= affiche le numéro de ligne courante;

v entre dans l’éditeur vi, à la ligne courante;

/ chaîne affiche la suite, deux lignes avant de rencontrer chaîne;

! commande exécute la commande ;

. répète la requête précédente;

: n (next) passe au fichier suivant, quand more est appelé avec plusieurs fichiers en paramètre;

: p ( previons ) passe au fichier précédent.

Page 45: Introduction à l'unix

Remarque :

more cherche ses options permanentes dans la variable MORE.

Si le fichier .profile contient par exemple MORE =‘-5’; export MORE

alors tout appel comme more fichier

sera équivalent à :more -5 fichier

Page 46: Introduction à l'unix

Affichage complet et concaténation

cat [fichier]*

Exemple :

$ cat fichier

$ cat >fichier ^d : pour terminer

$ cat f1 f2 > f3

Page 47: Introduction à l'unix

Affichage du début :

head [-n] f

$ head fichier

$ head -5 fichier

Page 48: Introduction à l'unix

Affichage de la fin d’un fichier :

tail [+ | -] nl fichier

Exemple : $ tail f affiche les dix dernières lignes de f.

$ tail +5 fichier affiche de la ligne 5 à la fin du fichier.

$ tail -5 fichieraffiche les 5 dernières lignes de f.

Page 49: Introduction à l'unix

Extrait d’un nom de fichier : basename

basename nom [suffixe]

Exemple :

$ basename ab.c .c

ab

$ basename prog-gus.p -gus.p

prog

Exemple :

Programme qui copie les .c en .old

Page 50: Introduction à l'unix

Comparaison de fichiers sans détail :

cmp fichier1 fichier20 si les fichiers sont identiques,

1 s’ils sont différents

Remarque :

$ cmp -s f1 f2

-s supprime les commentaires.

Page 51: Introduction à l'unix

Affichage par page, par colonne :a- Appel simplepr f1b- Appels avec optionspr [option]* [fichier]*+k commencer l’affichage à la page k ( défaut 1);-k afficher sur k ( défaut 1) colonnes de même

longueur -m fusionne les fichier et les affiche côte à côte (

incompatible avec -k);-sc associé à une option -k ou -m, demande à ne pas

tronquer les lignes trop longues et à remplacer le séparateur de colonnes par défaut (le TAB) par la caractère c;

-h texte l’argument texte remplacera le nom du fichier dans l’en-tête;

-t supprimer l’en tête, les lignes blanches de haut de page et les lignes blanches de fin de page.

Page 52: Introduction à l'unix

Afficher les fichiers TD1.txt et TD2.txt cote à cote avec une en-tête, sur 2 colonnes :

$ pr –mh “lists pat TD“ TD1.txt TD2.txt

Exemple :

Afficher fichier sur 3 colonnes :

$ pr -3 –t fichier

Page 53: Introduction à l'unix

Longueur d’un fichier :

wc [-lwc] [fichier]*

Exemple :

$ wc -lwc fichier

$ wc -l fichier

Page 54: Introduction à l'unix

Où se trouve un fichier : find [répertoire]+ [expression]+

répertoire est la liste des racines des sous hiérarchies à parcourir.expression est une suite d’options exprimant à la fois les critères de sélection des fichiers et les actions à leur appliquer. Lorsque le critère est vrai, l’action est exécutée. Dans la suite, on appelle ‘fichier courant’ le fichier examiné par find à un instant donné.Options, où n est mis pour n, -n, +n, -n veut dire ‘n et moins’, +n veut dire ‘n et plus’ :name motif vrai si le motif s’applique sur le nom du fichier courantuser nom vrai si le fichier courant appartient à l’utilisateur nomatime n vrai si le fichier a été utilisé dans les n derniers jours. Peu

utilisable, car find modifie la date d’accès aux fichiers qu’il examine

mtime n vrai si le fichier a été modifié dans les n derniers joursnewer fich vrai si le fichier courant a été modifié plus récemment que fich(expression) vrai si l’expression est vraie. Les parenthèses (qu’il faut faire

précéder d’un blanc et d’une contre barre pour qu’elles ne soient pas interprétées par le Shell) sont nécessaire si les expressions simples sont combinées par et (par défaut), ou, non

$ find / -name fichier -printfait

Page 55: Introduction à l'unix

Recherche d’une chaîne dans un fichier :

grep [option] chaîne [fichier]*Options : v affiche les lignes qui ne contiennent pas le motif c n’affiche que le nombre de lignes qui contiennent le motif i ignore la distinction minuscule / majuscule l n’affiche que les noms des fichiers renfermant le motif n numérote les lignes affichées s ou q les messages sont supprimés

Le code de retour est :

0 si un motif a été trouvé

1 sinon

2 s’il y a eu des erreurs

Page 56: Introduction à l'unix

Un processus est un programme en cours d’exécution. programme = statique processus = dynamique

Un même programme s’exécutant plusieurs fois donne des processus différents.

Un utilisateur <==> au moins un processus (le login Shell)

Caractéristiques d’ un processus :son pid ( process identifier ) un numéro qui lui attribue

UNIX dès sa création.le pid du processus parent (ppid) son propriétaireson terminal d’attachementun certain nombre d’autres attributs, priorité par exemple

Généralités sur les processus

Page 57: Introduction à l'unix

un processus doit naître pour exister.

Un processus meurt de deux façons : normalement

ou anormalement

$ps

PID TT STAT TIME COMMAND

6087 tty0 S 0:00 -csh

6091 tty0 R 0:00 ps

Naissance et terminaison d‘un processus

Page 58: Introduction à l'unix

nice [-n°] commande [paramètres]

priorité de 1 à 19 , priorité par défaut : 10

nohup commande (&)

processus non tué au logout

kill -9 processus_ID

le processus désigné est tué

at 1600 <commande>

Programmer l’heure d’une commande

sleep <nombre>

Suspendre l’exécution d’une commande

Quelques commandes

Page 59: Introduction à l'unix

Redirection

organe de sortie( par défaut écran )

commande ouprogramme

shell

organe d’entrée(par défaut clavier)

les erreurs( par défaut écran )

Page 60: Introduction à l'unix

Redirection des E/S :

Redirection des erreurs : 2 > mot 2 >> mot

mot est un nom de fichier ou une variable ou

un paramètre désignant un fichier.

< mot redirige l’entrée standard sur mot

>> mot idem, mais si le fichier désigné par mot

existe déjà, il est allongé (et non détruit)

>mot redirige la sortie standard sur un mot, avec création ou destruction éventuelle

Page 61: Introduction à l'unix

$ cat f1 f2 > f3

$ ls > f

$ ls f > fichier

$ ls f 2 > fichier

$ ls f > f1 2 > f2

$ nohup prgme >ff 2>fff

Exemple :

Page 62: Introduction à l'unix

commande2

écranSortie | Entrée

erreur (écran)

$commande1 | commande2| .............................| commanden

Pipe

commande1clavier

erreur (écran)

Page 63: Introduction à l'unix

Pipe1- Compter le nombre de fichiers dans le

repertoire courant :

$ ls | wc –w

Page 64: Introduction à l'unix

Pipe

Page 65: Introduction à l'unix

Pipe2- afficher les quatres derniers noms, dans l’ordre alphabétique,

d’une liste se trouvant dans le fichier liste :$ cat liste

BAKOALHAAHAA

Résultat de la commande :ALBAHAKO

Page 66: Introduction à l'unix

$ cat liste | sort | tail -4

$ sort liste | tail –4

Page 67: Introduction à l'unix

Caractères spéciauxCommandes séquentielles :

cmd1;cmd2;cmd3

Commande background :

cmd&

redirection des e/s

Groupement des commandes :

( )

Page 68: Introduction à l'unix

Ex:

$ date ; echo fin de commande > toto

$ cat toto

fin de commande

$ (date ; echo fin de commande ) > toto

la date

fin de commande

Page 69: Introduction à l'unix

Génération de nomsFacilités pour désigner de manière explicite un groupe de noms de fichiers à l'aide d'une notation condensée.Usage de caractères spéciaux dits méta-caractères :

? remplace un caractère quelconque, sauf le RET ls d?g

* remplace n'importe quelle chaîne, même vide, de caractères ne comportant pas de RET. ls s*n

[...] remplace un caractère parmi ceux qui sont énumérés entre les crochet, en un caractère ls d[io]g

Page 70: Introduction à l'unix

Mécanismes d’échappement

"..."

parenthésage dans lequel aucun caractère sauf `, " et $ n'a de signification spéciale

`...`exécution de la phrase placée entre accents graves

\ (backslash) négation d’un méta-caractère

Page 71: Introduction à l'unix

Exemple

$ echo “ `date` ? “

Lundi 4 Mai 2004 ?

$ echo ‘ $a ` date ` ‘

$a ` date `

$ echo \?

?