Vous êtes sur la page 1sur 131

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)
2

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: Allocation de mmoire aux programmes et donnes; Gestion des processus : ration, suppression, ordonnancement, synchronisation ...; C Gestion des priphriques : Pilotes contrlleur et pilote priphrique ; Gestion des fichiers : Localisation dans larborescence, Protection, Quotas, Gestion des ressources : partager les ressources quitablement entre les processus; Gestion des permissions et privilges ;
F. EL BOUANANI 3

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)
4

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)
5

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 6

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)
8

F. EL BOUANANI

Chap 1. Prsentation dUnix


2. Interprteur de commande (Shell)
Lutilisateur communique indirectement avec le noyau via le Shell
Utilisateur Application Noyau Matriel Shell

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
9

F. EL BOUANANI

Chap 1. Prsentation dUnix


2. Interprteur de commande (Shell)
Shell permet de : Dfinir lenvironnement de travail : par excution de /etc/environment et/etc/profile (commun tous les utilisateurs) et .profile (spcifique chaque utilisateur) -

Editer les scripts de Shell ;


Dfinir des alias de commande : nouvelles commandes partir de commandes existantes; manipuler lhistorique de commandes : history [c]; complter les noms de Fichiers et commandes
10

F. EL BOUANANI

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) Plus robuste que sh. Korn Shell (ksh) Bash : combine sh et csh : Shell par dfaut dans les anciens unix : Syntaxe similaire au langage C

(B. Again sh) :Shell de base pour Linux


11

F. EL BOUANANI

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. ii.

libert d'excution : tout le monde a le droit de lancer le programme, quel qu'en soit le but ; 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 :

en anglais free

= gratuit et libert

F. EL BOUANANI

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. Ouverture/fermeture de session
Changer lutilisateur su [utilisateur] change l'utilisateur courant. On doit saisir le mot de passe du nouvel utilisateur sauf si le compte d'origine est le root. Si lutilisateur nest pas mentionn, su switch vers root (switch user)

F. EL BOUANANI

21

Chap 2. Premier contact avec Unix


IV. 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

22

Chap 2. Premier contact avec Unix


V- 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

23

Chap 2. Premier contact avec Unix


V- 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
24

Chap 2. Premier contact avec Unix


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

fich[!0-9] fich[!a-z]?

$ ls ?[!.]*.[ch]
F. EL BOUANANI

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

Chap 2. Premier contact avec Unix


VI- 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 Afficher la commande associe un alias alias afficher
F. EL BOUANANI

C shell Ksh, sh

(affiche la valeur)
26

Chap 2. Premier contact avec Unix


VII- Les commandes les plus utilises
Commande cp mv pwd cd mkdir rmdir man rm cat chmod grep df du
F. EL BOUANANI

Fonction Copier un fichier (CoPy) Renommer ou dplacer un fichier (MoVe) Affiche le rpertoire courant (Print Working DIRectory) Change le rpertoire courant (Change DIRectory) Cree un rpertoire (MaKe DIRectory) Efface un rpertoire vide (ReMove DIRectory) Affiche le manuel dune commande (Manual) Effacer les fichiers (ReMove) Affiche le contenu dun fichier (conCATenate) Change le mode de permissions (Change MODe) Cherche les mots dans les fichiers Affiche ltat du systme de fichier (Disk File) Affiche lallocation en espace des fich. (Disk Utilization)
27

Chap 2. Premier contact avec Unix


Exercice
Excuter les commandes suivantes et commenter : cal 2011 uname a logname who whoami who am i id time date date +Le %d/%m/%y%n a %H heures %M minutes %S secondes cal 10 2011 ls -l leave 1550 clear man man

F. EL BOUANANI

28

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 cachs qui finissent par profile 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 29

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

30

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.

F. EL BOUANANI

31

Chap 3. Systme de fichiers


/bin 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.

/dev : contient les fichiers spciaux permettant de communiquer avec tous les
priphriques comme les disques, les terminaux, les drouleurs de bandes, les imprimantes, etc.

/etc : contient tous les fichiers d'administration et un certain nombre de commandes systme. /home : contient les rpertoires personnels des utilisateurs du systme.
F. EL BOUANANI 32

Chap 3. Systme de fichiers


