Chapitre I- Unix

Transcription

Chapitre I- Unix
___________________________________________
Système d'exploitation
et
Administration système
UNIX
Partie 1
Version1.2
Mamadou SOW
[email protected]­paris13.fr
IUT Villetaneuse ­ Université Paris XIII
99 avenue Jean Baptiste Clément 93430 Villetaneuse
___________________________________________
Mamadou SOW 1
Partie 1 : Système d'exploitation et
Administration système UNIX
Chapitre I­ Unix : Historique et Généralités ................................................................................ 3
Chapitre II­ L 'administrateur Système ......................................................................................... 7
Chapitre III­ Premiers contacts avec UNIX .................................................................................. 8
Chapitre IV­ Sources de documentation .......................................................................................10
Chapitre V ­ Commandes de manipulations de base de fichiers UNIX .....................................12
Chapitre VI – Les éditeurs de texte Unix ..................................................................................... 20
Chapitre VII – Attributs des fichiers ............................................................................................ 23
Chapitre VIII­ Expressions régulières et commandes Unix associées ....................................... 26
Chapitre IX – Commandes Unix de gestion d'espace disque ..................................................... 33
Chapitre X – Commandes Unix réseau de base ........................................................................... 36
Chapitre XI – Pratique du Bourne Shell ...................................................................................... 38
Chapitre XII­ Programmation en Bourne Shell ......................................................................... 46
Chapitre XIII­ Panorama de fichiers de configuration .............................................................. 59
Chapitre XIV­ Langages de programmation ............................................................................... 63
Chapitre XV­ Système de multi fenêtrage : X ............................................................................. 65
Mamadou SOW 2
Chapitre I­ Unix : Historique et Généralités Chapitre I­ Unix : Historique et Généralités
I.1­ Concepts novateurs
Unix est construit autour d'une idée forte :
−
la puissance d'un système provient plus des relations entre les programmes que les programmes eux­mêmes.
−
beaucoup de programmes Unix font, de façon isolé des traitements triviaux, combinés avec d'autres, ils deviennent des outils généraux et performants
I.2­ Les différentes familles d'Unix
−
−
−
Pour l'utilisateur, les divers UNIX se ressemblent beaucoup.
Pour l'administrateur, les divers UNIX ont chacun leurs spécificités.
Les commandes hardware varient, on trouve des extensions propres à chaque constructeur.
Plusieurs tentatives d'unification
−
SystemV interface Definition de AT&T (SVID1­3 en 1989)
−
IEEE Posix (POSIX1000.1 en 1990)
−
X/OPEN (1984)
Il reste 2 grandes familles d'UNIX
−
la famille System V ou système V release 4 (SVR4)
AIX, HP­UX, IRIX, UnixWare, XENIX, SCO
la famille BSD issue de l'université de Berkeley BSD (BSD=Berkeley Software Distribution)
FreeBSD, NetBSD, OpenBSD, MacOSX
−
Mamadou SOW 3
Chapitre I­ Unix : Historique et Généralités Panorama du marché UNIX
Marque des Constructeurs de Hardware
Version Unix
APPLE
Mac OX 10.x
COMPAQ
Tru64 Unix 5.x
CRAY
Unicos
HP
HP­UX 11.x
IBM
Aix 5.x
SGI
IRIX 6.x.y
SUN
Solaris
Marque des non Constructeurs de Hardware
Linux
Noyau 2.6
FreeBSD
FreeBSD 5.x
NetBSD
NetBSD 1.x
OpenBSD
OpenBSD 3.x
Novell
Netware 6.x
Santa Cruz
Unixware 7.x
Mamadou SOW 4
Chapitre I­ Unix : Historique et Généralités Panorama des distributions LINUX
Linux n'est la propriété de personnes mais de toute la communauté de programmeurs. Les distributions principales sont Red hat
www.redhat.com
Suse
www.suse.com
Mandrake
www.mandrake.org
Debian
www.debian.org
knoppix
www.knoppix.org
Votre rôle : connaître les principes et les mécanismes d'UNIX afin de savoir s'adapter à n'importe quel UNIX
I.3­ Unix : un système d'exploitation
Les missions d'un système sont :
−
mise à disposition de ressources matérielles: espace disque, temps d'exécution sur le microprocesseur central, espace mémoire, etc...
−
partage équitable de ces ressources entre ces utilisateurs pour atteindre le but de système multi utilisateurs.
Terminologie :
Mono utilisateur
Une seule personne utilise l'ordinateur.
Multi utilisateur
Plusieurs personnes peuvent utiliser le système en même temps. Le système s'assure que qu'un utilisateur n'interfère pas sur un autre.
Mono tâche
Un seul processus tourne à un instant.
Multi tâche
Plusieurs processus donnent l'impression de tourner en même temps.
Multi tâche préemptif
L'OS détermine quand un processus a eu assez de temps CPU.
Multi tâche non préemptif Le processus détermine lui même quand il a eu assez de temps CPU.
Mamadou SOW 5
Chapitre I­ Unix : Historique et Généralités Exemples :
Système d'exploitation
MS DOS
Mono utilisateur, mono tâche
Windows 95/98
Mono utilisateur, multi tâche non préemptif
Windows NT/2000/XP
Mono utilisateur, multi tâche préemptif
OS/2
Mono utilisateur, multi tâche préemptif
Unix
Mono utilisateur, multi tâche préemptif
Mamadou SOW 6
Chapitre II­ L’administrateur Système
Chapitre II­ L 'administrateur Système
II.1­ La mission de l'administrateur
gérer les comptes utilisateurs
−
assister et éduquer les utilisateurs
−
gérer les logiciels et le matériel (installation, configuration, dépannage)
−
assurer la sécurité du système et du travail des utilisateurs (sauvegarde fiable et régulière, contrôle des accès, utilisation abusive des ressources)
−
vérification de l'adéquation du matériel avec son utilisation
−
Les autres facettes du métier
diplomatie
−
aspects légaux (piratage informatique, les droits de l'administrateur et l'utilisateur, contrat, marché public, etc.)
−
relations humaines (SAV, services commerciales, etc.)
−
politique d'utilisation des machines
−
administrateur système = technicité + rigueur + bon sens
II.2­ Quelques règles de bon sens
−
−
−
−
votre premier ennemi, c'est vous même
si vous êtes fatigué arrêtez de travail
pas de modification importante vendredi
soyez sûr de pouvoir faire machine arrière
mv foo foo.backup
ou cp foo foo.backup
−
−
documentez votre travail
attention à l'expansion des caractères génériques II.3­ Connaissance de base d'un administrateur
­ environnement utilisateur
­ aide en ligne ­ système de fichiers
­ utilisation du shell
­ utilisation d'un éditeur de texte
­ commande de base
­ programmation shell
Mamadou SOW 7
Chapitre III ­ Premiers contacts avec UNIX
Chapitre III ­ Premiers contacts avec UNIX
III.1­ Votre compte unix : login, mot de passe
login : identificateur
mot de passe : confidentiel
III.2­ Le changement de mot de passe
la commande standard sur une machine UNIX est passwd.
la commande sur les systèmes Unix qui utilisent un mécanisme de centralisation de mots de passe (NIS) est yppasswd.
la connexion se fait
−
sur terminal texte ( terminal relié à un ordinateur distant.
−
Les commandes sont exécutées sur l'ordinateur distant.
−
−
sur un terminal graphique Unix (le terminal relié à un ordinateur local (LINUX, MS­DOS))
Les commandes sont exécutées sur l'ordinateur local. Un terminal est un dispositif capable d'envoyer des caractères à l'ordinateur et d'afficher les résultats à l'écran. Un terminal alphanumérique est en mode texte uniquement. Il faut dissocier terminal et ordinateur.
III.3­ L'interface graphique Unix
Unix dispose d’un grand nombre d'interfaces graphiques, comparé à des systèmes comme Windows ou Macintosh, KDE, Gnome et CDE.
Une fois connecté via l'interface graphique, on utilisera principalement un programme d'émulation de terminal de type texte qui fournit dans une fenêtre une connexion comme sur un terminal texte.
III.4­ Les langages de commandes UNIX : les shells
Le shell est un programme qui permet la saisie et l'interprétation de ce qui est tapé. Le shell est juste une interface avec le système.
Le shell est un vrai langage de programmation, interprété (non compilé) offrant les structures de base de programmation de tout langage.
MS­DOS comporte un shell aux possibilités restreintes par rapport aux shells UNIX.
Mamadou SOW 8
Chapitre III ­ Premiers contacts avec UNIX
Sous Unix, le shell est un programme au même titre qu'un autre. Le shell de travail est interchangeable par un autre shell.
Les shells répandus
Shell
Program
Description
Bourne shell
sh
Disponible sur toute plateforme
Cshell
csh
Shell développé pour BSD
Korn shell
ksh
Bourne shell amélioré par AT&T
Bash
bash
Shell distribué avec linux; version améliorée avec sh et csh
Tous les shells se présentent sous la même forme à l'écran lorsqu'ils fonctionnent :
une chaîne de caractères affiche que le shell attend que l'utilisateur tape quelque chose au clavier; c'est le prompt
−
−
un curseur qui va se déplacer au fur et à mesure de la saisie.
−
pour terminer une session shell, on tape la commande commune à tous les shells.
−
exit ou le raccourci Ctrl+D.
III.5­ Formes générales des commandes Unix
Une commande Unix = un ensemble des mots séparés par des caractères blancs (caractère espace, tabulation)
commande [options] paramètres
­ Le premier mot : le nom de la commande
­ Le deuxième mot : les options changent le commande, les deux crochets indiquent que les options ne soient pas obligatoires. Il ne faut pas taper ces crochets sur la ligne de commande. Il reste une tendance générale : Une option est par le signe – et est souvent constituée d'une seule lettre (mais attention aux exceptions nombreuses).
−
Le reste des mots : les paramètres de la commande
Souvent on pourra cumuler des options :
ls ­a ­l == ls ­al == ls ­l ­a
Mamadou SOW 9
Chapitre IV- Sources de documentation
Chapitre IV­ Sources de documentation
IV.1­ Documentation Unix en ligne : man Il existe une documentation électronique accessible pendant le système : c'est à l'aide en ligne.
Syntaxe de la commande man :
man [options] commande
avec la particulier comme option :
man
man
[numéro de section] commande [­s numéro de section] commande Quand on ne connaît pas le nom de la commande, on peut demander les noms des commandes dont le descriptif contient une certaine chaîne de caractères:
Exemple :
$ man ­k tune
adjtimex (2) ­ tune kernel clock
bdflush (2) ­ start, flush, or tune buffer­dirty­flush daemon
IV.2­ RFC, internet drafts
­ ftp://ftp.lip6.fr/pub/rfc/rfc
­ ftp://ftp.lip6.fr/pub/rfc/internet­drafts
IV.3­ FAQ
­ ftp://ftp.lip6.fr/pub/doc/faqs/
IV.4­ HOWTO Linux
­ftp://ftp.lip6.fr/pub/linux/french/docs
IV.5­ Newsgroups
Les newsgroups sont des forums de discussion sur internet. Sur jussieu, le serveur de news est news.jussieu.fr. Le protocole réseau des news s'appelle NNTP.
Mamadou SOW 10
Chapitre IV- Sources de documentation
IV.6­ Moteur de recherche Google
­ est un moteur de recherche très efficace
IV.7­ Documentation constructeur en ligne
Certains constructeurs mettent de la documentation en ligne
­ http://docs.sun.com IV.8­ Librairies parisiennes
­ Gibert­Jeune
­ Eyrolles
­ Infothèque
IV.9­ Formats de la documentation
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
format PDF à lire avec
Acrobat Reader
Ghostscript
xpdf
f ormat Postscript à lire avec
Ghostscript
ghostview
gv
format Microsoft Word à lire avec
Microsoft word
Microsoft word viewer
Star Office
Antiword
openOffice
format texte ; n'importe quel éditeur de texte format HTML ; n'importe quel browser web
Mamadou SOW 11
Chapitre V - Commandes de manipulations de base de fichiers UNIX
Chapitre V ­ Commandes de manipulations de base de fichiers UNIX V.1­ Arborescence de fichiers
Les fichiers sont identifiés par leur nom de fichier, qui peuvent contenir n'importe quel caractère (sauf /) et peuvent faire jusqu'à 256 caractères de long, voire plus selon les UNIX.
Un répertoire est simplement une collection de fichiers organisée de manière arborescente. Au concept de fichier est associé la notion de répertoire en anglais directory.
Un fichier peut être référencé par son chemin d'accès, qui est constitué du nom de fichier, précédé par le nom de répertoire qui le contient sous la forme :
chemin d'accès = répertoire / nom
Arborescence
Principe de l'arborescence
−
une racine désignée par / slash en anglais
−
des nœuds : répertoire
−
feuilles : fichiers
−
/
bin
dev
usr
toto
tmp
include
sys
stat.h
Mamadou SOW 12
Chapitre V - Commandes de manipulations de base de fichiers UNIX
Selon ce schéma, on distingue 3 possibilités pour désigner un fichier
1­ chemin d'accès absolu
Si le nom de répertoire commence par /, il s'agit d'une référence absolue par rapport à la racine /, constituée d'une liste des répertoires à parcourir depuis la racine pour accéder au fichier
par exemple : /usr/include/sys/stat.h
2­ chemin d'accès relatif
Si le nom de répertoire ne commence pas par /, il s'agit d'une référence relative par rapport au répertoire courant.
Le répertoire courant est désigné par un point .
..
Le répertoire parent du répertoire courant est noté directory
..
directory .
Exemple :
Depuis la référence /usr/include on a sys/stat.h Depuis la référence /usr/include on a ../../bin/toto
Mamadou SOW 13
Chapitre V - Commandes de manipulations de base de fichiers UNIX
3­ chemin d'accès relatif par rapport à un utilisateur
/
bin
dev
toto
...
tmp
mamadou
fichier1 fichier2 rep1
Sur le principe identique à un chemin relatif sauf que le point de départ est le répertoire d'un utilisateur que l'on désigne par le ~ suivi du nom de l'utilisateur.
$ ls ~mamadou
4­ Liste des fichiers : ls
Syntaxe : ls [options] fichiers
Principales options (cumulables):
Options
Commentaires
­l
Affichage au format long des informations relatives aux fichiers
­g
Affichage des groupes propriétaires des fichiers
­R
Liste récursive
­d
Affichage des noms des répertoires et non de leur contenu
­F
Affichage des fichiers avec un suffixe désignant le type de fichier
­a
Affichage des fichiers dont les noms commencent par un point .
Mamadou SOW 14
Chapitre V - Commandes de manipulations de base de fichiers UNIX
5­ Quelques commandes utiles
Commandes
Utilisation
cat
Affichage du contenu d'un texte
more
Affichage du contenu d'un texte. Dans le cas où le texte est très long cat n'est pas pratique. La commande more permet d'effectuer des affichages page par page
­ Caractère q pour quitter ­ Caractère espace pour avancer d'une page d'écran
­ Caractère b pour revenir en arrière d'une page (backward)
­ Caractère f pour avancer d'une page d'écran (forward)
rm
Destruction d'un fichier
­ option "­i" : confirmation à chaque supression (garde fou)
­ option "­r" : suppression récursive
­ option "­f" : suppression en force d'un fichier même si ses droits ne s'y prêtent pas
cp
Duplication d'un fichier : cp
cp [options] fichier­départ fichier­destination
cp [options] fichier­départ répertoire­destination
"­i" : confirmation à chaque écrasement de fichier
"­r" : copie récursive mv
Déplacement et renommage d'un fichier : mv
mv [options] fichier­départ fichier­destination
mv [options] fichier­départ répertoire­destination
mv [options] répertoire­départ répertoire­destination
"­i" : confirmation à chaque écrasement de fichier
mkdir
Création de répertoire
"'­p" : création de sous répertoire
rmdir
Suppression de répertoire
cd, pwd
Positionnement et position dans les répertoires
Mamadou SOW 15
Chapitre V - Commandes de manipulations de base de fichiers UNIX
Commandes
wc
Utilisation
Comptage de lignes dans un fichier "­c" : nombre de caractères "­w" : nombre de mots
"­l" : nombre de lignes
diff
Comparaison de 2 fichiers
diff [­c] fichier1 fichier2
head Extraction des premières lignes de fichiers
head [­N] fichier
N : nombre de lignes
tail
Extraction des dernières lignes de fichiers
tail [­N] fichier
"+N" : affichage à partir de la N ième du texte
"­f" : affichage des dernières lignes en temps réel
cut
Extraction de colonne
­ extraction sur chaque ligne de caractères pris isolément :
cut ­c 1, 8, 27 fichier
­ extraction sur chaque ligne de caractères d'une position 1 à une position 2:
cut ­c 25­42 fichier
­ extraction sur chaque ligne (constituée de mots séparés par un certain délimiteur
) de mots pris isolément :
cut ­d: ­f 1,5 fichier
­ extraction sur chaque ligne (constituée de mots séparés par un certain délimiteur
) du mot i au mot j :
cut ­d: ­f 4­7 fichier
Mamadou SOW 16
Chapitre V - Commandes de manipulations de base de fichiers UNIX
Commandes
paste
Utilisation
Collage de colonnes
% cat fichier1
aaa
bbb
%cat fichier2
AAA
BBB
CCC
%cat fichier3
ligne 1
ligne 2
ligne 3
ligne 4
%paste fichier1 fichier2 , Collage simple des colonnes
aaa AAA
bbb BBB
CCC
%paste ­s fichier1 fichier2 , Collage complexe des colonnes
aaa bbb
AAA BBB CCC
%paste ­s ­d"\t\n"fichier3 , Collage complexe des colonnes
ligne 1 ligne 2
ligne 3 ligne 4
Mamadou SOW 17
Chapitre V - Commandes de manipulations de base de fichiers UNIX
Commandes
sort
Utilisation
Tri d'un fichier
"­n" : tri numérique "­r" : tri par ordre décroissant
"­t" : permet de spécifier le séparateur de mots
"­k" : spécifie la colonne sur laquelle trier
uniq
Elimination des lignes redondance d'un fichier
"­c" : précéde chaque ligne du résultat du nombre d'occurences de cette ligne dans le fichier original
"­d" : suppression des lignes qui ne sont pas en plusieurs exemplaires
touch
−
Création d'un fichier vide
−
Modification des dates d'un fichier
touch [options] [­t time] fichier
"­a" : modification de la date d'accès du fichier (a=accesstime)
"­m" : modification de la date de modification du fichier (m=mtime)
"­t time" : indique une date autre que la date du moment à mettre; au format : AAAAMMJJhhmm.ss
/tmp
Création de fichiers temporaires
Le répertoire /tmp sert à stocker des fichiers temporaires
Les droits d'accès sont 1777 en octal
Signification de 777 : tout le monde sur la machine peut créer, modifier et effacer des fichiers
Signification de 1000 : vous ne pouvez effacer que les fichiers qui vous appartiennent
basename
Manipulations des noms de fichiers
synthaxe : basename fichier [suffixe]
1­ Suppression des composantes du path jusqu'au dernier caractère /:
%basename /users/mamadou/cours/cours.tex
cours.tex
2­ La précision d'un suffixe amène la suppression de ce suffixe également :
%basename /users/mamadou/cours/cours.tex .tex
cours
Mamadou SOW 18
Chapitre V - Commandes de manipulations de base de fichiers UNIX
Commandes
ln, ln ­s
Utilisation
A chaque fichier peut être associé plusieurs noms.
Chaque nom est un lien.
Il y a un compteur de liens pour chaque fichier
−
incrémenté lors de la création d'un lien
−
décrémenté lors de la suppression d'un lien
−
le contenu d'un fichier est détruit lorsque le dernier lien est suppimé
Il existe deux types de liens: hard et symbolique
lien hard : limité au sein d'un même disque dur, où garantie l'unicité d'un inode (matricule de fichier)
−
la commande à utiliser est : ln original synonyme
Suppression par rm
lien symbolique : non limité à un disque parce qu'utilisant le nom d'un fichier et non pas son "matricule". En fait, c'est un fichier contenant le nom du fichier source.
la commande à utiliser est : ln ­s original synonyme
Suppression par rm
file
Syntaxe: file fichier
Cette commande permet d'intuiter à quelle application est lié le fichier. 6­ Utilitaires pour disquettes PC : mtools, mcopy
Sur des machines équipées de lecteur de disquettes, on peut transférer des fichiers depuis et vers leur lecteur de disquette. Un logiciel appelé mtools permet d'utiliser les disquettes en offrant des commandes Unix avec la logique des commandes connues du DOS.
La commande de base à utiliser est mcopy
Transfert d'Unix vers la disquette mcopy fichier a:
Transfert de la disquette vers Unix
mcopy a:fichier .
Affichage du contenu de la disquette mdir a:
Mamadou SOW 19
Chapitre VI – Les éditeurs de texte Unix
Chapitre VI – Les éditeurs de texte Unix
VI.1­ Panorama d'éditeurs de fichiers texte
Il existe beaucoup d'éditeurs de texte sous Unix mais seuls quelques uns sont suffisamment robustes pour être utilisés efficacement et avec confiance :
vi : le seul éditeur de texte standard sous Unix emacs et xemacs : puissant, complexe à maîtriser, simple une fois qu'on sait s'en servir. Xemacs est une variante plus graphique
−
nedit : Simple et intuitif grâce à ses menus
−
−
VI.2­ Editeur de fichier texte : vi
Il fonctionne sur tout type de terminal texte, sur tout Unix
−
Commande passant en mode édition
Séquence
Action
i
Insérer à la position courante
a
Insérer à la position suivante du curseur
I
Insérer en début de ligne
A
Insérer en fin de ligne
o
Ouvrir une nouvelle ligne en dessous du curseur
O
Ouvrir une nouvelle ligne en dessus du curseur
cw
Changer un mot
c$
Changer jusqu'à la fin de ligne
−
Sortie du mode
On passe du mode saisie de texte au mode commande par la touche ESC.
Mamadou SOW 20
Chapitre VI – Les éditeurs de texte Unix
­ Commandes principales
Séquence
Action
x
Détruire le caractère sous le curseur
r
Remplacer le caractère sous le curseur
dd
Effacer la ligne courante
dw
Effacer le mot sous le curseur
.
Répéter la dernière commande
J
Joindre la ligne suivante avec la ligne courante
/toto
Rechercher toto dans la texte
n
Répéter la dernière recherche
u
Annulation de la dernière commande (undo)
Nombre G
Aller à la ligne "nombre" CTRL+L
Rafraîchir l'écran
Sauvegarde / Sortie de vi
−
Séquence
Action
:w
Sauver le fichier édié
:w toto
Sauver dans le fichier toto
:q
Quitter vi
:q!
Quitter vi sans sauvegarder la moindre chose
:wq
Sauver puis quitter vi
:r toto
Insérer le contenu du fichier
Mamadou SOW 21
Chapitre VI – Les éditeurs de texte Unix
Commandes de copier/coller
Séquence
Action
yy
Copier la ligne courante dans la mémoire copier/coller
p
Coller dans le texte le contenu de la mémoire précédente
Nombre yy
Copier "nombre" lignes dans la mémoire copier/coller
Commandes de substitution
Séquence
Action
:s/toto/titi
Sur la ligne du curseur, remplacer le premier mot toto par titi
:s/toto/titi/g
Sur la ligne du curseur, remplacer tous les mots toto par titi
:1,$s/toto:titi/
De la ligne 1 à la dernière ligne $, remplacer le premier mot toto par titi
:1,$s/toto/titi/g
De la ligne 1 à la dernière ligne $, remplacer tous les mots toto par titi
−
Principales options
Séquence
Action
:set all Afficher toutes les options positions
:set nu
Afficher les numéros de ligne :set toto
Positionner l'option toto à vrai
:set no toto
Positionner l'option toto à faux
Mamadou SOW 22
Chapitre VII – Attributs des fichiers
Chapitre VII – Attributs des fichiers
VII.1­ Définition des droits d'accès d'un fichier
Les droits d'accès à un fichier sont stockés dans une structure dite inode. Cette structure n'est pas manipulable directement.
Les droits d'accès se voient grâce à la commande ls ­l
[sow@toutankamon COURS]$ ls ­l
total 556
drwxr­xr­x 30 sow admin 4096 déc 23 06:29 ARS/
­rwxr­xr­x 1 sow admin 265807 déc 22 23:48 cours_tar.gz
­rwxr­xr­x 1 sow admin 34304 déc 22 23:57 mail.doc
Les droits sont indiqués par les 10 premiers caractères de chaque ligne affichée:
Type de fichier
r
w
x
r
w
x
r
w
x
user group others
Il existe 3 droits
u
Droits du propriétaire = user
associés g
Droits des membres du groupe = group
à chaque fichier
o
Droits des autres utilisateurs = others
Il est 3 types
r
Droit en lecture = read
de w
Droit en écriture = write
permissions
x
Droit en exécution = execute access
Mamadou SOW 23
Chapitre VII – Attributs des fichiers
VII.2­ Changements des droits d'accès d'un fichier : chmod
Synthaxe : chmod [options] modes fichier
L a précision des modes dans la commande peut être prendre deux formes :
Forme symbolique
u, g , o, a
r,w,x
Forme numérique: les permissions sont exprimées en base huit en octale
Droits
­ ­ ­
Valeur base 2
0 0 0
Valeur base 8
0
­ ­ x
0 0 1
1
­ w ­
0 1 0
2
­ w x
0 1 1
3
r ­ ­
1 0 0
4
r – x
1 0 1
5
r w ­
1 1 0
6
r w x
1 1 1
7
VII.3­ Les attributs spéciaux de fichier
Il existe des attributs spéciaux de fichier réservé à la gestion du système.
Le bit setuid
4000 ou "u+s"
Le bit setgid
2000 ou "g+s"
Avec ce bit positionné, le programme est exécuté avec les droits de l'utilisateur propriétaire
Avec ce bit positionné, le programme est exécuté avec les droits du groupe propriétaire
VII.4­ Attribut spécial de répertoire : sticky bit
Il existe un attribut spécial de répertoire réservé à la gestion du système : le sticky bit 1000
Avec ce bit positionné, on ne peut effacer d'un répertoire que ses propres fichiers et pas ceux des autres.
Exemple : L'utilisation sur le répertoire système de stockage des fichiers temporaires
Mamadou SOW 24
Chapitre VII – Attributs des fichiers
VII.5­ Attribut de date d'un fichier : mtime, atime, ctime
Sur unix, à chaque fichier/répertoire sont associées 3 dates stockées dans une structure dite inode. Cette structure n'est pas manipulable directement.
Ces 3 dates sont :
−
date de dernière modification dite mtime (modification time)
−
date de dernier accès dite atime (access time)
−
date de dernière modification des attributs dite ctime (change time)
La commande ls :
−
option "­l" : format long (affichage du mtime par défaut)
−
option "­t" : tri décroissant par date (mtime par défaut)
−
option "­r" : tri par ordre inverse
ls ­lt : classement par ordre chronologique décroissant des mdates
ls ­ltu : classement par ordre chronologique décroissant des atimes
ls ­ltc : classement par ordre chronologique décroissant des ctimes
VII.6­ Consultation de l'horloge : date
Synthaxe : date [options] [+format]
Quelques cas utiles:
date : la date de l'instant courant
date ­u : la date GMT de l'instant courant
date '+%YYYY%mm%dd' : date du jour sous la forme AAAAmmjj
−
−
−
VII.7­ Modification des dates d'un fichier : touch
touch [options] [­t time] fichier
Options:
­ "­a" : modification de la date d'accès du fichier
­ "­m" : modification de la date de modification
­ "­t" time : indique une date autre que la date du moment à mettre; format : AAAAmmjj.ss Mamadou SOW 25
Chapitre VIII- Expressions régulières et commandes Unix associées
Chapitre VIII­ Expressions régulières et commandes Unix associées
Les programmes Unix utilisent des critères de reconnaissance de motifs de chaînes de caractères. La "regexp" est la traduction en langage Unix du motif, ce qui permettra de le reconnaître au sein d'un texte dans un fichier.
Un exemple de motif :
Les lignes commençant par la lettre a. Ainsi le motif précédent donne la regexp : ^a
La regexp traduit le motif à rechercher sous la forme d'une suite de contraintes à satisfaire toutes.
Pour construire les contraintes, on dispose des écritures :
caractère
Désigne la contrainte pour un caractère d'être ce caractère
[caractères]
Désigne la contrainte pour un caractère d'être parmi la liste indiquée
[^caractères] Désigne la contrainte pour un caractère de ne pas figurer dans la liste
.
Désigne la contrainte pour un caractère d'être quelconque
^
Désigne la contrainte d'être en début de ligne $
Désigne la contrainte d'être en fin de ligne {m,n}
Indique que la contrainte mentionnée juste avant doit être satisfaite entre m et n fois
*
Indique que la contrainte mentionnée juste avant doit être satisfaite autant de fois que possible en pratique (de 0 à autant que l'on veut)
Application des regexps :
­ sélectionner des lignes de fichiers texte qui satisfont la regexp
>> c'est l'objet de la commande Unix grep
faire des remplacements du texte satisfaisant la regexp par un autre texte qui peut­être déduit du texte initial
>> c'est l'objet de la commande Unix sed
−
Mamadou SOW 26
Chapitre VIII- Expressions régulières et commandes Unix associées
Exemple Le motif à satisfaire 1 La ligne contient le mot elephant
Traduction en regexp elephant
La ligne se termine par 2 caractères [a­z][a­z][0­9]$ ou [a­z](2)[0­9]$
2 en miniscule suivis d'un chiffre
mot1:mot2:mot3:
­ mot1 commence par une lettre majuscule
−
chiffre
3
−
^[A­Z][^:]*
:[^:]*[0­9]:[^:]*:
mot2 se termine par un mot3 est quelconque
ascenceur
berceau
chameau
^[^abc]* fichier
^[^abc] fichier
résultat :
elephant
résultat :
ascenceur
elephant
berceau
chameau
elephant
4
VIII.1­ Recherche de regexp dans un fichier : grep
Synthaxe : grep [options] regexp fichier
Options
­i
Pas de différenciation entre lettres miniscules et majuscules
­n
Affichage des numéros
­l
n'affiche que les noms de fichiers
­v
Affichage des lignes ne contenant pas la chaîne précisée
Mamadou SOW 27
Chapitre VIII- Expressions régulières et commandes Unix associées
Exemple :
fichier
Ecrivons toto en minuscules ici. % grep toto fichier
Et ici ToTo en minuscules et majuscules. Ecrivons toto en minuscules ici. Mais là on ne met pas la regexp de l'exemple.
Ecrivons toto en minuscules ici. % grep ­in toto fichier
Et ici ToTo en minuscules et majuscules. Ecrivons toto en minuscules ici. Mais là on ne met pas la regexp de l'exemple.
Et ici ToTo en minuscules et majuscules. Ecrivons toto en minuscules ici. % grep ­inv toto fichier
Et ici ToTo en minuscules et majuscules. Mais là on ne met pas la regexp de l'exemple.
Mais là on ne met pas la regexp de l'exemple.
185444689;LUKOVIC ;DRAGICA
100059078;LUMINET ;AMANDE
On cherche les prénoms qui commencent par DR:
557080069;LUND ;BRIANA NICOLE
882345678;MEKOUAR;DRISS
% grep ';DR[^;]*$' fichier
890765443;MILON ;NICOLAS
185444689;LUKOVIC ;DRAGICA
122222789;MILOSAL ;DRAGANA
882345678;MEKOUAR;DRISS
122222789;MILOSAL ;DRAGANA
En pratique:
la regexp comprise entre deux apostrophes (l'explication des apostrophes sera vue au niveau du cours sur la pratique du shell)
−
grep ­E
−
egrep sur linux :
[options]
'regexp' fichiers
sur l'Unix de SUN, solaris :
[options] 'regexp' fichiers
­ Modification à la volée de contenu de fichiers: sed
Synthaxe : sed options fichiers
La commande sed agit sur un flux. Un flux est une quantité de texte envoyé à l'affichage par une commande
Mamadou SOW 28
Chapitre VIII- Expressions régulières et commandes Unix associées
Exemple de flux:
le résultat d'une commande ls
le résultat d'un cat fichier
Options
­e commande Commande à exécuter sur chaque ligne du flux
Commande prend la forme :
[adresse1[,adresse2]]fonction[argument]
On construit une adresse de ligne grâce à:
­son numéro de ligne ­le caractère $ pour désigner la dernière ligne les fonctions proposées dans sed:
­suppression de ligne : d
­affichage de ligne : p
­substitution au sein des lignes :
s/regexp/remplacement/modifiers
­f script Précision d'un fichier dans lequel prendre les commandes à appliquer sur chaque ligne de texte
Mamadou SOW 29
Chapitre VIII- Expressions régulières et commandes Unix associées
% cat fichier
Ceci est la 1ière ligne On veut supprimer la première ligne lors de l'affichage
Ceci est la 2ième ligne % sed ­e '1d' fichier
Ceci est la 3ième ligne Ceci est la 2ième ligne
Ceci est la 4ième ligne Ceci est la 3ième ligne Ceci est la 5ième ligne Ceci est la 4ième ligne Ceci est la 5ième ligne
On veut garder que les 4 premières lignes du fichier lors de son affichage
% sed ­e '$d' fichier
Ceci est la 1ière ligne Ceci est la 2ième ligne Ceci est la 3ième ligne
Ceci est la 4ième ligne
moteur;ferrari;30
On veut remplacer le moteur 'epuise' du fichier par 0 lors de son affichage
moteur;porsche;epuise
% sed ­e 's/epuise/0/' fichier
carrosserie;porsche;epuise
moteur;ferrari;30
moteur;ford;40
moteur;porsche;0
poteur;skoda;epuise
carrosserie;porsche;0
% cat fichier moteur;ford;40
moteur;skoda;0
On veut remplacer le moteur 'epuise' du fichier par 0 pour les lignes partant de moteur lors de son affichage
% sed ­e '/moteur/s/epuise/0/' fichier
moteur;ferrari;30
moteur;porsche;0
carrosserie;porsche;epuise
moteur;ford;40
moteur;skoda;0
Mamadou SOW 30
Chapitre VIII- Expressions régulières et commandes Unix associées
% cat fichier
On veut remplacer le mot chevals du fichier par Les courses de chevals se font a des chevaux lors de l'affichage
Vincennes.
% sed ­e 's/cheval/chevaux/' fichier
Les chevals ont 4 jambes. Les chevals Les courses de chevaux se font a sont des equides.
Vincennes
Les chevaux ont 4 jambes. Les chevals sont des equides.
> le remplacement n'a pas lieu sur tous les chevals au sein d'une ligne
On veut remplacer le mot chevals du fichier par des chevaux lors de l'affichage
% sed ­e 's/cheval/chevaux/g' fichier
Les courses de chevaux se font a Vincennes
Les chevaux ont 4 jambes. Les chevaux sont des equides.
> le remplacement a lieu sur tous les chevals au sein d'une ligne.
Mamadou SOW 31
Chapitre VIII- Expressions régulières et commandes Unix associées
VIII.3­ Commande de recherche de fichiers : find
On recherche à partir des répertoires indiqués les fichiers répondant aux critères exprimés par des expressions.
Syntaxe : find répertoires
expressions
Expressions
Les expressions indiquant des actions à effectuer
Critère de nom : ­name nom
Critère de droits d'accès : ­perm permissions
Critère de type (fichier, répertoire): ­type type (d pour directory, f pour file, etc)
Critère de taille : ­size N
Critère de date récente : ­newer fichier
Critère de date : ­atime N, ­mtime N, ­ctime N
Affichage du nom du fichier trouvé : ­print
Exécution d'une commande: ­exec commande {} \;
Les expressions indiquant des conditions
Ou logique entre conditions : condition1 ­o condition2
Et logique entre conditions : condition1 ­a condition2 (en fait ­a est facultatif)
Des exemples :
−
Recherche des fichiers d'extension '.c':
% find . ­name \*.c ­print
% find . ­name '*.c' ­print
−
Recherche des répertoires :
% find . ­type d ­print
­ Recherche des fichiers de plus 10000000 caractères :
% find ~ ­size +10000000c ­print
Mamadou SOW 32
Chapitre VIII- Expressions régulières et commandes Unix associées
­Recherche de tous les fichiers s'appelant a.out ou s'appelant avec une extension '.o', non utilisés depuis plus de 7 jours et on appliquera la commande d'effacement aux fichiers trouvés
% find . \(­name a.out ­o ­name '*.o'\) ­atime +7 ­exec rm {} \;
La commande find est une commande récursive et dépassant le niveau du répertoire courant en descendant plus bas.
!!!! : Ne pas confondre la commande find et la commande ls
Mamadou SOW 33
Chapitre IX – Commandes Unix de gestion d’espace disque
Chapitre IX – Commandes Unix de gestion d'espace disque
commandes
df
utilités
exemples
Sert à indiquer le taux de [sow@toutankamon ~]$ df
remplissage des disques durs locaux Sys. de fich. Tail. Occ. Disp. %Occ. de l'ordinateur ainsi que des réseau Monté sur
/dev/sda6 5,0G 1,4G 3,4G qui stockent vos fichiers
29% /
/dev/sda8 6,7G 6,4G 288M 96% /home
/dev/sda2 28G 18G 11G 64% /mnt/windows
/dev/sda7 8,0G 5,5G 2,2G 72% /usr
du
Calcul la place disque occupée : du
[sow@toutankamon ~]$ du ­sh *
368K amsn_received
4,0K autosave
0 BARA
[sow@toutankamon ~]$ du ­sk *
368 amsn_received
4 autosave
0 BARA
Compress Compression de fichiers
uncompre
ss
zcat
Gzip
gunzip
gzcat
­ Compress [options] fichier (après la compression le nom du fichier est fichier.Z)
­ uncompress [options] fichier.Z
­ zcat fichier.Z pour lire le fichier.Z
Cette série compressent mieux que ­ gzip [options] fichier
­ gunzip [options] fichier.gz
la précédente famille
­ gzcat fichier.gz pour lire le fichier.gz
après la compression le fichier portera le nom fichier.gz
Mamadou SOW 34
Chapitre IX – Commandes Unix de gestion d’espace disque
commandes
Bzip2
bunzip2
utilités
exemples
Cette série compressent mieux que ­ bzip2 [options] fichier
­ bunzip2 [options] fichier.bz2
la famille de compress
­ bzcat fichier.bz2 pour lire le fichier.bz2
bzcat2
après la compression le fichier portera le nom fichier.bz2
tar
Archivage de fichiers/répertoires
­ Création d'une archive :
La commande tar permet d'archiver tar cvf archive.tar fichiers dans un seul fichier une ­ Affichage du contenu d'une archive :
arborescence. Conjuguée à une commande de compression, cela tar tvf archive.tar
permet de mettre de côté une ­ Extraction de l'archivage complète :
arborescence dont on n'a plus tar xvf archive.tar
besoin. Au passage on gagne de la ­ Extraction d'un fichier précis de l'archive :
place.
tar xvf archive.tar fichier tar + compress
­ Création d'une archive :
tar cvZf archive.tar.Z fichiers ­ Affichage du contenu d'une archive :
tar tvZf archive.tar.Z
­ Extraction de l'archivage complète :
tar xvZf archive.tar.Z
­ Extraction d'un fichier précis de l'archive :
tar xvZf archive.tar fichier tar + gzip
­ Création d'une archive :
tar cvzf archive.tar fichiers ­ Affichage du contenu d'une archive :
tar tvzf archive.tar
­ Extraction de l'archivage complète :
tar xvzf archive.tar
­ Extraction d'un fichier précis de l'archive :
tar xvzf archive.tar fichier Mamadou SOW 35
Chapitre X – Commandes Unix réseau de base
Chapitre X – Commandes Unix réseau de base
Commandes
Définitions
Synthaxe
lpr
Une impression nécessite de Pour imprimer, utiliser connaître le nom de l'imprmante lpr ­P imprimante fichier
et d'avoir un fichier au bon Pour consulter la queue d'impression, utiliser la format
commande lpq ­P imprimante
Pour retirer un fichier de la queue d'impression, utiliser la commande
lprm ­P imprimante numero­dans­
la queue renvoyé par lpq
hostname
Pour connaître le nom de la [sow@toutankamon ~]$ hostname
machine
toutankamon
uname
Pour connaître la version du [sow@toutankamon ~]$ uname ­a
noyau unix
Linux toutankamon 2.6.12­25mdk #1 Fri Aug 18 15:09:47 MDT 2006 i686 Intel(R) Pentium(R) M processor 1.60GHz unknown GNU/Linux
Pour connaître le nom de la [sow@toutankamon ~]$ uname ­n
machine
toutankamon
[sow@toutankamon ~]$ uname ­r
2.6.12­25mdk
ping
Test de connectivité
ping machine
traceroute La commande traceroute permet traceroute machine
de tester si une machine est joignable. Elle renvoit les intermédiaires réseau qui route notre acheminement vers la machine distante
ftp
Transfert de fichiers entre ftp machine machines
la commande ftp vous place dans une espèce de shell.
ssh,telnet Commandespermettant d'ouvrir ssh machine
une session shell sur une Mamadou SOW 36
Chapitre X – Commandes Unix réseau de base
Commandes
Définitions
Synthaxe
distante
users
who
w
Commandes permettant d'avoir la liste des personnes connectées sur un système Unix
mutt (mode Courrier électronique
texte)
Web
url
Thunderbird (mode graphique)
Consultation de documentation On utilise un brower web pour consulter un en ligne
URL
lynx
firefox
Mamadou SOW 37
Chapitre XI – Pratique du Bourne Shell
Chapitre XI – Pratique du Bourne Shell
XI.1­ Principe d'exécution d'une commande
attente d'une entrée des caractères spéciaux de la commande
traitement des caractères spéciaux de la commande
−
recherche de l'exécutable : s'il n'est pas trouvé, on affiche un message d'erreur et le shell reprend à l'étape 1
−
fork() et exec() de la commande à lancer
−
le shell fait un wait() de la commande
−
une fois la commande terminée, le shell reprend à l'étape 1 −
−
XI.1­ Caractères spéciaux du shell : métacaractères
Caractères
Signification
Tabulation, espace
Appelés white caracters délimiteurs des mots; un tel caractère au minimum
Retour chariot
Fin de la commande d'exécution
&
Lance la commande en tâche de fond
' " \
Appelés quote caracters; changent la façon dont le shell interprété les caractères spéciaux
< > >> << ` Caractères de redirection d'entrée/sortie
|
* ? [ ] Caractères de substitution de noms de fichiers
[^ ]
$
Valeur d'une variable
; Séparateur de commandes sur une ligne
XI.2­ Contrôle des commandes lancées : &, fg, bg, kill, ^C, ^Z
Avant plan
Lorsqu'une commande est en train de s'exécuter, le shell ne rend pas la main et attend que la commande se termine (correctement ou incorrectement).
Pour interrompre prématurément une commande : taper sur la touche "CTRL" et aussi sur la touche "C" du clavier. Cela tue la commande qui tournait.
On notera l'appui sur ces 2 touches par CTRL+C ou par ^C. Il faudrait éviter d'utiliser la Mamadou SOW 38
Chapitre XI – Pratique du Bourne Shell
commande CTRL+Z en tant que débutant pour ne pas saturer la machine de commandes suspendues.
Pour passer en background une commande lancée en foreground :
1­ Figer la commande en cours
Taper ^Z:
% commande ....
^Z
2­ Indiquer de lexécuter dorénavant en background
%bg
[1] + commande &
Arrière plan
Si l'on veut lancer une commande et récupérer la main tout de suite avant même que la commande ait fini de s'exécuter, il faut lancer la commande par :
% commande &
Le signe & signifie de lancer en tâche de fond, en background la commande. Sans ce signe, la commande est lancée en premier plan, en foreground.
Pour indiquer de l'exécuter dorénavant en foreground
taper la commande fg :
% fg
Liste des processus en arrière plan
Pour connaître la liste des commandes en background :
%jobs
[1] + Running
commande
On peut avoir plusieurs commandes en background. D'où une numérotation des commandes qui sont affichées. Ces numéros peuvent être repris dans les commandes fg et bg ainsi que dans la commande suivante kill.
%jobs
[1] + Running commande %kill %1
Les commandes fg, bg, jobs ne fonctionnent que sur les processus de shell courant.
Mamadou SOW 39
Chapitre XI – Pratique du Bourne Shell
XI.3­ Contrôle de processus ps, kill, top
Syntaxe de la famille
BSD
Les processus associés à son terminal
ps
Tous ses processus ps ­x
Tous les processus de la machine
ps ­ax
Tous les processus de la machine avec les noms de login associés
ps ­aux
Système V
ps
ps ­edf
La commande kill existe sur tous les Unix. Elle sert à communiquer avec les processus :
−
arrêt de processus
−
demande au processus de se reconfigurer
−
passage en mode verbeux du processus
−
etc ...
La commande top affiche une liste des processus toutes les n secondes. Une pression sur la touche h permet de lister les options
Tasks: 83 total, 2 running, 81 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.7% us, 0.0% sy, 0.0% ni, 99.0% id, 0.0% wa, 0.3% hi, 0.0% si
Mem: 1034184k total, 381396k used, 652788k free, 44576k buffers
Swap: 1204832k total, 0k used, 1204832k free, 217912k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4132 sow 16 0 28976 15m 12m R 0.0 1.5 0:01.28 konsole
4222 sow 16 0 2016 1048 816 R 0.0 0.1 0:00.00 top
XI.4­ Quote characters: ', ", \
Caractère Nom Description
'
Single Le shell n'interprète aucun caractère spécial entre deux '
"
Double quote Le shell n'interprète aucun caractère spécial à l'exception de $ ' et \
\
Backslash
Le shell n'interprète pas le caractère spécial suivant le backslash
Exemple
[sow@toutankamon ~]$ echo "$HOME"
/home/sow
[sow@toutankamon ~]$ echo '$HOME'
$HOME
Mamadou SOW 40
Chapitre XI – Pratique du Bourne Shell
[sow@toutankamon ~]$ echo "\$HOME"
$HOME
[sow@toutankamon ~]$ echo '\$HOME'
\$HOME
XI.5­ Caractères de redirection : <, >, >>, <<, ', |, 2>, >&
Toutes les entrées/sorties d'unix sont réalisées au moyen de fichiers. Chaque processus ouvre donc un certain nombre de fichiers. Ces fichiers sont référencés en interne par une table d'entiers dits file descriptors.
Nom File descriptor Description par défaut
Standart input (stdin
)
0
Standart output (stdout)
1
Standart error (stderr)
Clavier
Écran
2
Écran
Les file descriptors existent en langage C et sont profondément ancrés dans le fonctionnement même d'Unix.
Format
Description
Command < fichier
Stdin de command provient de fichier Command > fichier Stdout de command placé dans le fichier dont le contenu précédent est écrasé
Command >> fichier Stdout de command placé en fin de fichier Command << label
Stdin de command provient des lignes de commande suivantes jusqu'à la ligne ne contenant que label
`command`
Remplace 'command' par le résultat de l'exécution de command Command1 | command2
Passe le stdout de command1 comme stdin de command2
Command 2> fichier Redirige stderr de command dans le fichier Command >& file­descriptor Redirige la sortie de command vers un certain fichier descriptor Mamadou SOW 41
Chapitre XI – Pratique du Bourne Shell
XI.6­ Trou noir pour redirection : /dev/null
On peut vouloir se débarasser d'une partie de l'affichage .
La solution est de rediriger vers /dev/null
% application > /dev/null
XI.7­ Désignation des fichiers par leurs noms : *, ? , [ ], [ ^]
Caractère Description
*
0 ou plus caractères
?
1 caractère exactement
[ ]
1 caractère dans l'ensemble entre crochets
[^ ]
1 caractère non énuméré dans l'ensemble entre crochets
1­ [sow@toutankamon exos]$ ls *
ftp­server.png mpd.doc mrtg1.png mrtg2­dns.png mrtg3­apach.png page_acc.png page­web.png proxy6.png samba­server.png
2­ [sow@toutankamon exos]$ ls *.?
ls: *.??: Aucun fichier ou répertoire de ce type
3­ [sow@toutankamon exos]$ ls *.??
ls: *.??: Aucun fichier ou répertoire de ce type
4­ [sow@toutankamon exos]$ ls *.???
ftp­server.png mpd.doc mrtg1.png mrtg2­dns.png mrtg3­apach.png page_acc.png page­web.png proxy6.png samba­server.png
5­ [sow@toutankamon exos]$ ls mrtg*
mrtg1.png mrtg2­dns.png mrtg3­apach.png
6­ [sow@toutankamon exos]$ ls [^mf]*
page_acc.png page­web.png proxy6.png samba­server.png
Mamadou SOW 42
Chapitre XI – Pratique du Bourne Shell
XI.8­ Variables
A un shell est associé un environnement dans le sont affectées des variables
−
Assignation de variable
variable = valeur
Rappel : L'espace est un caractère spécial donc pas d'espaces de part et d'autre du signe
Consultation de variable
$variable ou ${variable}
−
Suppression de variable
unset variable
−
Liste des variables définies dans l'environnement
set
Protection en écrire
readonly variable
readonly
Variables de type numérique
Cela n'existe pas en Bourne shell. Les variables sont de type alphanumériques
−
>> Il est donc impossible de faire :
count = 1
count = $count + 1
>> La bonne façon de faire est d'utiliser la commande Unix expr :
count = 1
count = `expr $count + 1`
Mamadou SOW 43
Chapitre XI – Pratique du Bourne Shell
XI.9­ Variables d'environnement
% foo=3
% sh
La solution consiste à utiliser export (son contraire est unset)
% echo $foo
% exit % FOO=3
% echo $foo
% export FOO
3
% sh
% echo $FOO
3
% exit % echo $FOO
Les variables ne sont pas héritées par défaut par 3
les commades lancées par le shell
NB: Traditionnellement les variables d'environnement sont écrites en lettres majuscules
Attention !!!
% FOO=3
% export FOO
% sh
% echo $FOO
3
% FOO=2 % echo $FOO
2
% exit
% echo $FOO
3
L'environnement est hérité en accès en lecture uniquement.
Mamadou SOW 44
Chapitre XI – Pratique du Bourne Shell
Variable d'environnement standard
Description
HOME
homedirectory
USER
username
SHELL
Path du shell utilisé
PATH
Liste des directories dans lesquels chercher des commandes
TERM
Type du terminal
XI.10­ Variable d'environnement PATH
En bourne Shell, la variable PATH stocke le chemin de commandes
Chemin de commandes == liste de répertoires séparés par des " : "
[sow@toutankamon ~]$ echo $PATH
/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
En fait il faudrait parcourir tous ces répertoires jusqu'à trouver la commande en question
En mode interactif, pour ajouter un répertoire " /chemin/vers/toto" à son PATH :
en début de PATH, faire :
% PATH= /chemin/vers/toto: $PATH
% export PATH
−
­ en fin de PATH, faire :
% PATH=$PATH: /chemin/vers/toto
% export PATH
Pour retirer un répertoire de son PATH
% PATH=/repertoire1 :/repertoire2:/repertoire3:..:/repertoireN
% export PATH
!!! On ne met jamais "." dans son PATH
XI.11­ Variable d'environnement TERM !!! On ne change jamais la valeur mise automatiquement par le système sinon risque un problème avec les éditeurs tel que vi
XI.12­ Quitter un shell : exit ou Ctrl­D
Mamadou SOW 45
Chapitre XII- Programmation en Bourne Shell
Chapitre XII­ Programmation en Bourne Shell
XII.1­ Caractéristiques d'un shell
Caractéristiques :
−
programme écrit en langage shell
−
exécutable :
[sow@toutankamon ~]$ file /usr/bin/mozilla
/usr/bin/mozilla: Bourne shell script text executable
[sow@toutankamon ~]$ ls ­lF /usr/bin/mozilla
­rwxr­xr­x 1 root root 5850 sep 15 2005 /usr/bin/mozilla*
XII.2­ Structure d'un shell
1­ Désignation du shell
La première ligne du shell script commence par " #! " suivi du path du shell utilisé et de ses arguments.
2­ Commentaires
Un commentaire est introduit par le caractères # et se poursuit jusqu'à la fin de la ligne.
Un commentaire peut être placé n'importe où.
La première ligne du script est un commentaire très particulier.
3­ Code
Traditionnellement les lignes de code respectant la syntaxe du shell utilisé
Exemple :
#! /bin/sh
# @ (#) true.sh 1.5
for i in *
do echo $i
done
!!! La première ligne du script doit être celle en #!/bin/sh
Mamadou SOW 46
Chapitre XII- Programmation en Bourne Shell
XII.3­ Passage de paramètre à un shell script : $1 à $9
Variable
Description
$0
Nom du shell
$1 à $9
Les 9 premiers paramètres
$#
Le nombre de paramètres
$*
Tous les paramètres passés du shell script sous la forme de mots individuels séparés
$@
Tous les paramètres passés au shell script
Exemples
Résultats
#!/bin/sh
%./foo 12 3 8
VAL=`expr ${1} \+ ${2} \+ ${3}`
23
echo $VAL
%./foo 5 7
12
%./foo 12
12
L'utilisation de la commande shift
#!/bin/sh
%./wrong a b c d echo $1 $2 $3
./wrong a b c
#!/bin/sh
%./good a b c d echo $1 $2 $3
a b c shift d c d
echo $1 $2 $3
!!!: A chaque emploi de shift, le paramètre $1 précédent est perdu. Du même coup ce paramètre est supprimé de $ * et $@, $# est décrémenté de 1
#!/bin/sh
%./show a b c d
echo "$#; $1 $2 $3; $@"
4;a b c; a b c d
Mamadou SOW 47
Chapitre XII- Programmation en Bourne Shell
Exemples
Résultats
shift
3;b c d; b c d
echo "$#; $1 $2 $3; $@"
2;c d;d c
shift
1;d;d
echo "$#; $1 $2 $3; $@"
0; ;
shift
echo "$#; $1 $2 $3; $@"
shift
echo "$#; $1 $2 $3; $@"
L'emploi de shift nécessite que le shell script ait au moins un paramètre.
XII.3­ Liste des paramètres d'un shell script: $*, $@
$*
Tous les paramètres passés au shell script sous la forme de mots individuels séparés
$@
Tous les paramètres passés au shell scipt
Soit un shell script que l'on appelle ainsi :
./foo "arg1" "deux mots" "arg3"
$* est une liste de 4 éléments
$@ est une liste de 3 éléments
1­"arg1"
2­"deux"
3­" mots"
4­"arg3"
1­"arg1" 2­"deux mots" 3­"arg3"
XII.4­ Commandes internes du shell : builtins, type
Le shell dispose de commandes internes dites aussi builtins : cd, set ...
Ue méthode pour les identifier est d'utiliser la commande du Bourne shell type,
[sow@localhost ~]$ type cd
cd is a shell builtin
[sow@localhost ~]$ type echo
echo is a shell builtin
[sow@localhost ~]$ type make
make is /usr/bin/make
Mamadou SOW 48
Chapitre XII- Programmation en Bourne Shell
XII.5­ Commande d'affichage : echo
C'est commande d'affichage de caractères. Mais c'est aussi une vraie commande [sow@localhost ~]$ ls ­l /bin/echo
­rwxr­xr­x 1 root root 14740 oct 23 17:47 /bin/echo*
La commande echo comprend des séquences semblables à celles de printf()
Séquence
Description
\b
Backspace
\c
Pas de newline
\n
Newline
\r
Carriage return
\t
Tabulation horizontale
\v
Tabulation verticale
\\
Backslash
\nnn
Caractère dont le code octal ASCII est donnée
Ex: #!/bin/sh
#!/bin/sh
echo ­n "Il y a"
echo ­n "Il y a \c"
n=`ls ­l | wc ­l`
n=`ls ­l | wc ­l`
echo " $n fichiers ici"
echo " $n fichiers ici"
XII.5­ Entrée interactive : read
La commande read permet de lire au clavier et placer les mots lus dans une liste de variables
Syntaxe : read variable­list
Le premier mot va dans la première variable, la deuxième mot dans la deuxième variable ... Tous les mots en trop sont stockés dans la dernière variable mentionnée.
Mamadou SOW 49
Chapitre XII- Programmation en Bourne Shell
Exemples
Solutions
%cat foo
%./foo
#!/bin/sh
Unix Ms­DOS Windows 95 WindowsNT
read var1 var2
Premier mot : Unix
echo " Premier mot : $var1"
Le reste : Ms­DOS Windows 95 WindowsNT
echo "Le reste : $var2"
%cat foo
%./foo < /etc/motd
#!/bin/sh
while read line
FreeBSD 2.2.26release
do
Welcomme to FreeBSD
echo
done
XII.6­ Structure if­then­else
Syntaxes
if condition
if condition
if condition
then
then
then
commands1
commands1
commands1
fi
else
elif
commands2
commands2
fi
fi
Le code retour de la commande détermine le test if
Code de valant zéro
Le test if est vrai
Code de retour non nul
Le test if est faux
Mamadou SOW 50
Chapitre XII- Programmation en Bourne Shell
Les autres formes de if : les opérateurs logiques du shell
Et logique :
Ou logique :
command1 && command2
command1 || command2
if command1
if ! command1
then
then
command2
command2
fi
fi
Ex :
Ex :
#!/bin/sh
#!/bin/sh
ls foo && cat foo
ls foo 2> /dev/null || echo "foo n'existe pas"
XII.7­ Structure case
La commande case permet de tester une chaîne de caractères par rapport à un certain nombre d'autres chaînes prédéfinies,
Syntaxe
case value in
pattern) commands1
;;
pattern) commands2
;;
esac
Ex :
#!/bin/sh
echo ­n "Quitter ? ­­>"
read answer
case "$answer" in
Y* | y* ) ANSWER="YES";;
N* | n* ) ANSWER="NO";;
b?? ) ANSWER="MAYBE";;
esac
echo $ANSWER
Mamadou SOW 51
Chapitre XII- Programmation en Bourne Shell
XII.8­ Commande test
La commande test permet de réaliser divers tests
Format
Description
­f fichier True if fichier exists and is a regular file
­s fichier True if fichier exists and has a size greater than zero
­w fichier True if fichier exists and has write flag on
­x fichier True if fichier exists and has execute flag on
Format
Description
­n string
True if length of string is non zero
s1 = s2
True if the string s1 and s2 are identical
s1 != s2
True if the string s1 and s2 are not identical
n1 ­eq n2
True if the string n1 and n2 are algebrically equal n1 ­ne n2
True if the string n1 and n2 are not algebrically equal n1 ­gt n2
True if the string n1 is algebracally greater than the integer n2
n1 ­ge n2
True if the string n1 is algebracally greater or equal than the integer n2
n1 ­lt n2
True if the string n1 is algebracally less than the integer n2
n1 ­le n2
True if the string n1 is algebracally less than or equal the integer n2
Format
Description
! expression
True if expression is false
expression1 ­a expression2
True if both expression1 and expression2 are true
expresion1 ­o expression2
True if both expression1 or expression2 are true
Mamadou SOW 52
Chapitre XII- Programmation en Bourne Shell
La double forme de la commande test
Forme normale
Forme crochet
#!/bin/sh
#!/bin/sh
if test $1 = hello
if [ $1 = hello ]
then then echo hello word
echo hello word
fi
fi
Ex: 1­
#!/bin/sh
if test $1 = hello
then echo hello word
fi
2­
#!/bin/sh
if [ $1 ­gt $2 ­o $1 ­eq $2 ]
then
echo $1 is greater than or equal to $2
fi
3­
#!/bin/sh
[ $# ­eq 0 ] && echo You entered no parameters
XII.8­ Structure de la boucle : while, for, until
Syntaxes :
while condition for variable in list
until condition do
do
do
commands1
commands1
commands1
done
done
done
Mamadou SOW 53
Chapitre XII- Programmation en Bourne Shell
Exemples :
1a­
%./foo a b "deux mots" d e
#!/bin/sh
a
while [ "$1" ]
b
do
deux mots
echo $1
d
shift
e
done
1b­ %./foo
#!/bin/sh
5
compteur=5
4
while [ $compteur ­ge 0 ]
3
do 2
echo $compteur
1
compteur = `expr $compteur – 1`
0
done
3a­
%./foo a b "deux mots" d e
#!/bin/sh
a
until [ "$1" = " "]
b
do
deux mots
echo $1
d
shift
e
done
3b­
,/foo #!/bin/sh
5
compteur=5
4
until [ $compteur ­lt 0 ]
3
do
2
echo $compteur
1
compteur=`expr $compteur ­ 1` 0
done
Mamadou SOW 54
Chapitre XII- Programmation en Bourne Shell
XII.9­ Contrôle du flux : break, continue
Deux commandes du shell permettent de contrôler le flux d'exécution du code :
­ break ou break n
Cela permet de sortir prématurément d'un niveau de boucle ou <n> niveaux de boucles
#!/bin/sh
compteur=5
while :
do [ $compteur ­lt 0 ] && break
echo $compteur
compteur=`expr $compteur ­1`
done
On notera l'expression while :. le caractères ":" correspond à une instruction builtin du shell. Le code de retour est toujours 0.
­ continue ou continue n
Cela permet de retourner à la boucle sans finir le code de la boucle.
#!/bin/sh
for i in "$@"
do
[ ­d $i ] && continue
echo "$i n'est pas un directory"
done
Mamadou SOW 55
Chapitre XII- Programmation en Bourne Shell
XII.9­ Redirection dans les boucles
On peut réaliser des redirections au niveau des commandes if, while, until du shell et pas uniquement au niveau des commandes Unix.
1­
2a­
#!/bin/sh
for file in "$@"
if true
do then
read line1
while read world1 rest_of_line
read line2
do
read line3
fi < $1
[ "$word1" = "Subject:" ] && \
{ echo " $file $word1 $rest_of_line " ; break;}
done < file
done
2b­ #!/bin/sh
compteur=0
while read BUFFER
do compteur= `expr $compteur +1`
echo "$compteur $BUFFER"
done < $1
3­
#!/bin/sh
until [ "$world1" = ABORT ]
do
read world1 rest
done < $1
XII.10­ Fonction shell
On peut écrire des fonctions au sein d'un shell script avec /bin/sh
#!/bin/sh
fonction ()
{
commands
}
Mamadou SOW 56
Chapitre XII- Programmation en Bourne Shell
Particularités :
In n'y a qu'un environnement de #!/bin/sh
variables au sein d'un shell foobar()
script, Une variable créée au {
sein d'une fonction peut donc a=33; echo "b=$b";
}
être accédée en dehors du corps echo "a=$a"
en dehors du corps du corps de b=2
cette fonction, Il n' y a pas de foobar
notion de variable locale en echo "a=$a"
général,
%./foo
a =
b=2
a=33
Code de retour d'une fonction
La commande return renvoie une valeur de retour pour la fonction shell
#!/bin/sh
Le code de retour d'une fonction shell suit la même convention que pour les commandes
foobar()
{
return 1
}
code de retour nul
if foobar
then
echo Test positif
else
echo Test negatif
fi
code de retour
la fonction s'est exécutée correctement
la fonction a rencontré une condition logique
d'erreur
XII.11­ Code de retour d'un shell script : exit
XII.12­ Debugging d'un shell : set ­x
%cat foo
%./foo
+ echo sow
#!/bin/sh
sow
set ­x
echo $USER
Mamadou SOW 57
Chapitre XIII – Panorama de fichiers de configuration
Chapitre XIII­ Panorama de fichiers de configuration
Lors de la création des comptes, il ya des fichiers de configuration à déposer chez l'utilisateur.
Lesquels ? que font­ils ? Quels utilitaires les utilisent­ils ?
XIII.1­ Shell de login
La commande login lance un shell de login
On peut forcer le mode shell de login
−
avec bash : bash –login
−
avec tcsh : tcsh ­l
−
avec xterm : xterm ­ls ou xterm ­xrm '*loginShell: true'
XIII.2­ Shell interactif – Shell non interactif
Un shell est interactif si les commandes sont saisies sur un terminal.
Un shell est non interactif si les commandes sont lues dans un fichier.
si le shell est non interactif, on n'exécutera pas les fichiers de commandes interactives et le shell sera initialisé plus simplement,
−
avec bash : bash –i
−
avec tcsh : tcsh ­i
−
avec sh : sh ­i
−
avec csh : csh ­i
XIII.3­ Fichiers d'initialisation pour le bash
En mode shell login interactif (sauf contraire –noprofile) :
−
on exécute /etc/profile
−
on exécute le premier et seulement le premier fichier existant parmi
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
Mamadou SOW 58
Chapitre XIII – Panorama de fichiers de configuration
En mode shell non interactif mais avec l'option –login (sauf option contraire –noprofile) :
1. on exécute /etc/profile
2. on exécute le premier et seulement le premier fichier existant parmi
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
En mode shell non de login interactif :
on exécute $HOME/.bashrc
Quand un shell login se termine
on exécute $HOME/.bash_logout
XIII.4­ Fichiers d'initialisation pour sh
En mode shell login 1. on exécute /etc/profile
2. on exécute $HOME/.profile
XIII.5­ Fichiers d'initialisation pour tcsh
En mode shell login 1. on exécute /etc/csh.cshrc
2. on exécute /etc/csh.login
3. on exécute $HOME/.tcshrc (ou $HOME/.cshrc)
4. on exécute $HOME/.history
5. on exécute $HOME/.login
6. on exécute $HOME/.cshdirs
En mode shell non delogin ou en mode non interactif 1. on exécute /etc/csh.cshrc
2. on exécute $HOME/.tcshrc (ou $HOME/.cshrc)
Quand un shell de login se termine
1. on exécute /etc/csh.logout
2. on exécute $HOME/.logout
Mamadou SOW 59
Chapitre XIII – Panorama de fichiers de configuration
XIII.6­ Fichiers d'initialisation pour csh
En mode shell login 1. on exécute /etc/.login
2. on exécute $HOME/.cshrc
3. on exécute $HOME/.login
5. on exécute $HOME/.cshdirs
Quand un shell de login se termine
on exécute $HOME/.logout
XIII.7­ Fichiers d'initialisation pour le courrier électronique Le fichier $HOME/.forward sert au renvoi du courrier électronique vers une autre adresse. On y précise les adresses vers lesquelles renvoyer.
Le fichier $HOME/.mailrc sert à configurer l'utilitaire de base Mail du courrier. On peut y préciser des alias de noms
XIII.8­ Fichiers de configuration pour l'environnement graphique X
Pour l'environnement graphique de base sous Unix fichier $HOME/.xsession : script de démarrage donnant la applications à lancer par défaut sous
−
l'environnement graphique
fichier $HOME/.xinitrc : le mieux est que ce fichier soit un lien symbolique vers le fichier $HOME/.xsession; si ce n'est pas le cas effacer le fichier et faire le lien
−
fichier $HOME/.Xresources : pseudo base de registres personnels pour le système de fenêtrage
−
fichier $HOME/.Xdefaults : le mieux est que ce fichier soit un lien symbolique vers le fichier $HOME/.Xresources; si ce n'est pas le cas effacer le fichier et faire le lien
−
Les environnements graphiques CDE, KDE, GNOME utilisent plusieurs fichiers de configuration regroupés dans plusieurs répertoires. En fait, on ne modifie pas manuellement ces fichiers. On passe par les outils graphiques de configuration qui se chargent de modifier les fichiers ad­hoc.
Mamadou SOW 60
Chapitre XIII – Panorama de fichiers de configuration
XIII.9­ Régler son PATH
Hypothèse 1 : on est sous Bourne Shell ou sous BASH
Hypothèse 2 : on se rappelle le passage « variable d'environnement PATH vu dans le chapitre Pratique du Bourne Shell » Objectif : on veut modifier son PATH de façon permante.
Solution :
−
On utilise le fichier « $HOME/.profile » avec un lien symbolique « £HOME/.bashrc » dessus.
On règle ainsi (sh ou bash)
cas du shell interactif de login
cas du shell interactif non de login
cas du shell non interactif
On ajoute dans le fichier « $HOME/.profile »
PATH=/repertoire1:/repertoire2:/....:/repertoireN
export PATH
ou PATH=$PATH:/chemin/vers/toto
export PATH
Mamadou SOW 61
Chapitre XIV- Langages de programmation
Chapitre XIV­ Langages de programmation évolués
XIV.1– Langage awk
C'est un utilitaire recherchant des motifs dans un fichier et réalisant des opérations sur des lignes répondant aux critères. C'est plus généralement un mini langage de programmation à la syntaxe proche du langage C. Il est très souvent utilisé des filtres sur fichiers.
Manuel disponible :
ftp://ftp.imag.fr/pub/DOC.UNIX/AWK/awk.pdf
XIV.2­ Langage perl
cf : http://www.cpan.org
Langage de script :
#!/usr/bin/perl ­wall
print "Hello world "
#exemple de "Hello world"
Comme pour le langage C, une instruction se termine toujours par une virgule ;
XIV.3­ Langage python
cf : http://www.python.org
XIV.4­ Langage SQL
SQL = permet :
−
la définition et la modification du schéma de la base de données
−
la manipulation des données
−
l'interrogation des données
−
le contrôle des accès à la base
Mamadou SOW 62
Chapitre XIV- Langages de programmation
XIV.5­ Langage HTML
Fonctionnement informatique classique : modèle client­serveur
Serveur = logiciel serveur web (apache, SII, etc.)
Client = navigateur web (firefox, netscape)
XIV.6­ Les Bases de données
1­ Oracle
cf : http://www.oracle.com
C'est la référence en base de données
2­ MySql
Logiciel libre. C'est la référence en bases de données dans le monde linux. cf : http://www.mysql.com
3­ PostgreSQL
Logiciel libre. Moins répandu que MySql
cf : http://www.postgresql.com
Mamadou SOW 63
Chapitre XV- Système de multi fenêtrage : X
Chapitre XV­ Système de multi fenêtrage : X
Système de fenêtrage (window system) : ensemble de programmes, de bibliothèques de programmation réalisant une interface homme/machine bâtie sur l'utilisation de divers équipements:
−
clavier
−
souris
−
écran graphique
−
autres périphériques (espace, plaquette graphique, ...)
L'écran tente de réaliser un modèle de bureau. L'idée vient des travaux de Xerox, repris par Apple, repris par le projet Athena du MIT. Pour Unix, le système de multifenêtrage est un système appelé X ou X Window System ou X11.
Sites de distribution :
www.x.org, ftp.x.org, ftp.lip6.fr/pub/X11
Newsgroups :
comp.windows.x.
comp.windows.x.announce
comp.windows.xapps
comp.windows.x.i386unix
comp.windows.x.intrinsics
XV.1­ Caractéristiques de X
C'est un peu plus qu'un système de multifenêtrage : il est repari. L'interface homme permet de travailler sur plusieurs interface à la fois.
X est constitué des parties suivantes :
−
serveur X
C'est un programmes gérant le matériel (le plus souvent le triplet écran­clavier­souris) et les autres composants logicielles : applications graphiques
−
des clients X
Mamadou SOW 64
Chapitre XV- Système de multi fenêtrage : X
Ce sont des applications utilisant un serveur X. Deux applications X essentielles : émulation graphique d'un terminal xterm, gestionnaire de fenêtres
Ce sont les clients qui réalisent l'interface homme / machine de X (contrairement à Windows, à Mac Os où l'interface est inégrée au système d'exploitation).
−
le protocole X
Il fait communiquer les clients et le serveur.
−
des bibliothèques graphiques pour X
Elles réalisent le protocole et l'interface des clients.
Le clavier peut être configurer si nécessaire par "xmodmap". L'écran est de type bitmap (affichage point).
XV.2­ DISPLAY
Il s'agit d'un triplet écran – clavier – souris. Un DISPLAY a un nom et une adresse. L'adresse est une IP. Son nom ets de type "toutankamon:0.0".
« 0.0 » désigne l'écran 0 de la machine. X permet de gérer des machines avec plusieurs (on dit multicéphales).
Les ressources par défaut pour les applications sont enregistrées dans des fichiers. [sow@localhost app­defaults]$ pwd
/usr/X11R6/lib/X11/app­defaults
[sow@localhost app­defaults]$ ls ­l
total 16
­rw­r­­r­­ 1 root root 2109 sep 1 14:50 UXTerm
­rw­r­­r­­ 1 root root 509 sep 20 13:19 XPlaymidi
­rw­r­­r­­ 1 root root 6995 sep 1 14:50 XTerm
­rw­r­­r­­ 1 root root 4232 sep 1 14:50 Xterm­color
XV.3­ Spécification des options aux clients X
Il y a des options standart pour la plupart des clients (tout au moins ceux reposant sur l'emploi de la bibliothèque Xt).
−
couleur des caractères :
"­fg couleur"
Mamadou SOW 65
Chapitre XV- Système de multi fenêtrage : X
couleur de fond des fenêtres :
"­bg couleur"
caractères :
"­fn font"
XV.4­ Personnalisation, Ressources X, xrdb, $HOME/.Xresources
Tous les clients sont personnalisables au moyen de ressources X.
Analogie avec la base de registre Windows
Il existe 2 types de ressources
−
standart
l'héritage de la bibliothèque de programmation Xt intrinsics très utilisée. Spécification des fontes, géométrie et ...
−
particulières à l'application
comme xterm, la possibilité d'afficher l'ascenseur ou de spécifier le nombre de lignes à garder à l'affichage
En ce qui concerne les ressources personnalisées par l'utilisateur, le fichier chez l'utilisateur les contenant est $HOME/.Xresources
On trouve aussi $HOME/.Xdefaults
La commande xrdb permet de manipuler les ressources chargés dans le serveur :
%xrdb ­query > $HOME/ressources
%vi $HOME/ressources
%xrdb ­load %HOME/ressources
XV.5­ Configuration de la session X, $HOME/.xsesion, FAILSAFE
Sur une station avec une mise d'accueil graphique, le script $HOME/.xsession est lancé lors de la connexion et il configure l'environnement graphique de l'utilisateur.
La durée de vie de la session sous X est celle du script $HOME/.xsession.
Les erreurs sont écrits dans $HOME/.xsession­errors.
En cas d'erreur grave dans $HOME/.xsession empêchant le démarrage de la session X, utiliser le mode Failsafe disponible via le menu de la fenêtre d'accueil de KDE ou GNOME
1­ entrer le votre login 2­ entrer le mot et valider par F1 non par la touche Retour
Mamadou SOW 66
Chapitre XV- Système de multi fenêtrage : X
Il apparaît al ors un simple xterm sans window manager à utiliser pour corriger les erreurs indiquées dans le fichier $HOME/.xsession­errors.
XV.6­ Autorisation d'accès, xhost, MAGIC­COOKIE, xauth, ssh
La commande xhost permet de gérer de façon basique les accès au serveur :
%xhost
access control enabled, only authorized clients can connect
%xhost + peterpan
peterpan being added to access control list
%xhost
access control enabled, only authorized clients can connect
INET : peterpan
%xhost – peterpan
peterpan being removed from access control list
Qui peut connaître le cookie ?
Celui qui peut accéder au contenu du fichier $HOME/.Xauthority. La sécurité de X repose dans ce cas sur la sécurité de filesystem
[sow@localhost ~]$ ls ­l /home/sow/.Xauthority
­rw­­­­­­­ 1 sow sow 132 jan 6 11:51 /home/sow/.Xauthority
Défauts du mécanisme du MAGIC­COOKIE :
1­ Le cookie transite en clair sur le réseau et peut donc être récupéré par un mouchard
=> Pas de réponse simple à ce problème
2­ Que faire si $HOME/.Xauthority n'est pas disponible sur la machine distante ?
=> Utiliser la commande xauth
%xauth extract ­ $DISPLAY | rsh otherhost ­l otherusr xauth merge ­
Mamadou SOW 67