Vous êtes sur la page 1sur 125

Unix Utilisateur

F. EL BOUANANI

ENSIAS 2010

Plan

Prsentation dUnix

Le systme de fichiers

Les modes daccs aux fichiers

La gestion des processus

Gestion des utilisateurs

La redirection dE/S et les filtres

Programmation Shell (sh)

F. EL BOUANANI

Chap 1. Prsentation dUnix


I- Systme dexploitation (SE)

SE = programmes liant les ressources matrielles d'un ordinateur et les applications


de l'utilisateur

Le SE assure :

Gestion de la mmoire centrale ;

Gestion des processeurs : ordonnancement ;

Gestion des priphriques : E/S ;

Gestion des fichiers : sur les mmoires de masse ;

Gestion des ressources : attribution des ressources ncessaires ;

Gestion des permissions et privilges ;

F. EL BOUANANI

Chap 1. Prsentation dUnix


II- Introduction

Unix = SE issu du milieu universitaire

Unix = Multiutilisateur, multitche et temps partag

Possde un systme de gestion des fichiers arborescence unique, mme avec


plusieurs priphriques de stockage

Disponible sur toutes les machines (micro-ordinateur, station de travail, super


calculateur, )

Assure la portabilit des programmes (sur tout type de machine)

F. EL BOUANANI

Chap 1. Prsentation dUnix


III- Historique

1969: K. Thompson et D. Ritchie de Bell Laboratories dveloppent leur propre


version du S.E

1973 : K. Thompson et D. Ritchie ont rcrit la nouvelle version dUnix C (90% C,


10% assembleur).

1974 : Luniversit Berkeley dveloppe son propre systme (Berkeley Software


Distribution)

Dbut de divergence entre les 2 versions : AT&T et BSD

1980 : Dlivrance 1res licences de distribution dUnix System V (AT&T)

F. EL BOUANANI

Chap 1. Prsentation dUnix


III- Historique

1984 : Cration du groupe X/Open (Normaliser les # versions dUnix) et de


X/Window (systme de multifentrage graphique)

1988 : Cration de :
- OSF (Open Software Fondation), (DEC, HP, IBM, ) : Normalisation dun
nouvel Unix OSF1
- Unix international (AT&T et BSD) : Imposer Unix System V

1992 : Digital Equipement propose la 1re version commerciale DEC/OSF1 et Sun


propose la 1re version commerciale (AT&T et Sun)

F. EL BOUANANI

Chap 1. Prsentation dUnix


IV- Composantes dUnix

Unix est constitu principalement de :

Noyau (Kernel)

Interprteur de commande (Shell)

Systme de fichier (SF)

grand nombre dutilitaires

F. EL BOUANANI

Chap 1. Prsentation dUnix


1. Noyau

Constitu de procdures et fonctions crites en C et en Assembleur.

Assure la gestion des ressources physiques


- Processeur, mmoires (allocation), priphriques (pilote, transfert de donnes
E/S)

Assure la gestion des ressources logicielles


- processus (dmarrage, arrt, ordonnancement,), fichiers (permission
daccs,)

Caractristique : structure du noyau est monolithique (notion de couches nexiste pas)

F. EL BOUANANI

Chap 1. Prsentation dUnix


2. Interprteur de commande (Shell)

Lutilisateur communique indirectement avec le noyau via le Shell


Utilisateur
Application

Shell
Noyau

Matriel

Unix est cach dans une Coquille (nest visible qu travers le Shell)

Shell = Ensemble de fonctions permettant dexcuter les commandes de lutilisateur

Possibilit dcriture de propres commandes et scripts par lutilisateur

Le Shell est lanc aprs vrification du login et du mot de passe

F. EL BOUANANI

Chap 1. Prsentation dUnix


2. Interprteur de commande (Shell)
Shell permet de :
-

Dfinir lenvironnement de travail;

Editer les scripts de Shell ;

Dfinir des alias de commande;

manipuler lhistorique de commandes;

complter les noms de Fichiers et commandes,

F. EL BOUANANI

10

Chap 1. Prsentation dUnix


2.1 Versions de Shell
Les scripts Shell diffrent dune version une autre (dfinition des variables, structures de
contrle, etc)
Principales Versions de Shell :

Bourne Shell (sh)


C Shell (csh)

: Shell par dfaut dans les anciens unix


: Syntaxe similaire au langage C

Plus robuste que sh.

Korn Shell (ksh)

Bash
F. ELBOUANANI

: combine sh et csh
: par dfaut

11

Chap 1. Prsentation dUnix


3. Systme de Fichiers (SF)
Comme la majorit des systmes dexploitation, les donnes sous UNIX sont stockes

dans des fichiers. Ces fichiers sont organiss hirarchiquement en rpertoires ;


Systme de Fichiers UNIX = arbre renvers (rpertoires = branches, fichiers = feuilles);
SF Assure :

- Lindpendance des priphriques (rpertoire racine = /)


- La scurit des fichiers (lecture, criture et excution)
- Excution en avant/arrire plan)
- Redirection des E/S
F. EL BOUANANI

12

Chap 1. Prsentation dUnix


4. Utilitaires

Compilateurs pour # langages : C, ADA, Pascal, Fortran

Editeurs de textes (vi, ed, gedit, emacs)

Outils pour le Web (Apache, Netscape, )

Outils de bureautique (Traitement de texte, messagerie, )

F. EL BOUANANI

13

Chap 1. Prsentation dUnix


5. Concept Open source

Richard Stallman (chercheur au MIT, auteur de gcc, Emacs ...) nonce


clairement le concept de logiciel libre ( free ) :

... un savoir scientifique doit tre partag en le distribuant, ... les codes
sources doivent tre libres d'accs ...

Dmarre le projet GNU (1984). But : recrer un systme d'exploitation complet


(Unix-like), compos uniquement de logiciels libres.

Cre la FSF (Free Software Fundation, 1985) pour grer le projet GNU.

Remarque : Free ne signifie pas ncessairement gratuit


F. EL BOUANANI

14

Chap 1. Prsentation dUnix


5.1. Principe de base du projet GNU
Laccs libre au code source acclre le progrs en matire d'informatique car l'innovation
dpend de la diffusion du code source.

les quatre liberts fondamentales :


i.

libert d'excution : tout le monde a le droit de lancer le programme, quel qu'en soit le but ;

ii.

libert de modification : tout le monde a le droit d'tudier le programme et de le modifier, ce


qui implique un accs au code source ;

iii.

libert de redistribution : tout le monde a le droit de rediffuser le programme, gratuitement


ou non ;

iv- libert damlioration : tout le monde a le droit de redistribuer une version modifie du
programme ;
F. EL BOUANANI

15

Chap 1. Prsentation dUnix


5.2. Licence GPL (General Public licence)

Autorise l'utilisateur copier et distribuer volont le logiciel qu'elle protge, pourvu


qu'il n'interdise pas ses pairs de le faire aussi ;

Requiert aussi que tout driv d'un travail plac sous sa protection soit lui aussi protg
par elle ;

Quand la GPL voque les logiciels libres, elle traite de libert et non de gratuit (un logiciel
GPL peut tre vendu) ;

Remarque :

F. EL BOUANANI

en anglais free

= gratuit et libert

16

Chap 1. Prsentation dUnix


5.3. Linux

1991 : Linus Torvalds (Finlandais) dveloppe un noyau s'inspirant d'unix : linux. Il le


met trs vite sous licence GPL, rejoint par de nombreux dveloppeurs.

Succs : qualit technique du noyau + nombreuses distributions qui facilitent


l'installation du systme et des programmes.

Distribution linux

un noyau Linux

des programmes, en majorit libres (un navigateur Web, un lecteur de Mail, un


serveur FTP, etc...)

une mthode pour installer et dsinstaller facilement ces programmes

un programme d'installation du SE

F. EL BOUANANI

17

Chap 1. Prsentation dUnix


5.4. Qlq Distributions linux
www.redhat.fr
socit amricaine fonde en 1994.
introduit RPM (Redhat Package Manager) de gestion de paquets logiciels
fedora.redhat.com
version grand public gratuite de RedHat
www.novell.com/linux/suse
socit allemande fonde en 1993
rachete en 2003 par l'diteur de logiciels amricain Novell
www.debian.org
distribution trs soigne (dconseille aux dbutants !)
www.ubuntu-fr.org
Distribution populaire base dbian lance en 2004.
F. EL BOUANANI

18

Chap 2. Premier contact avec Unix