/root : cest le rpertoire personnel de l'administrateur. /usr : contient un certain nombre de sous-rpertoires. Chacun contient les fichiers ncessaires au
fonctionnement en mode normal du systme. /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 dveloppement /usr/include contient les fichiers de dclaration des fonctions systme pour le dvelop.

/var : contient les fichiers variables (susceptibles d'tre modifis frquemment)


journaux (logs), e-mails, bases de donnes, archives,
F. EL BOUANANI 33

Chap 3. Systme de fichiers


/

bin

home

usr

etc

Etudiant2

Etudiant1

Etudiant3

Rapports

Rapports

Prive

Unix

Analyse_numerique

tp1.txt

tp2.txt

F. EL BOUANANI

34

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 Rpertoire courant = /home Rprtoire courant = /

Rapports/Unix/tp1.txt Etudiant1Rapports/Unix/tp1.txt home/Etudiant1Rapports/Unix/tp1.txt

F. EL BOUANANI

35

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. loption -p permet de crer une suite de rpertoires. Exemple : # mkdir /home/Etudiant1/Transmission_donnees # mkdir -p r1/r2 : Si r1 nexiste pas cration de r1 et r2 la fois
F. EL BOUANANI 36

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 "." le rpertoire ".." le rpertoire "~" = rpertoire courant, = rpertoire pre, = rpertoire personnel.

Exemple

# cd .. # cd ../../.. # cd ~/.
F. EL BOUANANI

: remonte d'une branche dans l'arborescence ; : contenu trois niveaux au dessus dans l'arborescence : se dplace vers ?
37

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 38

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


39

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers
cat (conCATenate) Exemple : cat /etc/passwd cat fich1 fich2 fich3 cat n fichier cat > essai Bonjour comment vas-tu ? <Ctrl-d> tac
F. EL BOUANANI

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

: affiche le contenu du fichier texte /etc/passwd : affiche sur lcran la concatnation des 3 fichiers : numrote les lignes du fichier affich : cre un fichier essai contenant le texte

(caractre de fin de saisie)

: Concatne et affiche les fichiers dans l'ordre inverse.


40

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers
paste [-d sp] fich1 fich 2 : concatne horizontalement les deux fichiers en sparant les lignes par sp. Exemple : Fichier Matieres Fichier notes

Unix Base de donnes


paste -d : Matiers notes

13 12

Unix:13 Base de donnes:12

F. EL BOUANANI

41

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers
more fich Espace <Entre> : Afficher le contenu du fichier fich page par page : Affichage page par page : Affichage ligne par ligne

less fich

: similaire more avec possibilit de revenir en arrire ou de rechercher une chane de texte dans fich

head fich

: Affiche les 10 premires lignes du fichier

tail fich

: Affiche les 10 dernires lignes du fichier

F. EL BOUANANI

42

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers
touch fich1 fich2 : permet de crer des fichiers vides file fich1 fich2 ... : dterminer le(s) type(s) d'un(des) fichier.(s) slocate chaine : affiche la liste des fichiers contenant chaine dans leur chemin absolu. diff fich1 fich2 : compare deux fichiers textes. Une liste de diffrence est affiche lcran comm fich1 fich2 cmp fich1 fich2 : Rechercher les lignes identiques entre deux fichiers textes : comparer deux fichiers binaires et affiche rlinformation sur le premier caractre qui diffre les deux fichiers (sil existe)
F. EL BOUANANI 43

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers
cp [-iblprv] rpertoire cp [option] fich1 fich2 rpertoire : copier des fichiers dans un rpertoire fichier_source fichier_destination : copier un fichier ou un

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. 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;

F. EL BOUANANI

44

Chap 3. Systme de fichiers


II- Commandes de manipulation de fichiers
b : 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; l : permet de faire un lien dur entre le fichier source et sa copie. Le fichier copi et sa copie partageront physiquement le mme espace; p : permet lors de la copie de prserver toutes les informations concernant le fichier comme le propritaire, le groupe, la date de cration; r v : 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 45

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 46

Chap 3. Systme de fichiers


III- Stockage de fichiers
Types de fichiers Type Code d l b c n p
47

standard rpertoire lien symbolique fichier spcial mode bloc fichier spcial mode caractre fichier spcial mode rseau pipe nomm
F. EL BOUANANI

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

48

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 Cration : ln [-sid] fichier_source fichier_lien. : fait rfrence un espace sur le disque dur.

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 49

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 50

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 51

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 52

Chap 3. Systme de fichiers


VI- Montage
Montage Dmontage : La commande mount : 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

53

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 54

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 55

Chap 3. Systme de fichiers


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

fich11

fich12

rep2

rep3

Vrifiez la cration.

fich21

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 ? Exercice 5 Dcouper en fichers de 10 octets un fichier (utiliser la commande split)
F. EL BOUANANI 56

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 57

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 58

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 59

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 chmod 567 essai
F. EL BOUANANI

111 110 101

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


60
60

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 chmod u-w g+r test : supprime le droit dcriture au propritaire sur le fichier test test : ajoute le droit de lecture pour le groupe sur le fichier test

chmod ug=x test : accs uniquement en excution pour le propriataire et le groupe


F. EL BOUANANI 61

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 62

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

63

Chap 4. Protection des fichiers


III- Droits daccs aux rpertoires
Affichage des informations dun rpertoire : # ls Exemple : # ls -dl bin -dl rep

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 64

Chap 4. Protection des fichiers


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

fich1 -rwx --- --drwx --- ---

seul lutilisateur toto pourra supprimer et modifier son fichier fich1


toto( nom rep)

fich1 -rwx --- --dr-x --- ---

appartient lutilisateur toto)

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 65

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 66

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 67

