Diapo Unix
Diapo Unix
Diapo Unix
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
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
F. EL BOUANANI
F. EL BOUANANI
Noyau (Kernel) Interprteur de commande (Shell) Systme de fichier (SF) grand nombre dutilitaires
F. EL BOUANANI
F. EL BOUANANI
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
F. EL BOUANANI
F. EL BOUANANI
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
... 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.
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.
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 :
en anglais free
= gratuit et libert
F. EL BOUANANI
16
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
<commande> [options] <liste darguments> [] : facultatifs majuscules # minuscules aide en ligne : man commande
F. EL BOUANANI
22
F. EL BOUANANI
23
: chane de caractres de taille non nulle : caractre unique quelconque. : liste dans une plage donne. : plage inverse
24
fich[!0-9] fich[!a-z]?
$ ls ?[!.]*.[ch]
F. EL BOUANANI
$ ls ?[!.]*.[c-h]
25
C shell Ksh, sh
(affiche la valeur)
26
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
F. EL BOUANANI
28
Quelle est loption qui liste tous les fichiers dans votre rpertoire mme les fichiers qui
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
F. EL BOUANANI
30
bin
boot
dev
etc
home
lib
mnt
proc
sbin
sys
tmp
usr
var
F. EL BOUANANI
31
/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
bin
home
usr
etc
Etudiant2
Etudiant1
Etudiant3
Rapports
Rapports
Prive
Unix
Analyse_numerique
tp1.txt
tp2.txt
F. EL BOUANANI
34
/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) :
F. EL BOUANANI
35
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
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
mv fichier repertoire (MoVe) : dplacer un fichier dans un rpertoire mv fichier1 fichier2 (MoVe) : renommer fichier1 par fichier2
F. EL BOUANANI 38
mv uni?.pdf ~/.././ : dplace les fichiers pdf forms de 4 lettres et commenant par
: 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
13 12
F. EL BOUANANI
41
less fich
: similaire more avec possibilit de revenir en arrire ou de rechercher une chane de texte dans fich
head fich
tail fich
F. EL BOUANANI
42
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
i-node est un ensemble dinformations sur un fichier : type (fichier, rpertoire, ...), nom,
masque de protection,
standard rpertoire lien symbolique fichier spcial mode bloc fichier spcial mode caractre fichier spcial mode rseau pipe nomm
F. EL BOUANANI
86764 Hello. My name is Moha. I work in the marketing department. I am 32 years old,
Blocks
F. EL BOUANANI
48
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
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
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
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
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
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
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
111 111 111 000 010 010 111 101 101 = 755
F. EL BOUANANI 62
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
F. EL BOUANANI
63
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.
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
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
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
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
F. EL BOUANANI
71
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
cp fich1 fich2
73
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
Processus
1 0 2
Sortie standard
Ecran
Erreur standard
F. EL BOUANANI
75
(commande > fs) >& fer : redirige la sortie standard vers fs et la sortie derreurs vers fer ;
F. EL BOUANANI 77
Processus P2
1 0 2
Erreur standard
1 2
0 Processus 1n P 2
Sortie standard
Erreur standard
Erreur standard
P1 | P2 |
|Pn
et
rm temp*
F. EL BOUANANI
83
F. EL BOUANANI
84
: 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
F. EL BOUANANI
88
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
: action excut avant la lecture du fichier : action excute aprs lexcution des instructions bloc
90
(tableau[indice])
92
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
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
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
(pensez un tableau)
F. EL BOUANANI 96
(man fork)
/proc
Type de processus : utilisateur et systme (cr au lancement du systme ou une date programme)
F. EL BOUANANI
98
F. EL BOUANANI
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
(x= entier)
x : Affecter la priorit x au processus (x est choisi dans lintervalle -20 (haute) a 19 (faible). La
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
pts/0 00:00:00
ps
bash
ps
bash bash
ps
F. EL BOUANANI
102
bash bash
bash ps
bash bash
bash bash ps
F. EL BOUANANI
103
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
Par dfaut, le fichier rsultat=nohup.out Exemple nohup ls l & nohup ls l & liste_de_fichiers
F. EL BOUANANI
106
fg %num_job
Foreground (en excution)
Arrt
kill %num_job
Termin F. EL BOUANANI 107
nom_utilisateur ensias
/var/spool/cron/cron.deny
Utilisation dun fichier indiquant la tche faire et sa priode
F. EL BOUANANI 110
Champ2
Champ3
Champ4
Champ5
Champ6
* : valeur quelconque:
F. EL BOUANANI
16 14 * * * cp f ff
#crontab f #cat /var/spool/cron/crontabs/root . 16 14 * * * cp f ff
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
F. EL BOUANANI
115
chaque instruction)
chmod u+x
F. EL BOUANANI
nom_script
puis
./nom_script arguments
117
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
$$
F. EL BOUANANI
Affiche b
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
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
Not And Or
F. EL BOUANANI
122
F. EL BOUANANI
123
Signification
F. EL BOUANANI
124
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
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
Ecrire un script qui lit les noms des fichiers et affiche celui ayant la plus grande taille.
F. EL BOUANANI 128
Ecrire un script qui renomme les fichiers jpg d'un rpertoire saisie par l'utilisateur en
F. EL BOUANANI
129