I. Connexion dun utilisateur
a)

Compte Utilisateur, identifi par login et mot de passe, sont crs par ladministrateur
du systme (root = superutilisateur) : adduser

b) Compte cr sur un serveur (Hte)


c) Lutilisateur se connecte au serveur pour sauthentifier (Une erreur de saisie du mot de
passe peut tre annule par <ctrl-u>)
d) Si Login et mot de passe sont correct, login rcupre les infos du fichier /etc/passwd

Lutilisateur peut changer son mot de passe : passwd [user]

F. EL BOUANANI

19

Chap 2. Premier contact avec Unix


II. Dconnexion dun utilisateur

<ctrl-d>, exit, logout Affichage de linvite de login

Rebooter la machine
sudo reboot (se connecter en tant que root)
sudo shutdown r now (r=reboot)
A travers le menu
Arrter la machine
halt
shutdown h now (h=halt)
A travers le menu
F. EL BOUANANI

20

Chap 2. Premier contact avec Unix


III. Commandes Unix

Syntaxe (Format standard)

<commande> [options] <liste darguments>


[] : facultatifs
majuscules # minuscules
aide en ligne : man commande

Une commande nest interprte que lorsque lutilisateur a tap <Entre> ;

F. EL BOUANANI

21

Chap 2. Premier contact avec Unix


IV- Exemple

wc [-lwc ] [fichier ] : pour compter


l : compte le nombre de lignes dans un fichier
w : compte le nombre de mots dans un fichier
c : compte le nombre de caractres dans un fichier

ps [-Aef ] : Liste les informations des processus en cours


ps -el : affiche les informations concernant tous les processus (e) en format longue (l)

cal[annee ] : Affiche les jours du mois courant (calendrier)


annee: affiche le calendrier complet dune anne donne

sleep n : suspendre lexcution n secondes.


Interrompre lexcution : <Ctrl-C>

F. EL BOUANANI

22

Chap 2. Premier contact avec Unix


IV- Exemple (cont.)

ls [ -alRFX] liste_fichier
a : lister tous les fichiers y compris les fichiers cachs
l : format longue (type de fichier, permissions (xwr), propritaire, groupe, etc)
R : liste en plus les sous rpertoires (Rcursive).
F : lister les rpertoires avec / la fin
X : trier par ordre alphabtique de lextension

Les caractres spciaux :

F. EL BOUANANI

: chane de caractres de taille non nulle

: caractre unique quelconque.

[ ]

: liste dans une plage donne.

[!]

: plage inverse
23

Chap 2. Premier contact avec Unix


IV- Exemple (cont.)
[0-9] : Caractres numriques.
[a-z] : Caractres alphabtiques minuscules.
[A-Z] : Caractres alphabtiques majuscules.
$ ls -l fich*

$ ls -l

$ ls

fich[0-9]

$ ls

fich[!0-9]

$ ls

fich[a-z]?

$ ls

fich[!a-z]?

$ ls ?[!.]*.[ch]

F. EL BOUANANI

fich?

$ ls ?[!.]*.[c-h]

24

Chap 2. Premier contact avec Unix


V- Alias de Commandes

Affecter un nom personnalis une commande

Syntaxe dpend du shell utilis

Syntaxe : alias abrviation [commande]


Exemple
alias afficher ls -l
alias afficher =ls -l

C shell
shell Korn, Bourne

Afficher la commande associe un alias

alias afficher
F. EL BOUANANI

(affiche la valeur)
25

Chap 2. Premier contact avec Unix


VI- Les commandes les plus utilises
Commande

Fonction

cp

Copier un fichier (CoPy)

mv

Renommer ou dplacer un fichier (MoVe)

pwd

Affiche le rpertoire courant (Print Working DIRectory)

cd

Change le rpertoire courant (Change DIRectory)

mkdir

Cree un rpertoire (MaKe DIRectory)

rmdir

Efface un rpertoire vide (ReMove DIRectory)

man

Affiche le manuel dune commande (Manual)

rm

Effacer les fichiers (ReMove)

cat

Affiche le contenu dun fichier (conCATenate)

chmod

Change le mode de permissions (Change MODe)

grep

Cherche les mots dans les fichiers

df

Affiche ltat du systme de fichier (Disk File)

du

Affiche lallocation en espace des fich. (Disk Utilization)

F. EL BOUANANI

26

Chap 2. Premier contact avec Unix


Exercice
Excuter les commandes suivantes et commenter :

uname a

logname

who

whoami

who am i

time

date

date +Le %d/%m/%y%n a %H heures %M minutes %S secondes

cal 2010

ls -l

clear

leave 1550

man man

F. EL BOUANANI

27

Chap 2. Premier contact avec Unix


Exercice (cont.)
1.

Voir laide pour la commande ls .


Quelle est loption qui liste tous les fichiers dans votre rpertoire mme les fichiers qui
commence avec un point (fichiers cachs)?

2.

Afficher tous les fichiers qui finissent par .conf dans votre rpertoire courant

3.

Afficher tous les fichiers dont le nom commence par xx dans votre rpertoire courant et ses

sous rpertoires

F. EL BOUANANI

28

Chap 3. Systme de fichiers


Comme la majorit des systmes dexploitation, les donnes sous UNIX sont stockes

dans des fichiers. Ces fichiers sont organiss hirarchiquement en rpertoires ;


On peut imaginer le systme de fichiers UNIX comme un arbre (renvers). Les

rpertoires sont reprsents par les branches, et les fichiers par les feuilles;
Le

sommet de larbre sappelle le rpertoire racine ( /)

Chaque fichier (ou rpertoire) dans larbre est nomm en listant toutes les branches

qui ramnent vers la racine, et en les sparant par des /, comme suit:
/home/ensias/TP_Unix/rapports/tp1.txt

F. EL BOUANANI

29

Chap 3. Systme de fichiers


/

bin

boot

dev

etc

home

lib

mnt

proc

sbin

sys

tmp

usr

var

Rpertoire root (/) : C'est le haut de l'arborescence. Il n'y a qu'une et une seule entre sur
le systme de fichiers. Le rpertoire root est le seul rpertoire sans pre. Tous les fichiers
et chemins d'accs absolus ont le rpertoire root dans le chemin d'accs.
et /sbin : contiennent les commandes de base Unix (ls, cp, rm, mv, ln,
etc.) utilises entre autres lors du dmarrage du systme. Les fichiers contenus dans ces
rpertoires ne sont que des excutables.

/bin

spciaux permettant de communiquer avec tous les


priphriques comme les disques, les terminaux, les drouleurs de bandes, les
imprimantes, etc.

/dev : contient les fichiers

F. EL BOUANANI

30

Chap 3. Systme de fichiers


/etc : contient tous les fichiers

d'administration et un certain nombre de commandes

systme.
/home : contient les

rpertoires personnels des utilisateurs du systme.

/root : cest le rpertoire personnel de l'administrateur.

: contient un certain nombre de sous-rpertoires. Chacun contient les fichiers


ncessaires au fonctionnement en mode normal du systme. Par exemple : /usr/bin et
/usr/sbin contiennent les commandes supplmentaires non contenues dans /bin et
/sbin ;

/usr/lib contient les bibliothques pour le fonctionnement d'Unix et pour le

/usr

dveloppement ;

/usr/include contient les fichiers de dclaration des fonctions systme pour


le dveloppement.