Chap 4. Protection des fichiers


Exercices
Exercice 1
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
Commande 1 Commande 2 Commande 3 Commande 4
F. EL BOUANANI

groupe
Accs oui non oui oui

les autres
Lecture Ecriture Accs non non oui non non non non non oui oui non non
68

Lecture Ecriture Accs Lecture Ecriture oui oui non non oui non oui non oui oui non oui oui non non oui non oui non non

Chap 4. Protection des fichiers


Exercices
Exercice 2
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.

Exercice 3
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 69

Chap 4. Protection des fichiers


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

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

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

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

Chap 4. Protection des fichiers


Exercices
Exercice 8
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

71

Chap 4. Protection des fichiers


Exercices
Exercice 9
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 ?

Exercice 10
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

72

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>
> fich2
F. EL BOUANANI

cp fich1 fich2
73

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 74

Chap 5. Redirection dE/S


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

Entre standard Sortie standard Sortie derreurs standard

: par dfaut le clavier, : par dfaut lcran, : par dfaut lcran.

Clavier Entre standard

Processus

1 0 2

Sortie standard

Ecran

Erreur standard

F. EL BOUANANI

75

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 76

Chap 5. Redirection dE/S


III- Redirection des E/S
1- Redirection en C-shell < fe > fs : dfinition de fe comme fichier dentre standard ; : redirection de la sortie standard vers le fichier fs (possibilit dcrasement) ; >> fs >& f : sortie standard ajoute en fin du fichier fs ; : 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 77

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 78

Chap 5. Redirection dE/S


III- Redirection des E/S
2- Redirection en bourne shell et en korn shell < fe > fs : dfinition de fe comme fichier dentre standard ; : redirection de la sortie standard vers le fichier fs (possibilit dcrasement) ; >> fs 2> ferr 2>> ferr : sortie standard ajoute en fin du fichier fs ; : redirection de la sortie derreurs standard vers ferr : sortie derreurs standard est ajoute au fichier ferr

commande > fs 2> ferr : sortie fs et erreurs ferr


F. EL BOUANANI 79

Chap 5. Redirection dE/S


III- Redirection des E/S
3- La commande cat et les redirections a) Lecture au clavier et criture sur cran : Exemple : # cat Bonjour Mr <ctrl-d> b) Copie dun fichier (possibilit dcrasement) : Exemple : # 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 80

ou cat <f1 >f2

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 EOT
F. EL BOUANANI 81

de ligne de la chaine EOT

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

1 0 2
Erreur standard

1 2

0 Processus 1n P 2

Sortie standard

Erreur standard

Erreur standard

P1 | P2 |

|Pn

Utiliser n-1 fichiers temporaires


