Académique Documents
Professionnel Documents
Culture Documents
F. EL BOUANANI
ENSIAS 2010
Plan
Prsentation dUnix
Le systme de fichiers
F. EL BOUANANI
Le SE assure :
F. EL BOUANANI
F. EL BOUANANI
F. EL BOUANANI
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
F. EL BOUANANI
Noyau (Kernel)
F. EL BOUANANI
F. EL BOUANANI
Shell
Noyau
Matriel
Unix est cach dans une Coquille (nest visible qu travers le Shell)
F. EL BOUANANI
F. EL BOUANANI
10
Bash
F. ELBOUANANI
: combine sh et csh
: par dfaut
11
12
F. EL BOUANANI
13
... un savoir scientifique doit tre partag en le distribuant, ... les codes
sources doivent tre libres d'accs ...
Cre la FSF (Free Software Fundation, 1985) pour grer le projet GNU.
14
libert d'excution : tout le monde a le droit de lancer le programme, quel qu'en soit le but ;
ii.
iii.
iv- libert damlioration : tout le monde a le droit de redistribuer une version modifie du
programme ;
F. EL BOUANANI
15
Requiert aussi que tout driv d'un travail plac sous sa protection soit lui aussi protg
par elle ;
Quand la GPL voque les logiciels libres, elle traite de libert et non de gratuit (un logiciel
GPL peut tre vendu) ;
Remarque :
F. EL BOUANANI
en anglais free
= gratuit et libert
16
Distribution linux
un noyau Linux
un programme d'installation du SE
F. EL BOUANANI
17
18
Compte Utilisateur, identifi par login et mot de passe, sont crs par ladministrateur
du systme (root = superutilisateur) : adduser
F. EL BOUANANI
19
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
F. EL BOUANANI
21
F. EL BOUANANI
22
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
F. EL BOUANANI
[ ]
[!]
: plage inverse
23
$ ls -l
$ ls
fich[0-9]
$ ls
fich[!0-9]
$ ls
fich[a-z]?
$ ls
fich[!a-z]?
$ ls ?[!.]*.[ch]
F. EL BOUANANI
fich?
$ ls ?[!.]*.[c-h]
24
C shell
shell Korn, Bourne
alias afficher
F. EL BOUANANI
(affiche la valeur)
25
Fonction
cp
mv
pwd
cd
mkdir
rmdir
man
rm
cat
chmod
grep
df
du
F. EL BOUANANI
26
uname a
logname
who
whoami
who am i
time
date
cal 2010
ls -l
clear
leave 1550
man man
F. EL BOUANANI
27
2.
Afficher tous les fichiers qui finissent par .conf dans votre rpertoire courant
3.
Afficher tous les fichiers dont le nom commence par xx dans votre rpertoire courant et ses
sous rpertoires
F. EL BOUANANI
28
rpertoires sont reprsents par les branches, et les fichiers par les feuilles;
Le
Chaque fichier (ou rpertoire) dans larbre est nomm en listant toutes les branches
qui ramnent vers la racine, et en les sparant par des /, comme suit:
/home/ensias/TP_Unix/rapports/tp1.txt
F. EL BOUANANI
29
bin
boot
dev
etc
home
lib
mnt
proc
sbin
sys
tmp
usr
var
Rpertoire root (/) : C'est le haut de l'arborescence. Il n'y a qu'une et une seule entre sur
le systme de fichiers. Le rpertoire root est le seul rpertoire sans pre. Tous les fichiers
et chemins d'accs absolus ont le rpertoire root dans le chemin d'accs.
et /sbin : contiennent les commandes de base Unix (ls, cp, rm, mv, ln,
etc.) utilises entre autres lors du dmarrage du systme. Les fichiers contenus dans ces
rpertoires ne sont que des excutables.
/bin
F. EL BOUANANI
30
systme.
/home : contient les
/usr
dveloppement ;
F. EL BOUANANI
31
bin
home
Etudiant2
Etudiant1
Rapports
Rapports
Unix
tp1.txt
F. EL BOUANANI
usr
etc
Etudiant3
Prive
Analyse_numerique
tp2.txt
32
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) :
Rapports/Unix/tp1.txt
Etudiant1Rapports/Unix/tp1.txt
Rprtoire courant = /
home/Etudiant1Rapports/Unix/tp1.txt
F. EL BOUANANI
33
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.
F. EL BOUANANI
34
= rpertoire courant,
le rpertoire ".."
= rpertoire pre,
le rpertoire "~"
= rpertoire personnel.
Exemple
# cd ..
# cd ../../..
# cd ~/.
: se dplace vers ?
F. EL BOUANANI
35
Un rpertoire ne peut tre effac avec rmdir que sil est vide (pas de fichiers y compris
les fichiers cachs)
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
36
F. EL BOUANANI
cat (conCATenate)
cat /etc/passwd
cat n fichier
Bonjour
comment vas-tu ? <Ctrl-d>
more fich
Espace
<Entre>
head
tail
F. EL BOUANANI
38
diff
lcran
: compare deux fichiers binaires et affiche linformation sur le
cmp
cp [-iblprv]
rpertoire
cp [option]
fich1 fich2
si on effectue une copie d'un fichier sur un fichier qui existe dj, celui-ci sera cras (si
on a le droit) et remplac par le nouveau fichier.
F. EL BOUANANI
39
: avertit l'utilisateur de l'existence d'un fichier du mme nom et lui demande s'il peut ou
non remplacer son contenu;
: assure que la copie n'crase pas un fichier existant : le fichier cras est sauvegard.
Seul le nom du fichier d'origine est modifi et cp ajoute ~ la fin du nom du fichier;
: permet de faire un lien dur entre le fichier source et sa copie. Le fichier copi et sa
copie partageront physiquement le mme espace;
: permet d'afficher le nom des fichiers copis. Utile si par exemple pour vrifier la copie
plusieurs fichiers ( l'aide des occurrences "*" et/ou "?").
F. EL BOUANANI
40
Un numro i-node est simplement une rfrence sur un i-node dans la table des i-nodes
ls -i : affiche les numros des i-node
F. EL BOUANANI
41
F. EL BOUANANI
Code
standard
rpertoire
lien symbolique
pipe nomm
42
79 bytes
eleve1
users
rw-rw-rBlock 86764
4574
966 bytes
eleve2
facturation
rw-r--r
Block 90000
86764
Hello. My name is Moha. I work in the
marketing department. I am 32 years old,
Blocks
F. EL BOUANANI
43
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 dur
Cration :
ln [-sid] fichier_source
fichier_lien.
i : demande l'utilisateur s'il souhaite craser le fichier qui a un lien sur le fichier
source au cas ou celui-ci existerait dj
d : effectue des liens durs sur des rpertoires . Seuls les utilisateurs possdant
les droits adquats pourront le faire
F. EL BOUANANI
44
Exemple :
wich ls affiche /bin/ls
grep [-nl] chane fich1 fich2
grep n Unix fich : recherche dans le fichier fich, la ligne et son numro,
45
-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
46
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 "/")
On peut monter:
Disquettes,
Cls USB,
Disques rseaux.
Chaque systme de fichier doit tre mont sur un sous rpertoire vide
F. EL BOUANANI
47
Montage
: La commande mount
Dmontage
: La commande umount
Lespace disque utilis par nimporte quel rpertoire peut tre afficher par la
commande du (disk usage)
F. EL BOUANANI
48
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
49
rmdir a/b
rm a/b/fich0 ?
rmdir p d/e/f
ls -l
mkdir p a/b/c/d
cd a/b
pwd
cd ~/a/b/c
pwd
cd
touch a/b/c/d/fich
rm r a
F. EL BOUANANI
50
fich11
Vrifiez la cration.
fich12
fich21
rep3
rep2
fich22
fich3
1
fich32
Exercice 3
Comment dplacer toute larborescence rep3 sous le rpertoire rep2 ? Supprimez tout sauf
rep1, fich11 et fich12.
Exercice 4
A laide de la commande id, dterminez votre UID et votre groupe (nom de groupe et GID).
Combien y a t-il dutilisateurs dans votre quipe ?
F. EL BOUANANI
51
Exercice 6
Listez tous les fichiers :
se terminant par 5
commenant par annee1
commenant par annee1 et de 7 lettres maximum
commenant par annee avec aucun chiffre numrique
contenant la chane ana
commenant par a ou A
F. EL BOUANANI
52
53
protection) :
exple : -rw- r-x r-- (- : fich ordinaire, rw- :droits propritaire, r-x :
droits groupe, r-- :droits autres utilisateurs)
F. EL BOUANANI
54
rwx rw- r-x est reprsent par le nombre octal : 765 111 110 101
F. EL BOUANANI
55
chmod
u-w
chmod
g+r
F. EL BOUANANI
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 ;
Exemple :
# umask 022
57
umask
022 permet de dfinir la protection des fichiers rpertoires : rwx r-x r-x
est
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
F. EL BOUANANI
58
-dl
rep
Exemple :
# ls
-dl
bin
59
fich1
-rwx --- ---
appartient
lutilisateur
toto)
fich1
-rwx --- ---
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
60
61
Remarques :
Ladministrateur peut accder tous les fichiers il peut modifier les droits daccs ;
F. EL BOUANANI
62
Propritaire
Droit en
groupe
les autres
Accs
Lecture Ecriture
Accs
Commande 1
oui
oui
oui
oui
non
oui
non
non
oui
Commande 2
oui
non
oui
non
oui
non
non
non
oui
Commande 3
non
oui
non
non
non
oui
oui
non
non
Commande 4
non
non
oui
oui
non
oui
non
non
non
F. EL BOUANANI
63
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.
64
Crez un fichier que vous pouvez lire et supprimer mais que vous ne pouvez pas modifier.
Crez un fichier que vous pouvez lire mais que vous ne pouvez ni modifier ni supprimer .
Dans quel cas les permissions dun fichier sa cration sont-elles diffrentes des permissions
fixes par umask ?
F. EL BOUANANI
65
Supposons que vous travaillez avec un collgue appartenant au mme groupe que vous.
1. Modifiez les permissions du fichier cr lexercice Bienvenue de telle faon que votre
collgue puisse le lire et lexcuter, mais ne puisse pas le modifier ni le supprimer.
2. Pouvez-vous modifier les permissions de ce fichier de telle sorte que votre collgue puisse le
lire, le modifier et lexcuter alors que vous-mme ne pouvez pas le modifier.
F. EL BOUANANI
66
Comment savoir trs simplement si votre systme suit la logique BSD ou System V en ce qui
concerne le GID des fichiers la cration ?
F. EL BOUANANI
67
68
&&
||
Exemple :
# cd rep && rm *
Suppression des fichiers si la commande cd rep a t correctement excute
# cd rep || mkdir rep
Si le rpertoire rep nexiste pas il sera cr par mkdir
F. EL BOUANANI
69
Entre standard
Sortie standard
Clavier
Processus
Entre standard
Sortie standard
Ecran
0
2
Erreur standard
F. EL BOUANANI
70
71
< fe
> fs
>> fs
>& f
>>& f
(commande > fs) >& fer : redirige la sortie standard vers fs et la sortie derreurs
vers fer ;
F. EL BOUANANI
72
73
< fe
> fs
>> fs
2> ferr
2>> ferr
74
F. EL BOUANANI
75
EOT
F. EL BOUANANI
76
Processus P2
0
2
0
1Pn
Processus
Erreur standard
P1 | P2 |
Sortie standard
Erreur standard
Erreur standard
|Pn
et
rm temp*
Pn < tempn-1
F. EL BOUANANI
77
# ls
| wc w
Affiche le nombre de fichiers dans le rpertoire courant
# ls l | more
Affichage page par page du contenu du rpertoire courant
# ls l > temp1; \<return>
Rqs :
F. EL BOUANANI
78
: filtre de tri.
k num
: tri dcroissant
t sp
o fs
F. EL BOUANANI
79
Affiche les deux derniers GID (ex. 509 et 65534 (utilisateur nfsnobody)
sort -k 4n -t: /etc/passwd|cut d: -f4 | tail n 2| head n 1
sort k 2n k 1b fichier
Affiche ?
F. EL BOUANANI
80
81
Signification
Caractre quelconque
[liste_caractre]
[^liste_caractre]
*
^$
\{n\}
\{n,\}
\{m,n\}
F. EL BOUANANI
82
grep F . fichier
83
condition1 ||condition2
condition
F. EL BOUANANI
85
F. EL BOUANANI
(tableau[indice])
86
Signification
RS
FS
ORS
OFS
$0
NF
$i (i=1..NF)
NR
F. EL BOUANANI
Le ime champ
Indice de lenregitrement courant
87
fichier et rp = %d\n,t}
F. EL BOUANANI
88
mont sur " $2;trouve=1}} END {if (!trouve) {print "pas de rep de
montage"}} /etc/fstab
F. EL BOUANANI
89
Refaire 2. en tenant compte que plusieurs tudiants peuvent avoir la premire note
(pensez un tableau)
F. EL BOUANANI
90
91
pid_t fork()
(man fork)
/proc
programme)
F. EL BOUANANI
92
- PID
: Identifiant du processus
- PPID
- UID
: Identifiant de lutilisateur
- GID
: Identifiant du groupe
- CMD
- TTY
-S
: Etat du processus
S : Endormie (Attend la fin de ses fils)
R : En cours dexcution
Z : processus termin mais le pre nest pas en attente
T : Arrt (peut tre ractiver)
-TIME
: Dure cumule
-C
: % dutilisation du CPU
- NI
F. EL BOUANANI
93
-a
- u user
- f/F/l
-r
Exemple : # ps al
F
4
1
1
C
0
0
0
PRI
80
75
-40
NI
0
-5
-
ADDR
-
SZ
711
0
0
WCHAN TTY
?
?
?
TIME
00:00:01
00:00:00
00:00:00
6682 6668
80
1080
pts/0
8752 6682
80
537
pts/0 00:00:00
CMD
init
kthreadd
migration/0
...
0 R 1000
00:00:00
bash
...
0 R 1000
F. EL BOUANANI
ps
94
(x= entier)
x : Affecter la priorit x au processus (x est choisi dans lintervalle -20 (haute) a 19 (faible). La
95
PRI
NI
ADDR
SZ
WCHAN TTY
TIME
CMD
00:00:00
bash
0 R 1000
6682 6668
80
1080
pts/0
0 R 1000
8752 6682
80
537
pts/0 00:00:00
PPID
NI
6682
6668
8752
6682
10
8760
8752
10
F. EL BOUANANI
ps
PPID
NI
6682
6668
bash
8752
6682
10
bash
ps
8790
8752
19
bash
8812
8790
19
ps
CMD
bash
CMD
bash
96
PPID
NI
6682
6668
bash
8752
6682
10
bash
19
bash
8790
8752
19
bash
8790
-6
bash
8928
8790
-6
bash
8928
-6
ps
8979
8928
-1
bash
8993
8978
-1
ps
PID
PPID
NI
6682
6668
8752
6682
10
8790
8752
8928
8948
F. EL BOUANANI
CMD
bash
CMD
bash
97
Signal
num _signal
Signification
TERM
15
KILL
STOP
CONT
Exemple
# kill 8752
pid= 10200
98
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
F. EL BOUANANI
99
F. EL BOUANANI
100
fg %num_job
bg %num_job
fg %num_job
Ctrl-Z/kill -STOP
Ctrl-Z/kill -STOP
Arrt
kill %num_job
Termin
F. EL BOUANANI
101
Cde1
Cde2
Ctrl-D
atq
102
f0 f1 > f2
>Ctrl-D
# atq
N_job
Date_lancement_job
nom_utilisateur
ensias
# atrm 1
F. EL BOUANANI
103
/var/spool/cron/cron.deny
Utilisation dun fichier indiquant la tche faire et sa priode
F. EL BOUANANI
104
Champ1
Champ2
minute (0-59)
* : valeur quelconque:
F. EL BOUANANI
Champ3
Champ4
Champ5
Champ6
16 14 * * * cp f ff
#crontab f
#cat /var/spool/cron/crontabs/root
. 16 14 * * * cp f ff
106
10
* 1-5
command
0,30
13 * 5
command
30
* 1
* *
find
*/2
* *
rm fichier
Exercice 2 :
Programmer une planification permettant dcrire chaque jour 14h dans le fichier sortie le
rsultat de ps -el
F. EL BOUANANI
107
Donner la commande qui permet dafficher le nombre de fils dune tche identifie par son
PID
Donner la commande permettant de savoir le niveau dun processus dans larbre ayant
comme racine le processus init
Exercice 4 :
Ecrire un programme ex4.c permettant dafficher les multiples de 10 <= 20 million. Compiler
ce programme laide de gcc en gnrant lexcutable ex4;
Lancer ce processus et ouvrir un autre onglet sur lequel son PID sera identifi
F. EL BOUANANI
Lancer
108
Arrter ce processus
Ractiver le processus ex4 partir en utilisant deux mthodes (fg 1er onglet et ps
2me onglet)
Arrter une deuxime fois ce processus et lancer le en mode arrire plan en redirigeant sa
sortie vers un fichier reste.txt
F. EL BOUANANI
109
110
chaque instruction)
chmod u+x
F. EL BOUANANI
nom_script
puis
./nom_script arguments
111
Signification
$#
$0
Nom du script
$j (j=1..9)
jme argument
${j} (j>9)
jme argument
Exemple
$*
$@
$?
Exemple :
shift [n]
arg = a b c d
shift
Echo $1 Affiche b
Exemple :
Si condition alors
exit 1
read variable
sinon
Instruction
exit 0
echo $variable
F. EL BOUANANI
113
Espace
-n chane
ch1
F. EL BOUANANI
Vraie si
ch1 = ch2
ch1 != ch2
Vraie si
Expression
Vraie si
-e fich
Fichier existe
-d fich
-s fich
-p fich
-f fich
-w fich
-h fich
-x fich
-b fich
-r fich
-c fich
F. EL BOUANANI
115
Oprateurs logiques
x et y deux entiers
Expression
Vraie si
oprateurs
Signification
x -eq y
x=y
Not
x -ne y
xy
-a
And
x -lt y
x<y
-o
Or
x -le y
xy
x -gt y
x>y
x -ge y
xy
F. EL BOUANANI
116
Syntaxe 2
then
if cde1; then
Cde2
Cde2
elif cde3
then
Cde4
Cde4
else
else
Cde5
Cde5
fi
fi
F. EL BOUANANI
117
case variable in
modle1)
commande1
;;
modle2 | modle3 | modle4) commande2
;;
modle5) commande3
;;
esac
F. EL BOUANANI
Caractre
Signification
spcial
*
0 n caractres
1 caractre
[abc0d]
1 caractre de la liste
[!abc0d]
1 caractre la liste
118
Syntaxe 2
Syntaxe 3
for var1 in *
do
do
do
commande1
commande1
commande1
done
done
done
Syntaxe 4
Syntaxe 5
Syntaxe 5
for variable
for variable in $*
do
do
do
commande1
commande1
commande1
done
done
done
F. EL BOUANANI
119
Boucle infinie
while Cde1
while :
do
do
commande2
commande2
done
done
Syntaxe 2
Until Cde1
do
commande2
done
F. EL BOUANANI
120
8.2. commande (( ))
x,y : entier
((expression_arithmtique))
z=`expr $x + $y`
z=`expr $x - $y`
prfixe par $
z=`expr $x / $y`
z=`expr $x \* $y`
oprateur : langage C
Exemple :
(( x = $x + 5 )) ((x=$x+5)) ((x=x+5)) ((x+=5))
if (( (x>2) && ($#==3) ))
if [ x gt 2 ] && [ $# -eq 3 ]
Then
then
Commande
F. EL BOUANANI
Commande
121
122
Ecrire un script qui renomme les fichiers jpg d'un rpertoire saisie par l'utilisateur en
F. EL BOUANANI
123
Exemple
Nbre_fich_dans_rep() {
Appel
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
124
Exercice 4 : Quotas
Ecrire un script qui affiche pour chaque utilisateur la taille, en ko, de son rpertoire de
connexion. Amliorer le script afin de trier les utilisateurs selon lordre croissant des tailles
F. EL BOUANANI
125