variables (susceptibles d'tre modifis frquemment) :


journaux (logs), e-mails, bases de donnes, archives,
...
/var : contient les fichiers

F. EL BOUANANI

31

Chap 3. Systme de fichiers


/

bin

home

Etudiant2

Etudiant1

Rapports

Rapports

Unix

tp1.txt

F. EL BOUANANI

usr

etc

Etudiant3

Prive

Analyse_numerique

tp2.txt

32

Chap 3. Systme de fichiers


I- Chemins Relatifs et Absolus
Pour dnommer un fichier on peut utiliser la dnomination absolue ou la dnomination

relative
Considrons le fichier suivant :

/home/Etudiant1/Rapports/Unix/tp1.txt
Dnomination absolue (en partant de la racine

/ ):

/home/Etudiant1/Rapports/Unix/tp1.txt
Dnomination relative ( partir du rpertoire courant) :

Rpertoire courant = /home/Etudiant1

Rapports/Unix/tp1.txt

Rpertoire courant = /home

Etudiant1Rapports/Unix/tp1.txt

Rprtoire courant = /

home/Etudiant1Rapports/Unix/tp1.txt

F. EL BOUANANI

33

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers
cd [rep] (Change Directory) : Change le rpertoire courant et dplace lutilisateur vers rep

rep est facultatif : cd sans arguments dplace lutilisateur vers son rpertoire personnel ;

pwd (Print Working Directory) : Affiche le chemin d'accs absolu du rpertoire courant ;

mkdir [-p] rep1 rep2 (MaKe DIRectory) : permet de crer des rpertoires.

Exemple : # mkdir /home/Etudiant1/Transmission_donnees

loption -p permet de crer une suite de rpertoires.

Exemple : mkdir -p r1/r2 Si r1 nexiste pas cration de r1 et r2 la fois

F. EL BOUANANI

34

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers
Quand un rpertoire est cr, le systme

gnre automatiquement 2 sous-rpertoires

reprsentant des liens vers le rpertoire cr et le rpertoire pre :


le rpertoire "."

= rpertoire courant,

le rpertoire ".."

= rpertoire pre,

le rpertoire "~"

= rpertoire personnel.

Exemple

# cd ..

: remonte d'une branche dans l'arborescence ;

# cd ../../..

: contenu trois niveaux au dessus dans l'arborescence

# cd ~/.

: se dplace vers ?

F. EL BOUANANI

35

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers
rmdir

rep1 rep2 (Make DIRectory) : supprime les rpertoires.

Un rpertoire ne peut tre effac avec rmdir que sil est vide (pas de fichiers y compris
les fichiers cachs)

Pour supprimer un rpertoire non vide, on utilise rm -r

Exemple :
# mkdir p rep/sd1 rep/sd2 rep/sd3/sd31
# rmdir rep/sd2
# rmdir rep/sd3/sd31 rep/sd3
# rmdir rep/sd1 rep/sd2 rep

mv fichier repertoire (MoVe) : dplacer un fichier dans un rpertoire


mv fichier1 fichier2 (MoVe) : renommer fichier1 par fichier2
F. EL BOUANANI

36

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers
Quelques options importantes de mv :
mv b : ("backup") Effectue une sauvegarde des fichiers avant de les dplacer :
mv i : (" interactive") demande pour chaque fichier et chaque rpertoire s'il peut ou non
tre dplac
mv -u : ("update") demande mv de ne pas supprimer le fichier si sa date de modification
est la mme ou est plus rcente que son remplaant
Exemple :
mv *.txt ..

: dplace les fichiers texte vers le rpertoire parent

mv uni?.pdf ~/.././ : dplace les fichiers

pdf forms de 4 lettres et commenant par

uni vers /home


mv tp2.txt tp1.txt

F. EL BOUANANI

: renomme tp2.txt par tp1.txt


37

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers

cat (conCATenate)

: permet dafficher, crer, copier et concatner des fichiers :

cat /etc/passwd

: affiche le contenu du fichier texte /etc/passwd

cat n fichier

: numrote les lignes du fichier affich

cat > essai

: cre le fichier essai et crit le texte : Bonjour .

Bonjour
comment vas-tu ? <Ctrl-d>
more fich

(caractre de fin de saisie)

: Afficher le contenu du fichier fich page par page

Espace

: Affichage page par page

<Entre>

: Affichage ligne par ligne

head

: Affiche les 10 premires lignes du fichier

tail

: Affiche les 10 dernires lignes du fichier

F. EL BOUANANI

38

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers
touch fich1 fich2 : permet de crer des fichiers vides

: compare deux fichiers textes. Une liste de diffrence est affiche

diff

lcran
: compare deux fichiers binaires et affiche linformation sur le

cmp

premier caractre qui diffre les deux fichiers (sil existe)

cp [-iblprv]

fichier_source fichier_destination : copier un fichier ou un

rpertoire

cp [option]

fich1 fich2

rpertoire : copier des fichiers dans un rpertoire

si on effectue une copie d'un fichier sur un fichier qui existe dj, celui-ci sera cras (si
on a le droit) et remplac par le nouveau fichier.

F. EL BOUANANI

39

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers
Quelques options importantes de cp :
i

: avertit l'utilisateur de l'existence d'un fichier du mme nom et lui demande s'il peut ou
non remplacer son contenu;

: assure que la copie n'crase pas un fichier existant : le fichier cras est sauvegard.
Seul le nom du fichier d'origine est modifi et cp ajoute ~ la fin du nom du fichier;

: permet de faire un lien dur entre le fichier source et sa copie. Le fichier copi et sa
copie partageront physiquement le mme espace;

: permet lors de la copie de prserver toutes les informations concernant le fichier


comme le propritaire, le groupe, la date de cration;

: permet de copier de manire rcursive les sous rpertoires dun rpertoire;