P1 > temp1 P2 < temp1 > temp2 Pn < tempn-1
F. EL BOUANANI 82

et

rm temp*

Chap 5. Redirection dE/S


IV- Tubes de communication
Exemples :
# ls | wc w Affiche le nombre de fichiers dans le rpertoire courant # ls l | more Affichage page par page du contenu du rpertoire courant
En utilisant un fichier temporaire.

# ls l > temp1; \<return> more temp1 ; rm temp1 : Solution longue!

F. EL BOUANANI

83

Chap 5. Redirection dE/S


IV- Tubes de communication
# ls l | moredate | tee f1 f2 | wc l tee crit la date sur les deux fichiers, ainsi sur la sortie standard passe wc -l cat f1 : Mardi 3 October 2011, 16:07:49 cat f2 : Mardi 3 October 2011, 16:07:49 Rqs : - 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

84

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.

n b k num r t sp o fs

: le critre de tri est une valeur numrique : le critre de tri est une valeur alphanumrique : trier par rapport la colonne num ( par dfaut num=1) : tri dcroissant : prciser le caractre de sparation (par dfaut espace) : le rsultat du tri est sauvegard sur le fichier fs
85

F. EL BOUANANI

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 86

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 87

Chap 5. Redirection dE/S


V- expression rgulire
Caractre spcial ^ $ . [liste_caractre] [^liste_caractre] * ^$ \{n\} \{n,\} \{m,n\} Signification

Dbut dune ligne Fin dune ligne


Caractre quelconque Caractre dans la liste Caractre nappartenant pas la liste 0 plusieurs fois le caractre Chane vide n fois le caractre prcdent Au moins n fois le caractre prcdent Entre m et n fois le caractre prcdent

F. EL BOUANANI

88

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 grep F . fichier : recherche les lignes contenant au mois 2 caract. : 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 89

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
90

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 91

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])
92

Chap 5. Redirection dE/S


VI- Filtres programmables
Variable prdfinie RS FS ORS OFS $0 NF $i (i=1..NF) NR
F. EL BOUANANI

Signification

Sparateur de lignes (par dfaut \n) Sparateur de champs (par dfaut espace ou tab) Sparateur de lignes pour la sortie Sparateur de champs pour la sortie
Valeur de la ligne courante Nombre de champs de lenregistrement courant Le ime champ Indice de lenregitrement courant
93

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

94

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 95

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 96

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 97

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

/proc

Type de processus : utilisateur et systme (cr au lancement du systme ou une date programme)

F. EL BOUANANI

98

Chap 6. Les processus


II- Attributs
Attributs dun processus - PID - PPID - UID - GID - CMD - TTY -S : Identifiant du processus : Identifiant du processus pre : Identifiant de lutilisateur : Identifiant du groupe : Commande nom du programme : terminal ayant lanc le processus : 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 -C - NI : Dure cumule : % dutilisation du CPU : Priorit entre -19 et 20
99

F. EL BOUANANI

Chap 6. Les processus


II- Attributs
ps [-eAufFlr]: Affiche les processus lancs actuellement sur la session - e/A -a - u user - f/F/l -r : Affiche tous les processus (utilisateur et systme) : Affiche tous les processus utilisateur : Affiche les processus dun utilisateur identifi par son nom : plus dinfos sur le processus : Affiche les processus en cours dexcution

Exemple : # ps al
F 4 1 1 S UID PID PPID 0 S 0 1 2 0 S 0 2 S 0 3 6682 6668 8752 6682 C 0 0 0 0 0 PRI 80 75 -40 80 80 NI 0 -5 0 0 ADDR SZ 711 0 0 1080 537 WCHAN TTY ? ? ? pts/0 TIME 00:00:01 00:00:00 00:00:00 00:00:00 CMD init kthreadd migration/0 bash

...
0 R 1000

...
0 R 1000
F. EL BOUANANI

pts/0 00:00:00

ps
100

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 101

Chap 6. Les processus


II- Attributs - priorit
Exemple # ps el
F S UID PID PPID 0 R 1000 0 R 1000 6682 6668 8752 6682 C 0 0 PRI 80 80 NI 0 0 ADDR SZ 1080 537 WCHAN TTY pts/0 TIME 00:00:00 CMD bash

pts/0 00:00:00

