Documente Academic
Documente Profesional
Documente Cultură
Plan du cours
Présentation générale
Bourne Shell
Interface C / Unix
systemesdeproduction.blogspot.com
PRESENTATION
GENERALE
UNIX ?
Est un système d’exploitation
Version
Version77 1979
BSD
BSD4.1
4.1
Version
VersionIII
III 1981
BSD
BSD4.2
4.2
Version
VersionVVRel.
Rel.00 1983
Version
VersionVVRel.4
Rel.4 1991
BSD
BSD4.4
4.4 AIX
AIX3.2
3.2 OSF/1
OSF/1
UNIX LINUX
1995 AIX
AIX4.2
4.2 OSF/DCE
OSF/DCE
Mais la philosophie de l’Unix reste la
même :
• Un système opératoire :
Multi-Utilisateurs
réseau
Multi-tâches
Déroulement de l’exécution d’un programme dans un
système :
mono utilisateur
et
mono tache
P1 P1
Mémoire Processeur
Centrale
Architecture d’un système multi utilisateur
Demande E/S
P1 P4 P1
Processeur
P2
Mémoire
P3 P4 P3 P2 P1 Processeur P4 P2
P4
E/S
Centrale P2 P4
P2
Fin
P1 Quantum
P2
P3
P4 Fin E/S
Fin E/S et du
Programme
Lancer Fin du
l‘exécution Programme
Temps de réponse d’un programme dépend :
• Un langage de commande :
séquentiel
pseudo parallèle
abréviations
re-directions d'entrée-sorties
synchronisation...
• Une documentation en ligne
• Ma philosophie :
"Keep it simple, and take it easy"
• Mon succés
Toute une génération d'informaticiens a été
éduquée sur UNIX
• Les champs d'application :
- développement de logiciel
- applications industrielles (extensions
temps réel)
- communications (courrier électronique,
transfert de fichier)
Structure du système
Applications
Shell
Noyau
Matériel
Le noyau :
• gère les ressources matérielles (mémoire, unités
d'E/S...), les fichiers, l'allocation de temps UC
• gère les processus
• écrit en C et en assembleur
Le shell :
• est l’interface entre le noyau et l’utilisateur,
• des centaines de commande sont à la disposition des
utilisateurs
Connections des utilisateurs
Shell noyau
Shell
utilisateur x matériel
utilisateur y
Shell
utilisateur z
Documentation
$ man commande
Remarque :
majuscule # minuscule
NOTION D'UTILISATEUR
Tout utilisateur est enregistré dans deux fichiers :
/etc/group
nom de groupe
numéro unique de groupe
/etc/passwd
nom de login
mot de passe crypté
numéro unique d'utilisateur
numéro unique de groupe
nom complet de l'utilisateur
répertoire initial
interpréteur de commande
login : ali
password : *******
avec possibilité de changer le mot de passe:
$ passwd
changing password for ali
old password : ********
new password : ********
retrype new password : *******
profs
adm etudiant
/
Volume 2
bin dev usr
local
local bin
Volume 1
readme
Montage du volume 2
Propriétaire et droits d’accès
a- protections
trois catégories utilisateurs :
son propriétaire
les utilisateurs qui font partie du même
groupe que le propriétaire
les autres, excluant le propriétaire et les
usagers du groupe
A chacune de ces trois classes d’utilisateurs,
trois types de droits accès sont définis
profs
adm etudiant
- -x
-wx
b- Changement des protections : chmod
Convention :
.. répertoire parent
. répertoire courant
/ racine de l'arborescence
Manipulation de répertoires
cd entrée #home directory
se positionner sur le répertoire personnel
pwd entrée #print working directory
impression du répertoire courant
cd <nom_rep> entrée # change directory
changement de répertoire courant
mkdir <nom_rep> entrée # make directory
création d'un sous- répertoire
rmdir <nom_rep> entrée # remove directory
destruction d'un répertoire si vide
mvdir <nom_rep1> <nom_rep2> entrée
re-nommage de répertoire #move directory
Copie d’un ou de plusieurs fichiers : cp
cp origine résultat
cp [ origine ]+ rep
REP1
a b REP2
nf
REP1 : cp a REP2/nf
REP2 :
cp ../a nf
Déplacement ou renommage : mv
mv ancien nouveau
Exemple : REP1
Avant : a b REP2
REP1
Aprés :
a b REP2
nc
REP2 : mv c nc
Autre exemple : REP1
Avant : a b REP2
nc
REP1
Aprés :
a autreb REP2
nc
a autreb REP2
aprés : nc
REP1
a autreb REP2
nc
REP2 : mv autreb nc ..
créer des liens sur fichier
ln anciennom nouveaunom
ln [fichier]+ rep
a
REP2
autreb nc
REP1 : ln * REP2/
REP2 : ln ../* .
Destruction d’un fichier ou d’un lien : rm
rm [ option ] [ fichier ]+
options :
r (récursif) rm –r sous_rep
i
Attributs d’un fichier, contenu d’un répertoire
ls [option][nom]*
Quelques options :
-a affiche tous les noms de fichiers, même ceux qui commencent par un point
-i affiche le numéro de i-nœud devant chaque nom de fichier ou répertoire.
-l affiche pour chaque fichier successivement :
la nature du fichier :
- : fichier ordinaire,
d : répertoire,
l : lien symbolique
les droits d’accès
le nombre de liens de fichier
les noms du propriétaire et du groupe
la taille des fichiers en caractères
la date de dernière modification
le nom du fichier
-t affiche trié par la date de dernière modification
REP1
d.c e.c
$ ls
REP2 REP3 a.c b.c c.o
$ ls REP2
d.c e.c
$ ls -il
34982 drwxr_x_ _ _ 2 ali 64 Mar 11 1:43 REP2
22782 drwxr_x_ _ _ 2 ali 1024 Mar 11 14:46 REP3
47267 _rwxr_x_ _ x 1 ali 16364 Mar 1 11:43 c.o
69789 _rwxr_x_ _ _ 2 ali 64 Mar 1 11:43 a.c
67659 _rwxr_x_ _ _ 2 ali 64 Mar 1 11:43 b.c
Affichage interactif
a- Appel simple :
more fichier
cat [fichier]*
Exemple :
$ cat fichier
$ cat f1 f2 > f3
Affichage du début :
head [-n] f
$ head fichier
$ head -5 fichier
Affichage de la fin d’un fichier :
tail [+ | -] nl fichier
Exemple :
$ tail f affiche les dix dernières lignes de f.
$ tail +5 fichier
affiche de la ligne 5 à la fin du fichier.
$ tail -5 fichier
affiche les 5 dernières lignes de f.
Extrait d’un nom de fichier : basename
basename nom [suffixe]
Exemple :
$ basename ab.c .c
ab
Remarque :
$ cmp -s f1 f2
-s supprime les commentaires.
Affichage par page, par colonne :
a- Appel simple
pr f1
b- Appels avec options
pr [option]* [fichier]*
+k commencer l’affichage à la page k ( défaut 1);
-k afficher sur k ( défaut 1) colonnes de même
longueur
-m fusionne les fichier et les affiche côte à côte (
incompatible avec -k);
-sc associé à une option -k ou -m, demande à ne pas
tronquer les lignes trop longues et à remplacer le
séparateur de colonnes par défaut (le TAB) par la
caractère c;
-h texte l’argument texte remplacera le nom du fichier dans
l’en-tête;
-t supprimer l’en tête, les lignes blanches de haut de
page et les lignes blanches de fin de page.
Exemple :
Afficher fichier sur 3 colonnes :
$ pr -3 –t fichier
Exemple :
$ wc -lwc fichier
$ wc -l fichier
Où se trouve un fichier :
find [répertoire]+ [expression]+
répertoire est la liste des racines des sous hiérarchies à parcourir.
expression est une suite d’options exprimant à la fois les critères de sélection
des fichiers et les actions à leur appliquer.
Lorsque le critère est vrai, l’action est exécutée.
Dans la suite, on appelle ‘fichier courant’ le fichier examiné par find à un instant
donné.
Options, où n est mis pour n, -n, +n, -n veut dire ‘n et moins’, +n veut dire ‘n et
plus’ :
name motif vrai si le motif s’applique sur le nom du fichier courant
user nom vrai si le fichier courant appartient à l’utilisateur nom
atime n vrai si le fichier a été utilisé dans les n derniers jours. Peu
utilisable, car find modifie la date d’accès aux fichiers qu’il
examine
mtime n vrai si le fichier a été modifié dans les n derniers jours
newer fich vrai si le fichier courant a été modifié plus récemment que fich
(expression) vrai si l’expression est vraie. Les parenthèses (qu’il faut faire
précéder d’un blanc et d’une contre barre pour qu’elles ne
soient pas interprétées par le Shell) sont nécessaire si les
expressions simples sont combinées par et (par défaut), ou,
non
$ find / -name fichier -print fait
Recherche d’une chaîne dans un fichier :
grep [option] chaîne [fichier]*
Options :
v affiche les lignes qui ne contiennent pas le motif
c n’affiche que le nombre de lignes qui contiennent le motif
i ignore la distinction minuscule / majuscule
l n’affiche que les noms des fichiers renfermant le motif
n numérote les lignes affichées
s ou q les messages sont supprimés
$ps
PID TT STAT TIME COMMAND
6087 tty0 S 0:00 -csh
6091 tty0 R 0:00 ps
Quelques commandes
nice [-n°] commande [paramètres]
priorité de 1 à 19 , priorité par défaut : 10
nohup commande (&)
processus non tué au logout
kill -9 processus_ID
le processus désigné est tué
at 1600 <commande>
Programmer l’heure d’une commande
sleep <nombre>
Suspendre l’exécution d’une commande
Redirection
les erreurs
( par défaut écran )
Redirection des E/S :
$ cat f1 f2 > f3
$ ls >f
$ ls f > fichier
$ ls f 2 > fichier
$ ls f > f1 2 > f2
clavier
commande1
Sortie | Entrée commande2
écran
$ ls | wc –w
Pipe
Pipe
2- afficher les quatres derniers noms, dans l’ordre alphabétique,
d’une liste se trouvant dans le fichier liste :
$ cat liste
BA
KO
AL
HA
AH
AA
Résultat de la commande :
AL
BA
HA
KO
$ cat liste | sort | tail -4
Commande background :
cmd&
redirection des e/s
`...`
exécution de la phrase placée entre accents
graves
$ echo “ `date` ? “
Lundi 4 Mai 2004 ?
$ echo ‘ $a ` date ` ‘
$a ` date `
$ echo \?
?