: permet d'afficher le nom des fichiers copis. Utile si par exemple pour vrifier la copie
plusieurs fichiers ( l'aide des occurrences "*" et/ou "?").

F. EL BOUANANI

40

Chap 3. Systme de fichiers


III- Stockage de fichiers
i-node (information node)

i-node est un ensemble dinformations sur un fichier :


type (fichier, rpertoire, ...),
nom,
masque de protection,
nombre de liens avec d'autres fichiers,
propritaire et groupe,
taille,
date de cration et date de dernire modification,
numro du bloc de dbut.

Un numro i-node est simplement une rfrence sur un i-node dans la table des i-nodes
ls -i : affiche les numros des i-node
F. EL BOUANANI

41

Chap 3. Systme de fichiers


III- Stockage de fichiers
Types de fichiers
Type

F. EL BOUANANI

Code

standard

rpertoire

lien symbolique

fichier spcial mode bloc

fichier spcial mode caractre

fichier spcial mode rseau

pipe nomm

42

Chap 3. Systme de fichiers


III- Stockage de fichiers
4573
Java-chap1.html
4573
Java-chap2.html 34785
liens.html
4366

79 bytes
eleve1
users
rw-rw-rBlock 86764

4574
966 bytes
eleve2
facturation
rw-r--r
Block 90000

Table des I-node

86764
Hello. My name is Moha. I work in the
marketing department. I am 32 years old,
Blocks

F. EL BOUANANI

43

Chap 3. Systme de fichiers


IV- Liens
i-node (information node)

Il est possible quun fichier ait plus quun nom dans plusieurs rpertoires, appel liens

Les liens vers un fichier partagent le mme i-node (aient les mmes permissions, etc.),

Type de liens :

Lien symbolique : fait rfrence un fichier dans un rpertoire ,

Lien dur

: fait rfrence un espace sur le disque dur.

Cration :
ln [-sid] fichier_source

fichier_lien.

s : cre un lien symbolique

i : demande l'utilisateur s'il souhaite craser le fichier qui a un lien sur le fichier
source au cas ou celui-ci existerait dj

d : effectue des liens durs sur des rpertoires . Seuls les utilisateurs possdant
les droits adquats pourront le faire

F. EL BOUANANI

44

Chap 3. Systme de fichiers


V- Recherche de fichiers
wich commande : permet de connatre le chemin d'un excutable.

Exemple :
wich ls affiche /bin/ls
grep [-nl] chane fich1 fich2

: Recherche dans un ou plusieurs fichiers,

toutes les lignes contenant une chane de caractres donne.


Exemple :
grep

Unix fich : recherche la chane Unix dans le fichier fich

grep n Unix fich : recherche dans le fichier fich, la ligne et son numro,

contenant la chane Unix


grep l

transmission /home/ensias/rapports/* : permet de n'afficher

que les noms des fichiers du rpertoire /home/ensias/rapports contenant la


chane transmission.
F. EL BOUANANI

45

Chap 3. Systme de fichiers


V- Recherche de fichiers
find : recherche un fichier partir dun rpertoire donn :
find / -name test1

-print
/
: indique que nous voulons chercher partir de la racine notre fichier test1.
name : est l'option qui indique ici que nous voulons spcifier le nom d'un fichier
print : demande find d'afficher le rsultat.
find . -name .profile -print

recherche le fichier cach .profile partir du rpertoire courant et laffiche lcran.


find /home/ensias/Etudiant1 TP*' -print
recherche tous les fichiers commenant par TP partir du rpertoire indiqu.
find . -type f -size +400000c -print
recherche tous les fichiers de taille >400000 caractres partir du rp. courant .
find /usr -type d -name bin -print
recherche et affiche tous les rpertoires de nom bin, partir du rpertoire /usr.
find . -name core -exec rm {} \ ;
recherche partir du rep. courant, tous les fichiers de nom core et les supprime.
F. EL BOUANANI

46

Chap 3. Systme de fichiers


VI- Montage

Microsoft DOS et Windows utilisent des dsignations comme c:, d: pour reprsenter
chaque systme de fichiers accessible,

dans UNIX, tous les fichiers, que lutilisateur peut accder, se trouvent dans une
seule arborescence de rpertoires (avec comme racine root "/")

Ceci est accompli par lopration de montage.

On peut monter:

Autres disques durs,

Disquettes,

Cls USB,

Disques rseaux.

Chaque systme de fichier doit tre mont sur un sous rpertoire vide

F. EL BOUANANI

47

Chap 3. Systme de fichiers


VI- Montage

Montage

: La commande mount

Dmontage

: La commande umount

Il est facile de dterminer lespace disponible sur un systme de fichiers, en utilisant


la commande df (disk free)

Lespace disque utilis par nimporte quel rpertoire peut tre afficher par la
commande du (disk usage)

F. EL BOUANANI

48

Chap 3. Systme de fichiers


Exercice1
Quels sont les rsultats des commandes suivantes

cd ~

ls .

mkdir rep

cp /etc/shadow ./rep

cp /etc/hosts ./rep/..

ls ../../../../../../../../../../../../../etc

cd

mkdir vide

mv rep vide

ls /home/../usr/./bin/../lib/X11

mkdir /tmp/rep

rmdir /tmp/rep

mkdir a/b (est ce possible? Voir man pour rgler le problme)

mkdir p a/b d/e/f


F. EL BOUANANI

49

Chap 3. Systme de fichiers


Exercice1 (cont.)

touch a/b/fich01 a/b/fich02 a/b/fich03 a/b/fich1

rmdir a/b

rm a/b/fich0 ?

rmdir p d/e/f

ls -l

mkdir p a/b/c/d

cd a/b

pwd

cd ~/a/b/c

pwd

cd

touch a/b/c/d/fich

rm r a

F. EL BOUANANI

50

Chap 3. Systme de fichiers


Exercices (cont.)
Exercice 2
Dans votre rpertoire daccueil, crez larborescence suivante, en nutilisant que des chemins
relatifs :
rep1

fich11

Vrifiez la cration.

fich12

fich21

rep3

rep2

fich22

fich3
1

fich32

Exercice 3
Comment dplacer toute larborescence rep3 sous le rpertoire rep2 ? Supprimez tout sauf
rep1, fich11 et fich12.
Exercice 4
A laide de la commande id, dterminez votre UID et votre groupe (nom de groupe et GID).
Combien y a t-il dutilisateurs dans votre quipe ?

F. EL BOUANANI

51

Chap 3. Systme de fichiers


Exercices (cont.)
Exercice 5
Copier les fichiers dont l'avant dernier caractre est un 3 ou 1 dans le rpertoire /tmp en une
seule commande.

Exercice 6
Listez tous les fichiers :
se terminant par 5
commenant par annee1
commenant par annee1 et de 7 lettres maximum
commenant par annee avec aucun chiffre numrique
contenant la chane ana
commenant par a ou A
F. EL BOUANANI

52

Chap 4. Protection des fichiers


I- Droits daccs aux fichiers
Unix possde des mcanismes permettant au propritaire d1 fichier (celui qui la

cr) den protger le contenu : droits daccs (permissions) ;


Unix dfinit la notion de groupe dutilisateurs pour permettre le partage de

fichiers et faciliter le travail en quipe


Chaque utilisateur appartient au moins 1 groupe;
Droits daccs dun fichier : ensemble dindicateurs associs un fichier ;
3 types dutilisateurs pour chaque fichier :
Le propritaire du fichier ;
Les membres du groupe du propritaire ;
Les autres utilisateurs du systme ;
F. EL BOUANANI

53

Chap 4. Protection des fichiers


I- Droits daccs aux fichiers
3 modes daccs (par fichier et par type dutilisateur) :
Autorisation dcriture (w) ;
Autorisation de lecture (r);
Autorisation dexcution (x);
10 attributs associs chaque fichier Unix (1 pour le type et 9 pour la

protection) :
exple : -rw- r-x r-- (- : fich ordinaire, rw- :droits propritaire, r-x :
droits groupe, r-- :droits autres utilisateurs)
F. EL BOUANANI

54

Chap 4. Protection des fichiers


II- Modification des droits d accs
1- Modification des droits daccs
chmod (Change MODE)

ne peut tre utilise que par le propritaire;


2 modes dutilisation de la commande chmod :

En utilisant un nombre octal (utilisation ancienne) :


Exemple :

rwx rw- r-x est reprsent par le nombre octal : 765 111 110 101

chmod 567 essai

: protection du fichier essai en r-x rw- rwx


55

F. EL BOUANANI

55

Chap 4. Protection des fichiers


II- Modification des droits d accs

Description absolue ou relative des droits daccs (mode symbolique) :


syntaxe : chmod [who] op [permission] fichier
who : combinaison de lettres u (user=propr), g (group), o(others=autres) ou a (all=tous)
op : oprateur : + (ajoute 1 droit), - (supprime 1 droit), = (affecte 1 droit de manire
absolue (tous les autres bits sont remis 0)
permission : r (read), w( write), x (execute).
Exemple :

chmod

u-w

test : supprime le droit dcriture au propritaire sur le fichier test

chmod

g+r

test : ajoute le droit de lecture pour le groupe sur le fichier test

chmod ug=x test

F. EL BOUANANI

: accs uniquement en excution pour le propriataire et le groupe


56

Chap 4. Protection des fichiers


II- Modification des droits d accs
2- Droits daccs la cration

La protection d1 fichier, son propritaire et son groupe sont tablis la cration du fichier et ne
peuvent tre modifis que par son propritaire ;

umask permet de dfinir un masque de protection des fichiers et rpertoires lors de leur cration ;

Le masque est exprim en base 8 ;

Exemple :

# umask 022

022 est soustraite de la permission permanente 777 :

111 111 111


000 010 010
111 101 101 = 755
F. EL BOUANANI

57

Chap 4. Protection des fichiers


II- Modification des droits d accs
Remarques :

umask

022 permet de dfinir la protection des fichiers rpertoires : rwx r-x r-x

est

souvent lopration par dfaut ;

Pour les fichiers ordinaires, umask 022 dfinit la protection : rw- r-- r-- : lexcution nest
pas autorise sur les fichiers ordinaires lors de leur cration.

Exemple :

# umask 022;

touch fich1 ; ls -l

fich1

-rw- r-- r-- 1 abdou amis 60 Nov 10 10:33 fich1

F. EL BOUANANI

58

Chap 4. Protection des fichiers


III- Droits daccs aux rpertoires
Affichage des informations dun rpertoire : # ls

-dl

rep

Exemple :
# ls

-dl

bin

drwx r-x r-x 3 etudiant ensias 1024 oct 16 12:45 bin

Signification de r , w et x pour les rpertoires :

r : permet de voir la liste des fichiers qui sont dans le rpertoire ;

x : autorise laccs au rpertoire ( laide de la commande cd)

w : autorise la cration, la suppression et le changement du nom dun lment


du rp.

Cette permission est indpendante de laccs aux fichiers dans le rpertoire.


F. EL BOUANANI

59

Chap 4. Protection des fichiers


III- Droits daccs aux rpertoires
Exemple :
toto( nom rep)

fich1
-rwx --- ---

appartient
lutilisateur
toto)

drwx --- ---

seul lutilisateur toto pourra supprimer et modifier son fichier fich1


toto( nom rep)

fich1
-rwx --- ---

appartient
lutilisateur toto)

dr-x --- ---

seul lutilisateur toto pourra modifier son fichier fich1, mais il ne pourra pas le
supprimer car il na pas w sur le rep toto.
F. EL BOUANANI

60

Chap 4. Protection des fichiers


IV- Modification du propritaire et du groupe
chown (CHange OWNer) : permet de changer le propritaire dun fichier (il faut tre

propritaire pour en changer) ;


Une fois la commande chown excute, il nest plus possible de modifier les droits daccs

ce fichier par lancien propritaire;

Syntaxe : chown propritaire nom_fichier


chgrp (Change GRouP) : permet de changer le groupe pour le fichier spcifi, si lutilisateur

fait partie du nouveau groupe.

Syntaxe : chgrp propritaire nom_fichier


F. EL BOUANANI

61

Chap 4. Protection des fichiers


IV- Modification du propritaire et du groupe
Exemple :
# chgrp amis f1
# chown ali f1
f1 appartiendra ali et fera partie du groupe amis.
On change dabord le groupe du fichier puis son propritaire.

Remarques :

Ladministrateur peut accder tous les fichiers il peut modifier les droits daccs ;

Dernires versions dUnix : seul ladministrateur pourra utiliser chown.

F. EL BOUANANI

62

Chap 4. Protection des fichiers


Exercices
Dans votre rpertoire courant, crez un rpertoire essai_rep, par dfaut ce rpertoire est 755
(rwxr-xr-x). Quelles sont les commandes (en notation symbolique et en base 8) pour lui donner
les droits suivants (on suppose qu'aprs chaque commande on remet le rpertoire 755:

Propritaire
Droit en

groupe

Lecture Ecriture Accs Lecture Ecriture

les autres
Accs

Lecture Ecriture

Accs

Commande 1

oui

oui

oui

oui

non

oui

non

non

oui

Commande 2

oui

non

oui

non

oui

non

non

non

oui

Commande 3

non

oui

non

non

non

oui

oui

non

non

Commande 4

non

non

oui

oui

non

oui

non

non

non

F. EL BOUANANI

63

Chap 4. Protection des fichiers


Exercices

Crez un fichier test dans le rpertoire essai_rep prcdent. Par dfaut ce fichier est 644 (rwr--r--). En partant du rpertoire courant, pour chaque commande de l'exercice prcdent,
essayez d'accder au rpertoire essai_rep (commande cd), de faire un ls dans essai_rep et de
modifier le fichier avec un diteur quelconque.

Crez dans un nouveau rpertoire reptest, le fichier bienvenue contenant la ligne de


commande : echo Bienvenue dans le monde UNIX
Excutez ce fichier.
F. EL BOUANANI

64

Chap 4. Protection des fichiers


Exercices

Crez un fichier que vous pouvez lire, modifier et supprimer.

Crez un fichier que vous pouvez lire et supprimer mais que vous ne pouvez pas modifier.

Crez un fichier que vous pouvez lire mais que vous ne pouvez ni modifier ni supprimer .

Dans quel cas les permissions dun fichier sa cration sont-elles diffrentes des permissions
fixes par umask ?
F. EL BOUANANI

65

Chap 4. Protection des fichiers


Exercices

Supposons que vous travaillez avec un collgue appartenant au mme groupe que vous.
1. Modifiez les permissions du fichier cr lexercice Bienvenue de telle faon que votre
collgue puisse le lire et lexcuter, mais ne puisse pas le modifier ni le supprimer.
2. Pouvez-vous modifier les permissions de ce fichier de telle sorte que votre collgue puisse le
lire, le modifier et lexcuter alors que vous-mme ne pouvez pas le modifier.

F. EL BOUANANI

66

Chap 4. Protection des fichiers


Exercices

1. Comment est attribue la permission deffacer un fichier ?


2. Crez un fichier que votre collgue peut modifier mais pas supprimer et un autre quil peut
supprimer mais pas modifier. Est-il logique de pouvoir attribuer de tels droits ? Quelles sont
les consquences pratiques de cette exprience ?

Comment savoir trs simplement si votre systme suit la logique BSD ou System V en ce qui
concerne le GID des fichiers la cration ?

F. EL BOUANANI

67

Chap 5. Redirection dE/S


I- Ligne de commandes squentielles
Ligne de commandes squentielles : {commandes spares par ;}

sexcutent squentiellement et indpendamment les unes des autres


Exemple : # pwd;ls;cat nom_fichier
II- Commandes sur plusieurs lignes
bourne shell et korn shell : \<Entre>
C-Shell : <Espace>

Exemple : # cp fich1 \<Entre>


cp fich1 fich2
> fich2
F. EL BOUANANI

68

Chap 5. Redirection dE/S


II- sparateurs conditionnels
: permet dexcuter la commande qui le suit si et seulement si la commande qui le

&&

prcde a t excute sans erreur ;


: permet dexcuter la commande qui le suit si et seulement si la commande qui le

||

prcde a t excute avec erreur ;

Exemple :
# cd rep && rm *
Suppression des fichiers si la commande cd rep a t correctement excute
# cd rep || mkdir rep
Si le rpertoire rep nexiste pas il sera cr par mkdir
F. EL BOUANANI

69

Chap 5. Redirection dE/S


III- Redirection des E/S
Au lancement dun processus, le shell ouvre une :

Entre standard

: par dfaut le clavier,

Sortie standard

: par dfaut lcran,

Sortie derreurs standard

: par dfaut lcran.

Clavier

Processus
Entre standard

Sortie standard

Ecran

0
2
Erreur standard

F. EL BOUANANI

70

Chap 5. Redirection dE/S


III- Redirection des E/S
Ces entres/sorties standard peuvent tre rediriges vers :
un fichier,
un tube de communication,
un priphrique ;
La redirection des sorties peut tre ralise par :
Effacement et cration du fichier,
Ajout la fin du fichier ;
En cas de redirection dentre, le fichier doit exister ;
La syntaxe de redirection dE/S est diffrente dun shell lautre
F. EL BOUANANI

71

Chap 5. Redirection dE/S


III- Redirection des E/S

< fe

: dfinition de fe comme fichier dentre standard ;

> fs

: redirection de la sortie standard vers le fichier fs (possibilit


dcrasement) ;

>> fs

: sortie standard ajoute en fin du fichier fs ;

>& f

: sortie standard et sortie derreurs standard vers le fichier f


(crasement sil existe dj

>>& f

: sortie standard et sortie derreurs standard sont ajoutes en fin du fichier f

(commande > fs) >& fer : redirige la sortie standard vers fs et la sortie derreurs
vers fer ;
F. EL BOUANANI

72

Chap 5. Redirection dE/S


III- Redirection des E/S
Exemple :
# ls > sortie1
range la liste des fichiers du rpertoire courant dans le fichier sortie1
# ls >> sortie2
Ajoute au fichier sortie2 la liste des fichiers du rpertoire courant
# ls Mohammad * > sortie3
range, dans sortie3, la liste des fichiers du rpertoire Mohammad et les messages derreurs
# (ls /ali * > sortie4)>& fich_err4
rsultat dans sortie4 et erreurs dans fich_err4
F. EL BOUANANI

73

Chap 5. Redirection dE/S


III- Redirection des E/S

< fe

: dfinition de fe comme fichier dentre standard ;

> fs

: redirection de la sortie standard vers le fichier fs (possibilit


dcrasement) ;

>> fs

: sortie standard ajoute en fin du fichier fs ;

2> ferr

: redirection de la sortie derreurs standard vers ferr

2>> ferr

: sortie derreurs standard est ajoute au fichier ferr

commande > fs 2> ferr : sortiefs et erreursferr


F. EL BOUANANI

74

Chap 5. Redirection dE/S


III- Redirection des E/S

a) Lecture au clavier et criture sur cran :


Exemple : # cat
Bonjour Mr
<ctrl-d>
b) Copie dun fichier (possibilit dcrasement) :
Exemple : # cat f1 > f2

ou cat <f1 >f2

c) Concatnation des fichiers :


Exemple : # cat f1 f2 f3 > f

f contiendra la concatnation des contenus


de f1, f2 et f3

F. EL BOUANANI

75

Chap 5. Redirection dE/S


III- Redirection des E/S
d) Ajout dun fichier :
# cat f1 >> f2:f1 est concatn la suite de f2. f2 est cr sil nexiste pas
e) Cration dun fichier par saisie au clavier :
# cat > f1
Bonjour
<ctrl-d>
f) Cration dun fichier avec condition de saisie :
# cat << EOT > f1
f1 est cr par saisie de texte au clavier, jusqu la saisie en dbut
Au revoir

de ligne de la chaine EOT

EOT
F. EL BOUANANI

76

Chap 5. Redirection dE/S


IV- Les tubes de communication
Tube (pipe) : flot de donnes permettant de relier la sortie standard dune commande
lentre standard dune autre commande sans passer par un fichier temporaire.
Processus P1
Entre standard

Processus P2

0
2

0
1Pn
Processus

Erreur standard

P1 | P2 |

Sortie standard

Erreur standard

Erreur standard

|Pn

Utiliser n-1 fichiers temporaires


P1 > temp1
P2 < temp1 > temp2

et

rm temp*

Pn < tempn-1
F. EL BOUANANI

77

Chap 5. Redirection dE/S


IV- Tubes de communication
Exemple :

# ls

| wc w
Affiche le nombre de fichiers dans le rpertoire courant

# ls l | more
Affichage page par page du contenu du rpertoire courant
# ls l > temp1; \<return>

Rqs :

more temp1 ; rm temp1 : Solution longue!


- Toutes le commandes lies par un tube sexcutent en parallle. Cest le systme qui
ralise la synchronisation entre le processus metteur et le processus rcepteur ;
- Il ny pas de taille limite pour le flot de donnes et pas de fichier temporaire.

F. EL BOUANANI

78

Chap 5. Redirection dE/S


V- Filtres
Filtre : lit les donnes sur

lentre standard, les traite et les crit sur la sortie standard.

Les filtres les plus utiliss :


wc
more [fichier]
sort [options] [fichier]

: filtre de tri.

: le critre de tri est une valeur numrique

: le critre de tri est une valeur alphanumrique

k num

: trier par rapport la colonne num ( par dfaut num=1)

: tri dcroissant

t sp

: prciser le caractre de sparation (par dfaut espace)

o fs

: le rsultat du tri est sauvegard sur le fichier fs

F. EL BOUANANI

79

Chap 5. Redirection dE/S


V- Filtres
Exemple :
sort -n -k 3 -t: /etc/passwd

Tri par rapport au troisime champ (numrique : UID)


sort -k 4n -t: /etc/passwd|cut d: -f4 | tail n 2

Affiche les deux derniers GID (ex. 509 et 65534 (utilisateur nfsnobody)
sort -k 4n -t: /etc/passwd|cut d: -f4 | tail n 2| head n 1
sort k 2n k 1b fichier

Affiche ?
F. EL BOUANANI

80

Chap 5. Redirection dE/S


V- Filtres
grep [option] expression_rgulire [fichier]:
grep [option] E expression_rgulire_tendue [fichier]:
egrep = grep tendue recherche les occurrences dune expression ;
-i : insensible la casse
-v : les lignes qui ne correspondent pas lexpression rgulire
-n : Affiche le numro de la ligne renvoye dans le fichier dentre
-w : ne renvoie que les lignes contenant un mot complet correspondant lexp. Rg.
-e exp_reg 1 e exp_reg2 : permet de spcifier plusieurs exp. Rg.
-c : renvoie le nombre de lignes correspondant au motif
-F : ninterprte pas l motif comme une expression rgulire
F. EL BOUANANI

81

Chap 5. Redirection dE/S


V- expression rgulire
Caractre spcial

Signification

Dbut dune ligne

Fin dune ligne

Caractre quelconque

[liste_caractre]

Caractre dans la liste

[^liste_caractre]
*
^$

Caractre nappartenant pas la liste


0 plusieurs fois le caractre
Chane vide

\{n\}

n fois le caractre prcdent

\{n,\}

Au moins n fois le caractre prcdent

\{m,n\}

F. EL BOUANANI

Entre m et n fois le caractre prcdent

82

Chap 5. Redirection dE/S


V- Filtres
Exemple :
grep [0-9]\{3\} fichier: recherche un nombre de 3 chiffres,
grep user:x /etc/passwd : recherche lutilisateur user,
grep bash$ /etc/passwd

: recherche les utilisateurs dont le shell est bash

grep c bash$ /etc/passwd : renvoie le nombre des utilisateurs bash

grep bash$ /etc/passwd | wc -l


grep .. fichier

: recherche les lignes contenant au mois 2 caract.

grep F . fichier

: recherche les lignes contenants .

grep n v ^[A-Z]fichier: recherche les lignes ne commenant pas par

une lettre majuscule et affiche leur numro


F. EL BOUANANI

83

Chap 5. Redirection dE/S


VI- Filtres programmables
awk : petit langage de manipulation de texte.
awk [F sp] [-v var1=val1 v var2=val2 ]
motif1 {instr11;instruc12;} motif2 {instr21;instruc22;}
[fichier]
-F : Sparateur par dfaut espace ou tabulation
Motif : 4 types
BEGIN
END
F. EL BOUANANI

: action excut avant la lecture du fichier


: action excute aprs lexcution des instructions bloc
84

Chap 5. Redirection dE/S


VI- Filtres programmables - Motif
Expression1 oprateur/Expression2 rgulire tendue/ (exp. Rg. utilise par
egrep et dlimite par /)
condition boolenne (if)

condition1 && condition2

condition1 ||condition2

condition

condition ? Instruction1 : Instruction2

F. EL BOUANANI

85

Chap 5. Redirection dE/S


VI- Filtres programmables
Instructions de contrle :

if (condition) instruction1 [else instruction2]

while (condition) instruction ou do instruction while


(condition)

for (exp1 ; exp2 ; exp3) instruction

for (indice in tableau) instruction

F. EL BOUANANI

(tableau[indice])
86

Chap 5. Redirection dE/S


VI- Filtres programmables
Variable prdfinie

Signification

RS

Sparateur de lignes (par dfaut \n)

FS

Sparateur de champs (par dfaut espace ou tab)

ORS

Sparateur de lignes pour la sortie

OFS

Sparateur de champs pour la sortie

$0

Valeur de la ligne courante

NF

Nombre de champs de lenregistrement courant

$i (i=1..NF)
NR
F. EL BOUANANI

Le ime champ
Indice de lenregitrement courant
87

Chap 5. Redirection dE/S


VI- Filtres programmables
Exemple :
awk F: {print $1} /etc/passwd
ls l | awk {print $9 $2} | sort r n k 2
ls l | awk BEGIN {t=0}{t++} END {t--;printf(nombre de

fichier et rp = %d\n,t}

id | awk {chaine=substr($2, ()+1);chaine=


substr(chaine,0, index()-1); print chaine}

F. EL BOUANANI

88

Chap 5. Redirection dE/S


VI- Filtres programmables
a. Expression rgulire tendue
awk /^ensias:/ {print $1} /etc/group
awk $1 ~ /cdrom$/ {trouve=1;chem=$2} END {if (trouve) {print "

mont sur "chem} else {print "pas de rp de montage"}} /etc/fstab


b. Expression relationnelle
awk {BEGIN {trouve=0} {if (index($1,"cdrom")) {print "le CD est

mont sur " $2;trouve=1}} END {if (!trouve) {print "pas de rep de
montage"}} /etc/fstab
F. EL BOUANANI

89

Chap 5. Redirection dE/S


Exercices
Exercice 1 :
Afficher le nombre dutilisateurs de la machine dont le login shell est c-shell
Exercice 2 :
Afficher le GID du nouvel utilisateur cr (se trouvant sur la dernire ligne de /etc/passwd)
Exercice 3 :
Etant donne le fichier suivant : nom_tudiant note_unix
1.

Quelle est la moyenne de la classe;

2. Afficher le majorant de la classe : en utilisant deux mthodes : sort et awk!


3.

Refaire 2. en tenant compte que plusieurs tudiants peuvent avoir la premire note
(pensez un tableau)

F. EL BOUANANI

90

Chap 5. Redirection dE/S


VI- Filtres
Exercice 4 :
Afficher le nombre de fichiers et de rpertoire au dessous du rpertoire courant
Exercice 5 :
Afficher le nombre dutilisateurs appartenant un groupe donn
Exercice 6 :
Afficher le nombre des utilisateurs appartenant au groupe de lutilisateur courant
Exercice 7 :
Afficher la liste des priphriques sdb monts (utiliser le fichier /etc/mtab)
F. EL BOUANANI

91

Chap 6. Les processus


I- Dfinition
Processus : Programme en cours dexcution.

fichier binaire excutable;


fichier texte contenant une procdure shell.
Cration : par appel de

pid_t fork()

Une fois le processus est cr, un

(man fork)

rpertoire PID est cr sur /proc

Une fois termin, le rpertoire PID est supprime sur


Type de processus :

/proc

utilisateur et systme (cr au lancement du systme ou une date

programme)

F. EL BOUANANI

92

Chap 6. Les processus


II- Attributs
Attributs dun processus

- PID

: Identifiant du processus

- PPID

: Identifiant du processus pre

- UID

: Identifiant de lutilisateur

- GID

: Identifiant du groupe

- CMD

: Commande nom du programme

- TTY

: terminal ayant lanc le processus

-S

: Etat du processus
S : Endormie (Attend la fin de ses fils)
R : En cours dexcution
Z : processus termin mais le pre nest pas en attente
T : Arrt (peut tre ractiver)

-TIME

: Dure cumule

-C

: % dutilisation du CPU

- NI

: Priorit entre -19 et 20

F. EL BOUANANI

93

Chap 6. Les processus


II- Attributs
ps [-eAufFlr]: Affiche les processus lancs actuellement sur la session
- e/A

: Affiche tous les processus (utilisateur et systme)

-a

: Affiche tous les processus utilisateur

- u user

: Affiche les processus dun utilisateur identifi par son nom

- f/F/l

: plus dinfos sur le processus

-r

: Affiche les processus en cours dexcution

Exemple : # ps al
F
4
1
1

S UID PID PPID


S
0
1
0
S
0
2
0
S
0
3
2

C
0
0
0

PRI
80
75
-40

NI
0
-5
-

ADDR
-

SZ
711
0
0

WCHAN TTY
?
?
?

TIME
00:00:01
00:00:00
00:00:00

6682 6668

80

1080

pts/0

8752 6682

80

537

pts/0 00:00:00

CMD
init
kthreadd
migration/0

...
0 R 1000

00:00:00

bash

...
0 R 1000
F. EL BOUANANI

ps
94

Chap 6. Les processus


II- Attributs - priorit
nice [-x|-n[+/-]x] processus : Excute un processus en modifiant/prcisant sa priorit

(x= entier)
x : Affecter la priorit x au processus (x est choisi dans lintervalle -20 (haute) a 19 (faible). La

priorit par dfaut est 10.


-n[+/-]x :priorit du processus = 10[+/-]x si le processus est vient dtre lanc

priorit du processus est augmente (diminue) de x si le processus est dj lanc


Lutilisateur pourra modifier la priorit des processus qui lui appartiennent
Le root a le droit de diminuer/augmenter la priorit des processus
Tous les fils dun processus hritent la priorit de leurs parents
F. EL BOUANANI

95

Chap 6. Les processus


II- Attributs - priorit
Exemple
# ps el
F S UID PID PPID

PRI

NI

ADDR

SZ

WCHAN TTY

TIME

CMD

00:00:00

bash

0 R 1000

6682 6668

80

1080

pts/0

0 R 1000

8752 6682

80

537

pts/0 00:00:00

sudo nice bash puis ps -ef


PID

PPID

NI

6682

6668

8752

6682

10

8760

8752

10

F. EL BOUANANI

ps

sudo nice bash puis ps -ef


PID

PPID

NI

6682

6668

bash

8752

6682

10

bash

ps

8790

8752

19

bash

8812

8790

19

ps

CMD
bash

CMD
bash

96

Chap 6. Les processus


II- Attributs - priorit
sudo nice n-25 bash puis ps -ef

sudo nice n+5 bash puis ps -ef


PID

PPID

NI

6682

6668

bash

8752

6682

10

bash

19

bash

8790

8752

19

bash

8790

-6

bash

8928

8790

-6

bash

8928

-6

ps

8979

8928

-1

bash

8993

8978

-1

ps

PID

PPID

NI

6682

6668

8752

6682

10

8790

8752

8928
8948

F. EL BOUANANI

CMD
bash

CMD
bash

97

Chap 6. Les processus


III- Kill
kill [-signal|-num_signal] id_processus
Envoie un signal un processus. Le signal par dfaut est KILL

Signal

num _signal

Signification

TERM

15

Terminer le processus (si pas de fils)

KILL

Terminer le processus et ses fils (signal non bloqu)

STOP
CONT

Arrter un processus en cours dexcution. Sinon, pas deffet


Relancer un processus arrt. Sinon, pas deffet

Exemple
# kill 8752

: Aucun effet (bash a 4 fils)

# kill -9 8752 kill -KILL 8752

: Tuer ce processus Fermer le terminal

# find / -name test

pid= 10200

# kill STOP 10200


# kill CONT 10200
F. EL BOUANANI

98

Chap 6. Les processus


IV- processus en arrire/avant plan
processus en arrire plan (en Background / batch)
le shell rend la main immdiatement et nattend pas que le processus se termine
Tous les processus en Background se terminent aprs la fermeture de la session
Syntaxe : commande &
Une fois cr, un numro de job est affect au processus en arrire plan
processus en arrire plan (en Foreground)
Processus trait de manire squentielle (synchrone) ;

La commande qui lit de lEntre Standard (clavier) doit tre lance en avant plan

La commande qui crit dans la Sortie (ou Erreur) Standard peut tre excutes en
Background

En cas de +rs processus en Background Rediriger le rsultat pour viter la confusion

F. EL BOUANANI

99

Chap 6. Les processus


IV- processus en arrire plan
Redirection de la sortie dun processus en arrire plan

Le processus en background se termine ds le fermeture de la session rsultat perdu

Rediriger le rsultat vers un fichier de sortie en utilisant la commande


nohup

cde_backgroud [> fichier_resultat]

Par dfaut, le fichier rsultat=nohup.out


Exemple
nohup ls l &
nohup ls l & liste_de_fichiers

F. EL BOUANANI

100

Chap 6. Les processus


V- Jobs
Commande
jobs : Obtenir la liste des numros de jobs et leurs tats (Running, Stopped, Terminated)
Arrter un job en excution (kill STOP pid)
En avant plan : Ctrl-Z
En arrire plan : stop %num_job
bg %num_job

fg %num_job

Background (en excution)

Foreground (en excution)

bg %num_job

fg %num_job
Ctrl-Z/kill -STOP

Ctrl-Z/kill -STOP
Arrt

kill %num_job
Termin
F. EL BOUANANI

101

Chap 6. Les processus


VI- Planification dune tche
Programmation unique : at
Programmation priodique : cron
at instant

: Lancer les commandes un instant donn

Cde1
Cde2

Ctrl-D
atq

: Affiche les jobs programms par at

atrm num_job : Supprime un job programm par at


F. EL BOUANANI

102

Chap 6. Les processus


VI- Planification dune tche
Exemple
# at now + 1 minutes (hours, days, weeks, today, tomorrow)
>touch f2
>cat

f0 f1 > f2

>Ctrl-D
# atq
N_job

Date_lancement_job

nom_utilisateur

Fri Dec 10 14:00:00

ensias

# atrm 1
F. EL BOUANANI

103

Chap 6. Les processus


VI- Planification dune tche
Programmation priodique
Mode cyclique
Tourne en arrire plan
Sexcute a chaque dmarrage du systme
A chaque minute, il lit un certain nombre de fichiers pour voir sil y a quelque chose a
excuter
Autorisation dutilisation de crontab : fichier /var/spool/cron/cron.allow et fichier

/var/spool/cron/cron.deny
Utilisation dun fichier indiquant la tche faire et sa priode
F. EL BOUANANI

104

Chap 6. Les processus


VI- Planification dune tche
Programmation priodique
Syntaxe : crontab fichier_programmation
Remplace la table courante de cron par fichier_programmation
crontab [-lre]
affiche/efface/dite la table cron courante
Structure du fichier_programmation

Champ1

Champ2

minute (0-59)

heure (0-23) jour s (1-31) mois (1-12)

* : valeur quelconque:
F. EL BOUANANI

Champ3

Champ4

Champ5

Champ6

jour_semaine (0-6) Cde__excuter


0=dimanche
105

Chap 6. Les processus


VI- Planification dune tche
Exemple 1
# gedit f

16 14 * * * cp f ff
#crontab f
#cat /var/spool/cron/crontabs/root
. 16 14 * * * cp f ff

14h16min, la commande sera excute


F. EL BOUANANI

106

Chap 6. Les processus


Exercices
Exercice 1 : Que donne le crontab dans ce cas
45

10

* 1-5

command

0,30

13 * 5

command

30

* 1

(cd /home/user/ensias1 ; make)

* *

find

*/2

* *

rm fichier

/tmp -atime +5 -exec rm -f {} ;

Exercice 2 :
Programmer une planification permettant dcrire chaque jour 14h dans le fichier sortie le
rsultat de ps -el
F. EL BOUANANI

107

Chap 6. Les processus


Exercices
Exercice 3 :

Donner la commande qui permet dafficher le nombre de fils dune tche identifie par son
PID

Donner la commande permettant de savoir le niveau dun processus dans larbre ayant
comme racine le processus init

Exercice 4 :

Ecrire un programme ex4.c permettant dafficher les multiples de 10 <= 20 million. Compiler
ce programme laide de gcc en gnrant lexcutable ex4;

Lancer ce processus et ouvrir un autre onglet sur lequel son PID sera identifi

F. EL BOUANANI
Lancer

108

Chap 6. Les processus


Exercices

Arrter ce processus

Excuter la commande jobs sur le 1er onglet

Ractiver le processus ex4 partir en utilisant deux mthodes (fg 1er onglet et ps
2me onglet)

Arrter une deuxime fois ce processus et lancer le en mode arrire plan en redirigeant sa
sortie vers un fichier reste.txt

F. EL BOUANANI

109

Chap 7. La programmation shell


I- Gnralits
Il existe plusieurs interprteurs de Commande plusieurs langages de programmation shell
Script = fichier = { instructions}
Instruction ={ commande Unix || Affectation || de contrle || dE/S|| script}
Si la 1re ligne du script commence par #!/bin/x, il est interprt par le shell /bin/x.
x = ksh || bash || csh
Commentaire prcd par #
Si le script commence par #, il sera interprt par csh
F. EL BOUANANI

110

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
Script Bourne-shell est portable sur toute machine Linux
Limite de bourne-shell : variables de type entier / tableau nexistent pas
Sauf les variables chanes de caractres qui peuvent tre dfinies
1re ligne du script: #! /bin/sh
Commentaire prcd par #
Excution :
sh nom_script arguments ou

sh x nom_script arguments (tracer lexcution de

chaque instruction)
chmod u+x
F. EL BOUANANI

nom_script

puis

./nom_script arguments
111

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
1. Paramtres positionnels
Paramtre

Signification

$#

Nombre darguments passs au script

$0

Nom du script

$j (j=1..9)

jme argument

${j} (j>9)

jme argument

Exemple

$*

Liste des arguments

Arg= a b c d $1=a, $2=b, $3=c

$@

Liste des arguments

Arg= a b c d $1=a, $2=b c, $3=d

$?

Code derreur de la dernire

=0 ( cde excute avec succs)

commande dans le script


$$
F. EL BOUANANI

PID du shell interprtant le script

Reste Cte pendant la dure dexcution


112

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
2. Dcalage des paramtres

Exemple :

shift [n]

arg = a b c d

N = nombre de dcalage gauche ( par dfaut n=1)

shift
Echo $1 Affiche b

3. Terminer un script avec renvoie dun code


exit code_erreur

Exemple :
Si condition alors

4. Lecture dune variable

exit 1

read variable

sinon
Instruction

5. Afficher la valeur dune variable

exit 0

echo $variable
F. EL BOUANANI

113

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
6. Commande test : Faire des tests (Renvoie vrai 0 ou faux 1 ) sur les :
Chanes de caractres, nombres, Fichiers et rpertoires

Espace

Syntaxe test expression [ expression ]


test sur les chanes de caractres
Expression
-z chane

La chane est de longueur 0

-n chane

La chane nest pas de longueur 0

ch1

F. EL BOUANANI

Vraie si

La chane nest pas vide

ch1 = ch2

chane1 gale chane2

ch1 != ch2

chane1 est diffrente de chane2

ch1 < ch2

chane1 est lexicographiquement avant chane2

ch1 > ch2

chane1 est lexicographiquement aprs chane2


114

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
test sur les fichiers et les rpertoires
Expression

Vraie si

Expression

Vraie si

-e fich

Fichier existe

-d fich

Fich est un rpertoire

-s fich

Fichier nest pas vide

-p fich

Fich est un fichier tube nomm

-f fich

Fich est un fichier ordinaire

-w fich

Fichier accessible en criture

-h fich

Fich est un lien symbolique

-x fich

Fichier possde le droit dexcution

-b fich

Fich est un fichier bloc

-r fich

Fichier accessible en lecture

-c fich

Fich est un fichier caractre

F. EL BOUANANI

115

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
test sur les nombres.

Oprateurs logiques

x et y deux entiers
Expression

Vraie si

oprateurs

Signification

x -eq y

x=y

Not

x -ne y

xy

-a

And

x -lt y

x<y

-o

Or

x -le y

xy

x -gt y

x>y

x -ge y

xy

F. EL BOUANANI

116

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
7.1. Structure de contrle if
Syntaxe 1
if cde1

Syntaxe 2

then

if cde1; then

Cde2

Cde2

elif cde3

elif cde3; then

then

Cde4

Cde4

else

else

Cde5

Cde5

fi

fi

F. EL BOUANANI

117

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
7.2. Structure de contrle case
Syntaxe

Modle = valeur | caractre spcial

case variable in
modle1)
commande1