ps

sudo nice bash puis ps -ef


PID 6682 8752 8760 PPID 6668 6682 8752 NI 0 10 10 CMD bash PID 6682 8752 8790 8812

sudo nice bash puis ps -ef


PPID 6668 6682 8752 8790 NI 0 10 19 19 CMD bash

bash
ps

bash bash
ps

F. EL BOUANANI

102

Chap 6. Les processus


II- Attributs - priorit
sudo nice n-25 bash puis ps -ef
PID 6682 8752 8790 8928 8948 PPID 6668 6682 8752 8790 8928 NI 0 10 19 -6 -6 CMD bash

sudo nice n+5 bash puis ps -ef


PID 6682 8752 8790 8928 8979 8993 PPID 6668 6682 8752 8790 8928 8978 NI 0 10 19 -6 -1 -1 CMD bash

bash bash
bash ps

bash bash
bash bash ps

F. EL BOUANANI

103

Chap 6. Les processus


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

Signal
TERM KILL STOP CONT Exemple # kill 8752

num_signal
15 9

Signification
Terminer le processus (si pas de fils) Terminer le processus et ses fils (signal non bloqu) Arrter un processus en cours dexcution. Sinon, pas deffet Relancer un processus arrt. Sinon, pas deffet

: Aucun effet (bash a 4 fils) : Tuer ce processus pid= 10200 Fermer le terminal

# kill -9 8752 kill -KILL 8752 # find / -name test # kill STOP 10200 # kill CONT 10200
F. EL BOUANANI

104

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
F. EL BOUANANI

Rediriger le rsultat pour viter la confusion


105

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 Rediriger le rsultat vers un fichier de sortie en utilisant la commande nohup cde_backgroud [> fichier_resultat] rsultat perdu

Par dfaut, le fichier rsultat=nohup.out Exemple nohup ls l & nohup ls l & liste_de_fichiers

F. EL BOUANANI

106

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
Background (en excution)

fg %num_job
Foreground (en excution)

bg %num_job Ctrl-Z/kill -STOP

fg %num_job Ctrl-Z/kill -STOP

Arrt

kill %num_job
Termin F. EL BOUANANI 107

Chap 6. Les processus


VI- Planification dune tche
Programmation unique : at Programmation priodique : cron at instant Cde1 Cde2 Ctrl-D atq : Affiche les jobs programms par at : Lancer les commandes un instant donn

atrm num_job : Supprime un job programm par at


F. EL BOUANANI 108

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 1 # atrm 1


F. EL BOUANANI 109

Date_lancement_job Fri Dec 10 14:00:00

nom_utilisateur ensias

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 110

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 minute (0-59)

Champ2

Champ3

Champ4

Champ5

Champ6

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

jour_semaine (0-6) Cde__excuter 0=dimanche


111

* : valeur quelconque:
F. EL BOUANANI

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 112

Chap 6. Les processus


Exercices
Exercice 1 : Que donne le crontab dans ce cas 45 0,30 30 1 1 10 * 2 1 */2 * * 1-5 command command (cd /home/user/ensias1 ; make) find /tmp -atime +5 -exec rm -f {} ;

13 * 5 * * * * 1 * * * *

rm fichier

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

Chap 6. Les processus


Exercices
Exercice 3 : Excuter la commande top et commenter 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 114

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 fg 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

115

Chap 7. La programmation shell


I- Gnralits
Il existe plusieurs interprteurs de Commande 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 116

plusieurs langages de programmation shell

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
117

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
1. Paramtres positionnels Paramtre $# $0 $j (j=1..9) ${j} (j>9) $* $@ $? Signification Exemple

Nombre darguments passs au script Nom du script jme argument jme argument Liste des arguments Liste des arguments Code derreur de la dernire commande dans le script Arg= a b c d Arg= a b c d $1=a, $2=b, $3=c $1=a, $2=b c, $3=d

=0 ( cde excute avec succs)

$$
F. EL BOUANANI

PID du shell interprtant le script

Reste Cte pendant la dure dexcution


118

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
2. Dcalage des paramtres shift [n] N = nombre de dcalage gauche ( par dfaut n=1) Exemple : arg = a b c d shift Echo $1 3. Terminer un script avec renvoie dun code exit code_erreur 4. Lecture dune variable read variable 5. Afficher la valeur dune variable echo $variable
F. EL BOUANANI 119

