Sie sind auf Seite 1von 153

Systme dexploitation Linux

Pr. Youssef GHANOU

Youssef GHANOU

Introduction

Youssef GHANOU

Historique
Projet du Systme MULTICS (MULTiplexed Information and
Computing Service) vers la fin des annes 60 entre les
laboratoires de BELL et General Electric
Ken THOMSON, chercheur BELL, a dcid dcrire une
version allge de MULTICS en assembleur sur une machine
PDP7
UNIX a t port sur dautres machines PDP1120 PDP1145
PDP1170
Rcrire UNIX dans un langage de haut niveau pour faciliter le portagesur
dautres architectures:Ralisation du Langage B qui a t remplac par la suite
par le langage C

Youssef GHANOU

Historique

Youssef GHANOU

Historique

Youssef GHANOU

Youssef GHANOU

Youssef GHANOU

Architecture gnerale dUnix


Le noyau Unix
Les Shell
Les programmes utilitaires
Shell
Interprteur de
commande
Matriel
Noyau UNIX
(kernel)
Youssef GHANOU

Linux
Proprits

multi-tches
multi-utilisateurs
Libre (et gratuit) !!

Travailler sous Linux implique une connexion au systme


Login:

Identification de lutilisateur: login + mot-de-passeScurit ( login,


mot de passe ), Seuls les utilisateurs ayant un login et un passwd
peuvent se connecter au systme
droits accords par le super-utilisateur (root)

Portabilit

Disponible pour plusieurs plateformes (Station de travail, PC,


Macintosh)

Youssef GHANOU

Linux
Proprits
Modularit
Noyau
Utilitaires

Systme de fichier
Arborescent
Rparti
Rorganisation souple

Traitement uniforme des priphriques


Un priphrique est trait comme un fichier

Youssef GHANOU

10

Linux
Proprits
Outils de communication intgrs
Talk, write, mail

Systme de commandes
Trs riche
Puissant

Plusieurs interprteurs de commandes


Exemples : sh, ksh, csh,
Inter chargeables sans redmarrer la machine

Youssef GHANOU

11

Initiation au shell
Le Shell = interprteur de commandes

interface utilisateur de base (interlocuteur avec le syst.)


interprtation ligne ligne
plusieurs shells: sh, csh, tcsh, bash, ksh, zsh, ...
langage de programmation

shell par dfaut : bash

Youssef GHANOU

12

Initiation au shell - commandes Format des commandes:


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

Respecter la casse
et les espaces!!

Youssef GHANOU

13

Initiation au shell - mta caractres Caractres spciaux:

! ^ * ? [] \ ;
L'astrisque ou toile: *
interprt comme toute suite de caractres alphanumriques
utiliser avec prcaution (commande rm par ex...)

Le point dinterrogation: ?
remplace 1 seul caractre alphanumrique

Youssef GHANOU

14

La gestion des fichiers et des


rpertoires

Youssef GHANOU

15

La gestion des fichiers et des


rpertoires
Stocke les donnes:
Structure arborescente
TOUT est fichier

3 types de fichiers:
fichiers ordinaires
rpertoires
fichiers spciaux (priph., )

Youssef GHANOU

16

La gestion des fichiers et des rpertoires


- larborescence -

Youssef GHANOU

17

Le systme de fichiers - larborescence rpertoire racine

le rpertoire de login: ~
le rpertoire courant: .
le rpertoire suprieur: ..
connatre le rp. courant: pwd
lister le contenu: ls

bin

(voir man ls)

tmp

Staigaire
.cshrc

chemin daccs au fichier tp1.tex:


-/home/Stagiaire/cours/tp1.tex

home

cours

docs

tp1.tex

-ou bien: ~/cours/tp1.ex


Youssef GHANOU

18

La gestion des fichiers et des


rpertoires
Identificateur (nom)
Suite de caractres (jusqu 255 caractres)
Sensible la casse
Utiliser le caractre dchappement \ pour les
caractres spciaux
Exemple prcder le caractre espace par \
Nom\ fichier

Youssef GHANOU

19

La gestion des fichiers et des


rpertoires
Caractres "joker"
Permettent dappliquer une commande un
ensemble de fichiers dont le nom vrifie certaines
contraintes (ex : le nom commence par la lettre
p, lextension est .doc, )
* : remplace nimporte quelle suite de caractre
(y compris la chane vide)
? : remplace un et un seul caractre
*+ : dfinit un intervalle
Youssef GHANOU

20

La gestion des fichiers et des


rpertoires
ls
Affiche le contenu du rpertoire courant ou de celui
pass en paramtre

Options
l : affiche les informations compltes des fichiers
et sous rpertoires
a : affiche les fichiers cachs
R : affichage rcursif
i : affiche le descripteur des fichiers (inumro)
d : n'affiche pas le contenu des rpertoires
Youssef GHANOU

21

La gestion des fichiers et des


rpertoires
pwd
Affiche le chemin du rpertoire courant

cd chemin
Se dplace vers le rpertoire identifi par 'chemin'

Exemples
$ cd /home/dubois/doc
$ cd ../dubois/doc
Youssef GHANOU

22

La gestion des fichiers et des


rpertoires
mkdir (md) nouveau_rep
Cre un nouveau_rep dans
le rpertoire courant
nouveau_rep est le nom du rpertoire
Exemple

$ mkdir stages
Dans le chemin indiqu par la premire partie de
nouveau_rep
Exemple
$ md /home/dupont/stages
$ mkdir ../dupont/stages

Youssef GHANOU

23

La gestion des fichiers et des


rpertoires
rmdir repertoire
Dtruit un rpertoire vide
Exemple
$ rmdir /home/dupont/temp

Youssef GHANOU