;;
modle2 | modle3 | modle4) commande2

;;
modle5) commande3

;;

esac

F. EL BOUANANI

Caractre

Signification

spcial
*

0 n caractres

1 caractre

[abc0d]

1 caractre de la liste

[!abc0d]

1 caractre la liste

118

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
7.3. Structure de contrle for
Syntaxe 1

Syntaxe 2

Syntaxe 3

for variable in val1 val2 valn

for var1 in $var2

for var1 in *

do

do

do

commande1

commande1

commande1

done

done

done

Syntaxe 4

Syntaxe 5

Syntaxe 5

for variable in `commande`

for variable

for variable in $*

do

do

do

commande1

commande1

commande1

done

done

done

F. EL BOUANANI

119

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
7.4. Structure de contrle while et until
Syntaxe 1

Boucle infinie

while Cde1

while :

do

do

commande2

commande2

done

done

Syntaxe 2
Until Cde1
do
commande2

done
F. EL BOUANANI

120

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
8. Arithmtique
8.1. commande expr

8.2. commande (( ))

x,y : entier

((expression_arithmtique))

z=`expr $x + $y`

argument na pas besoin dtre spar par espace ou

z=`expr $x - $y`

prfixe par $

z=`expr $x / $y`

pas de protection par \ des caractres spciaux

