MANDRAKE LINUX 9.2 User Manual

Manuel de r´ef´erence
Mandrake Linux 9.2
http://www.MandrakeSoft.com
Manuel de r´ef´erence: Mandrake Linux 9.2
Publié 2003-09-24 Copyright © 2003 MandrakeSoft SA par Camille Bégnis, Christian Roy, Fabian Mandelbaum, Joël Pomerleau, Vincent Danen, Roberto Rosselli del Turco, Stefan Siegel, Marco De Vitis, Alice Lafox, Fred Lepied, Nicolas Planel, Kevin Lecouvey, Christian Georges, John Rye, Robert Kulagowski, Pascal Rigaux, Frédéric Crozat, Laurent Montel, Damien Chaumette, Till Kamppeter, Guillaume Cottenceau, Jonathan Gotti, Christian Belisle, Sylvestre Taburet, Thierry Vignaud, Juan Quintela, Pascal Lo Re, Kadjo N’Doua, Mark Walker, Roberto Patriarca, Patricia Pichardo Bégnis, Alexis Gilliot, Arnaud Desmons, Wolfgang Bornath, Alessandro Baretta, Aurélien Lemaire, Daouda Lo, Florent Villard, François Pons, Gwenole Beauchesne, Giuseppe Ghibò, Georg Halfas, Florin Grad, Joël Wardenski, Denis Devedjian, Debora Rejnharc Mandelbaum, Stew Benedict, et David Baudens
Notice légale
Ce manuel est la propriété intellectuelle de MandrakeSoft. Il peut être librement copié, distribué et/ou modifié selon les termes de la Licence GNU Free Documentation License, Version 1.1 ou ultérieure publiée par la Free Software Foundation ; avec la section inaltérable Au sujet de Mandrake Linux, page 1 ; les textes de couverture, cités ci-dessous, et sans texte de quatrième de couverture. Une copie complète de la licence se trouve sur le site de GNU (http://www.gnu.org/licenses/fdl.html). Textes de couverture :
MandrakeSoft, d´ecembre 2003 http://www.mandrakesoft.com/ Copyright © 1999, 2000, 2001, 2002, 2003 MandrakeSoft S.A. et MandrakeSoft inc.
« Mandrake », « Mandrake Linux » et « MandrakeSoft » sont des marques déposées par MandrakeSoft S.A. ; Linux est une marque déposée de Linus Torvalds ; UNIX est une marque déposée de « The Open Group » aux États-Unis et dans d’autres pays. Toutes les autres marques déposées et copyrights appartiennent à leurs propriétaires respectifs.
Outils utilisés dans la conception de ce manuel
Ce manuel a été rédigé avec la grammaire XML DocBook . Pour gérer l’ensemble des fichiers Borges (http: // linux-mandrake. com/ en/ doc/ project/Borges/ ) a été utilisé. Les fichiers source XML ont été préformatés avec xsltproc ,
openjade et jadetex avec l’aide des feuilles de style personnalisées de Norman Walsh. Les images ont été prises avec xwd et GIMP , puis converties avec convert. Tous ces logiciels sont libres et disponibles sur Mandrake Linux.
Table des mati`eres
Préface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. Au sujet de Mandrake Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1. Contacter la communauté Mandrake Linux.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.2. Rejoignez le Club . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3. Acquérir des produits MandrakeSoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4. Contribuer à Mandrake Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Note des traducteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Conventions utilisées dans ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.1. Conventions typographiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
4.2. Conventions générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
I. Le Système Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1. Concepts UNIX de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1. Utilisateurs et groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2. Notions de base au sujet des fichiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
1.3. Les processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4. Petite introduction à la ligne de commande.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2. Disques et partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1. Structure d’un disque dur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
2.2. Conventions pour nommer disques et partitions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3. Introduction à la ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1. Utilitaires de manipulation de fichiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2. Manipulation des attributs de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3. Motifs d’englobement du shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4. Redirections et tubes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5. Le complètement (completion) dans les lignes de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.6. Lancement et manipulation de processus en arrière-plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.7. Le mot de la fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4. L’édition de texte : Emacs et VI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1. Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2. Vi : l’ancêtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3. Un dernier mot.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
5. Les utilitaires en ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.1. Opérations sur les fichiers et filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.2. find : rechercher des fichiers selon certains critères. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
5.3. Programmation de démarrage de commandes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.4. at : programmer une commande une seule fois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.5. Archivage et compression de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
5.6. etc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6. Contrôle des processus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.1. Un mot encore sur les processus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2. Obtenir des informations sur les processus : ps et pstree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.3. Envoyer des signaux aux processus : kill, killall, top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.4. Contrôler la priorité des processus : nice, renice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
II. Linux en profondeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7. Organisation de l’arborescence des fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.1. Données partagées et non partagées, statiques et dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.2. Le répertoire racine : / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.3. /usr : le gros morceau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
7.4. /var : données modifiables en cours d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.5. /etc : les fichiers de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8. Systèmes de fichiers et points de montage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.1. Principes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
8.2. Partitionner un disque dur, formater une partition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
8.3. Les commandes mount et umount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.4. Le fichier /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.5. La fonction supermount. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
9. Le système de fichiers Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
iii
9.1. Comparatif de quelques systèmes de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
9.2. Tout est fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
9.3. Les liens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
9.4. Tubes "anonymes" et tubes nommés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
9.5. Les fichiers spéciaux : fichiers mode bloc et caractère . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
9.6. Les liens symboliques et la limitation des liens en dur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
9.7. Les attributs des fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
10. Le système de fichiers /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
10.1. Renseignements sur les processus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
10.2. Informations sur le matériel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
10.3. Le sous-répertoire /proc/sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
11. Les fichiers de démarrage : init sysv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
11.1. Au commencement était init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
11.2. Les niveaux d’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
III. Utilisations avancées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
12. Installation d’un logiciel libre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
12.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
12.2. Décompactage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
12.3. Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
12.4. Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
12.5. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
12.6. Assistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
12.7. Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
13. Compilation et mise en place de nouveaux noyaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
13.1. Où trouver les sources du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
13.2. Décompactage des sources du noyau, correction éventuelle du noyau . . . . . . . . . . . . . . . . . . . . . 94
13.3. Configuration du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
13.4. Sauvegarder et réutiliser vos fichiers de configuration du noyau. . . . . . . . . . . . . . . . . . . . . . . . . . .95
13.5. Compilation et installation des modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
13.6. Installation du nouveau noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
A. La licence Publique Générale GNU (GPL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
A.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
A.2. Préambule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
A.3. Stipulations et conditions relatives à la copie, la distribution et la modification . . . . . . . . . . . . . . . . . 104
B. Licence de documentation libre GNU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
B.1. A propos de cette traduction française de la GFDL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107
B.2. Licence de documentation libre GNU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
0. PRÉAMBULE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
1. APPLICABILITÉ ET DÉFINITIONS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
2. COPIES CONFORMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3. COPIES EN NOMBRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4. MODIFICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5. FUSION DE DOCUMENTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
6. REGROUPEMENTS DE DOCUMENTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
7. AGRÉGATION AVEC DES TRAVAUX INDÉPENDANTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8. TRADUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
9. CADUCITÉ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
10. RÉVISIONS FUTURES DE CETTE LICENCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
B.3. Comment utiliser cette Licence pour vos documents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
C. Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
iv

Liste des tableaux

9-1. Caractéristiques des systèmes de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

Liste des illustrations

1-1. Connexion en mode graphique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
1-2. Connexion en mode console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1-3. L’icône de l’émulateur de terminal sur le tableau de bord de KDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2-1. Premier exemple de noms de partitions sous GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2-2. Second exemple de noms de partitions sous GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4-1. Emacs; : édition simultanée de deux fichiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4-2. Emacs , avant la copie du bloc de texte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4-3. Emacs, après la copie du bloc de texte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4-4. Situation de départ dans vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4-5. vim, avant la copie du bloc de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4-6. vim, après la copie du bloc de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6-1. Exemple d’exécution de top. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
8-1. Avant le montage du système de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8-2. Après le montage du système de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
v
vi
Pr´eface

1. Au sujet de Mandrake Linux

Mandrake Linux est une distribution GNU/Linux développée par MandrakeSoft S.A. La société Mandrake­Soft est née sur Internet en 1998 ; son ambition première demeure de fournir un système GNU/Linux convivial et facile à utiliser. Les deux piliers de MandrakeSoft sont le logiciel libre et le travail coopératif.
1.1. Contacter la communaut´e Mandrake Linux
Nous présentons ci-dessous plusieurs liens Internet pointant vers de nombreuses ressources liées à Mandrake Linux. Si vous souhaitez en savoir plus sur la société MandrakeSoft, consultez son site Web (http://www.
mandrakesoft.com/). Un site dédié à la distribution Mandrake Linux (http://www.mandrakelinux.com/) et tous ses dérivés existe également.
MandrakeExpert (http://www.mandrakeexpert.com/) est la plate-forme d’aide en ligne de MandrakeSoft. Il propose une nouvelle façon de partager les savoirs s’appuyant sur la confiance et le plaisir de récompenser son prochain pour son aide. Il s’agit d’un concept différent des autres plate-formes d’aide en ligne.
Vous êtes également invité à participer aux nombreuses listes de diffusion (http://www.mandrake-inux.com/ fr/flists.php3), où la communauté Mandrake Linux déploie tout son enthousiasme et sa vivacité.
Enfin, n’oubliez pas de vous connecter sur MandrakeSecure (http://www.mandrakesecure.net/). Ce site rassemble tout ce qui traite de la sécurité des distributions Mandrake Linux. Vous y trouverez notamment des avertissements de bogues et de sécurité, ainsi que des articles traitant de sécurité informatique et de privacité. Bref, voilà un site incontournable pour tout administrateur système, ou tout utilisateur soucieux de sécurité.

1.2. Rejoignez le Club

MandrakeSoft est heureux d’offrir à ses utilisateurs une large palette d’avantages grâce au Club des utilisa­teurs de Mandrake Linux (http://www.mandrakelinux.com/fr/club/) :
télécharger des logiciels commerciaux, qui ne sont normalement disponibles que dans les packs de détail,
tels que des pilotes logiciel, des applications commerciales, des partagiciels et des versions démo ;
voter et proposer de nouveaux logiciels à travers un système de vote RPM que des bénévoles maintienne ;
accéder à plus de 50.000 paquetages RPM pour toutes les distributions Mandrake Linux ;
obtenir des remises pour des produits et services sur le MandrakeStore (http://www.mandrakestore.com) ;
accéder à une meilleure liste de miroirs, exclusive aux membres du Club ;
lire des forums et articles multilingues.
Le MandrakeClub est l’endroit idéal pour vous faire entendre ! En finançant MandrakeSoft par l’entremise du Mandrake Linux Users Club, vous améliorerez directement
la distribution Mandrake Linux et vous nous permettrez de proposer le meilleur poste de travail GNU/Linux possible à nos utilisateurs.
1.3. Acqu´erir des produits MandrakeSoft
Il vous est désormais possible d’effectuer vos achats en ligne simplement sur le MandrakeStore (http://www. mandrakestore.com). Vous y trouverez des logiciels Mandrake Linux , systèmes d’exploitation et outils réseau
(pare-feu) (Multi Network Firewall), mais aussi des offres spéciales d’abonnement, de l’assistance, des logiciels tiers et des licences, des manuels et des livres GNU/Linux , ainsi que d’autres gadgets MandrakeSoft.
1
Préface
1.4. Contribuer `a Mandrake Linux
Quels que soient vos talents, vous êtes encouragé à participer à l’une des nombreuses tâches requise à la construction du système Mandrake Linux :
Paquetages. Un système GNU/Linux est principalement constitué de programmes rassemblés depuis Inter-
net. Ils doivent être mis en forme de façon à ce qu’ils puissent fonctionner ensemble, si tout se passe bien ;
Programmation. Une foule de projets est directement développée par MandrakeSoft : trouvez celui qui
vous intéresse le plus et proposez votre aide au développeur principal ;
Internationalisation. vous pouvez nous aider à traduire des pages de nos sites Web, des programmes et
leur documentation respective.
Documentation. Afin de suivre l’évolution rapide du système, nous ne comptons plus le temps et les efforts
investis pour que le manuel que vous êtes en train de lire demeure à jour. Rédacteurs et traducteurs seront accueillis à bras ouverts !
Consultez aussi les pages des contributeurs (http://www.mandrakesoft.com/labs/) pour en savoir plus sur les différentes façons de contribuer à l’évolution de Mandrake Linux.

2. Introduction

Bienvenue, et merci d’utiliser Mandrake Linux ! Ce manuel est destiné à celles et ceux qui désirent plonger dans les méandres de leur système GNU/Linux , et qui veulent bénéficier au maximum de son potentiel. Ce manuel est constitué de trois parties :
Dans la partie intitulée Le Système Linux, nous traiterons de l’utilisation de la ligne de commande et de ses
nombreuses possibilités. Nous discuterons également des bases de l’édition de texte, un concept essentiel sous GNU/Linux .
Le chapitre Concepts UNIX de base, page 7 présentera les mondes UNIX et plus particulièrement, GNU/Linux . C’est une introduction aux outils standards utilisés pour manipuler les fichiers et certaines fonctionnali­tés utiles du shell. Puis, Disques et partitions, page 15 aborde le système de gestion des disques durs sous GNU/Linux , ainsi que le concept de partitions. Il est nécessaire de bien comprendre les concepts qui y sont présentés avant de passer au chapitre Introduction à la ligne de commande, page 19.
Puis suivra L’édition de texte : Emacs et VI, page 29. Comme la plupart des fichiers de configuration sont en format texte sous UNIX , vous aurez sûrement besoin de les modifier avec un éditeur de texte. Vous appren­drez comment utiliser deux des plus célèbres éditeurs du monde UNIX : le puissant Emacs et le vénérable Vi .
Maintenant, vous devriez pouvoir mener à bien quelques tâches d’entretien de base sur votre système. Les deux chapitres qui suivront présentent des utilisations pratiques de la ligne de commande (Les utilitaires en ligne de commande, page 37) et le contrôle des processus en général (Contrôle des processus, page 49).
Dans Linux en profondeur, nous discuterons brièvement du noyau Linux et de l’architecture du système de
fichiers. Le chapitre Organisation de l’arborescence des fichiers, page 53 abordera l’organisation du système de fichiers.
Les systèmes UNIX tendent à grossir énormément, mais chaque fichier a sa place dans un répertoire spé­cifique. Après avoir lu ce chapitre, vous saurez où chercher les fichiers en fonction de leur rôle à même le système.
Ensuite, nous traiterons de deux sujets, soit le système de fichiers et les points de montage (Systèmes de fichiers et points de montage, page 57). Vous apprendrez alors ce que signifient ces deux termes et vous en verrez des exemples pratiques.
Nous poursuivrons avec le chapitre Le système de fichiers Linux, page 61. Après une présentation des systèmes de fichiers disponibles, vous en apprendrez plus au sujet des types de fichiers et autres concepts, comme les i-nœds et les tubes. Le système de fichiers /proc, page 69, introduira pour sa part un système de fichiers bien particulier sous GNU/Linux : /proc.
2
Préface
Dans Les fichiers de démarrage : init sysv, page 75, nous présenterons la procédure de démarrage de Mandrake Linux et comment l’utiliser efficacement.
Enfin, la partie Utilisations avancées traitera de sujets que seuls les téméraires ou les lecteurs expérimentés
voudront mettre en pratique. Installation d’un logiciel libre, page 77, vous guidera à travers les étapes nécessai­res pour construire et installer des logiciels libres depuis leur source. La lecture de ce chapitre devrait vous encourager à vous faire la main, même si, à première vue, ça peut paraître intimidant. Enfin, Compilation et mise en place de nouveaux noyaux, page 93, se présentera comme une des dernières étapes vers une autono­mie totale sous GNU/Linux . Après avoir lu et appliqué la théorie expliquée dans ce chapitre, commencez à convertir des utilisateurs Windows (si ce n’est déjà fait !).
Le livre se termine par deux annexes, soient respectivement les deux licences principalement utilisées pour les applications GNU/Linux et la documentation : La licence Publique Générale GNU (GPL), page 103 et Licence de documentation libre GNU, page 107. Un Glossaire, page 113 et un index concluent cet ouvrage.

3. Note des traducteurs

En passant d’un chapitre à l’autre, vous remarquerez que ce livre est une œuvre composite. Même si la co­hérence technique et lexicale a été notre priorité, vous remarquerez que le style spécifique de chaque auteur (anglophone pour la plupart) a été quelque peu préservé.
Garder cette documentation à jour est un véritable défi ! Choisir le bon mot n’est pas toujours facile puisque la plupart des termes informatiques utilisés par les professionnels de par le monde demeurent en fait des mots de la langue anglaise. Inventer un terme français plus clair pour le novice risque alors de dérouter l’expert ! Que faire ? On aura en général opté pour un compromis : donner les deux termes, anglais et français, lors de la première occurrence textuelle de la notion, puis un seul par la suite, afin de ne pas entraver la lecture. N’hésitez pas à nous donner votre avis à ce sujet.
Car enfin, dans le droit fil de l’esprit particulier de la communauté du libre (open source), nous accueillons les collaborations à bras ouverts ! Il vous est tout à fait possible d’apporter votre petite pierre à l’édification de ce projet de diverses façons. Vous disposez de temps libre ? Proposez-nous un nouveau chapitre ! Vous comprenez bien l’anglais ? Aidez-nous à traduire ! Vous avez des idées pour améliorer ce document ? Nous sommes tout ouïe !
Pour toute information au sujet du projet de documentation de Mandrake Linux, communiquez avec le res­ponsable de la documentation (mailto:documentation@mandrakesoft.com) ou visitez notre site Web (http: //www.linux-mandrake.com/en/doc/project) (en anglais seulement).
4. Conventions utilis´ees dans ce manuel

4.1. Conventions typographiques

Afin d’accentuer clairement certains mots ou groupes de mots, nous avons utilisé certains attributs typogra­phiques. Le tableau suivant en donne la signification symbolique :
Exemple format´e Signification
inœud Signale un terme technique.
ls -lta Types utilisés pour une commande et ses arguments, les options et les noms de fichier
(voir la section Synopsis d’une commande, page 4).
ls(1) Référence vers une page de manuel (aussi appelée page de man). Pour consulter la
page correspondante dans un shell (ou ligne de commande), exécutez la commande man 1 ls.
$ ls *.pid Ce style est utilisé pour une copie d’écran texte. Signale une interaction
utilisateur-ordinateur, le code source d’un programme, etc.
localhost Données littérales qui ne correspondent généralement pas à une des catégories
précédemment définies : citation d’un mot clé tiré d’un fichier de configuration, par exemple.
3
Préface
Exemple format´e Signification
Apache Nom des applications. Notre exemple (« Apache ») n’est pas un nom de commande.
Toutefois, dans des contextes particuliers, l’application et le nom de la commande peuvent être les mêmes, mais formatés de façon différente.
C onfigurer Entrée de menu ou label des interfaces graphiques, en général. La lettre soulignée
indique le raccourci clavier éventuel. Bus SCSI Partie d’un ordinateur ou ordinateur lui-même. Once upon a time... Citation en langue étrangère. Attention ! Types réservés pour les mots que nous voulons accentuer. Lisez-les à voix haute :-)
Cette icˆone introduit une note. Il s’agit g´en´eralement d’une remar­que dans le contexte courant, pour donner une information addi­tionnelle.
Cette icˆone introduit une astuce. Il peut s’agir d’un conseil d’ordre g´en´eral sur la meilleure fa¸con d’arriver `a un but sp´ecifique, ou une fonctionnalit´e int´eressante qui peut vous rendre la vie plus facile.
Soyez tr`es attentif lorsque vous rencontrez cette icˆone. Il s’agit toujours d’informations tr`es importantes sur le sujet en cours de discussion.
4.2. Conventions g´en´erales
4.2.1. Synopsis d’une commande
L’exemple ci-dessous présente les différents signes et symboles que vous rencontrerez lorsque nous décrivons les arguments d’une commande :
command <argument non litt´eral> [--option={arg1,arg2,arg3}] [argument optionnel...]
Ces conventions étant standardisées, vous les retrouverez en bien d’autres occasions (dans les pages de man, par exemple).
Les signes « < » (inférieur) et « > » (supérieur) indiquent un argument obligatoire qui ne doit pas être recopié tel quel mais remplacé par votre texte spécifique. Par exemple : <fichier> désigne le nom d’un fichier ; si ce fichier est toto.txt, vous devrez taper toto.txt, et non <toto.txt> ou <fichier>.
Les crochets « [ ] » indiquent des arguments optionnels que vous déciderez ou non d’inclure dans la ligne de commande.
Les points de suspension (« ... ») signifient qu’un nombre illimité d’options peut être inséré à cet endroit. Les accolades (« { } ») contiennent les arguments autorisés à cet endroit. Il faudra obligatoirement insérer un
d’entre eux à cet endroit précis.
4.2.2. Notations particuli`eres
De temps à autre, il vous sera demandé de presser les touches Ctrl+R. Cela signifie que vous devez taper et maintenir la touche Ctrl enfoncée pendant que vous appuyez sur la touche R. Il en va de même pour les touches Alt et Shift.
De même, à propos des menus, aller sur l’entrée de menu FichierRelire la configuration utilisateur (Ctrl+R) signifie : cliquez sur le label Fichier du menu (généralement en haut et à gauche de la fenêtre) puis sur le menu vertical qui apparaît, cliquez sur Relire la configuration utilisateur. De plus, vous pouvez également utiliser la combinaison de touches Ctrl+R, comme décrit ci-dessus pour arriver au même résultat.
4
4.2.3. Utilisateurs syst`eme g´en´eriques
À chaque fois que cela est possible, nous utiliserons deux utilisateurs génériques dans nos exemples :
Reine Pingusa Cet utilisateur est créé pendant l’installation. Pierre Pingus Cet utilisateur est ensuite créé par l’administrateur système.
Préface
5
Préface
6

Chapitre 1. Concepts UNIX de base

Le nom « UNIX » dira quelque chose à certains d’entre vous. Peut-être même utilisez-vous un système UNIX dans le cadre de votre travail, auquel cas la lecture de ce chapitre ne vous apprendra pas grand-chose.
Pour ceux et celles d’entre vous qui ne l’ont jamais utilisé, la lecture de ce chapitre est nécessaire ! La connais­sance des concepts que nous allons présenter ici répondra à un nombre surprenant de questions que se posent les débutants dans le monde GNU/Linux . De même, il est fort probable que ces seuls concepts vous donnent des pistes de recherche sur les causes d’un problème que vous pourriez rencontrer.

1.1. Utilisateurs et groupes

Cette notion est sans doute la plus importante, car elle a une influence directe sur tous les autres concepts que nous allons introduire dans ce chapitre.
Linux est un véritable système multiutilisateurs, et pour pouvoir se connecter à un système GNU/Linux , il faut avoir un compte sur ce système. Quand vous avez créé des utilisateurs lors de l’installation, vous avez en fait ajouté des comptes utilisateur. Vous vous souvenez sans doute que la création d’un compte a exigé que vous entriez, entre autres, les éléments suivants :
le « vrai nom » de l’utilisateur (en fait, ce que vous voulez) ;
un nom de connexion ;
un mot de passe.
Les deux paramètres importants ici sont le nom de connexion (très souvent appelé nom de login) et le mot de passe. Ce sont en effet eux que vous devrez utiliser pour vous connecter au système.
Une autre action effectuée parallèlement à l’ajout d’un utilisateur est la création d’un groupe. Comme nous le verrons plus loin, les groupes sont utiles dans le cadre du partage de fichiers entre différentes personnes. Un groupe peut contenir autant d’utilisateurs que vous le souhaitez, et il est très courant de voir une telle sépara­tion dans les gros systèmes. Dans une université, par exemple, vous pouvez avoir un groupe par département, un autre pour les professeurs et ainsi de suite. L’inverse est également vrai : un utilisateur peut être membre d’un ou de plusieurs groupes, la limite étant de trente-deux groupes. Un professeur de mathématiques, par exemple, peut être membre du groupe des professeurs et également membre du groupe de ses étudiants.
Cela ne vous dit toujours pas comment vous connecter. On y arrive. Si vous avez choisi d’avoir l’interface graphique au démarrage, votre fenêtre de connexion sera similaire à la
figure 1-1.
Figure 1-1. Connexion en mode graphique
Pour vous connecter, vous devez d’abord sélectionner votre compte dans la liste. Un nouveau dialogue ap­paraît pour rentrer le mot de passe. Notez que vous devrez taper ce mot de passe à l’aveugle, car chaque caractère sera représenté par une étoile * à l’écran. Vous pouvez aussi choisir votre type de session selon vos préférences. Pressez enfin sur le bouton Connexion.
Si vous êtes en mode console, vous obtiendrez une image similaire à celle de la figure 1-2.
7
Chapitre 1. Concepts UNIX de base
Figure 1-2. Connexion en mode console
Tapez votre nom de connexion à l’invite Login:, suivi d’une pression sur la touche Entrée. Ensuite, le pro­gramme de connexion (appelé, comme par hasard, login ) vous présentera une invite Password:, et vous vous exécuterez en entrant le mot de passe de ce compte (toujours à l’aveugle !).
Notez que vous pouvez vous connecter plusieurs fois sous le même nom d’utilisateur, par exemple sur des consoles additionnelles et sous X . Chaque session que vous ouvrirez sera indépendante, et il est même possible d’ouvrir plusieurs sessions X simultanément. Par défaut, Mandrake Linux dispose de six consoles virtuelles, en plus de celle réservée à l’interface graphique. Vous pouvez basculer de l’une à l’autre en tapant la séquence de touches Ctrl-Alt-F<n>, où <n> représente le numéro de la console vers laquelle vous voulez vous diriger. En général, l’interface graphique est sur la console numéro 7. Ainsi pour vous rendre sur la seconde console vous presserez les touches Ctrl, Alt et F2 simultanément.
Lors de l’installation, DrakX vous a demandé d’entrer un mot de passe pour un utilisateur bien particulier : root. Cet utilisateur est spécial pour une raison bien simple : root est l’administrateur du système, donc très probablement vous. Pour la sécurité de votre système, il est très important que le compte root soit toujours protégé par un bon mot de passe !
Si vous vous connectez régulièrement en tant que root, il très facile de faire une erreur qui pourrait rendre votre système inutilisable. Une seule mauvaise manipulation peut suffire. En particulier, si vous n’avez pas mis de mot de passe à ce compte, n’importe qui peut altérer votre système (y compris d’autres systèmes d’exploitation sur votre machine !). Ce qui, évidemment, peut s’avérer fort ennuyeux.
Enfin, il est bon de mentionner qu’en interne, le système ne vous identifie pas par votre nom de connexion, mais par un numéro unique associé à votre nom de connexion : un UID (User ID, soit un identifiant utilisa- teur). De même, chaque groupe est identifié par son identifiant de groupe ou GID (Group ID).
1.2. Notions de base au sujet des fichiers
Les fichiers sont un autre domaine où GNU/Linux diffère totalement de Windows et de la plupart des autres systèmes d’exploitation. Nous n’aborderons ici que les différences les plus visibles. Si vous le souhaitez, vous pouvez lire le chapitre Le système de fichiers Linux, page 61, qui approfondit ce sujet.
La première différence est une conséquence directe du fait que GNU/Linux soit un système multiutilisateurs : chaque fichier est la propriété exclusive d’un utilisateur et d’un groupe. Un peu plus haut, nous avons parlé des utilisateurs, mais une chose que nous n’avons pas mentionné est que chaque utilisateur dispose de son propre répertoire (appelé son répertoire personnel, à savoir son home directory en anglais). Il est le proprié­taire de ce répertoire, ainsi que de tous les fichiers qu’il y créera par la suite. Lui, et personne d’autre.
Cependant, la notion de propriété d’un fichier, prise seule, ne servirait pas à grand-chose. Mais il y a plus : en tant que propriétaire d’un fichier, un utilisateur peut établir des droits sur ce fichier. Ces droits distinguent trois catégories d’utilisateurs : le propriétaire du fichier, tout utilisateur qui est membre du groupe propriétaire associé au fichier (appelé le groupe propriétaire) mais n’est pas le propriétaire lui-même, et les autres, catégorie qui regroupe tout utilisateur qui n’est ni le propriétaire, ni membre du groupe propriétaire.
On distingue trois types de droits :
1. Droit de lecture (r pour Read ou lire). Sur un fichier, cela autorise la lecture de son contenu. Pour un répertoire, cela autorise son contenu (c’est-à-dire les fichiers qu’il contient) à être listé.
2. Droit d’écriture (w pour Write ou écrire). Pour un fichier, cela autorise la modification de son contenu. Pour un répertoire, l’accès en écriture autorise un utilisateur à ajouter et retirer des fichiers de ce répertoire, même s’il n’est pas le propriétaire des-dits fichiers.
3. Droit d’exécution (x pour eXecute ou exécuter). Pour un fichier, cela en autorise l’exécution (par consé­quent, seuls les fichiers exécutables devraient normalement avoir ce droit positionné). Pour un répertoire, cela autorise un utilisateur à le traverser (ce qui signifie entrer dans ce répertoire ou passer par celui-
8
Chapitre 1. Concepts UNIX de base
ci). Notez bien la séparation avec le droit en lecture : il se peut très bien que vous puissiez traverser un répertoire sans pouvoir lire son contenu !
Toutes les combinaisons de ces droits sont possibles : vous pouvez par exemple autoriser la lecture du fichier à vous seul et l’interdire à tous les autres. Vous pouvez même faire l’inverse, même si ce n’est pas très logique à première vue... En tant que propriétaire du fichier, vous pouvez en changer le groupe propriétaire (si et seulement si vous êtes aussi membre du nouveau groupe), et même vous déposséder du fichier (c’est-à-dire en changer le propriétaire). Bien entendu, si vous vous dépossédez d’un fichier, vous perdrez tous les droits sur celui-ci...
Prenons l’exemple d’un fichier et d’un répertoire. L’affichage ci-dessous correspond à la frappe de la com­mande ls -l depuis une ligne de commande :
$ ls -l
total 1
-rw-r----- 1 reine users 0 Jul 8 14:11 un_fichier drwxr-xr-- 2 pierre users 1024 Jul 8 14:11 un_repertoire/ $
Les différents champs de sortie de la commande ls -l sont les suivants (de gauche à droite) :
les dix premiers caractères désignent successivement le type du fichier et les droits qui lui sont associés ;
le premier caractère désigne le type du fichier : c’est un tiret (-) s’il s’agit d’un fichier ordinaire, d si le fichier est un répertoire. Il existe d’autres types de fichiers dont nous parlerons dans ce manuel. Les neuf caractères qui suivent représentent les droits associés au fichier. On constatera ici la distinction faite entre les différents types d’utilisateur pour un même fichier : les trois premiers caractères représentent les droits octroyés à l’utilisateur propriétaire, les trois suivants s’appliquent à tout utilisateur du groupe qui n’est pas le propriétaire, et les trois derniers aux autres ; un tiret (-) signifie que le droit n’est pas octroyé ;
vient ensuite le nombre de liens du fichier. Nous verrons plus loin que l’identifiant unique d’un fichier n’est
pas son nom, mais un numéro (le numéro d’inœud), et qu’il est possible pour un fichier sur disque d’avoir plusieurs noms. Pour un répertoire, le nombre de liens a une signification spéciale, que nous aborderons également un peu plus loin ;
viennent ensuite le nom de l’utilisateur propriétaire du fichier et le nom du groupe propriétaire ;
enfin sont affichés la taille du fichier (en octets) ainsi que la date de sa dernière modification. Pour finir,
vous trouverez également le nom du fichier ou du répertoire lui-même.
Observons maintenant en détails les droits associés à l’accès de chacun de ces fichiers : il faut tout d’abord enlever le premier caractère, qui désigne le type. Donc, pour le fichier un_fichier, les droits accordés sont : rw-r-----. Voici comment les interpréter :
les trois premiers (rw-) sont les droits accordés à l’utilisateur propriétaire de ce fichier, en l’occurrence reine.
L’utilisateur reine peut donc lire le fichier (r), le modifier (w) mais ne peut pas l’exécuter (-) ;
les trois suivants (r--) sont concédés à tout utilisateur qui n’est pas reine mais qui appartient au groupe
users : il pourra lire le fichier (r), mais ne pourra ni le modifier ni l’exécuter (--) ;
les trois derniers (---) s’appliquent à tout utilisateur qui n’est pas reine et qui n’appartient pas au groupe
users : un tel utilisateur n’a tout simplement aucun droit sur ce fichier.
Pour le répertoire un_r´epertoire, les droits sont rwxr-xr--, et donc :
pierre, en tant que propriétaire du répertoire, peut en lister le contenu (r), peut ajouter des fichiers dans ce
répertoire ou en supprimer (w), et il peut traverser ce répertoire (x) ;
tout utilisateur qui n’est pas pierre mais qui appartient au groupe users pourra lister le contenu de ce
répertoire (r) mais ne pourra pas y ajouter des fichiers (-) ; par contre, il aura le droit de le traverser (x) ;
tout autre utilisateur ne pourra que lister les fichiers de ce répertoire (r), mais c’est tout. Il sera incapable de
le traverser.
Il existe une exception à ces règles : root. root peut changer les attributs (droits, propriétaire, groupe proprié­taire) de tous les fichiers, même s’il n’en est pas le propriétaire. Cela veut dire qu’il peut aussi s’en attribuer la
9
Chapitre 1. Concepts UNIX de base
propriété ! Il peut lire des fichiers sur lesquels il n’a pas le droit de lecture, traverser des répertoires auxquels il n’aurait normalement pas accès, et ainsi de suite. Et s’il lui manque un droit, il lui suffit simplement de se le rajouter...
Pour conclure, il est utile de mentionner les différences entres les noms de fichiers dans le monde UNIX et le monde Windows . UNIX permet une flexibilité bien plus grande et a moins de limitation :
un nom de fichier peut comporter n’importe quel caractère (à l’exception du caractère ASCII 0, qui dénote
la fin d’une chaîne de caractères, et /, qui est le séparateur de répertoires), même des caractères non impri­mables. De plus, UNIX est sensible à la casse : les fichiers readme et Readme sont différents, car r et R sont deux caractères distincts sous UNIX ;
comme vous avez pu le remarquer, un nom de fichier ne comporte pas forcément une extension, à moins
que vous le vouliez. Les extensions de fichier n’identifient pas le contenu des-dits fichiers sous GNU/Linux . D’ailleurs, il en va de même sur tous les systèmes d’exploitation. Cependant, ces « extensions » ainsi nommées sont toujours très pratiques. Le caractère point (.) sous UNIX n’est qu’un caractère comme les autres. Notons que les noms de fichier commençant avec un point sous UNIX sont des « fichiers cachés ».
Toutefois il est `a signaler que certaines applications graphiques (ges­tionnaires de fichiers, applications bureautiques, etc.) utilisent ef­fectivement les extensions de noms de fichiers pour reconnaˆıtre fa­cilement les formats de fichier. C’est donc une bonne id´ee d’utiliser ces extensions pour les applications qui en tirent parti.

1.3. Les processus

On désigne par le terme de processus une instance de programme en cours d’exécution et son environnement. Comme pour les fichiers, nous n’introduirons ici que les différences les plus importantes ; continuez la lecture de ce manuel pour une discussion plus en profondeur sur le sujet.
La différence la plus importante est, encore une fois, liée au concept d’utilisateurs : en effet, chaque processus s’exécute avec les droits de l’utilisateur qui l’a lancé. En interne, le système identifie les processus de façon unique grâce à un numéro. Ce numéro est appelé le PID (Process ID, donc identifiant de processus). Avec ce PID, le système sait, entreautres choses, qui (quel utilisateur) a lancé le processus. Il lui reste alors à vérifier que le processus demandé est « légal ». Reprenons l’exemple du fichier un_fichier susmentionné. L’utilisateur pierre sera capable d’ouvrir ce fichier en lecture seule, mais pas en lecture/écriture, puisque les droits associés au fichier l’interdisent. Encore une fois, l’exception à la règle est root...
En conséquence, GNU/Linux est virtuellement immunisé contre les virus : pour opérer, les virus doivent in­fecter des fichiers exécutables du système. Mais avec le seul statut d’utilisateur, il leur est impossible de mo­difier ces fichiers, ce qui réduit d’autant plus les risques. Ajoutons que les virus sont, en général, très rares dans le monde UNIX . Jusqu’à présent, il existe moins d’une douzaine de virus connus sous Linux , et ils sont complètement inoffensifs lorsqu’ils sont lancés par un utilisateur normal. Un seul utilisateur peut vraiment endommager le système en activant ces virus, et, encore une fois, c’est root.
Toutefois, il existe bien des logiciels antivirus sous GNU/Linux , la plupart d’entre eux étant destinés aux fichiers DOS /Windows ... En effet, de plus en plus de serveurs de fichiers GNU/Linux desservent des machines windows avec le paquetage logiciel Samba .
Linux permet également un contrôle aisé des processus, entre autres grâce aux signaux. Avec ceux-ci, vous pouvez, par exemple, suspendre un processus ou le tuer. Envoyez simplement le signal correspondant au pro­cessus et c’est fait. Toutefois, vous serez limité à l’envoi de signaux à vos propres processus, pas aux processus lancés par un autre utilisateur. L’exception à la règle est root. Oui, encore lui ! Dans le chapitre Contrôle des processus, page 49, vous apprendrez comment obtenir le PID d’un processus et lui envoyer des signaux.
1.4. Petite introduction `a la ligne de commande
La ligne de commande est le moyen le plus direct pour donner des ordres à la machine. Si vous utilisez la ligne de commande de GNU/Linux , vous découvrirez vite qu’elle est bien plus puissante et polyvalente que d’autres lignes de commande que vous avez déjà pu utiliser. La raison en est que vous avez non seulement accès à toutes les applications de X , mais aussi à des milliers d’utilitaires en mode console (par opposition au
10
Chapitre 1. Concepts UNIX de base
mode graphique) qui n’ont pas d’équivalents graphiques, ou dont les nombreuses options et combinaisons possibles seront difficilement accessibles sous la forme de boutons ou de menus.
Mais, il faut bien l’admettre, cette ligne de commande nécessite un peu d’aide pour débuter. Si vous n’êtes pas déjà en mode console et utilisez l’interface graphique, la première chose à faire est de lancer un émulateur de terminal. En accédant au menu GNOME ou KDE , vous trouverez ceux-ci dans le menu Terminaux. Ensuite, choi- sissez celui que vous voulez, par exemple, Konsole ou XTerm. Une icône qui identifie clairement l’émulateur de terminal se trouve également sur les tableaux de bord de GNOME et KDE (figure 1-3).
Figure 1-3. L’icône de l’émulateur de terminal sur le tableau de bord de KDE
Le shell est le nom du programme avec lequel vous entrez en relation. Vous êtes devant cette invite (prompt en anglais) :
[reine@localhost reine]$
Ceci suppose que votre nom d’utilisateur soit reine et que votre nom de machine soit localhost (ce qui est le cas si votre machine ne fait pas partie d’un réseau). L’espace après l’invite est disponible pour taper votre commande. Notez que quand vous êtes root, le $ de l’invite devient un # (ceci est vrai dans la configura­tion par défaut, chacun de ces éléments pouvant être personnalisé). Lorsque vous avez lancé un shell en tant qu’utilisateur et que vous désirez « devenir » root, utilisez la commande su :
# Entrez le mot de passe root ; il n’appara^ıtra pas `a l’´ecran
[reine@localhost reine]$ su Password: # exit vous fera revenir `a votre compte utilisateur normal [root@localhost reine] # exit [reine@localhost reine]$
Partout ailleurs dans cette documentation, l’invite sera représentée symboliquement par un $, que vous soyez un utilisateur normal ou root. Il vous sera indiqué quand vous devez être root, alors n’oubliez pas su. Un # en début de ligne de code représentera un commentaire.
Quand vous lancez le shell pour la première fois, vous vous retrouverez normalement dans votre répertoire personnel. Pour savoir, à tout moment, dans quel répertoire vous vous situez, tapez la commande pwd (pour Print Working Directory, soit afficher le répertoire de travail) :
$ pwd
/home/reine
Nous allons maintenant examiner quelques commandes de base, et vous verrez bientôt que vous ne pourrez plus rien faire sans elles.
1.4.1. cd : changer de r´epertoire
La commande cd est exactement la même que celle sous DOS , avec quelques fonctionnalités en plus. Elle fait exactement ce qu’énonce son acronyme : elle change le répertoire de travail. Vous pouvez utiliser . et .., qui sont respectivement le répertoire courant et son répertoire parent. Taper simplement cd vous ramènera à votre répertoire personnel. Taper cd - vous renverra dans le dernier répertoire visité. Et enfin, vous pouvez spécifier le répertoire de l’utilisateur pierre en tapant ~pierre (~ seul signifie votre propre répertoire personnel). Notez qu’en tant qu’utilisateur normal, vous ne pouvez, en général, pas accéder au répertoire d’un autre utilisateur (à moins qu’il ne l’ait explicitement autorisé ou que tel soit le réglage de la configuration par défaut du système), sauf si vous êtes root, donc soyons root et entraînons-nous :
11
Chapitre 1. Concepts UNIX de base
$ pwd
/root $ cd /usr/share/doc/HOWTO $ pwd /usr/share/doc/HOWTO $ cd ../FAQ-Linux $ pwd /usr/share/doc/FAQ-Linux $ cd ../../../lib $ pwd /usr/lib $ cd ~pierre $ pwd /home/pierre $ cd $ pwd /root
Maintenant, redevenons un utilisateur ordinaire.
1.4.2. Quelques variables d’environnement et la commande echo
Tous les processus ont en fait leurs variables d’environnement . Le shell vous permet de les visualiser directe­ment avec la commande echo. Voici quelques variables intéressantes :
1. HOME : cette variable d’environnement contient une chaîne de caractères désignant votre répertoire person­nel.
2. PATH : elle contient la liste de tous les répertoires dans lesquels le shell doit chercher des exécutables quand vous tapez une commande (notez que, contrairement à DOS , par défaut, le shell n’ira pas chercher les commandes dans le répertoire courant !).
3. USERNAME : cette variable contient votre nom de login.
4. UID : elle contient votre identifiant utilisateur.
5. PS1 : cette variable abrite la définition de votre invite. C’est souvent une combinaison de séquences spéci­fiques, et vous pouvez lire bash(1) dans les pages de manuel pour plus de renseignements.
Pour que le shell affiche la valeur d’une variable, vous devez mettre un $ devant son nom. Ici, echo va vous être utile :
$ echo Bonjour
Bonjour $ echo $HOME /home/pierre $ echo $USERNAME pierre $ echo Bonjour $USERNAME Bonjour pierre $ cd /usr $ pwd /usr $ cd $HOME $ pwd /home/pierre
Vous constaterez que le shell substitue la valeur de la variable avant d’exécuter la commande, sinon notre
cd $HOME n’aurait pas fonctionné. En fait, le shell a en premier lieu remplacé $HOME par sa valeur, soit /home/pierre ; la ligne est donc devenue cd /home/pierre, ce que nous recherchions. Même chose pour echo $USERNAME, etc.
12
Chapitre 1. Concepts UNIX de base
1.4.3. cat : afficher le contenu d’un ou de plusieurs fichiers `a l’´ecran
Peu de choses à dire, si ce n’est que cette commande fait simplement et littéralement ce qu’elle énonce : afficher le contenu d’un ou de plusieurs fichiers sur la sortie standard, donc l’écran en temps normal :
$ cat /etc/fstab
/dev/hda5 / ext2 defaults 1 1 /dev/hda6 /home ext2 defaults 1 2 /dev/hda7 swap swap defaults 0 0 /dev/hda8 /usr ext2 defaults 1 2 /dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev 0 0 none /proc proc defaults 0 0 none /dev/pts devpts mode=0620 0 0 /dev/cdrom /mnt/cdrom auto user,noauto,nosuid,exec,nodev,ro 0 0 $ cd /etc $ cat modules.conf shells alias parport_lowlevel parport_pc pre-install plip modprobe parport_pc ; echo 7 > /proc/parport/0/irq #pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start #alias char-major-14 sound alias sound esssolo1 keep /bin/zsh /bin/bash /bin/sh /bin/tcsh /bin/csh /bin/ash /bin/bsh /usr/bin/zsh

1.4.4. less : un pager

Son nom est un jeu de mots sur le premier pager existant sous UNIX , qui se nommait more1. Un pager est un programme dont le but est d’autoriser la visualisation de longs fichiers page par page (plus précisément, écran par écran). Nous parlons de less plutôt que de more car son utilisation est beaucoup plus intuitive. Utilisez donc less pour voir des gros fichiers, qui sont trop longs pour l’écran. Par exemple :
less /etc/termcap
Pour naviguer dans le fichier, utilisez simplement les touches fléchées haut et bas, et q pour quitter. En fait, less peut faire bien plus : tapez simplement h pour avoir de l’aide (en anglais), et lisez. Mais de toute façon, l’objectif de cette section était de vous permettre de lire de longs fichiers et, nous l’espérons, cet objectif est maintenant atteint :-)
1.4.5. ls : faire une liste de fichiers
Cette commande est équivalente à celle nommée dir sous DOS , mais elle peut accomplir beaucoup plus de choses. Ceci est dû en grande partie au fait que les fichiers, eux-mêmes, font nettement plus ! La syntaxe de la commande ls est comme suit :
ls [options] [fichier|r´epertoire] [fichier|r´epertoire...]
Si aucun fichier ou répertoire n’est mentionné sur la ligne de commande, ls fera la liste des fichiers du réper­toire courant. Ses options sont très nombreuses, et nous n’en citerons que quelques-unes :
1. More signifie « plus » et less signifie « moins »
13
Chapitre 1. Concepts UNIX de base
1. -a : fait une liste de tous les fichiers, y compris les fichiers cachés (rappelons que sous UNIX , les fichiers cachés sont ceux dont le nom commence par un point (.)) ; l’option -A fait une liste de « presque » tous les fichiers, à savoir tous les fichiers qu’afficherait l’option -a sauf « . » et « .. ».
2. -R : fait une liste récursivement, par exemple, tous les fichiers et sous-répertoires des répertoires men­tionnés sur la ligne de commande.
3. -s : affiche la taille en kilo-octets à côté de chaque fichier.
4. -l : affiche des informations supplémentaires sur les fichiers.
5. -i : affiche le numéro d’inœud (le numéro unique du fichier sur un système de fichiers, voir le chapitre Le système de fichiers Linux, page 61) en face de chaque fichier.
6. -d : traite les répertoires comme des fichiers normaux au lieu de lister leur contenu.
Quelques exemples :
1. ls -R : fait une liste récursive des fichiers du répertoire courant.
2. ls -is images/ .. : fait une liste des fichiers du répertoire images/ et du répertoire parent, avec pour chaque fichier son numéro d’inœud et sa taille en kilo-octets.
3. ls -l images/*.png : fait une liste de tous les fichiers du répertoire images/ dont le nom se termine par .png. Notez que cela comprend aussi le fichier .png, si celui-ci existe.

1.4.6. Raccourcis clavier utiles

basics-chapter.xml Beaucoup de combinaisons de touches sont disponibles, lesquelles peuvent vous faire ga­gner un temps précieux. Nous vous proposons une liste de celles qui sont essentielles. Nous supposons ici que vous utilisez le shell par défaut de Mandrake Linux, soit bash . Toutefois, ces séquences de touches devraient aussi fonctionner avec d’autres shells.
D’abord, les touches fléchées : bash maintient un historique des commandes que vous tapez, dans lequel vous pouvez vous déplacer avec les flèches haut et bas. Vous pouvez remonter jusqu’à un nombre de lignes définies dans la variable d’environnement HISTSIZE. De plus, l’historique est persistant d’une session à l’autre, donc vous ne perdrez pas les commandes que vous avez tapées lors d’une session précédente.
Les flèches gauche et droite déplacent le curseur dans le sens indiqué. Vous pouvez ainsi éditer vos lignes de cette façon. Mais il y a plus en matière d’édition : Ctrl+a et Ctrl+e, par exemple, vous amèneront respecti­vement au début et à la fin de la ligne courante. Les touches <-- (Backspace) et Suppr fonctionneront comme on s’y attend. Un équivalent de Backspace est Ctrl+h et un équivalent de Suppr est Ctrl+d. Ctrl+k effacera toute la ligne depuis la position du curseur jusqu’à la fin de la ligne, et Ctrl+w effacera le mot qui précède la position du curseur.
Taper Ctrl+d sur une ligne vide fermera la session actuelle, ce qui est un vrai raccourci par rapport à la commande exit. Ctrl+c interrompra la commande en cours d’exécution, sauf si vous étiez en train d’éditer une ligne. Dans ce cas, ce sera l’édition en cours qui sera interrompue et vous serez ramené à l’invite. Ctrl+l nettoie l’écran.
Enfin, parlons un peu de Ctrl+s et Ctrl+q : ces combinaisons de touches servent respectivement à suspendre et à restaurer le flux de caractères sur un Terminal . Elles sont très peu utilisées, mais il peut arriver que vous tapiez Ctrl+s par inadvertance (après tout, les touches s et d sont très proches l’une de l’autre sur un clavier...). Donc, si vous appuyez sur des touches mais ne voyez rien apparaître à l’écran, essayez Ctrl+q d’abord et faites attention : tous les caractères que vous avez tapés entre le Ctrl+s non désiré et le Ctrl+q apparaîtront alors sur l’écran.
14

Chapitre 2. Disques et partitions

Ce chapitre propose des informations pour ceux qui souhaitent mieux comprendre les détails techniques de la gestion des disques sous GNU/Linux . Il donne une description complète du système de partitionnement du PC . Il n’est utile que si vous décidez de partitionner manuellement votre disque dur. Le programme d’installation pouvant partitionner vos disques dur de manière automatique, il n’est pas nécessaire de tout comprendre pour effectuer une installation standard. Par contre si vous souhaitez modifier l’architecture des partition, ce chapitre sera utile.
2.1. Structure d’un disque dur
Pour simplifier, disons qu’un disque est physiquement divisé en petits secteurs. Une suite de secteurs peut former une partition. En fait, vous pouvez créer autant de partitions que vous le souhaitez, chacune d’entre elles étant considérées comme un disque dur séparé.

2.1.1. Les Secteurs

Un disque dur n’est rien d’autre qu’une suite de secteurs. Un secteur est la plus petite unité d’information sur un disque dur, et sa taille est en général de 512 octets. Les secteurs d’un disque dur de « n » secteurs sont numérotés de « 0 » à « n-1 » .

2.1.2. Les Partitions

L’utilisation de plusieurs partitions vous permet de créer autant de disques durs virtuels sur votre disque dur réel. Ceci comporte plusieurs avantages:
Des systèmes d’exploitation différents utilisent des structures de disque (appelés systèmes de fichiers) diffé-
rents; cela est notamment le cas entre Windows et GNU/Linux . Avoir plusieurs partitions sur un disque dur vous permet d’installer plusieurs systèmes d’exploitation sur le même disque matériel.
Pour des raisons de performances, un système d’exploitation aura avantage à avoir plusieurs disques avec
des systèmes de fichiers différents puisqu’ils seront utilisés pour des tâches complètement distinctes. C’est ainsi le cas pour GNU/Linux qui nécessite une deuxième partition appelée « swap » (échange), utilisée pour accueillir la mémoire virtuelle.
Même si toutes vos partitions utilisent le même système de fichiers, il peut s’avérer très utile de séparer les
différentes parties de votre OS en autant de partitions. Dans la configuration la plus simple, vous pouvez répartir vos fichiers sur deux partitions, une pour vos données personnelles, une autre pour le système lui­même. Cela vous permet de mettre à jour ce dernier en effaçant complètement la partition du système mais en gardant vos fichiers personnels intacts.
Les erreurs physiques sur un disque dur sont généralement situées sur des secteurs adjacents et non dis-
persées sur tout le disque. Distribuer vos fichiers sur des partitions différentes limitera les pertes de données en cas de dommages physiques de votre disque dur.
Normalement, le type d’une partition spécifie le système de fichiers que la partition est censée héberger. Chaque système d’exploitation en reconnaît certains, mais pas d’autres. Consulter Systèmes de fichiers et points
de montage, page 57 et Le système de fichiers Linux, page 61 pour plus d’information.
15
Chapitre 2. Disques et partitions
2.1.3. D´efinition de la structure du disque dur
2.1.3.1. Le plus simple
Avoir seulement deux partitions ! une pour l’espace d’échange, l’autre pour les fichiers1.
La r`egle g´en´erale pour la taille de la partition d’´echange est de choi­sir le double de la taille de votre m´emoire vive (RAM). N´eanmoins, pour des configurations ayant beaucoup de m´emoire (>512 Mo), cette r`egle ne s’applique plus, et des tailles plus petites sont alors pr´ef´erables.
2.1.3.2. Une autre configuration courante
Opter pour la séparation des données et des programmes. Et pour être encore plus efficace, on ajoute géné­ralement une troisième partition dite « racine » et étiquetée /. Elle accueillera les programmes nécessaires au démarrage du système et les programmes de maintenance de base.
Nous pouvons ainsi définir quatre partitions :
Échange :
Une partition de type swap, dont la taille est équivalente à celle de la mémoire vive
Racine : /
C’est la partition la plus importante. Non seulement elle contient les données et les programmes les plus importants pour le système, mais elle aura également à servir comme point d’accueil pour les autres partitions.
Les besoins en terme de taille de la partition racine sont très limités, 300Mo sont suffisants. Néanmoins, si vous envisagez d’installer des applications commerciales, résidant généralement dans /opt, vous devrez augmenter cette taille en conséquence. Une autre option est alors de créer une partition /opt séparée.
Données statiques : /usr
La plupart des paquetages installent presque tous leurs exécutables et fichiers de données dans /usr. L’avantage d’avoir l’ensemble sur une partition séparée est que l’on peut aisément la partager avec d’autres machines du réseau.
La taille recommandée dépend des paquetages que vous souhaitez installer. Elle peut varier de 100Mo pour une installation poids plume à plusieurs Go pour une installation complète. Un compromis de un ou de deux Go (selon la taille disponible sur votre disque) est généralement suffisant.
Répertoires personnels : /home
Sont stockés ici les répertoires personnels de tous les utilisateurs du système. Il accueille aussi générale­ment les répertoires servis par HTTP ou FTP (respectivement pour la navigation Web ;et les transferts de fichiers).
La taille de la partition est très variable: elle dépend du nombre d’utilisateurs (ou de services) hébergés et de leurs besoins.
Une variante de cette solution est de ne pas utiliser une partition séparée pour /usr : /usr sera alors un simple répertoire à l’intérieur de la partition /.
1. Le système de fichiers actuellement utilisé par les fichiers GNU/Linux est appelé ext3
16
Chapitre 2. Disques et partitions
2.1.3.3. Configurations exotiques
Lorsque votre machine est configurée pour des utilisations bien particulières, pour être un serveur Web ou un pare-feu, ses besoins seront radicalement différents de ceux d’une machine de bureau standard. Par exemple,un serveur FTP aura probablement besoin d’une grosse partition séparée pour accueillir /home/ftp, alors que /usr sera plutôt limité. Dans de telles situations, il vaut mieux avoir soigneusement défini ses be­soins avant même de commencer l’installation.
Si apr`es un certain temps d’utilisation de votre machine, vous vous rendez compte que les partitions ou leur taille sont inad´equates, il vous sera possible de redimensionner la plupart des partitions sans avoir pour cela `a r´einstaller tout le syst`eme ;il n’y a en g´en´eral pas de risque pour vos donn´ees. Consultez G´erer ses partitions du manuel Guide de d´emarrage .
Avec un peu d’exp´erience, vous pourrez mˆeme d´eplacer une partition comble vers un tout nouveau disque dur. Mais, ¸ca, c’est une autre histoire...

2.2. Conventions pour nommer disques et partitions

GNU/Linux utilise une convention beaucoup plus logique pour nommer les partitions. D’une part, le type des partitions éventuellement présentes n’entre pas en ligne de compte; d’autre part, les partitions sont nommées en fonction du disque où elles se situent. Tout d’abord, voici comment les disques sont nommés :
les périphériques IDE (que ce soient des disques durs, lecteurs CD-ROM ou autres) primaires, maître et
esclave, sont appelés respectivement /dev/hda et /dev/hdb
sur l’interface secondaire, ce sont /dev/hdc et /dev/hdd pour maître et esclave respectivement
si votre ordinateur contient d’autres interfaces IDE (par exemple l’interface IDE présente sur certaines cartes
Soundblaster), les disques s’appelleront alors /dev/hde, /dev/hdf, etc. Vous pouvez aussi avoir d’autres
interfaces IDE si vous avez des cartes RAID ou des puces RAID intégrées à la carte mère.
les disques SCSI sont appelés /dev/sda, /dev/sdb, etc. dans l’ordre de leur apparition sur la chaîne SCSI
(en fonction des ID croissants). Les lecteurs de CD-ROM SCSI sont appelés /dev/scd0, /dev/scd1, toujours dans l’ordre d’apparition sur la chaîne SCSI.
Ainsi, GNU/Linux nommera les partitions de la façon suivante :
Les partitions primaires (ou étendues) sont nommées /dev/hda1 à /dev/hda4 lorsqu’il y en a
Les partitions logiques, s’il y en a, sont nommées /dev/hda5, /dev/hda6, etc. dans leur ordre d’apparition
dans la table des partitions logiques.
Ainsi GNU/Linux nommera les partitions de la façon suivante :
Figure 2-1. Premier exemple de noms de partitions sous GNU/Linux
17
Chapitre 2. Disques et partitions
Figure 2-2. Second exemple de noms de partitions sous GNU/Linux
Vous voici maintenant à même de nommer les différentes partitions et disques durs quand vous en aurez besoin. Vous remarquerez également que GNU/Linux nomme les partitions même s’il ne sait pas les gérer d’entrée de jeu a priori (il ignore le fait que ce ne sont pas des partitions GNU/Linux autochtones).
Pour les noyaux r´ecents 2.4, Mandrake Linux, utilise le Syst`eme de fichiers de p´eriph´eriques Linux Devfs (Device File System) (http: //www.atnf.csiro.au/~rgooch/linux/docs/devfs.html). Ce syst`eme assure une compatibilit´e totale avec les notations utilis´ees ci-dessus, mais cette compatibilit´e pourrait disparaˆıtre ult´erieure­ment. En fait, chaque p´eriph´erique est ajout´e dynamiquement au fur et `a mesure de leur disponibilit´e ou n´ecessit´e.
Par exemple, le premier disque dur IDE devient d´esormais /dev/ide/host0/bus0/target0/lun0/disc au lieu de /dev/hda.
18
Chapitre 3. Introduction `a la ligne de commande
Dans le chapitre Concepts UNIX de base, page 7, nous avons vu comment lancer un shell et ses principes de base, mais nous ne l’avons pas fait fonctionner. C’est ce que nous nous proposons de faire dans ce chapitre.
Le principal avantage du shell est le nombre d’utilitaires existants : des milliers sont disponibles et chacun d’entre eux a une tâche bien définie. Nous n’en examinerons ici qu’un petit nombre. L’une des grandes forces d’UNIX est la possibilité de combiner ces utilitaires, comme nous le verrons plus loin.
3.1. Utilitaires de manipulation de fichiers
La manipulation de fichiers signifie ici « copier », « déplacer » et « effacer » des fichiers. Le changement de leurs attributs (propriétaire, permissions associées) sera examiné par la suite.
3.1.1. mkdir, touch : cr´eation de r´epertoires et fichiers vides
mkdir (MaKe DIRectory) est utilisé pour créer des répertoires. Sa syntaxe est simple :
mkdir [options] <r´epertoire> [r´epertoire ...]
En fait, une seule option est vraiment intéressante : l’option -p. Si cette option est passée en argument, elle implique deux comportements :
1. mkdir créera les répertoires parents s’il n’existaient pas avant. Sans cette option, mkdir échouerait, se plaignant que les répertoires parents n’existent pas ;
2. mkdir terminera silencieusement si le répertoire que vous désirez créer existe déjà. De même, si vous ne spécifiez pas l’option -p, mkdir renverra un message d’erreur, se plaignant cette fois-ci que le répertoire à créer existe déjà.
Voici quelques exemples :
mkdir toto crée un répertoire du nom de toto dans le répertoire courant.
mkdir -p images/divers docs crée un répertoire divers dans le répertoire images après avoir créé ce
dernier s’il n’existait pas (-p) ; il crée également un répertoire docs dans le répertoire courant.
Initialement, la commande touch n’a pas pour but de créer des fichiers mais de mettre à jour les dates d’accès et de modification1. Toutefois, l’un des effets de bord de touch est de créer les fichiers mentionnés comme des fichiers de taille 0 s’ils n’existaient pas déjà. La syntaxe est :
touch [options] fichier [fichier...]
Il faut donc lancer la commande :
touch fichier1 images/fichier2
ce qui créera un fichier vide appelé fichier1 dans le répertoire courant et un fichier vide appelé fichier2 dans le répertoire images, si ces fichiers n’existaient pas déjà.
3.1.2. rm : supprimer des fichiers ou des r´epertoires
rm (ReMove) remplace les commandes del et deltree de DOS , et rajoute des options supplémentaires. Sa syn- taxe est :
rm [options] <file|directory> [file|directory...]
Parmi les options, on trouve :
1. Il y a trois mesures de temps distinctes pour chaque fichier sous UNIX : la date du dernier accès au fichier (atime), c’est-à-dire la date de la dernière ouverture du fichier en lecture ou en écriture ; la date de la dernière modification des attributs de l’inœud (mtime) ; et enfin la date de la dernière modification du contenu du fichier (ctime).
19
Chapitre 3. Introduction à la ligne de commande
-r ou -R : supprime récursivement. Cette option est obligatoire pour supprimer un répertoire, même vide.
Toutefois, pour effacer des répertoires vides, vous pouvez également utiliser la commande rmdir.
-i : demande une confirmation avant chaque effacement. Prenez note que, par défaut et pour des raisons
de sécurité, la commande rm dans Mandrake Linux est un alias de rm -i (comme le sont également les commandes cp et mv). Si vous désirez les effacer, vous pouvez éditer le ficher ~/.bashrc et ajouter la ligne suivante : unalias rm cp mv.
-f : le contraire de -i, cette option force la suppression des fichiers ou répertoires, même si l’utilisateur n’a
pas l’autorisation d’écriture sur les fichiers2.
Quelques exemples :
rm -i images/*.jpg fichier1 : suppression de tous les fichiers dont le nom se termine par .jpg dans le
répertoire images, ainsi que le fichier fichier1 dans le répertoire courant. Une confirmation est demandée pour chacun des fichiers. Répondez o ou y pour confirmer, n pour annuler.
rm -Rf images/divers/ file* : suppression sans demande de confirmation de tout le répertoire
divers/ dans le répertoire images/. De plus, tous les fichiers du répertoire courant dont le nom commence par file seront également effacés.
Un fichier effac´e avec rm l’est de fa¸con irr´eversible : il n’y a alors aucun moyen de r´ecup´erer ce fichier3! N’h´esitez donc pas `a utiliser l’option -i afin d’´eviter d’effacer des donn´ees par erreur.
3.1.3. mv : d´eplacer ou renommer des fichiers
La syntaxe de la commande mv est la suivante :
mv [options] <file|directory> [file|directory ...] <destination>
Quelques options :
-f : force l’opération. Aucun avertissement en cas d’écrasement d’un fichier au cours de l’opération.
-i : le contraire. Demande une confirmation à l’utilisateur avant d’écraser un fichier existant.
-v : mode verbeux qui rapporte tous les changements.
Quelques exemples :
mv -i /tmp/pics/*.png . : déplace tous les fichiers du répertoire /tmp/pics/ dont le nom se termine par
.png vers le répertoire courant (.). Une confirmation est demandée avant d’écraser un fichier existant.
mv toto titi : renomme le fichier (ou le répertoire) toto en titi. Si un répertoire titi existait déjà, l’effet
de cette commande serait de bouger tout le répertoire toto (le répertoire lui-même et tous ses fichiers et sous-répertoires) dans le répertoire titi.
mv -vf fichier* images/ trash/ : déplace, sans demander de confirmation, tous les fichiers dans le ré-
pertoire courant dont le nom commence par fichier, ainsi que tout le répertoire images/ vers le répertoire trash/. Tous les changements effectués sont mentionnés.
2. Pour un utilisateur, il est suffisant de pouvoir écrire dans un répertoire pour en effacer des fichiers, même s’il n’en est pas le propriétaire.
20
Chapitre 3. Introduction à la ligne de commande
3.1.4. cp : copier des fichiers et des r´epertoires
cp remplace les commandes copy et xcopy de DOS et contient d’autres options. Sa syntaxe est la suivante :
cp [options] <file|directory> [file|directory ...] <destination>
Il existe une myriade d’options. Voici les plus utilisées :
-R : copie récursivement ; obligatoire pour copier un répertoire, même vide.
-i : demande une confirmation avant d’écraser des fichiers.
-f : le contraire de -i. Remplace tous les fichiers existants sans demander de confirmation.
-v : mode verbeux qui mentionne toutes les actions effectuées par cp.
Quelques exemples :
cp -i /tmp/images/* images/ : copie tous les fichiers du répertoire /tmp/images dans le répertoire
images/ du répertoire courant, en demandant une confirmation avant d’écraser un fichier.
cp -vR docs/ /shared/mp3s/* mestrucs/ : copie tout le répertoire docs du répertoire courant, en plus de
tous les fichiers du répertoire /shared/mp3s dans le répertoire mestrucs, lequel est situé dans le répertoire courant.
cp toto titi : copie le fichier toto sous le nom de titi dans le répertoire courant.
3.2. Manipulation des attributs de fichiers
La série de commandes présentée ici est utilisée pour changer le propriétaire ou groupe propriétaire d’un fichier ou ses droits d’accès. Les différents droits d’accès sont présentés dans le chapitre « Concepts de base des systèmes UNIX ».
3.2.1. chown, chgrp : changer l’utilisateur et le groupe propri´etaire d’un ou plusieurs fichiers
La syntaxe de la commande chown est la suivante :
chown [options] <user[.group]> <file|directory> [file|directory...]
Entre autres options, vous trouverez celles-ci :
-R : récursif. Change le propriétaire de tous les fichiers et sous-répertoires d’un répertoire donné ;
-v : mode verbeux. Décrit toutes les actions effectuées par chown ; indique quels fichiers ont changé de
propriétaire à la suite de la commande ainsi que ceux qui demeurent inchangés ;
-c : comme -v, mais ne mentionne que les fichiers pour lesquels il y a eu un changement.
Quelques exemples :
chown nobody /shared/book.tex : change le propriétaire du fichier /shared/book.tex au profit de no-
body ;
chown -Rc reine.musique *.mid concerts/ : donne la propriété de tous les fichiers dans le répertoire
courant se terminant par .mid et de tous les fichiers et sous-répertoires du répertoire concerts/ à reine et au groupe musique. Cette commande ne mentionne que les fichiers affectés par la commande.
La commande chgrp (CHange GRouP) ne vous laisse changer que le groupe propriétaire d’un fichier ou d’un groupe de fichiers. Sa syntaxe est très semblable à celle de la commande chown :
chgrp [options] <group> <file|directory> [file|directory...]
Les options de cette commande sont les mêmes que pour chown, et elle est utilisée de façon très similaire. Ainsi, la commande :
21
Chapitre 3. Introduction à la ligne de commande
chgrp disk /dev/hd*
attribue au groupe disk tous les fichiers du répertoire /dev dont le nom commence par hd.
3.2.2. chmod : changer les permissions sur des fichiers et des r´epertoires
La commande chmod a une syntaxe bien particulière. Sa syntaxe générale est :
chmod [options] <change mode> <file|directory> [file|directory...]
mais ce sont les différentes formes que peut prendre le changement de mode qui la rendront plus spécifique. Ceci peut se produire de deux façons :
1. en octal. Les droits d’accès de l’utilisateur propriétaire correspondent alors à des chiffres de la forme <x>00, où <x> correspond au droit assigné : 4 pour lecture, 2 pour écriture, 1 pour exécution. De même, les droits d’accès du groupe propriétaire sont de la forme <x>0 et ceux des « autres » sont de la forme x. Pour obtenir le chiffre correct, il suffira d’additionner les droits d’accès assignés. Ainsi, les permissions rwxr-xr-- correspondent à 400+200+100 (droits d’accès de l’utilisateur propriétaire, rwx) +40+10 (droits d’accès du groupe, r-x) +4 (droits d’accès des autres, r--) = 754. Les droits d’accès sont ainsi exprimés de manière absolue : les droits d’accès précédents sont remplacés de façon inconditionnelle ;
2. à l’aide de certaines expressions. Les droits d’accès sont ici indiqués par une suite d’expressions séparées par des virgules, une expression étant de la forme [cat´egorie]<+|-|=><droits d’acc`es>.
La catégorie peut être une combinaison de :
u (User, soit utilisateur, permission pour propriétaire) ;
g (Group, soit groupe, permission pour le groupe propriétaire) ou ;
o (Others, permission pour les « autres »).
Si aucune catégorie n’est spécifiée, le changement s’applique à toutes les catégories. Un + appose un droit d’accès, un - le retire et un = établit la permission. Pour finir, les droits d’accès sont définis par une ou plusieurs des lettres suivantes :
r (Read, soit lecture) ;
w (Write, soit écriture) ou ;
x (eXecute, soit exécution.
Les options principales sont très similaires à celles de chown ou chgrp :
-R : change les droits d’accès récursivement ;
-v : mode verbeux. Il décrit les actions effectuées pour chaque fichier ;
-c : comme -v, mais ne mentionne que les fichiers dont les droits d’accès ont changé.
Exemples :
chmod -R o-w /shared/docs : enlève de façon récursive le droit d’écriture aux « autres » sur tous les fichiers
et sous-répertoires du répertoire /shared/docs/ ;
chmod -R og-w,o-x prive/ : enlève de façon récursive le droit d’écriture pour le groupe et les autres sur
tout le répertoire prive/, et retire le droit d’exécution pour les autres ;
chmod -c 644 divers/fichier* : change les droits d’accès de tous les fichiers du répertoire divers/ dont
les noms commencent par fichiers en rw-r--r-- (droit de lecture pour tout le monde et droit d’écriture pour le propriétaire du fichier seulement). Cette commande ne mentionne que les fichiers affectés par l’opération.
22
Chapitre 3. Introduction à la ligne de commande
3.3. Motifs d’englobement du shell
Il est probable que vous utilisiez déjà sans le savoir des caractères d’englobement. Quand vous enregistrez un fichier dans une application sous Windows ou lorsque vous recherchez un fichier, vous utilisez * pour désigner une suite de caractères quelconques. Par exemple, *.txt désigne l’ensemble des fichiers dont le nom se ter­mine par .txt. Nous l’avons également utilisé fréquemment dans la section précédente, mais l’englobement va beaucoup plus loin que le seul *.
Quand vous tapez une commande comme ls *.txt, puis Entr´ee, la tâche de trouver quels fichiers corres- pondent au motif *.txt n’est pas du ressort de ls, mais doit passer par le shell lui-même. Cela requiert donc une petite explication sur la façon dont le shell interprète une ligne de commande. Lorsque vous tapez :
$ ls *.txt readme.txt recipes.txt
La ligne de commande est tout d’abord séparée en mots (ls et *.txt en l’occurrence). Quand le shell voit le * dans un des mots, il interprète le mot comme étant un motif englobant et le remplace dans la ligne de commande par les noms de tous les fichiers correspondant au motif. Avant que ne s’exécute la ligne de com­mande dans le shell, ce dernier aura remplacé l’astérisque (*) par readme.txt et recettes.txt ; la commande deviendra donc ls readme.txt recettes.txt, ce qui donnera le résultat recherché. Le shell réagit aussi à la vue d’autres caractères :
? : correspond à un caractère unique, quel qu’il soit ;
[...] : correspond à tout caractère écrit entre les crochets ; les caractères peuvent désigner soit des interva-
lles (par exemple, 1-9), soit des valeurs discrètes, soit encore un mélange des deux. Exemple : [a-zBE5-7] correspond à tous les caractères de a à z, un B, un E, un 5, un 6 ou un 7 ;
[^...] : correspond à tous les caractères qui ne se trouvent pas entre les crochets ; [^a-z], par exemple,
correspond à tout caractère qui n’est pas une lettre minuscule4.
{c1,c2} : correspond à c1 ou c2, où c1 et c2 sont également des caractères d’englobement, ce qui signifie
que vous pouvez écrire {[0-9]*,[acr]} par exemple.
Voici quelques exemples de motifs et leur signification :
/etc/*conf : tous les fichiers du répertoire /etc dont le nom se termine par conf. Cela peut correspondre
au fichier /etc/inetd.conf, mais aussi à /etc/conf.linuxconf, et à /etc/conf si un tel fichier existe. Souvenez-vous que * peut correspondre à une chaîne vide.
image/{cars,space[0-9]}/*.jpg : tous les fichiers dont le nom se termine par .jpg dans les répertoires
image/cars, image/space0, jusqu’à image/space9, s’ils existent.
/usr/share/doc/*/README : tous les fichiers de nom README dans tous les sous-répertoires immédiats de
/usr/share/doc. Cela correspondra à /usr/share/doc/mandrake/README par exemple, mais pas à /usr/ share/doc/myprog/doc/README.
*[^a-z] : tous les fichiers du répertoire courant dont le nom ne finit pas par une lettre minuscule.

3.4. Redirections et tubes

3.4.1. Encore un mot au sujet des processus

Pour comprendre le principe des redirections et des tubes, ils nous faudra introduire ici une nouvelle notion qui concerne les processus. Chaque processus sous UNIX (y compris les applications graphiques) utilise un minimum de trois descripteurs de fichiers : l’entrée standard, la sortie standard et le canal d’erreur standard.
Leurs numéros respectifs sont 0, 1 et 2. En général, ces trois descripteurs sont associés au Terminal depuis lequel le processus a été lancé, l’entrée standard étant lue depuis le clavier. Le but des redirections et des tubes est de rediriger ces descripteurs. Les exemples de cette section vous aideront à mieux comprendre.
4. Attention ! Bien que cela soit vrai pour la plupart des langues, il est possible que cela ne fonctionne pas pour votre langue locale. Cela dépend de l’ordre de tri (collating order). Pour certaines configurations de langage, [a-z] correspondra à a, A, b, B (...), Z. Et cela, sans parler du fait que certaines langues contiennent des caractères accentués...
23
Chapitre 3. Introduction à la ligne de commande

3.4.2. Redirections

Supposons, par exemple, que vous vouliez connaître la liste des fichiers se terminant par .png5dans le réper­toire images, et que cette liste soit très longue : il serait donc pertinent de la stocker dans un fichier pour la consulter à loisir ensuite. Vous pouvez alors taper ceci :
$ ls images/*.png 1>liste_fichiers
Ce qui signifie que la sortie standard de cette commande (1) est redirigée (>) vers le fichier qui a pour nom liste_fichiers. Le signe > est l’opérateur de redirection de sortie. Dans le cas où le fichier de redirection
n’existerait pas, il serait alors créé. Par contre, s’il existait précédemment, son ancien contenu serait écrasé. Ce­pendant, par défaut, le descripteur redirigé par cet opérateur est la sortie standard, il n’est donc pas nécessaire de le spécifier sur la ligne de commande. Vous pouvez donc écrire plus simplement :
$ ls images/*.png >liste_fichiers
et le résultat serait exactement le même. Vous pouvez ensuite consulter le fichier à l’aide d’un visualiseur de fichiers textes tel que less.
Supposons maintenant que vous vouliez connaître le nombre exact de ces fichiers. Au lieu de compter ma­nuellement, vous pouvez utiliser le bien nommé wc (Word Count, soit comptage des mots) avec l’option -l, qui écrit sur la sortie standard le nombre de lignes du fichier. Pour obtenir le résultat désiré, une solution possible serait la suivante :
wc -l 0<liste_fichiers
Le signe < est l’opérateur de redirection d’entrée. Le descripteur redirigé par défaut est également celui de l’entrée standard, donc 0. La ligne s’écrit alors simplement :
wc -l <liste_fichiers
Supposons maintenant que vous vouliez retirer de cette liste toutes les extensions des fichiers puis sauvegarder le résultat dans un autre fichier. L’outil dont vous avez besoin est sed, pour Stream EDitor (soit éditeur de flux). Il suffit de rediriger l’entrée standard de sed vers le fichier liste_fichiers et de rediriger sa sortie vers le fichier résultat, par exemple la_liste :
sed -e ’s/\.png$//g’ <liste_fichiers >la_liste
Il vous sera également possible de consulter à loisir cette nouvelle liste avec un visualiseur. Il pourrait aussi s’avérer utile de rediriger l’erreur standard. Par exemple, vous voulez savoir quels répertoires
dans /shared ne vous sont pas accessibles : une solution est de lister récursivement ce répertoire et de rediriger les erreurs vers un fichier, tout en n’affichant pas le canal de sortie standard :
ls -R /shared >/dev/null 2>erreurs
Ceci signifie que la sortie standard sera redirigée (>) vers /dev/null, un fichier spécial dans lequel tout ce qu’on écrit est perdu (et aura comme effet secondaire que la sortie standard ne sera pas affichée) et que le canal d’erreur standard (2) sera redirigé (>) vers le fichier erreurs.

3.4.3. Tubes

Les tubes (pipes en anglais) sont en quelque sorte une combinaison des redirections d’entrée et de sortie. Leur principe mime en effet celui d’un tube : un processus envoie des données dans le tube par un bout et un autre processus lit les données par l’autre bout. L’opérateur tube est |. Reprenons l’exemple de la liste des fichiers .png ci-dessus. Supposons que vous vouliez seulement connaître le nombre de fichiers en question sans avoir à stocker la liste dans un fichier temporaire : utilisez alors la commande suivante :
ls images/*.png | wc -l
5. Il peut vous paraître saugrenu de dire « les fichiers se terminant par .png » plutôt que « les images PNG ». Mais, encore une fois, les fichiers sous UNIX n’ont d’extension que par convention : une extension ne détermine en aucun cas le type d’un fichier. Un fichier dont le nom se termine par .png peut indifféremment être une image JPEG, un exécutable, un fichier texte ou tout autre chose. Il en est de même sous Windows !
24
Loading...
+ 106 hidden pages