Académique Documents
Professionnel Documents
Culture Documents
3
Copyright c 2003 by Patrick Percot (ppercot@free.fr)
13 f vrier 2003 e
La derni` re version de ce document peut etre trouv e sur http ://ppercot.free.fr. e e La permission est donn es de copier, distribuer, et/ou modier ce document selon e les termes de la Licence Publique de Documentation GNU (GNU Free Documentation License), Version 1.1 ou toute version ult rieure publi e par la Free Software Foundae e tion ; avec comme sections invariantes (Invariant Sections) le chapitre 8 et le colophon A.11, avec comme texte de page de garde (Front-Cover Texts) Utilisation de la ligne de commande avec bash sous GNU/Linux Une copie de la licence est incluse a lappendice A intitul GNU Free Documen` e tation License.
2 Linterpr teur de commandes e 2.1 La commande echo(1) . . . . . . . . . . . . 2.1.1 Afchage de texte brut . . . . . . . . . 2.1.2 Afchage de variables denvironnement 2.1.3 Bloquer linterpolation . . . . . . . . . 2.1.4 Listage des chiers . . . . . . . . . . . 2.2 Les variables denvironnement . . . . . . . . . 2.2.1 Exportation de variables . . . . . . . . 2.2.2 Les commandes set et env . . . . . . 2.3 Evaluation interm diaire dune commande . . . e
3 Manipulation de chiers 3.1 La structure des r pertoires . . . . . . . . . . . . . . . . . . . e 3.1.1 Description du syst` me de chiers . . . . . . . . . . . e 3.2 Cr ation de r pertoires et d placement dans larborescence . . e e e 3.3 La redirection des entr es et des sorties . . . . . . . . . . . . e 3.3.1 Redirection de la sortie simple . . . . . . . . . . . . . 3.3.2 Redirection de la sortie en ajout . . . . . . . . . . . . 3.3.3 Redirection de lentr e . . . . . . . . . . . . . . . . . e 3.3.4 Redirection de la sortie derreur vers la sortie standard 3.4 Les canaux de communications . . . . . . . . . . . . . . . . . 3.5 Cr ation de liens . . . . . . . . . . . . . . . . . . . . . . . . e 3.6 Suppression de liens symboliques . . . . . . . . . . . . . . . 3.7 Syst` me de permissions . . . . . . . . . . . . . . . . . . . . . e 3.7.1 Les permissions . . . . . . . . . . . . . . . . . . . . . 3.7.2 Modication des permissions . . . . . . . . . . . . .
3.8 3.9
3.7.3 Choisir les permissions par d faut . . . . . . . . . e 3.7.4 Modier le propri taire et/ou le groupe dun chier e D terminer le type de chier . . . . . . . . . . . . . . . . e Copie de chiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
31 31 31 32 33 33 33 34 34 36 36 37 37 38 39 39 39 40 41 41 42 42 42 43 43 44 45 45 46 46 46 46 49 49 50 51 51 53
4 Gestion des utilisateurs 4.1 Les chiers dutilisateurs et de groupes . 4.2 Cr er et supprimer des utilisateurs . . . e 4.3 Cr er et supprimer des groupes . . . . . e 4.4 Ajouter un utilisateur dans un groupe . .
5 Contr le des processus o 5.1 Visualiser les processus en cours . . . . . . . . . . . 5.2 Lancer un processus en arri` re-plan . . . . . . . . . e 5.3 Interrompre un processus . . . . . . . . . . . . . . . 5.4 Stopper un processus et le r activer . . . . . . . . . . e 5.5 Envoyer un signal a tous les processus de m me nom ` e 5.6 Envoyer le signal HUP a un daemon . . . . . . . . . ` 5.7 Lancer une commande avec nohup(1) . . . . . . . 5.8 Ex cuter une commande avec nice(1) . . . . . . . e
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
6 Programmation du shell 6.1 Les param` tres dun programme shell . . . . . . . . . . . . . . e 6.2 La commande read(bash(1)) . . . . . . . . . . . . . . . . . 6.3 if(bash(1)) . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4 La boucle until(bash(1)) . . . . . . . . . . . . . . . . . . 6.5 La boucle for(bash(1)) . . . . . . . . . . . . . . . . . . . . 6.6 La structure de choix case(bash(1)) . . . . . . . . . . . . . 6.7 Sortie de boucle . . . . . . . . . . . . . . . . . . . . . . . . . . 6.8 Renommer des chiers . . . . . . . . . . . . . . . . . . . . . . 6.9 Convertir des noms de chier des minuscules vers les majuscules 6.10 Exemples de programmes . . . . . . . . . . . . . . . . . . . . . 6.10.1 Vider le spool de exim(1) . . . . . . . . . . . . . . . . 6.10.2 G n rer de beaux chiers PDF . . . . . . . . . . . . . . e e 6.10.3 Extraire des pistes audio et les convertir en Ogg Vorbis . 7 Commandes utiles 7.1 Simplier la saisie de commandes . . . . . . . 7.2 Utiliser la commande ls(1) en couleur . . . . 7.3 Archiver des donn es . . . . . . . . . . . . . . e 7.3.1 Comparer des chiers ou des r pertoires e 8 Contributions A GNU Free Documentation License A.1 PREAMBLE . . . . . . . . . . . . . . . A.2 APPLICABILITY AND DEFINITIONS A.3 VERBATIM COPYING . . . . . . . . . A.4 COPYING IN QUANTITY . . . . . . . A.5 MODIFICATIONS . . . . . . . . . . . . A.6 COMBINING DOCUMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
54 54 54 55 56 56 58
COLLECTIONS OF DOCUMENTS . . . . . . . . AGGREGATION WITH INDEPENDENT WORKS TRANSLATION . . . . . . . . . . . . . . . . . . . TERMINATION . . . . . . . . . . . . . . . . . . . FUTURE REVISIONS OF THIS LICENSE . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
58 58 59 59 59
Introduction
Trop souvent, les utilisateurs habitu s aux interfaces graphiques sont d sempar s e e e lorsquil sagit de r aliser une op ration simple en mode console (ou mode texte). e e Connatre lutilisation dun interpr teur de commandes comme bash(1) 1 , est pour e tant essentiel. En effet, la conguration dun syst` me Unix ou GNU/Linux se fait e par le biais de chiers ne contenant que du texte, et savoir manipuler directement ces chiers, ou en extraire des informations est indispensable pour la maintenance du syst` me. e Lorsque linterface graphique est d pass e, cest-` -dire, lorsque ce que vous soue e a haitez faire na pas et programm au pr alable, que la bote de dialogue qui vous e e e permet dacc der a linformation dont vous avez besoin nexiste pas encore, ou nexise ` tera jamais, vous naurez plus que la ressource de r aliser les traitements en mode e console. Vous vous apercevrez alors de toute la puissance qui est entre vos mains, et vous constaterez que cette puissance ne vous est accessible quen mode console.
Avertissement
Comme toute documentation technique, ce document peut contenir des erreurs. Bien quayant essay de tester toutes les commandes qui sont donn es en exemple, e e il est toujours possible que ces commandes ne produisent pas exactement le m me e r sultat dans tous les environnements. Si tel etait le cas, je vous serais reconnaissant de e men informer (ppercot@free.fr) an que je corrige ces erreurs dans ce document.
1 Vous rencontrez souvent cette notation, elle correspond au nom de la commande et au num ro de section e de la page de manuel (cf. Section 1.3.1)
Chapitre 1
Les d buts e
1.1 Passer en mode console
Lensemble des op rations qui seront d crites ult rieurement, et lensemble des e e e exercices n cessitent de disposer dune console. e Pour passer en mode console, plusieurs options se pr sentent a vous : e ` Terminal X Cliquez sur une des ic nes permettent de lancer un terminal X o
Shell Emacs(1) Sous X ?Emacs2 , lancez la commande M-x shell. A noter que vous b n e e ciez des facilit s d dition dX ?Emacs, et que vous pourrez sauvegarder tous e e vos exercices dans un chier, mais que vous ne pourrez pas utiliser certaines commandes comme man(1) ou less(1) qui n cessitent un terminal. e
Console virtuelle Utilisez (avec Gnome sous Debian) la s quence Ctl-Alt-Fn, avec 1 e 1 pour passer sur une console virtuelle, et authentiez-vous.
6,
param`tres e est une liste de param` tres. Cette liste est optionnelle. e
Pour les noms poss dant des entr es multiples ; essayez par exemple : e e $ man -f printf man -f est equivalent a la commande whatis(1). ` Vous pouvez dans ce cas etre oblig dindiquer la section : e $ man 3 printf parce quil existe une page de manuel de m me nom dans une des sections pr c dentes. e e e Pour rechercher les pages de manuel qui mentionnent une information, utilisez : $ man -k printf qui est un equivalent de la commande apropos(1). Pour rechercher tous les chiers relatifs a une commande, utilisez whereis(1) : ` $ whereis printf
1.4.1 Emacs
emacs(1)Emacs est plus quun editeur, car il est enti` rement programmable avec e le langage Emacs Lisp . Mais nous naborderons que laspect editeur. Il est parti culi` rement puissant, mais aussi tr` s gourmand en m moire et en CPU. e e e Pour invoquer Emacs, il suft de lancer la commande emacs suivie eventuellement du nom des chiers que lon souhaite editer. Les s quences de touches Emacs sont pr x es par des caract` res de contr le (C- e e e e o signie Control, M- signie Meta ou Alt, S- signie Shift. Il est parfois n cessaire e
3 Completion 4 selon
en anglais. la terminologie X ?Emacs, S- signie Shift, C- signie Control, M- signie Meta (ou Alt). 5 Tutorial en anglais. 6 Pattern en anglais.
dutiliser la touche ESC au lieu de la touche Alt, dans ce cas, la touche ESC pr c` de le caract` re de la commande. Par exemple, M-w peut etre obtenu en appuyant e e e simultan ment sur Alt et w, mais aussi en appuyant successivement ESC et w. e Les tableaux Les commandes indispensables dEmacs (1.1) et Les commandes d dition dEmacs (1.2) reprennent les s quences les plus importantes. e e TAB . 1.1 Les commandes indispensables dEmacs C-x C-c C-x C-f C-x C-s C-x s C-h t C-h i C-h k C-h f C-h a C-h v Quitter Emacs Ouvrir un chier Sauvegarder les modications du buffer courant Sauvegarder tous les buffers modi s e D marrer la formation assist e e e D marrer laide (info) e D crire la s quence de touches e e Obtenir de laide sur la fonction Obtenir de laide sur les fonctions correspondant a la re` gexp Obtenir de laide sur la variable
TAB . 1.2 Les commandes d dition dEmacs e C- ou C-) C-x b C-x C-b C-x 2 C-x 3 C-x 0 C-x o C-SPACE M-w C-w M-d M-BACKSPACE C-k C-y M-y C-t M-t C-x C-t C-s C-r M-% Annuler la modication Changer de buffer Ouvrir la fen tre de s lection de buffer e e Diviser horizontalement l cran en deux fen tres e e Diviser verticalement l cran en deux fen tres e e Garder cette fen tre (ferme la derni` re fen tre ouverte e e e Changer de fen tre e Poser le marqueur Copier le texte entre le point et le marqueur Couper le texte entre le point et le marqueur Couper le mot a droite du point ` Couper le mot a gauche du point ` Couper la ligne a droite du point ` Coller le texte pr c demment copi ou coup e e e e Coller le texte suivant du kill ring7 Transposer le caract` re au point courant et le caract` re e e pr c dent e e Transposer le mot apr` s le point et celui qui pr c` de e e e Transposer la ligne o` est le point et la pr c dente u e e Recherche incr mentielle en avant e Recherche incr mentielle en arri` re e e Remplacer du texte
De nombreuses autres fonctionnalit s sont disponibles, nh sitez pas a consulter e e ` toutes les aides disponibles 1.1.
1.4.2 vi
vi(1) ou vim ou gvim est un editeur beaucoup plus l ger quEmacs. Il na e cependant pas grand chose a envier a Emacs pour ce qui concerne la puissance 8 . ` ` Lutilisation de vi est assez inhabituelle, car il utilise un mode commande dans lequel les caract` res frapp s ex cutent des commandes, et un mode saisie o` les cae e e u ract` res sont ins r s dans le buffer. e ee vi est invoqu en lancant la commande vi suivi eventuellement du nom des e chiers a editer. ` vimtutor est le cours dinstructions pour vi. Les fonctionnalit s les plus importantes sont regroup es dans ce tableau (1.3). e e TAB . 1.3 Les principales commandes de vi :help :q :q :q ! :qa ! :w ESC i o O u Y p P x X dw cw dd / ? n N :vi :next :prev Obtenir de laide Quitter vi (le chier courant) Quitter vi (ferme tous les chiers) Quitter vi sans conrmation (abandonne les modications) Quitter vi sans conrmation (abandonne les modications de tous les chiers) Enregistrer les modications Quitter le mode insertion Passer en mode insertion a ce point ` Passer en mode insertion apr` s la ligne courante e Passer en mode insertion avant la ligne courante Annule la modication Copie la ligne courante Colle la ligne copi e apr` s la ligne courante e e Colle la ligne copi e avant la ligne courante e Supprime le caract` re a droite e ` Supprime le caract` re a gauche e ` D truit le mot a droite e ` Change le mot a droite ` Supprime la ligne Recherche le texte en avant Recherche le texte en arri` re e Poursuit la recherche en avant Poursuit la recherche en arri` re e Ouvrir un chier a la place du chier courant ` Passer au chier suivant Passer au chier pr c dent e e
8 Bien que nous nabordions pas ici, que ce soit pour Emacs ou vi, les fonctionnalit s qui font de ces deux e editeurs des outils hors du commun (notamment, lutilisation des expressions r guli` res). e e
Chapitre 2
$ $ echo $HOME_SWEET_HOME $ La commande echo(1) nafche rien, car la variable HOME SWEET HOME nest pas d nie. e Mais si lon cr e cette variable : e $ HOME_SWEET_HOME=Breizh $ echo $HOME_SWEET_HOME Breizh $
Cette fois, rien a voir avec linterpolation de variables, cest a la globalisation, ` ` appel e aussi expansion que nous avons affaire. La globalisation permet de d nir e e un ensemble de noms de chiers par d nition, a charge pour linterpr teur de come ` e mande de nous afcher cet ensemble de chiers par extension. La globalisation fait appel a deux caract` res joker * et ? , ainsi qu` une classe de caract` res, par exemple ` e a e [12345] est equivalent a [1-5] . ` * correspond a nimporte quelle suite de caract` res, y compris la chane vide. ` e ? correspond a un et un seul caract` re, quel quil soit. ` e [xyz] correspond a lun des caract` res cit s a lint rieur des crochets. ` e e ` e [x-z] correspond a lun des caract` res compris dans lintervalle. ` e [ !xyz] correspond si aucun des caract` res cit s a lint rieur des crochets nest trouv (le e e ` e e e` caract` re peut etre utilis a la place de ! ). e [ :class :] o` class est une des classes d nies dans le standard POSIX.2 ( alnum alpha u e ascii blank cntrl digit graph lower print punct space upper xdigit ) Quelques petits exemples : $ echo * abc1.c abc1.cpp abc1.h abc1.hxx ABC1.c ABC1.cpp ABC1.h ABC1.hxx $ echo *h abc1.h ABC1.h $ echo *.? abc1.c abc1.h ABC1.c ABC1.h $ echo [a-z]* abc1.c ABC1.c abc1.cpp ABC1.cpp abc1.h ABC1.h abc1.hxx ABC1.hxx $ echo [A-Z]* ABC1.c ABC1.cpp ABC1.h ABC1.hxx $ echo [[:lower:]]* abc1.c abc1.cpp abc1.h abc1.hxx $ echo [[:lower:][:upper:]]* abc1.c ABC1.c abc1.cpp ABC1.cpp abc1.h ABC1.h abc1.hxx ABC1.hxx $ echo *[px][px] abc1.cpp abc1.hxx ABC1.cpp ABC1.hxx Vous constaterez une anomalie en ligne 4 ( echo [a-z]* ) ne retourne pas le r sultat attendu. Si cela ne sest pas produit sur votre machine, cest parce quune e variable de bash(1) nest pas positionn e, il sagit de nocaseglob(bash(1)). Elle e indique que lon ne tient pas compte de la casse. Si lon veut tenir compte de la casse, et ne reconnatre que des caract` res minuscules, il faut utiliser les classes pr d nies e e e (ne pas oublier les crochets autour du symbole repr sentant la classe), ou modier cette e variable a laide de la commande interne shopt(bash(1)). `
$ shopt -u $ shopt [...] nocaseglob [...] $ shopt -s $ shopt [...] nocaseglob [...]
nocaseglob
off nocaseglob
on
Consultez laide de bash(1) et recherchez extglob(bash(1)) si vous souhaitez utiliser des formats de description plus complexes. Vous devrez utiliser shopt(bash(1)) pour positionner extglob(bash(1)) an dutiliser ces formats. Consultez aussi glob(7), prenez garde cette fois a taper man 7 glob sinon vous aurez la docu` mentation de la fonction glob(3).
La variable SHLVL indique le niveau du shell. Le niveau 1 indique que le shell est le ls direct du processus init . A chaque nouveau shell lanc , le niveau est incr ment e e e de 1. Poursuivons lexp rience avec les variables : e $ HELLO=hello $ echo $HELLO hello $ bash $ echo $HELLO
$ exit $ echo $HELLO hello $ La variable HELLO cr ee dans le premier shell nexiste pas dans le shell ls, car la e variable na pas et export e, ce qui se fait avec la commande interne export(bash(1)). e e Recommencons : $ export HELLO=hello $ echo $HELLO hello $ bash $ echo $HELLO hello $ exit $ echo $HELLO hello $ Cette fois, la variable existe dans les deux shells.
$ echo $SHLVL 2 $ exit $ echo $SHLVL 1 $ ls -l cat my-preferred-shell -rwxr-xr-x 1 root root 511400 May 30 2002 /bin/bash Dans le premier cas, cat my-preferred-shell est tout dabord evalu , puis, e comme les backticks sont au d but de la ligne de commande, son r sultat est utilis e e e comme nom de commande a ex cuter. ` e e Dans le second cas, cat my-preferred-shell est tout dabord evalu , puis, comme les backticks ne sont pas au d but de la ligne de commande, son r sultat est e e utilis comme param` tre de la commande ls . e e Le texte contenu entre les backticks est evalu , puis son r sultat est incorpor dans e e e la ligne de commande a lemplacement m me o` se trouvaient les backticks. La com` e u mande ainsi form e est ex cut e. e e e
Chapitre 3
Manipulation de chiers
Dans ce chapitre, nous allons etudier la structure des r pertoires, la cr ation de e e chiers, de liens physiques et dynamiques, ainsi que la redirection des entr es et des e sorties, les canaux de communications (pipes) et le syst` me des permissions. e
Sur Debian, vous pouvez trouver une source dinformations sur le FHS dans /usr/share/doc/debian-policy/fh
R pertoires de base des utilisateurs (home) (optionnel) e Biblioth` ques partag es essentielles et modules du noyau e e Point de montage des syst` mes de chiers mont s temporairement e e Paquetages des logiciels applicatifs ajout s au syst` me e e R pertoire de base de lutilisateur root (optionnel) e 18
/sbin /tmp
Binaires syst` mes (autrefois dans /etc) e Fichiers temporaires Syst` me X Window, Version 11 Release 6 e Principalement commandes utilisateurs R pertoire pour les chiers include standards e Hi rarchie locale au syst` me e e Binaires syst` mes standard non essentiels e Donn es ind pendantes de larchitecture du syst` me e e e Listes de mots Pages de manuel Diverses donn es ind pendantes de larchitecture du syst` me e e e Biblioth` ques pour la programmation et paquetages e
Code source Registres (logs) de comptabilit des processus (si support ) e e Donn es de cache des applications e Polices g n r es localement e ee Pages de manuel format es localement (optionnel) e
Vidages des crash syst` mes (si support ) e e Donn es variables des jeux e Informations d tat e Fichiers de backup et d tat e Donn es diverses e
Fichiers de verrous Fichiers et r pertoires registres (logs) e Fichiers de bote a lettre des utilisateurs ` Donn es variables pour /opt e Donn es variables des applications en cours dex cution e e Donn es de spool dapplication e Files dattente du daemon dimpression Fichiers rwhod
Fichiers temporaires pr serv s entre les red marrages e e e Fichiers de la base de donn es NIS (Network Information Service) e
Sp cicit s de Linux : e e /dev /proc /sbin Fichiers de p riph riques et chiers sp ciaux e e e Syst` me de chier virtuel des informations du noyau e Binaires syst` mes essentiels e Fichiers dent te inclus par les programmes C e Donn es de spool de cron(8) et at(1) e Code source
/usr/include /usr/src
/var/spool/cron
$ mkdir essai $ cd essai $ pwd /home/patrick/first-step/essai $ cd .. $ pwd /home/patrick/first-step $ rmdir essai $ cd essai bash: cd: essai: No such file or directory $ Nous venons de voir une autre nouveaut ( cd .. ). .. repr sente le r pertoire e e e parent du r pertoire courant. cd .. permet donc de redescendre (ou de remonter si e lon consid` re que la racine est en haut) dun niveau dans larborescence. e
Dans le second cas ( echo coucou > second-file ), la commande echo devrait afcher coucou a l cran, mais la redirection provoque lenvoi du texte dans le chier ` e second-file . Le chier est cr e sil nexiste pas. Il est d truit, puis recr e sil existait. e e e Dans le premier cas, lusage est assez particulier, puisquil ny a pas de commande. De ce fait, rien nest envoy dans le chier, mais il est tout de m me cr e. Nous aurions e e e pu parvenir au m me r sultat avec la commande touch(1), dont lusage est normae e lement de changer la date de modication, mais qui a comme effet de bord de cr er le e chier sil nexiste pas.
Les syntaxes que nous venons de voir sont tr` s utiles dans les cas o` il est n cessaire de e u e dissocier les sorties normales dun programme et les sorties derreur, ainsi que dans les cas o` il faut r cup rer toutes ces sorties dans un m me chier. Nous verrons (Section u e e e 3.4) comment conserver lafchage a l cran tout en envoyant la sortie vers un chier. ` e
patrick
patrick patrick
patrick patrick
La valeur dans la seconde colonne donne le nombre de liens physiques sur linode du chier. La cr ation du premier lien incr mente ce nombre de liens. Une des cons quences e e e est que le chier ne pourra etre d truit physiquement que lorsque le nombre de ces liens e deviendra nul. Une autre cons quence est que lon peut supprimer le chier originel e sans que le nouveau chier nen soit alt r . ee La cr ation du second type de lien ne modie pas cette valeur. Le chier nouvele lement cr e ne fait quindiquer lemplacement du chier originel. Si lon supprime le e chier originel, le lien continue dexister mais nest plus fonctionnel. Pour supprimer un lien, on utilise la commande rm(1) qui supprime aussi bien des liens que des chiers. $ rm sortie $ ls -l output sym -rw-r----1 patrick patrick lrwxrwxrwx 1 patrick patrick $ cat output erreur vers stderr sortie vers stdout $ cat sym cat: sym: No such file or directory
2 5 1 1
4.0k 4.0k 38 6
27 27 27 27
[ ... ] $ La valeur afch e sur la premi` re ligne indique la taille occup e par les chiers e e e du r pertoire. A noter quun lien symbolique noccupe pas despace disque (la place e n cessaire pour enregistrer la destination est prise sur linode du r pertoire si sa taille e e est inf rieure a 60 octets). e ` Pour la seconde colonne, voir la section pr c dente. e e La troisi` me colonne indique quel est le propri taire du chier (ici patrick), et e e la quatri` me colonne indique quel est le groupe du chier (ici patrick egalement). e Les informations suivantes sont la taille (ici afch es dans un format lisible pour e un etre humain gr ce a loption -h), la date, lheure et le nom. a ` La premi` re colonne se d compose en 10 caract` res. e e e Le premier caract` re correspond au type de chier (voir table 3.1). e TAB . 3.1 Types de chiers d l b c s p Fichier r gulier e R pertoire e Lien symbolique P riph rique de type bloc e e P riph rique de type caract` re e e e Socket Tube nomm (Named pipe) e
Les neuf caract` res suivants se subdivisent en trois groupes : e Les permissions du propri taire e Les permissions du groupe Les permissions des autres Les trois caract` res des permissions rwx peuvent prendre les valeurs suivantes e (voir table 3.2) :
TAB . 3.2 Les valeurs des bits de permissions Bit r r w w x Valeurs r w x Signications Permission en lecture Interdit en lecture Permission en ecriture Interdit en ecriture Permission en ex cution. Pour un r pertoire, signie e e que lon peut rentrer (avec la commande cd(1)) dans ce r pertoire, ou lister son contenu (avec la commande e ls(1)). Interdit en ex cution e Donner les droits de lutilisateur ou groupe lors de lex cution e Pour un r pertoire, nautoriser la suppression et le renome mage quau propri taire du r pertoire et au propri taire e e e des chiers contenus dans le r pertoire e
x x x
s t
TAB . 3.3 D composition du MODE symbolique de chmod e u Propri taire (user) e g Groupe Utilisateurs o Autres (other) a Tous les utilisateurs (all) + Ajouter les permissions Action - Supprimer les permissions r Lecture w Ecriture x Ex cution e X Ex cution si le chier est un r pertoire ou a d j` un bit x e e ea Bits positionn e s Set (GID ou UID) t Sticky bit u Copier les permissions du propri taire e g Copier les permissions du groupe o Copier les permissions des autres
Le format octal Syntaxe de la commande chmod (mode octal) : chmod OCTAL fichiers Le format octal est constitu de 4 chiffres en octal, le premier etant optionnel (voir e leur d composition dans la table 3.7.2) : e TAB . 3.4 D composition du mode OCTAL de chmod e 4 Set User ID bit 1er octet 2 Groupe 1 Sticky bit 4 Read bit ` ` Write bit 2eme au 4eme octet 2 1 Execute bit
La valeur des chiffres est obtenue en composant les valeurs des bits a laide de ` laddition. Soit pour positionner les bits r et w, on ajoute 4 2 ce qui donne 6. L quivalent des commandes symboliques est (dans le second cas, on suppose que e lon souhaite accorder les droits en lecture, mais pas en ecriture) : $ chmod 660 * $ chmod 4755 prog Modication r cursive e On constate quil est plus facile de g rer le format symbolique, car il nest pas e n cessaire de sp cier les valeurs de tous les bits. Ceci est particuli` rement pratique e e e lorsque lon modie des permissions de facon r cursive en utilisant loption -R. e $ chmod -R u+rw,g+r,g-w,o-rwx /home/patrick/* $ Il est aussi possible dutiliser la commande find(1) pour faire des modications r cursives. Notamment, si lon ne souhaite effectuer les modications que sur les e chiers ou les r pertoires, ou, si lon souhaite neffectuer les modications qu` partir e a dun r pertoire particulier. e La premi` re commande ne modie que les chiers, la seconde ne modie que les e r pertoires, et la troisi` me ne modie que les chiers et r pertoires contenus dans le e e e r pertoire nomm cible , et la quatri` me r alise la m me chose que la troisi` me, mais e e e e e e a laide de la commande xargs(1). ` $ find . -type f ./1/cible/fic ./2/cible/fic ./3/cible/fic $ find . -type f -exec chmod u+rw {} \; . ./1
./1/cible ./2 ./2/cible ./3 ./3/cible $ find . -type $ find . -name ./1/cible ./2/cible ./3/cible $ find . -name $ find . -name
La commande find permet de parcourir une arborescence de r pertoires, elle e prend pour premier param` tre un r pertoire (ici ., cest-` -dire le r pertoire courant). e e a e Elle applique ensuite une s lection sur les chiers et r pertoires parcourus (ici, soit une e e s lection sur le type (f pour chier, ou d pour r pertoire). e e La fonction ex cut e par d faut est lafchage des noms des chiers et r pertoires e e e e parcourus (loption -print est loption par d faut). Elle peut etre remplac e par e e laction -exec. La syntaxe de laction -exec est singuli` re. Tout ce qui suit cette option, jusquau e ; est consid r comme la commande a ex cuter et ses param` tres. Le ; doit etre ee ` e e echapp , car cest le s parateur de commandes du shell, et il ne serait pas vu par find e e si le . etait omis. La s quence est remplac e par le nom du chier ou r pertoire. e e e La commande xargs recoit en param` tre le nom dune commande a ex cuter. Elle e ` e lit dans son entr e standard une liste de param` tres s par s par des espaces, tabulations e e e e ou retour chariot. Elle transmet chacun de ces param` tres a cette commande. e `
Pour modier le groupe dun chier, on utilise la commande chgrp(1). La syntaxe est chgrp groupe fichiers , o` groupe est un groupe existant, et chiers est une u liste de chiers et/ou de r pertoires. une option -R permet de parcourir les r pertoires e e r cursivement. e Pour modier le propri taire dun chier, on utilise la commande chown(1). La e syntaxe est sensiblement la m me que pour chgrp(1) ( chown proprio fichiers e ), mais proprio repr sente le propri taire, eventuellement suivi dun nom de groupe e e s par par le symbole : ou le symbole . . e e # chgrp patrick *.tex *.dvi # chown -R tuxbihan:devel *.c* *.h*
Chapitre 4
31
Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for newuser Enter the new value, or press return for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [y/n] y # grep newuser /etc/passwd newuser:x:1004:1004:,,,:/home/newuser:/bin/bash # grep newuser /etc/shadow newuser:$1$9y3d/b5S$e5s2A.$UjydgPiOHklz19w.:12067:0:99999:7::: # deluser newuser Removing user newuser... done. # grep newuser /etc/passwd #
Au-dessus, on voit que lutilisateur tuxbihan appartient au groupe audio , ce qui lui donne le droit dacc der aux p riph riques appartenant au groupe audio. e e e Les deux commandes ci-dessous permettent de voir quels sont ces p riph riques. e e $ find /dev -group audio $ ls /dev | grep audio Lutilisateur patrick appartient aussi aux groupes cdrom , ce qui permet notamment dutiliser cdparanioa(1)2 , au groupe floppy , ce qui permet dutiliser la commande dd(1) sur le lecteur de disquettes. Pour information, dd(1) permet de cr er une image disque, ou de copier une image e disque sur un support, par exemple : $ dd if=/dev/fd0 of=/tmp/img $ dd of=/dev/fd0 if=/tmp/img Pour visualiser les p riph riques concern s, on peut utiliser la commande find(1), e e e avec une recherche sur le groupe et lop rateur OU - -o : e $ find /dev -group cdrom -o -group floppy -o group audio -o group dialout $ Pour ajouter un utilisateur a un groupe, on peut utiliser la commande adduser(8). ` Bien s r, seul root peut faire cela. u # adduser tuxbihan floppy Adding user tuxbihan to group floppy... Done. # groups tuxbihan tuxbihan: tuxbihan floppy audio # Pour que lappartenance au nouveau groupe prenne effet, il faut que lutilisateur tuxbihan se reconnecte.
2 Sur un syst` me utilisant des p riph riques SCSI ou IDE-SCSI, il faudra aussi changer le groupe des e e e p riph riques /dev/sg* e e
Chapitre 5
Dautres options permettent dafcher plus dinformations. Les options a et x permettent de voir lensemble des processus (R f rez-vous a la documentation de ee ` ps(1) pour une description compl` te des tr` s nombreuses options de cette commande). e e Voici un petit extrait dune sortie de g n r e par ps ax --forest . e ee $ ps ax --forest PID TTY STAT [...] 995 ? S 997 pts/3 S 1058 pts/4 S [...] $
Loption --forest indique les liens de parent entre les processus. Au-dessus, le e processus emacs a lanc deux processus ls bash , lun deux est un shell emacs et e A lautre est utilis pour compiler les chiers L TEX. e
34
pidof(8)1 retourne le (ou les) PID du (ou des) processus dont le nom est pass en e param` tre. Attention a ne pas d truire dautres processus que celui que vous souhaitez e ` e d truire ! e
Il a et constat sur des distributions Mandrake que cette commande ne fonctionnait pas. e e
$ La lettre T dans la colonne STAT indique que le processus est stopp . On peut e constater que les caract` res x que le processus afchait ne sont plus g n r s. e e ee On peut egalement, apr` s avoir stopp le processus, le remettre en fonctionnement, e e mais en le maintenant en arri` re-plan, a laide de la commande bg(bash(1)). e ` $ ./longcmd xxxxZ [1]+ Stopped $ bg %1 [1]+ ./longcmd & $ xxxxps x PID TTY STAT [...] 1242 pts/4 S 1246 pts/4 R $ xxxxkill %1 [1]+ Terminated
./longcmd
On voit quapr` s avoir mis le processus en arri` re-plan, les caract` res x quil e e e afche se m langent a lafchage. Pour mettre n au processus, on utilise la commande e ` kill %1 , qui a pour effet de d truire le job n 1. e
On voit bien ici que le processus lanc avec nice , dont le PID est 1033 a consomm e e moins de temps CPU (7,1 %) que le processus lanc sans nice dont le PID est 1034 e et qui a consomm 57,2 % de CPU. e
Chapitre 6
Programmation du shell
Nous allons ecrire des programmes pour bash(1). Comme chaque programme devra contenir le chemin de bash , il est n cessaire de le localiser. Nous utiliserons e pour cela la commande which(1). $ which bash /bin/bash $ Toutes les commandes que nous avons utilis es jusquici peuvent etre enregistr es e e dans un chier, dont la premi` re ligne serait : e #!/bin/bash Un tel chier constituerait d j` un programme shell, mais nous allons etudier ici ea quelques structures qui permettent r ellement de contr ler le d roulement du proe o e gramme, comme le permet tout langage de programmation.
$ bash prg-hello Bonjour $ ou comme ceci, en rendant le chier ex cutable : e $ chmod +x prg-hello $ ./prg-hello Bonjour $ ./prg-hello Patrick Bonjour Patrick $
6.3
if(bash(1))
Si lutilisateur rentre une ligne vide, on indique un message derreur (voir gure 6.3) : e e Le avant le , car, rappelez-vous, cest le caract` re qui permet d viter linterpolation de variables. Le test aurait pu etre invers en utilisant le caract` re ! devant les crochets. ! e e signie non . Faites lessai. Toutes les expressions conditionnelles qui peuvent etre evalu es sont list es dans e e la rubrique CONDITIONAL EXPRESSIONS du manuel de bash(1). Le test if(bash(1)) peut etre plus complexe, avec des tests dans la clause else, ce qui donne : if ... then ... elif ... then ... else ... fi .
F IG . 6.3 Troisi` me programme shell : prg-hello3 e #!/bin/bash echo -n "Comment vous appelez-vous ? " read name if [ "$name" = "" ] then echo Vous n\avez pas donn votre nom ! e else echo Bonjour $name fi
# Test de $SHELL case $SHELL in "/bin/bash" ) echo Votre shell est un bon shell;; "/bin/csh" ) echo Pas mal non plus;; *) echo Vous devriez utiliser le shell bash;; esac
Testons maintenant ce programme : $ ./case-struct Votre shell est un bon shell $ env SHELL=autre ./case-struct Vous devriez utiliser le shell bash
6.9 Convertir des noms de chier des minuscules vers les majuscules
Voici une ligne de commande pour renommer les noms chiers en minuscules en noms de chiers en majuscules (pour eviter les accidents malencontreux, cette com mande inverse les minuscules et les majuscules, donc, si par accident, vous ex cutez e cette commande dans un r pertoire critique, il suft dattendre quelle se termine et la e relancer a nouveau). ` Ex cution dans un seul r pertoire : e e $ for i in * ; do mv $i $(echo $i | tr a-zA-Z A-Za-z); done Ex cution dans toute une arborescence : e $ find . -type f -exec bash -c src={}; echo $src | tr a-zA-Z A-Za-z); \ [ $src != $dst ] && mv $src $dst \; $ dst=$( \
Un petit exercice a r aliser pour ceux qui veulent creuser ; faire la m me commande ` e e quau-dessus mais en modiant aussi les r pertoires ! Le probl` me est que si lon se e e contente denlever le -type f les r pertoires sont renomm s avant que nd nait le e e temps de les parcourir, et nd sort une erreur, car il essaie douvrir un r pertoire en e minuscules, alors quil vient d tre renomm en majuscules. e e Une solution a et donn e par Peter Stopschinski (voir gure 6.4 : e e F IG . 6.4 Solution de Peter Stopschinski $ find . -depth -exec bash -c src={} ; srcA=${src%/*} ; \ srcZ=${src##*/} ; dst=$(echo $srcZ | tr a-zA-Z A-Za-z); \ [ $srcZ != $dst ] && mv $src ${srcA}/$dst \;
#!/bin/bash # $i scans all the files in the exim spool cd /var/spool/exim/input for i in *-H do /usr/sbin/exim -Mrm ${i/-H/} done cd -
#!/bin/sh ` # Un param`tre: $1: Nom du fichier a compiler e # Si plus ou moins de param`tres, on arrte. e e usage () { echo "$0: $0 myfile.tex" echo "Generates a clean myfile.pdf file and a myfile.ps" } [ ! "$1" ] || [ "$2" ] && { usage exit 1 } pslatex \\nonstopmode\\input $1 dvips ${1/.tex/.dvi} ps2pdf -dPDFSETTINGS=/printer ${1/.tex/.ps}
F IG . 6.7 Extraction audio #!/bin/bash # Set defaults values no_extract=no no_rm_wav=no tracks="" # Check options for (( ; 1 ; )) ; do case "$1" in ( --no-extract | -e ) no_extract=yes;; ( --no-rm_wav | -r ) no_rm_wav=yes;; ( --tracks | -t ) tracks=$2; shift;; ( * ) break esac shift done usage () echo echo echo echo echo echo echo echo echo echo } { "Usage: extract2ogg OPTIONS \"Nom Chanteur Titre Disque\"" "extracts a CD" "Converts files to ogg Vorbis format" "Renames files to \"Nom Chanteur Titre Disque\"" "OPTIONS:" "if --tracks is specified, extracts only the specified tracks (see cdparanoia for "if --no-extract is specified, doesn\t performs extraction" "if --no-rm-wav is specified, Wav files are not removed after processing"
# Test if requested number of parameters is ok [ ! "$1" ] || [ "$2" ] && { usage exit 1 } # Perform extraction of specified tracks [ "$no_extract" == yes ] || { if [ -z "$tracks" ]; then cdparanoia -B else cdparanoia -B "$tracks" fi } # Rename all the files *.cdda.wav to *.wav for i in *.wav; do mv $i ${i/.cdda/} done # Convert wav to ogg Vorbis oggenc -q1 *.wav # rename all files to the specified name for i in *.ogg; do dst=${i/track/$1 }
Chapitre 7
Commandes utiles
Ce chapitre regroupe (un peu en vrac pour linstant, en attendant mieux) quelques fonctions, commandes utiles.
Used Available Use% Mounted on 1650976 315184 84% / 1033728 932432 53% /var 1307548 658612 67% /usr/local
/dev/hdb10 $ alias df=df -h $ df Filesystem /dev/hdb5 /dev/hdb6 /dev/hdb9 /dev/hdb10 $ du 8 ./backticks 8 ./find/1/cible 12 ./find/1 8 ./find/2/cible 12 ./find/2 8 ./find/3/cible 12 ./find/3 40 ./find 4 ./listage 40 ./processus 52 ./programmation 20 ./redirection 168 . $ alias du=du -h $ du 8.0k ./backticks 8.0k ./find/1/cible 12k ./find/1 8.0k ./find/2/cible 12k ./find/2 8.0k ./find/3/cible 12k ./find/3 40k ./find 4.0k ./listage 40k ./processus 52k ./programmation 20k ./redirection 168k .
2071384
1731480
234680
89% /home
Size Used Avail Use% Mounted on 2.0G 1.6G 307M 84% / 2.0G 1010M 910M 53% /var 2.0G 1.3G 643M 67% /usr/local 2.0G 1.7G 229M 89% /home
Toutefois, pour les habitu s dX ?Emacs, ceci pose un probl` me, car lafchage des e e couleurs dans le shell Emacs ne donne pas de r sultats concluants. La solution consiste e en une courte ligne dalias qui teste la variable denvironnement TERM pour savoir si il faut ou non utiliser la coloration. Cette ligne peut etre ajout e au chier .bashrc . e alias ls="ls -h $(if [ $TERM = dumb -o $TERM = emacs ] ; then echo --color=no ; else echo --color=auto ; fi)" alias ll=ls -l
Pour lister le contenu dune archive : tar -tzvf archive.tgz ou tar -tjvf archive.tar.bz . $ tar tzf exercices1.tgz $ tar tzvf exercices3.tgz Pour extraire le contenu dune archive : tar -xzvf archive.tgz ou tar -xjvf archive.tar.bz . $ mkdir extraction; cd extraction $ tar xzvf ../exercices1.tgz
Pour comparer deux chiers : $ cd exercices/programmation $ diff prg-hello3 prg-hello2 5,10c5 < if ! [ "$name" = "" ]; then < echo Bonjour $name < else < echo Vous n\avez pas donn votre nom ! e < fi < --> echo Bonjour $name $
TAB . 7.1 Principales options de tar Option c t x exclude PATTERN z j v f FILE Signication Cr ation dune archive e Listage du contenu dune archive Extraction du contenu dune archive Exclure les chiers qui correspondent a PATTERN ` Compression avec gzip Compression avec bzip2 Mode verbeux (plusieurs v possibles) Utiliser le chier dont le nom est FILE
Chapitre 8
Contributions
La ligne de code qui r alise une conversion majuscules/minuscules des noms de e chiers est de Peter Stopschinski. Les lecteurs de ce document sont invit s a envoyer toute remarque ou toute propoe ` sition dajout ou de modication a lauteur1. `
1 Patrick
Percot, ppercot@free.fr
51
Annexe A
A.1
The purpose of this License is to make a manual, textbook, or other written document free in the sense of freedom : to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modications made by others. This License is a kind of copyleft, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation : a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals ; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
A.2
This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The Document, below, refers to any such manual or work. Any member of the public is
PREAMBLE
52
a licensee, and is addressed as you. A Modied Version of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modications and/or translated into another language. A Secondary Section is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Documents overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The Invariant Sections are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. The Cover Texts are certain short passages of text that are listed, as Front-Cover Texts or BackCover Texts, in the notice that says that the Document is released under this License. A Transparent copy of the Document means a machine-readable copy, represented in a format whose specication is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent le format whose markup has been designed to thwart or discourage subsequent modication by readers is not Transparent. A copy that is not Transparent is called Opaque. Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standardconforming simple HTML designed for human modication. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine- generated HTML produced by some word processors for output purposes only. The Title Page means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, Title Page means the text near the most prominent appearance of the works title, preceding the beginning of the body of the text.
A.3
VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies.
A.4
COPYING IN QUANTITY
If you publish printed copies of the Document numbering more than 100, and the Documents license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts : Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the easd (e)Tj 7.07rea (ying)-31.1 07 12.8222 14.5041 0 Td (co)Tj0.6939 0 Td (to)Tj 10batimer4 Td Td (w)Tj 7.00 Td (sd.39705 194e)Tj 12.1also copies. Thewj 43.8654lu (tou4.911420.6(j 43.865 (with)Tj720.1434 0 t594 0 T39Td
6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modied Version under the terms of this License, in the form shown in the Addendum below. 7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Documents license notice. 8. Include an unaltered copy of this License. 9. Preserve the section entitled History, and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modied Version as given on the Title Page. If there is no section entitled History in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modied Version as stated in the previous sentence. 10. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the History section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. 11. In any section entitled Acknowledgements or Dedications, preserve the sections title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. 12. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. 13. Delete any section entitled Endorsements. Such a section may not be included in the Modied Version. 14. Do not retitle any existing section as Endorsements or to conict in title with any Invariant Section. If the Modied Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modied Versions license notice. These titles must be distinct from any other section titles. You may add a section entitled Endorsements, provided it contains nothing but endorsements of your Modied Version by various partiesfor example, statements of peer review or that the text has been approved by an organization as the authoritative denition of a standard. You may add a passage of up to ve words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modied Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another ; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modied Version.
A.6
COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms dened in section 4 above for modied versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodied, and list them all as Invariant Sections of your combined work in its license notice. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled History ; likewise combine any sections entitled Acknowledge- ments, and any sections entitled Dedications. You must delete all sections entitled Endorsements.
A.7
COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
A.8
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modied Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an aggregate, and this this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Documents Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.
A.9
TRANSLATION
Translation is considered a kind of modication, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.
A.10
TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
A.11
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http ://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document species that a particular numbered version of this License or any later version applies to it, you have the option of following the terms and conditions either of that specied version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
Colophon
A Ce document a et ecrit en L TEX, langage de mise en page de documents ecrit par e Leslie Lamport. L diteur de texte utilis est Emacs1 , initialement ecrit par Richard Stallman. e e Le document a et produit sur un syst` me Debian GNU/Linux2. e e Lauteur3 de ce document la r alis initialement pour lassociation Tuxbihan 4. e e
1 http
58
Bibliographie
[1] Documentation Linux (info, man, /usr/share/doc, ...) [2] Daniel P. Boyet, Marco Cesati : Le noyau Linux, OReilly, (F vrier 2002) e [3] Daniel Robbins, Chris Houser : LPI certication 101 exam prep, Part 1-3, IBM developerWorks, (Non dat ) e [4] Matt Welsh, Matthias Kalle Dalheimer, Lar KaufMan : Le syst` me Linux, e OReilly, (Mai 2001) [5] Naba Barkakati : Red Hat Linux Secrets, Sybex, (1999) [6] Franck Gehrke, Peter Klappheck, Forbj rn Glinsky, G nter Gripp : Linux, Syo u bex, (1998)
59
60
61
Index
, 25 &, 37 >, 23 >>, 23 , 21 addgroup(8), 34 adduser(8), 33, 35 apropos(1), 8 bash(1), 16, 17, 41, 42 cat(1), 23 cd(1), 28 cdparanioa(1), 35 cdparanoia(1), 45 chgrp(1), 31 chmod(1), 28 chown(1), 31 Commandes internes alias, 49 bg, 39 break, 44 C-Z, 38 case, 43 cd, 21 continue, 44 eval, 50 export, 17 fg, 38 for, 43 if, 42 jobs, 37 read, 42 set, 17 shift, 41 shopt, 16, 17 umask, 31, 32 unalias, 49 until, 42 while, 42
cp(1), 32 cron(8), 8 dd(1), 35 delgroup(8), 34 deluser(8), 33 df(1), 49 diff(1), 51 du(1), 49 echo(1), 13 emacs(1), 9 exim(1), 46 exit(1), 12 expansion, 15 le(1), 32 nd(1), 30, 35 Format des commandes, 6 glob(7), 16 globalisation, 15 grep(1), 23 group(5), 33 groups(1), 34 info(1), 8 interpolation de variables, 13 kill(1), 37 killall(1), 39 ln(1), 25 locate(1), 8 locatedb(8), 8 ls(1), 22, 28, 50 magic(5), 32 man(1), 7 mkdir(1), 21 nice(1), 40
62
nohup(1), 39 oggenc(1), 45, 46 pager(1), 7 passwd(1), 33 passwd(5), 33 pidof(8), 37 ps(1), 36 pwd(1), 21 rmdir(1), 22 su(1), 12, 33 tar(1), 51 tee(1), 25 top(1), 40 updatedb(1), 8 useradd(1), 33 Variables internes optionnelles extglob, 16 nocaseglob, 16 vi(1), 9 wc(1), 25 whatis(1), 7 whereis(1), 8 which(1), 41 xargs(1), 30