24

La gestion des fichiers et des


rpertoires
pwd retourne:
/home/stagaire/cours
se dplacer: cd
[/home/ Stagaire /cours]$ cd ..
[/home/ Stagaire]$

/
tmp

[/home/ Stagaire]$ cd /tmp Test


[/tmp]$

chemin relatif

chemin absolu
.cshrc

home

Stagaire
cours

docs

crer un rpertoire: mkdir


[/tmp]$ mkdir Test
tp1.tex
supprimer un rpertoire: rmdir
rpertoire courant
[/tmp]$ rmdir Test
Youssef GHANOU

25

La gestion des fichiers et des


rpertoires
rm fichier
Dtruit un fichier ou un rpertoire non vide
Options
r : la commande dtruit de manire rcursive toute la
sous arborescence du rpertoire
i : demande la confirmation avant de supprimer le
fichier

Exemple

$ rm r doc
rm i /home/dupont/linux.pdf
Youssef GHANOU

26

La gestion des fichiers et des


rpertoires
cat fichier [fichier,...]
Concatne et affiche sur la sortie standard le(s) fichier(s)
en paramtre
Exemple

$ cat fichier1
cat fichier [fichier,...]
Concatne et affiche sur la sortie standard le(s) fichier(s)
en paramtre

Exemple
$ cat fichier1
$ cat fichier1 fichier2$ cat fichier1 fichier2
Youssef GHANOU

27

La gestion des fichiers et des


rpertoires
more fichier
Affiche le contenu du fichier page par page
Utilise pour les fichiers longs (contenant
plusieurs pages)
Q : quitte la commande
Return : saute de ligne
Espace : saute de page

Exemple
$ more lettre
Youssef GHANOU

28

La gestion des fichiers et des


rpertoires
head *c nchar n nline] fichier
Affiche le dbut du fichier
Par dfaut les dix premires lignes
c nchar : affiche les nchar premiers caractres du fichiers
n nline : affiche les nline premires lignes du fichier

Exemple
$ head lettre
$head c 280 lettre
$ head n 5 lettre
Youssef GHANOU

29

La gestion des fichiers et des


rpertoires
tail */+c nchar /+n nline] fichier
Affiche la fin du fichier
Par dfaut les dix dernires lignes
/+c nchar : affiche les derniers caractres du fichier
+ partir du nchar me caractre jusqu la fin du fichier
Les nchar derniers caractres partir de la fin

/+n nline : affiche les dernires lignes du fichier


+ partir de la nline me jusqu la fin du fichier
Les nline dernires lignes partir de la fin

Exemple

$ tail lettre
$tail n 6 lettre affiche les 6 dernires lignes
$ tail +n 6 lettre affiche de la ligne 6 jusqu la fin du fichier

Youssef GHANOU

30

La gestion des fichiers et des


rpertoires
wc *lwc] fichier
Compte le nombre de
l : lignes
w : mots
c : caractres

du fichier
Par dfaut les trois

Exemple
$ wc lettre
Youssef GHANOU

31

La gestion des fichiers et des


rpertoires
Manipulation des fichiers

copier
:
dplacer/renommer :
effacer :
afficher le contenu :
trier le contenu :

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

Youssef GHANOU

32

La gestion des fichiers et des


rpertoires
ln source lien
Cre un lien physique sur le fichier source
Pas possible pour les rpertoires ou fichiers d'autres SGF

s : le lien est symbolique


Exemple

$ ln lettre lien_lettre
$ ln lettre s lien_symbolique

Youssef GHANOU

33

La gestion des fichiers et des


rpertoires
Commande tar
Permet darchiver un d archiver ensemble de fichiers dans un seul

fichier (dextension .tar)


Facilite lorganisation (moins dencombrement dans le SGF)
Efficace pour envoyer par mail plusieurs fichiers en attachement

Restituer lensemble des fichiers partir du fichier archive

(lopration inverse)
Possibilit de compression et de dcompression de larchive en

appelant la commande "gzip"

Youssef GHANOU

34

La gestion des fichiers et des


rpertoires
Commande tar
Syntaxe

$ tar [options] [fichiers]

Youssef GHANOU

35

La gestion des fichiers et des


rpertoires
Commande tar
Exemples
Crer une archive

$ tar cvf archive_doc.tar /home/ali/doc

Crer une archive et compression

$ tar cvzf archive_doc.tar.gz /home/ali/doc

Lister le contenu dune archive


$ tar tvf archive_doc.tar

Extraire le contenu dune archive


$ tar xvf archive_doc.tar /home/ali/cours
$ tar xvzf archive_doc.tar.gz (extraction dans le rpertoire courant)

Youssef GHANOU

36

La gestion des fichiers et des


rpertoires
rpl chaine 1 chaine 2 < fic1 > fic2
remplace toutes les occurences de chaine1 par chaine2 dans
fic1 et met dans fic2

ex.:
rpl " IT " "Italie" < films.cine > films.tele

Youssef GHANOU

37

La gestion des fichiers et des


rpertoires
rpl chaine 1 chaine 2 < fic1 > fic2
remplace toutes les occurences de chaine1 par chaine2 dans
fic1 et met dans fic2

ex.:
rpl " IT " "Italie" < films.cine > films.tele

Youssef GHANOU

38

Les inodes.

Un fichier contient plusieurs lments : nom, contenu, longueur,


emplacement sur disque, etc.

Ces informations sont contenues dans des inodes.

Linode comporte 3 dates : la date de dernire modification du fichier, la date


de dernire

Affichage des dates :


ls l : date de dernire modification
ls lu : date de dernire modification de linode
ls lc : date de dernier accs du fichier