z=`expr $x \* $y`

Affectation dans la commande

z=`expr $x * $y`: erreur

oprateur : langage C

Exemple :
(( x = $x + 5 )) ((x=$x+5)) ((x=x+5)) ((x+=5))
if (( (x>2) && ($#==3) ))

if [ x gt 2 ] && [ $# -eq 3 ]

Then

then

Commande
F. EL BOUANANI

Commande
121

Chap 7. La programmation shell


Exercices
Exercice 1
Ecrire un script quivalent la commande ls -l|grep -c ^Exercice 2
Ecrire le script tester_type affichant le type de fichier (fichier ordinaire ou rpertoire) pass en
2me argument. Le 1er argument indique le type de chemin (a : absolu; r : relatif)
Exemple

./tester_type a xx xx nexiste pas


./tester_type a xx xx est un rpertoire
./tester_type r xx rpertoire_courant/xx est un fichier
Exercice 3
Ecrire un script qui lit les noms des fichiers et affiche celui ayant la plus grande taille.
F. EL BOUANANI

122

Chap 7. La programmation shell


Exercices
Exercice 3 : corbeille
Crer un rpertoire ~/corbeille
Ecrire un script supprimer qui dplace les fichiers passs en arguments en ~/corbeille.
Si l'option -v est ajoute, la corbeille sera vide.

Exercice 4 : renommer les fichiers

Ecrire un script qui renomme les fichiers jpg d'un rpertoire saisie par l'utilisateur en

image_i.jpg o i=1,2, ...


Rectifier le script de telle sorte que le fichier le plus rcent correspond i=1

F. EL BOUANANI

123

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
9. Dclaration dune Fonction
Nom_fonction() { // utilisation des arguments de la fonction $i
Commande
//val du retour facultative
return valeur

Exemple

Nbre_fich_dans_rep() {

Appel

c=0

Nom_fonction val1 val2

for fich in *
if [ -f $1/$fich ]; then
((c+=1))
fi
done
echo le nbre de fichiers du rp $1 = $c
}

F. EL BOUANANI

124

Chap 7. La programmation shell


Exercices
Exercice 3 : script quivalent "du -sk"
Ecrire un script qui affiche la taille globale d'un rpertoire (somme des tailles des fichiers se
trouvant sur la racine et ceux des sous rpertoires) En utilisant :
un script rcursif,
une fonction rcursive.
Vrifier que vous avez un seul argument et qu'il s'agit bien d'un rpertoire

Exercice 4 : Quotas
Ecrire un script qui affiche pour chaque utilisateur la taille, en ko, de son rpertoire de
connexion. Amliorer le script afin de trier les utilisateurs selon lordre croissant des tailles

F. EL BOUANANI

125

Vous aimerez peut-être aussi