Affiche b

Exemple : Si condition alors exit 1 sinon Instruction exit 0

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 Syntaxe test expression [ expression ] test sur les chanes de caractres Expression -z chane -n chane ch1 ch1 = ch2 ch1 != ch2 ch1 < ch2 ch1 > ch2
F. EL BOUANANI

Espace

Vraie si

La chane est de longueur 0 La chane nest pas de longueur 0 La chane nest pas vide chane1 gale chane2 chane1 est diffrente de chane2 chane1 est lexicographiquement avant chane2 chane1 est lexicographiquement aprs chane2
120

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
test sur les fichiers et les rpertoires Expression -e fich -s fich -f fich -h fich -b fich -c fich Vraie si Expression -d fich -p fich -w fich -x fich -r fich Vraie si

Fichier existe Fichier nest pas vide Fich est un fichier ordinaire Fich est un lien symbolique Fich est un fichier bloc Fich est un fichier caractre

Fich est un rpertoire Fich est un fichier tube nomm Fichier accessible en criture Fichier possde le droit dexcution Fichier accessible en lecture

F. EL BOUANANI

121

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
test sur les nombres. x et y deux entiers Expression x -eq y x -ne y x -lt y x -le y x -gt y x -ge y Vraie si oprateurs ! -a -o Signification Oprateurs logiques

x=y xy x<y xy x>y xy

Not And Or

F. EL BOUANANI

122

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
7.1. Structure de contrle if
Syntaxe 1 if cde1 then Cde2 elif cde3 then Cde4 else Cde5 fi Syntaxe 2 if cde1; then Cde2 elif cde3; then Cde4 else Cde5 fi

F. EL BOUANANI

123

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
7.2. Structure de contrle case
Syntaxe case variable in modle1) commande1 ;; modle2 | modle3 | modle4) commande2 ;; modle5) commande3 ;; esac
Modle = valeur | caractre spcial

Caractre spcial * ? [abc0d] [!abc0d]

Signification

0 n caractres 1 caractre 1 caractre de la liste 1 caractre la liste

F. EL BOUANANI

124

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
7.3. Structure de contrle for
Syntaxe 1 for variable in val1 val2 valn do commande1 done Syntaxe 4 for variable in `commande` do commande1 done
F. EL BOUANANI

Syntaxe 2 for var1 in $var2 do commande1 done Syntaxe 5 for variable do commande1 done

Syntaxe 3 for var1 in * do commande1 done Syntaxe 5 for variable in $* do commande1 done
125

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
7.4. Structure de contrle while et until
Syntaxe 1 while Cde1 do commande2 done Syntaxe 2 Until Cde1 do commande2 done
F. EL BOUANANI 126

Boucle infinie while : do commande2 done

Chap 7. La programmation shell


II- Programmation en bourne-shell(sh)
8. Arithmtique
8.1. commande expr x,y : entier z=`expr $x + $y` z=`expr $x - $y` z=`expr $x / $y` z=`expr $x \* $y` z=`expr $x * $y`: erreur Exemple : (( x = $x + 5 )) ((x=$x+5)) ((x=x+5)) ((x+=5)) if (( (x>2) && ($#==3) )) Then Commande
F. EL BOUANANI

8.2. commande (( )) ((expression_arithmtique)) argument na pas besoin dtre spar par espace ou prfixe par $ pas de protection par \ des caractres spciaux Affectation dans la commande oprateur : langage C

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


127

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 ./tester_type a xx ./tester_type r xx


Exercice 3

xx nexiste pas xx est un rpertoire rpertoire_courant/xx est un fichier

Ecrire un script qui lit les noms des fichiers et affiche celui ayant la plus grande taille.
F. EL BOUANANI 128

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

129

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 } Appel Nom_fonction val1 val2
Exemple Nbre_fich_dans_rep() { c=0 for fich in * if [ -f $1/$fich ]; then ((c+=1)) fi done echo le nbre de fichiers du rp $1 = $c }
F. EL BOUANANI 130

Chap 7. La programmation shell


Exercices
Exercice 5 : 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 6 : 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 131