Les inodes sont les vrais fichiers. La hirarchie des rpertoire ne fait que
donner de faux noms aux fichiers. Le nom de linode est le seul vrai nom
Youssef GHANOU

39

La gestions des Droits

Youssef GHANOU

40

La gestion des droits


Dterminent les types doprations quun utilisateur ou une
classe dutilisateurs peuvent effectues.
Chaque fichier peut avoir ses propres droits daccs
Systme de protection trs puissant

Droits d'accs : Trois groupes d'autorisation,


l'utilisateur propritaire, les personnes
appartenant au groupe propritaire et les
autres.

Youssef GHANOU

41

La gestion des droits


Accs aux fichiers rglement
(sauf: tous les droits pour root)
3 types dutilisateurs:
propritaire (user)
personnes du mm groupe (group)
les autres (others)

3 types de permissions
lecture (r)
criture (w)
excution (x)

afficher le contenu afficher le contenu


modifier

crer/supp fichiers

excuter

traverser

fichier

rpertoire

Youssef GHANOU

42

La gestion des droits


Affichage des caractristiques: ls -l
groupe
-rw-r--r-- 1 lewandowski staff 58K 16 Jul 09:19

nb liens

propritaire

type

taille

date

group

tp1.tex

nom

-rw-r--r-others

user
Youssef GHANOU

43

La gestion des droits


Exemple :

d rwx rwx - - - 139 pagnotte

profess

352 Nov 25 1999 tp

tp est un rpertoire (d)


Son propritaire est pagnotte, du groupe profess
les protections rwx rwx - - - sont interprter selon les indications cidessus

Remarque
Le type du fichier : 'd' pour rpertoire, ' pour
un fichier ordinaire, 'b' ou 'c' pour des fichiers
spciaux (priphriques).

Youssef GHANOU

44

La gestion des droits


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

u : user
g : group
o : others
a : all

op:

= : affectation
- : suppr.
+ : ajout

perm:

r : lecture
w : criture
x : excution

chaque perm = 1 valeur:


r

rien

df. des permissions (par addition)


pour chaque classe

Exemples:
chmod u=rwx,g=rx,o=r tp1.tex
chmod a+x script.sh
chmod 755 script.sh
Youssef GHANOU

45

La gestion des droits


chmod mode fichier
Mode = utilisateurs/permission
Exemple

$chmod u+x fich1


$chmod g-w fich1
$chmod +r fich1
Mode = chiffres
Exemple User Group Other

$ chmod 754 fich1

Youssef GHANOU

46

La commande umask : Modifie le masque des droits de


cration de fichier. Lorsqu'un programme cre un fichier, il
spcifie les droits d'accs. Parmi ceux, certains sont accords,
d'autres refuss, en fonction du masque. Sans argument,
donne la valeur actuelle du masque.
-Syntaxe : $ umask [code]

Youssef GHANOU

47

Exemple

Youssef GHANOU

48

Gestion des Droits


chown nouveau_util fichier: Change le propriaitaire du fichier
Exemple

$ chown dubois fich1


chgrp nouveau_grp fichier : Change le groupe du fichier
Exemple

$ chgrp telecom fich1

Youssef GHANOU

49

Permissions : le super-utilisateur
Afin de permettre l'administration du systme, un
utilisateur spcial, nomm super utilisateur (ou root),
est toujours considr par le systme comme
propritaire de tous les fichiers
La personne qui gre le systme est normalement la
seule connatre son mot de passe. Lui seul peut
ajouter de nouveaux utilisateurs au systme.

Youssef GHANOU

50

who
Affiche les informations sur les utilisateurs
connects

who am i
Affiche les informations de l'utilisateur courant

whoami
Affiche le login de l'utilisateur courant

id
Affiche l'UID et le GID de l'utilisateur courant
Youssef GHANOU

51

Les mcanismes de redirection et


de tube

Youssef GHANOU

52

Les entres et les sorties


Il y a trois sortes d'entres sorties ou flux de donnes :
le premier est l'entre standard, c'est dire ce que vous saisissez au
clavier,
le deuxime est la sortie standard, c'est dire l'cran, plus prcisment
le shell,
et le troisime est la sortie standard des messages d'erreurs conscutifs
une commande, qui est gnralement l'cran.

Chacun de ces flux de donnes est identifi par un numro


descripteur, 0 pour l'entre standard, 1 pour la sortie standard
et 2 pour la sortie standard des messages d'erreur.

Youssef GHANOU

53

Les fichiers standard et la redirections


d E/S
Redirection de la sortie standard:
Remarque:
Pour viter dcraser le contenu dun fichier suite une
redirection de la sortie, on peut utiliser la redirection
avec ajout. Dans ce cas le rsultat de la commande sera
insr la fin du fichier.

Syntaxe: $ Commande >> fichier.


Exemple: $ date >> connect

Youssef GHANOU

54

Les fichiers standard et la redirections


d E/S
Redirection de lEntre standard:
Un fichier peut servir comme entre standard une
commande :
Le fichier source contient les arguments de la commande.
Syntaxe : $ Commande < fichier_source
Exemple :
$ wc -l < connect
Permet de compter le nombre de lignes dans le fichier connect.

Youssef GHANOU

55

Les fichiers standard et la redirections


d E/S
Redirection de la sortie erreur standard :
Chaque programme est dot dun canal de sortie derreur
spar dont le descripteur de fichier gal 2.
Exemple: $ cc programme.c 2>erreurs.
Les erreurs de compilation du fichier programme.c seront
rediriges vers le fichier erreurs.
On peut utiliser galement le fichier /dev/null pour la
redirection de la sortie erreur.

Youssef GHANOU

56

Les mcanismes de redirection et de


tube
Redirection des E/S
> : la sortie standard est redirige vers un fichier (ecrasement
de son contenu s'il existe dj)
< : les entres de la commande proviennent d'un fichier
>> : la sortie standard est insre la fin d'un fichier
2> : la sortie d'erreur est redirige vers un fichier
2>> : la sortie d'erreur est insre la fin d'un fichier

Youssef GHANOU

57

Les tubes de communication


Dfinition:
Lier les entres et les sorties de plusieurs commandes dans
une mme ligne de commande.

Syntaxe: $ Commande1 | Commande2


Le rsultat de la commande1 sera considr comme
argument pour la commande2.
|: indique un tube.

Youssef GHANOU

58

Les tubes de communication


Exemple:
$ who | wc - l
$who : liste de personnes connects au systme.
$wc -l nom_fichier :Compte le nombre de lignes de
nom_fichier.

Youssef GHANOU

59

Les tubes de communication


La commande tee :

tee [-a] filename l'affichage de la sortie


standard est en mme temps dirig sur
filename. L'option -a signifie >>
Syntaxe:
$ commande1 | tee fichier1 | commande2

Redirige le rsultat intermdiaire de commande1 vers


fichier1. Ce mme rsultat sera trait par la commande
commande2.

Youssef GHANOU

60

Les tubes de communication


La commande tee:
Exemple:
$ ls

| grep pome | tee fichier1 |

wc -l.

1: Liste des fichiers dans le rpertoire courant


2: Recherche des noms de fichiers qui contiennent la chane de
caractres pome.
3: Met le rsultat de la commande prcdente dans fichier1
4: compte le nombre de lignes ramens par grep.

Youssef GHANOU

61

Les Filtres

Youssef GHANOU

62

Les Filtres
Les commandes ayant la proprit la fois de
lire sur leur entre standard et d'crire sur leur
sortie standard sont appeles des filtres. Les
commandes cat, wc, sort, grep, cut, tail, head,
tr, . sont des filtres

Youssef GHANOU

63

La commande grep

Permet de rechercher un certain motif dans un fichier.


Le motif est dcrit par une expression rgulire.

grep [option] motif fichier Affiche les lignes de fichier qui


contiennent le motif motif.

-l: naffiche que le nom des fichiers.

Exemple:

grep define stdio.h: recherche le mot "define" dans le fichier stdio.h.


grep hello *: recherche le mot "hello" dans tous les fichiers du rpertoire.

Youssef GHANOU

64

La commande sort
sort [options] [+n1 -n2] filename1 [-o filename2]
trie, selon l'ordre lexicographique du code, les lignes
de filename1, affiche le rsultat ou le redirige sur
filename2.

Youssef GHANOU

65

Options de la commande sort


-b on ignore les espaces de tte
-d seuls les chiffres, lettres et espaces sont significatifs
dans les comparaisons,
-f majuscules et minuscules sont confondues,
-i les caractres dont le code ASCII est extrieur
l'intervalle [32,126] sont ignors dans les comparaisons,
-n les dbuts de lignes numriques sont tris
numriquement,
-tc dfinit comme c le sparateur de champs au lieu de
TAB
Youssef GHANOU

66

La commande cut
Cette commande extrait des colonnes (option -c) ou
des champs (option -f ) des lignes dun fichier ou de
lentre standard. Dans le cas de loption -f, il est
possible de lui spcifier le dlimiteur chercher en
utilisant loption -d. Le dlimiteur par dfaut est la
tabulation

Youssef GHANOU

67

Exemple

Youssef GHANOU

68

La commande tr
tr string1 string2 l'entre standard est copie sur la
sortie standard, mais un caractre ayant une
occurence dans string1 est remplac par le caractre
de mme rang dans string2. Avec l'option -d, les
caractres en entre, prsents dans string1, sont
supprims en sortie.

Youssef GHANOU

69

Les outils

Youssef GHANOU

70

La commande find
Permet de chercher dans un rpertoire et ses sousrpertoires des fichiers prsentant certaines
caractristiques.
Syntaxe:
find chemin expression
Principales options:

-name fich: recherche le fichier fich.


-print: crit le nom du fichier.
-type: d: rpertoire, f: fichier symbolique.
-exec: permet lexcution dune commande sur le fichier reprsent par
{}.

Youssef GHANOU

71

Exemple avec find


Rechercher tous les fichiers nomms hello.txt partir
du rpertoire racine.
find / -name hello.txt -print.
Afficher tous les fichiers .h partir du rpertoire
courant.
find . -name *.h -print
Affiche lcran le contenu de tous les fichiers .c.
find . -name *.c -exec cat {} \;

Youssef GHANOU

72

La comparaison de fichiers
La commande diff donne les modifications
apporter au premier fichier spcifi pour qu'il
ait le mme contenu que le second.
Par exemple :
diff pass.tmp /etc/passwd affichera les
modifications apporter au fichier pass.tmp
pour qu'il ait le mme contenu que le fichier
/etc/passwd.

Youssef GHANOU

73

La comparaison de fichiers
touch fichier : Modifie la date de dernire modification
du fichier, celleci devient gale la date laquelle la
commande a t excute. Si le fichier n'existe pas, il sera
cr (et de taille nulle) sauf si l'option c est utilise.

Youssef GHANOU

74

La comparaison de fichiers
La commande cmp
cmp nom_fichier1 nom_fichier2: donne le n
de l'octet et de la ligne o se produit la
premire diffrence entre nom_fichier1 et
nom_fichier.

Youssef GHANOU

75

Expressions rgulires

Youssef GHANOU

76

Expressions rgulires
Motif ou pattern
Formulation des critres didentification de chane de
caractres

Le motif peut tre


Simple : une suite de caractres
Exemple : "shell"
Exprim par des caractres spciaux appels
mtacaractres :
^ $ | * ...

Analogie avec les astrisques *,? du dos


*.exe : dsigne tous les fichiers ayant lextension .exe

Combinaison des deux


Youssef GHANOU

77

Expressions rgulires
Objectifs
Identifier la (les) chane(s) de caractres
rpondant un certain nombre de critres
Excuter des commandes sommaires Une
commande peut remplacer plusieurs commandes

Youssef GHANOU

78

Expressions rgulires
Principales Fonctionnalits
Vrification de lexistence dune squence de
caractres dans une ligne
Remplacement dune squence par une chane de
caractre
Suppression dune squence de caractres
Extraction dune squence de caractres

Youssef GHANOU

79

Principaux mtacaractres

Youssef GHANOU

80

Principaux mtacaractres

Youssef GHANOU

81

Expressions rgulires
Mtacaractres
Ces caractres ont une signification
particulire et par consquent ne peuvent
tre utiliss directement pour une recherche
les concernant. Ils doivent donc tre prcds
par le caractre dchappement \.
Exemple
script\.sh
Youssef GHANOU

82

Expressions rgulires
Mta-caractres
. : Remplace nimporte quel caractre
*+ : Regroupe lensemble ou lintervalle de valeurs que
peut prendre un caractre
Exemples

*ACGT+ : lun des quatre caractres


[a-z+ : nimporte quelle lettre minuscule
[a-zA-Z+ : nimporte quelle lettre
[0-9+ : nimporte quel chiffre

* : Exprime la rptition dun caractre ou dun motif


Exemples
A* : chane vide ou contenant plusieurs A (A, AA, AAA, )
[a-z]* : squence de caractres minuscules
[1-9][0-9]* : entier nature
Youssef GHANOU

83

Expressions rgulires
Mta-caractres
^
Dbut de ligne
Exemples
^[A-Z] : La ligne commence par une lettre majuscule
^Bonjour : la ligne commence par Bonjour

Ngation : entre []
Exemples
[^a-z+ : nest pas un caractre minuscule

$
Fin de ligne
Exemples
[0-9]$ : la ligne se termine par un chiffre
(valide)$ : la ligne se termine par le mot valide
\.$ : la ligne se termine par .

Youssef GHANOU

84

Expressions rgulires
Mta-caractres
Caractres spciaux usuels

Youssef GHANOU

85

Expressions rgulires
Mta-caractres
Motifs prdfinis

Youssef GHANOU

86

Lditeurs de texte vi

Youssef GHANOU

87

Introduction
LINUX permet de distinguer les "visualisateurs " de
fichiers (afficheur de contenu pour la consultation), des
diteurs de fichiers en texte brut (pour la modification
sans mise en page), des formateurs de texte qui
permettent de mettre en forme un texte, des filtres et des
traitements de texte qui sont plus sophistiqus.
Il existe de nombreux diteurs de texte: ed
joe
vi (visual)
vim (vi improve)
pico
emacs (editor macros)
Youssef GHANOU

88

L'diteur "vi" est le premier diteur "plein cran"


d'UNIX. "vi" est rapide mais difficile. L'diteur "vi"
fonctionne dans plusieurs "modes". La version
amliore pour LINUX " vim" facilite son
apprentissage.

Youssef GHANOU

89

Pour ouvrir un fichier existant ou le crer:


vi premier.txt
Pour passer en mode insertion:
Saisir "i" Active le mode insertion
Saisir "a" Active le mode insertion mais un caractre
aprs le curseur
Pour revenir au mode "commande":
ECHAP

Youssef GHANOU

90

Pour quitter "vi" sans enregistrer:


Saisir ":q! "
Pour quitter "vi" en enregistrant:
Saisir "ZZ"
ECHAP + ":wq!"
Pour afficher l'aide en ligne:
:help

Youssef GHANOU

91

Sauvegarde d'un fichier / Sortie de vi


:w Sauvegarde le fichier
:e! Ignore les changements et recharge le
fichier
:q! Force vi se terminer
:w fichier Sauvegarde le fichier sous le nom
"fichier"

Youssef GHANOU

92

Voir dautres commandes au TP

Youssef GHANOU

93

Dplacements dans vi
[CTRL]f Descend d'un cran
[CTRL]b Remonte d'un cran
[CTRL]d Descent d'1/2 cran
[CTRL]u Remonte d'1/2 cran
:xxx
Va la ligne xxx

Youssef GHANOU

94

Ractualisation de l'cran
[CTRL]l Ractualise l'cran
Positionnement du curseur
H En haut de l'cran
M Au milieu de l'cran

Youssef GHANOU

95

L
h
j
k
l
O
$
w
e
b

En bas de l'cran
Dcale d'un caractre gauche
Descend d'une ligne
Monte d'une ligne
Dcale d'un caractre droite
Au dbut de la ligne
la fin de la ligne
Au dbut du mot suivant
la fin du mot suivant
Recule d'un mot
Youssef GHANOU

96

Insertion d'un texte


I Insre au dbut de la ligne
A Insre la fin de la ligne
[ESC] Termine le mode insertion

Youssef GHANOU

97

Insertion et remplacement d'un texte


r* Remplace le caractre la position du curseur
par *
R Remplace tous les caractres jusqu' la fin de
la ligne ([ESC] pour terminer)
cw Remplace uniquement le mot la position
du curseur ([ESC] pour terminer)
cnw Remplace n mots ([ESC] pour terminer)
C Change le reste de la ligne ([ESC] pour
terminer)
Youssef GHANOU

98

Suppression d'un texte


x Supprime un caractre
dw Supprime un mot
dnw Supprime n mots
dd Supprime une ligne
ndd Supprime n lignes
Copier/Coller
Y Copie une ligne
nY Copie n lignes
P Colle les lignes avant le curseur
p Colle les lignes aprs le curseur
Youssef GHANOU

99

Copier/Coller du texte dans un autre fichier


ma Marque la position "a" dans le fichier
mb Marque la position "b" dans le fichier
:'a,'b fichier Copie le texte de la position "a"
la position "b" dans le fichier "fichier"
Insertion du texte d'un autre fichier
:r fichier Insre tout le contenu du fichier
"fichier"
Youssef GHANOU

100

Rechercher/Remplacer du texte
/chaine Recherche le texte "chaine" vers le bas
?chaine Recherche le texte "chaine" vers le haut
n
Rpte la dernire recherche
N
Inverse la recherche prcdente
:g/expr1/s//expr2/g Recherche dans tous le fichier
l'expression 1 et la remplace par l'expression 2
:x,y s/expr1/expr2/g Recherche de la ligne x la ligne y
l'expression 1 et la remplace par l'expression 2

Youssef GHANOU

101

Annuler/Rpter les modifications


u Annule la dernire modification
U Annule toutes les modifications effectues
sur la ligne courante
. Rpte les dernires modifications

Youssef GHANOU

102

gestion des processus

Youssef GHANOU

103

gestion des processus : contrle de la cration,


de la terminaison, de la synchronisation, du
partage de temps (ordonnancement), de la
communication entre processus,
Les processus: Un processus est un programme
qui s'excute, ainsi que ses donnes, sa pile, son
compteur ordinal, son pointeur de pile et les
autres contenus de registres ncessaires son
excution.
Youssef GHANOU

104

Le noyau maintient une table, appele table


des processus , pour grer l'ensemble des
processus (ici P1, ..., P5, ...).
Cette table, interne au noyau, contient la liste
de tous les processus avec des informations
concernant chaque processus. C'est un
tableau de structure proc (<sys/proc.h>).

Youssef GHANOU

105

Le nombre des emplacements dans cette table des


processus est limit pour chaque systme et pour
chaque utilisateur.

Youssef GHANOU

106

Le noyau alloue pour chaque processus une structure


appele zone u (<sys/user.h>), qui contient des
donnes prives du processus, uniquement
manipulables par le noyau.
Seule la zone u du processus courant est
manipulable par le noyau, les autres sont inaccessibles.
L'adresse de la zone u d'un processus est place
dans son mot d'tat.
Le noyau dispose donc d'un tableau de structures (
proc.h ) dans la table des processus et d'un ensemble
de structures ( user.h ), une par processus, pour
piloter les processus.
Youssef GHANOU

107

Le contexte d'un processus est l'ensemble des donnes


qui permettent de reprendre l'excution d'un
processus qui a t interrompu:
son tat (lu, prt, bloqu, ...)
son mot d'tat : en particulier
la valeur des registres actifs
le compteur ordinal

les valeurs des variables globales statiques ou dynamiques


son entre dans la table des processus
sa zone u
les piles user et system
les zones de code (texte) et de donnes
Youssef GHANOU

108

Prt

Etats dun processus

- Le processus est prt pour lexcution. Il dtient toutes les ressources,


sauf le CPU.
- Plusieurs processus peuvent tre ltat prt.

Actif
- Dtient la ressource CPU.
- Le processus volue.
- Nombre de processus actifs infrieur ou gal au nombre processeurs.

Bloqu
- Le processus est bloqu sur une demande de ressource : E/S, mmoire
centrale, etc.

Youssef GHANOU

109

Etats dun processus

Youssef GHANOU

110

L'excution d'un processus se fait dans son


contexte.

Youssef GHANOU

111

Parmi les informations propres chaque


processus, qui sont contenues dans les structures
systme ( proc.h et user.h ) , on trouve :
un numro d'identification unique appel PID (Process
Identifier), ainsi que celui de son pre appel PPID
le numro d'identification de l'utilisateur qui a lanc
ce processus, appel UID (User IDentifier), et le
numro du groupe auquel appartient cet utilisateur,
appel GID (Group IDentifier) ;
le rpertoire courant ;
les fichiers ouverts par ce processus ;
le masque de cration de fichier, appel umask ;
Youssef GHANOU

112

la taille maximale des fichiers que ce processus


peut crer, appele ulimit ;
la priorit ;
les temps d'excution ;
le terminal de contrle, c'estdire le terminal
partir duquel la commande a t lance.

Youssef GHANOU

113

Certaines des caractristiques de l'environnement


peuvent tre consultes par
diverses commandes. Nous connaissons dj :
pwd affiche le chemin du rpertoire courant
tty affiche le terminal de contrle
umask affiche le masque de cration de fichier
id consulte l'UID et le GID.
Exemple:
$ id
uid=106(c1) gid=104(cours)
$
Youssef GHANOU

114

Cration de processus
Pour chaque commande lance (sauf les
commandes internes), le shell cre
automatiquement un nouveau processus.
Il y a donc 2 processus. Le premier, appel
processus pre, excute le programme shell, et
le deuxime, appel processus fils, excute la
commande.
Le fils hrite de tout l'environnement du pre,
sauf bien sr du PID, du PPID et des temps
d'excution.
Youssef GHANOU

115

Pour visualiser les processus que vous avez lanc,


tapez la commande ps :
La commande ps
Affiche les informations des processus actifs
Options
l : affiche les informations compltes des processus
x : affiche tous les processus actifs (d'autres
utilisateurs)
u : affiche les processus d'un utilisateur donn

Exemple
$ ps l
$ ps u dupont
Youssef GHANOU

116

Exemple:
$ ps
PID TTY TIME
527 ttyp 4 1:70
536 ttyp 4 0:30
559 ttyp 4 0:00
$

COMMAND
ksh
cmd1
ps

Youssef GHANOU

117

PID identifie le processus,


TTY est le numro du terminal associ,
TIME est le temps cumul d'excution du
processus,
COMMAND est le nom du fichier
correspondant au programme excut par le
processus.
Youssef GHANOU

118

Il existe bien d'autres commandes pour grer


les processus, comme par exemple la
commande top .
top : cette commande affiche les processus
qui consomment le plus de ressources
systmes. Dans les premires lignes, elle
affiche des informations globales sur le
systme (charge, mmoire, nombre de
processus, ...).
Youssef GHANOU

119

Lorsqu'un processus se termine, il retourne


toujours une valeur significative ou statut.
Par convention, lorsqu'un processus se
termine correctement, il retourne la valeur 0,
sinon il retourne une valeur diffrente de 0
(gnralement 1). Ce choix permet de
ramener des codes significatifs pour
diffrencier les erreurs.
Youssef GHANOU

120

Le statut d'une commande shell est plac dans


la pseudo variable spciale, nomme ? . On
peut consulter sa valeur en tapant la
commande :
$ echo $?

Youssef GHANOU

121

Le shell

Youssef GHANOU

122

Le shell (littralement coquille autour du noyau d'UNIX) est


l'interprteur de commandes d'UNIX. Tout la fois :
- il excute en mode interactif les commandes mises par
l'utilisateur,
- il propose un langage de programmation interprt
permettant de gnrer de nouvelles commandes ou procdures
catalogues ("scripts shell"), C tant le langage le plus adapt pour
construire les nouvelles commandes que le shell ne peut traduire.
Le shell ne fait pas partie du noyau d'UNIX et n'est pas rsident en
mmoire principale. Ainsi, on peut disposer facilement de plusieurs
interprteurs de commandes : Bourne-shell, C-shell, Korn-shell, ...

Youssef GHANOU

123

Bourne shell
Bourne shell la syntaxe des commandes
est proche de celle des premiers UNIX (
/bin/sh ).
Il existe plusieurs interprteurs de
commandes. Historiquement, le premier a t
crit par S. R. Bourne. Il est donc souvent
nomm Bourne Shell.

Youssef GHANOU

124

Les variables
leur nom : une suite de caractres lettres, chiffres
exemple:
a=paul
chemin=/users/eleves/m-durand99
leur valeur : $a ou ${a} dsigne la valeur de la variable a et ${a}c dsigne la valeur
de a suivie de c.
exemple:
a=paul
b=chou
echo $a $b
On utilise trois caractres gnriques :
* toute sous-chane, mme vide,
? tout caractre,
[...] tous les caractres d'un intervalle.
Toute fin de ligne commenant par # est un commentaire

Youssef GHANOU

125

mtacaractres : < * ? | & , \ ont un sens


spcial.

ex:
a="bijou * caillou "
b=chou ; c=caillou ; r="$a $b";echo $r

Prcds de \, les mtacaractres perdent leur


signification particulire

Youssef GHANOU

126

ex.:
echo \* ; echo \\
echo abc\*\*\*d
les dlimiteurs de chanes :
dans une chane dlimite par des " , les caractres $,
\, ', ` sont des caractres spciaux.
dans une telle chane, un caractre doit tre prcd
de \
dans une chane dlimite par des ' , tous les
caractres perdent leur aspect spcial

Youssef GHANOU

127

Proprits des variables


Identificateur
Nom compos de caractres
Certains caractres sont interdits ($,#,...)

Types
Numrique
Chane de caractres

Accs au contenu
Prcder l'identificateur par le caractre $
Youssef GHANOU

128

Variables d'environnement

SHELL : le shell utilis


USER : nom de l'utilisateur
UID : identificateur de l'utilisateur
PATH : chemin des rpertoires contenant les
fichiers excutables
HOME : chemin du rpertoire d'accueil
PWD : chemin du rpertoire courant
HOSTNAME : nom de la machine
Youssef GHANOU

129

Lecture
Lecture (read)
read permet de lire une ou plusieurs variables partir
de lentre Standard
Syntaxe
read var1 *var2, +
Si plusieurs variables la fois, le contenu saisi sera
rparti sur les variables, dans lordre, avec espace
comme sparateur.
Exemples
read a
read n a
Youssef GHANOU

130

Affectation
Affectation : =
Syntaxe
Ident_variable = <expression>
Exemples
n=10
Nom=Mohamed

Youssef GHANOU

131

Les structures de contrle


Les structures de contrle permettent de
transformer une simple procdure en un
programme qui pourra comparer, tester ...

Youssef GHANOU

132

La structure for
Cette structure de contrle permet dexcuter
un ensemble de mmes commandes avec un
ensemble dlments.
for nom [ in liste ... ]
do
commandes
done

Youssef GHANOU

133

nom est le nom dune variable, qui prendra


successivement la valeur de chaque mot de la
liste exhaustive fournie aprs in. Lexcution
se termine lorsquil ny a plus dlment dans
la liste.

Youssef GHANOU

134

La structure if
Cette construction peut tre utilise comme
instruction de branchement gnrale. Il sagit
dun aiguillage.
if commandes1
Then commandes2
else commandes3
fi

Youssef GHANOU

135

La commande1 est value. Si elle est vraie


(code de retour nul), commande2 est value
son tour (et commande3 ne le sera pas) et
si elle est fausse (code de retour non nul),
commande3 est value (commande2 ne
ltant pas). La partie else de cette instruction
est optionnelle.

Youssef GHANOU

136

La structure case
Cette structure de contrle permet de
slectionner des actions suivant la valeur de
certains mots. La structure case ne peut que
comparer des chanes de caractres.
case chane in
motif1) commande1 ;;
motif2) commande2 ;;
...
motifn) commanden ;;
esac
Youssef GHANOU

137

Les diffrents motifi sont des expressions


reconnues par le mcanisme dexpansion des
noms de fichiers. De plus, le caractre "|",
lorsquil est utilis dans un motif, permet
lunion des deux expressions entre lesquelles il
est plac.
Linterprteur recherche le plus petit entier i
infrieur n tel que chane rponde au motifi. Il
excute alors la commandei (et elle seule). Il est
courant dutiliser * comme dernier motif (cas par
dfaut) dun aiguillage.
Youssef GHANOU

138

La structure de contrle while (itration non


borne) est certainement la structure que lon
retrouve le plus dans tous les langages de
programmation
while commandes1
do commandes2
done

Youssef GHANOU

139

Dans le cas du while, tant que le statut de


commandes1 est vrai, commandes2 est
excute. commandes1 peut tre forme dun
ensemble de commandes enchanes par des
pipes (|).

Youssef GHANOU

140

until commandes1
do commandes2
Done
La structure de contrle until nest rien
dautre que le test inverse du while. On
pourrait traduire le while par "tant que" et le
until par "jusqu ce que".

Youssef GHANOU

141

Commande expr
Commande expr : Permet dexcuter les
oprations arithmtiques de base
syntaxe
`expr var1 op var2`
op : +,,*,/,%
Exemple
n=$(expr $a + $b)
Youssef GHANOU

142

e1 + e2 retourne le rsultat de l'addition


e1 - e2 retourne le rsultat de la soustraction
e1 * e2 retourne le rsultat de la
multiplication
e1 / e2 retourne le rsultat de la division
e1 % e2 retourne le rsultat du modulo

Youssef GHANOU

143

e1 | e2 si e1 est gale 0 retourne e2 sinon retourne


e1
e1 & e2 si ni e1 ni e2 ne sont gales 0 retourne e1
e1 < e2 retourne 1 si e1 est plus petit que e2 sinon 0
e1 <= e2 retourne 1 si e1 est plus petit ou gal e2
sinon 0
e1 = e2 retourne 1 si e1 est gal e2 sinon 0
e1 != e2 retourne 1 si e1 est diffrent de e2 sinon 0
e1 > e2 retourne 1 si e1 est sprieur e2 sinon 0
e1 >= e2 retourne 1 si e1 est suprieur ou gale e2
sinon 0
Youssef GHANOU

144

Exemple
a=3
b=$(expr $a + 5)
La variable "b" va rcuprer le rsultat du
calcul effectu entre parenthses, c'est--dire
"8". La variable "a" est inchange.

Youssef GHANOU

145

Imbrication de if/else
Syntaxe :
if condition1
then
liste_commandes1
elif condition2
then
liste_commandes2
else
liste_commandes3
fi
Youssef GHANOU

146

test expression ou [ expression ]


test value expression et retourne le rsultat
de cette valuation. test appel sans
argument retourne faux.
Vous devez utiliser une des deux syntaxes,
mais pas les deux en mme temps ! Il ne faut
pas non plus oublier de mettre les caractres
sparateurs (blanc, tabulation ...) entre les
caractres [ et ].
Youssef GHANOU

147

Test sur des fichiers et rpertoires


test -w fichier:vrai si fichier existe et est autoris en
criture.
test -r fichier vrai si fichier existe et est autoris en
lecture.
test -x fichier vrai si fichier existe et est xcutable.
test -d fichier vrai si fichier existe et est un rpertoire
test -f fichier vrai si fichier existe et n'est pas un
rpertoire.
test -s fichier vrai si fichier existe et a une taille non
nulle.
Youssef GHANOU

148

Test sur des chanes


test -z s1: vrai si la chane s1 est vide (a une
longueur de 0 caractre).
test -n s1 : vrai si la chane s1 est non vide.
test s1 = s2 :vrai si les chanes s1 et s2 sont
identiques.
test s1 != s2 :vrai si les chanes s1 et s2 sont
diffrentes.
test s1 : vrai si la chane s1 n'est pas la chane
nulle.
Youssef GHANOU

149

Test sur des nombres


test n1 -eq n2 : vrai si l'entier n1 est gal l'entier n2.
test n1 -ne n2: vrai si l'entier n1 est diffrent de
l'entier n2.
test n1 -gt n2 : vrai si l'entier n1 est suprieur
l'entier n2.
test n1 -lt n2: vrai si l'entier n1 est infrieur l'entier
n2.
test n1 -ge n2: vrai si l'entier n1 est suprieur ou gal
l'entier n2.
test n1 -le n2 :vrai si l'entier n1 est infrieur ou gal
l'entier n2.
Youssef GHANOU

150

On peut combiner toutes ces primitives avec


les oprateurs :
! ngation
-a ET logique
-o OU logique
( expression ) pour regrouper logiquement
plusieurs tests.

Youssef GHANOU

151

exec
exec ralise des redirections d'E/S
exec 1 > std.out
# redirige la sortie
standard vers le fichier std.out
exec < fic
# redirige l'entre standard
sur le fichier fic.......
exec < /dev/tty
# rtablit l'entre
standard

Youssef GHANOU

152

variables prdfinies gres automatiquement


par le shell :
$# nombre de paramtres d'une commande,
ceux-ci tant dsigns par $1 $9 ($0 le nom de
la commande elle-mme).
$* la liste des paramtres $1 $2 ...
$$ le numro du processus en cours (trs utile
dans la suite)
$! le n du dernier processus lanc en arrire
plan
Youssef GHANOU

153

Das könnte Ihnen auch gefallen