|
Zakath |
 |
Guru 
Déconnecté
Niveau : 5 N° de Membre :
7213
Ancienneté : 97%
Participation : 12%
Inscription: 15 Dec 2002
Localisation: Copenhague
Messages: 9866
Sujets Lancés : 426
|
[HOWTO] N'ayez plus peur de Linux !
Changelog (15/04/05:10h45) : Remplacement de Mandrake par Ubuntu dans les conseils
Suite aux demandes éplorées de plusieurs membres (bon, ok, d'un membre, et c'était pour rire, mais c'est pas grave), et bien qu'il existe déjà d'excellents documents de par le web (par exemple ici : http://www.lea-linux.org), j'ai décidé de créer ce thread, en deux parties : dans la première, ici, des infos générales pour s'en sortir sous Linux et découvrir ce monde merveilleux. Dans la suite du thread, vous poserez vos questions et décrirez vos problèmes, et je m'efforcerai d'y répondre et de vous aider.
Vous n'avez donc plus aucune raison de ne pas passer à Linux, au moins en dual boot...
Q : Pourquoi est-ce que je changerais de système d'exploitation ? Quels sont les avantages de Linux sur Windows ?
A : Je vais essayer d'être le plus objectif possible sur ce point. Les avantages sont multiples :
- Linux est un système libre : vous utilisez un système développé par des passionnés, le plus souvent bénévoles, qui savent ce qu'ils font. Windows est développé par des salariés, et le but principal de Microsoft n'est pas de fournir le meilleur système à l'utilisateur mais de faire le plus de profit possible.
- Linux est un système de type Unix, qui a plus de 30 ans d'âge et bénéficie donc de cette expérience, ainsi que d'un certain nombre de paradigmes de programmation afin de rendre l'ensemble plus efficace, plus stable et plus facile à maintenir.
- Linux est Open-Source : ses sources sont libres et publiques. Ce qui veut dire qu'il est quasi impossible d'y trouver des backdoors, qu'on est sûr de ne pas installer un gestionnaire de DRM en même temps qu'un patch de sécurité (suivez mon regard). Les failles de sécurité (rares, mais existantes quand même) sont corrigées en quelques heures après leur découverte (temps moyen pour Windows : deux mois environ).
- Linux compte de nombreux power-users : entre IRC, Usenet et les forums de discussion, vous pouvez être à peu près certains de trouver une aide adaptée à tous les types de problèmes.
- Linux, c'est le choix : vous avez toujours le choix entre plusieurs desktop managers, plusieurs interfaces graphiques, plusieurs shells, plusieurs... L'embarras du choix, donc des possibilités de personnalisation hallucinantes pour qui est habitué à Windows.
- Linux est plus stable et plus rapide que Windows : ce n'est pas moi qui le dois mais toutes les études indépendantes qui ont été faites. La majorité des serveurs web tournent sous Linux/Apache, pour cette raison précise. Sous Linux, les applications sont séparées du système, donc une application malveillante ou simplement buggée ne fait généralement pas planter le système entier. Et la gestion des processus comme de la mémoire sont transparentes à l'administrateur de la machine.
- Un système Linux est très facile à maintenir : en une commande, on télécharge les mises à jour de tous les logiciels installés sur votre machine et on patche le tout (il est possible de faire ça individuellement et d'avoir accès aux changelogs, évidemment).
- Enfin, atout majeur, Linux ne connaît pas actuellement tous les problèmes de sécurité de Windows. Que ce soit en raison du faible nombre d'utilisateurs ou de la qualité intrinsèque du système est un débat dans lequel je n'entrerai pas maintenant. Mais le fait est que nul n'est besoin d'un antivirus et qu'un firewall très performant est intégré par défaut dans le noyau. C'est un immense confort d'utilisation.
Q : Quid de ses défauts, alors ? Linux est-il parfait ?
A : Pas exactement. Outre que son noyau est monolithique (berk !), voici, à mon avis, ses deux plus gros inconvénients :
- Linux a la réputation d'être un système difficile à utiliser. C'est vrai et faux à la fois. Vrai parce que les habitudes à prendre sont très différentes de celles de Windows (pas meilleures ou moins bonnes, juste différentes), mais des distributions comme Mandrake et des Desktop Managers comme KDE ont fait de tels progrès qu'il est tout à fait possible maintenant de retrouver tous ses réflexes windowsiens et de vivre des mois sans utiliser la ligne de commande. Faux parce que, comme l'ensemble du monde Unix (l'exemple le plus flagrant étant l'éditeur de texte vi, pour ceux qui connaissent), ce système est "difficile" à apprendre (prendre avec de grosses pincettes quand même) mais puissant à utiliser. Je vais essayer de vous démontrer que c'est bien le cas.
- De très nombreux logiciels sont écrits pour Windows uniquement. Même s'il existe des émulateurs comme wine, ceux-ci restent complexes à utiliser et sont loins de toujours fonctionner au mieux. Mais là aussi, ce n'est pas vraiment gênant, parce que les outils Unix libres correspondants (Microsoft Office <-> OpenOffice.org, Photoshop <-> Gimp pour ne citer que les deux plus célèbres) sont en général compatibles avec les fichiers produits par les premiers (l'inverse n'est souvent pas vrai), et que l'offre logicielle est bien souvent du même niveau, voire supérieure (en plus d'être totalement libre, ce qui implique gatuite).
Q : Mais si j'essaie, à quoi est-ce que je m'engage ? Je veux garder Windows quand même, et pouvoir y revenir sans difficultés.
A : Absolument aucun problème. Il suffit de partitionner votre disque en deux segments, ou, mieux, d'en utiliser deux différents, un pour chaque système. Au démarrage, un utilitaire du nom de Grub ou Lilo vous demandera si vous voulez utiliser Linux ou Windows et zou, de retour chez Billou si les virii vous manquent trop. Pour effacer Linux complètement, ce n'est pas très difficile non plus, même pas besoin de reformater votre cher disque Windows.
Mais il y a même mieux, avec les LiveCD. Vous avez certainement entendu parler de Knoppix : il s'agit d'une distribution Linux qui n'a pas besoin de s'installer du tout sur votre disque. Vous gravez le CD, le mettez dans votre lecteur, redémarrez et zou, vous êtes sous Linux. Vous enlevez le CD du lecteur et votre PC redevient 100% Microsoft. Idéal pour esayer sans risques et se faire une idée de Linux, il est néanmoins à déconseiller si vous voulez vraiment vous mettre à Linux (entre autres parce qu'il faut refaire la conf à chaque fois, à moins de tout garder sur une clé USB, et que ça demande pas mal d'efforts pour pas grand chose, finalement).
Q : Est-ce qu'installer Linux risque de me faire perdre des données sur mes disques ?
A : Il y a effectivement une possibilité de ce genre lors de l'installation, au moment de partitionner les disques (certaines distros le font automatiquement, donc aucun risque), il est recommandé de faire gaffe avec fdisk (et avec PartitionMagick et n'importe quel partitionneur, d'ailleurs).
Par contre, une fois sous Linux, il est simplement impossible d'écrire sur un disque windows (bien que le support du NTFS en écriture soit en cours de développement sur les noyaux 2.6). Donc pas le moindre danger de ce côté-là : chaque système, s'il peut lire chez l'autre, ne peut rien y modifier.
Q : Bon, ça n'a pas l'air mal, je vais essayer. Qu'est-ce que je fais, maintenant ?
A : Maintenant, il faut choisir une distribution. Il faut bien comprendre que Linux, en soi, c'est juste un système d'exploitation, un noyau : le gros logiciel qui va venir se mettre entre l'utilisateur et le matériel, venir gérer les périphériques, la mémoire et le processeur. Si on installe juste le noyau, on n'a pas d'interface graphique et aucune application disponible : pas très intéressant... C'est là que les distributions interviennent : ce sont des ensembles de logiciels, comprenant bien sûr le noyau, mais aussi une interface graphique (X.org, maintenant), des shells, des Window Managers, des jeux, des éditeurs de texte, des navigateurs et tout ce qu'il vous faut pour utiliser votre ordinateur. Il y a différentes distributions pour différents utilisateurs et différentes utilisations de votre machine. Nous allons voir ici les "grandes distributions" (celles avec le plus grand nombre d'utilisateurs, donc les plus à mêmes de trouver une solution à vos problèmes) et orientés vers une utilisation généraliste (il existe des distros spécifiques pour faire du firewall, du serveur, du calcul distribué...).
D'abord, les très grands publics :
Linspire : ex-Lindows, ne présente pas grand intérêt et aucun des gens qui l'ont testée sérieusement ne la recommandent.
SuSe : je ne connais pas personnellement, pour une raison très simple : les CDs ne sont pas téléchargeables grauitement. On est donc obligé de débourser des sommes variables pour se la procurer, et c'est tellement contraire à l'esprit Linux que je n'ai pas poussé plus loin mes investigations. Ceci dit, une version lite, bridée, est maintenant disponible au téléchargement, et la version Full a reçu d'assez bons échos.
RedHat : grosse société, RedHat avait l'habitude de fournir des distros de bonne qualité pour les débutants. Malheureusement, ils ont depuis peu réservé RedHat aux entreprises (179$ la licence) et proposent Fedora (gratuite) pour les particuliers. Mais cette dernière a très mauvaise réputation, surtout au niveau de la stabilité. A moins de prochaines améliorations, à oublier.
Mandrake : on y arrive. Cette distro était quasi-unanimement conseillée aux débutants, notamment pour son installation ulta-simple et sa ressemblance avec Windows, qui permet de ne pas dérouter les débutants, immédiatement à l'aise. Mais elle souffre de défauts assez nombreux : stabilité toute relative, peu évolutive et organise le système demanière assez aberrante. Dès que vous aurez envie d'aller voir de plus près et de tweaker ça dans tous les sens, il vous faudra changer.
Ubuntu : la petite dernière, qu'on attendait depuis longtemps ! Il s'agit en effet d'une version de Debian (voir plus bas) modifiée pour être plus conviviale et user-friendly. Elle bénéficie donc de la puissance et de la conception exemplaire de sa maman (notamment, ô joie, le gestionnaire de paquets aptitude) mais est beaucoup moins rebutante pour les débutants, avec notamment des outils de configuration graphique. Autre avantage, elle met à jour ses paquets beaucoup plus souvent que Debian (elle utilise notamment X.org). Définitivement le choix à faire si vous voulez essayer Linux (existe aussi en LiveCD, d'ailleurs). Il y a ce thread qui en parle sur le forum.
Knoppix : voir plus haut. A noter qu'il est possible de l'installer sur le disque dur, et que c'est une base de Debian (voir plus bas ).
Et les distros moins grand publics, mais que vous finirez forcément par utiliser, parce qu'elles sont cent fois mieux que les pré-citées :
Slackware : la plus ancienne de toutes, la plus complexe aussi. Un dicton du monde Linux dit "Si tu as un problème, cherche un utilisateur de Slackware : il l'a certainement déjà eu et résolu". L'utiliser à l'heure actuelle se justifie soit pour des raisons de matos pas très performant (c'est celle qui demande le moins de ressources), soit pour les power-users qui aiment les défis intellectuels.
Debian : une des légendes du monde du libre, c'est une distro à philosophie droit dans la lignée de GNU (Richard Stallmann, inventeur des logiciels libres et de la GPL). Très populaire, elle avait jusqu'à peu une réputation de difficulté, surtout au niveau de l'installeur, mais il paraît que celui-ci a fait d'immenses progrès. A noter que la branche stable a des paquets franchement vieillots (un des autres reproches qu'on lui fait : privilégier la stabilité absolue à la nouveauté), il est plutôt conseillé d'utiliser Sarge (actuellement branche instable, va remplacer l'actuelle stable sous peu). Très bonne distro, mais déconseillée aussi aux débutants.
Gentoo : ma chérie à moi. Se rapproche assez de Debian au niveau de la philosophie, mais a la particularité de tout recompiler (automatiquement, je vous rassure) pour installer, ce qui est long mais permet d'optimiser (un peu) les performances et d'utiliser plus de 0,1% de son CPU, de temps en temps. L'installation est celle d'une LFS (voir plus bas) et aucun paquet n'est imposé, l'utilisateur choisit absolument tout selon ses convenances, d'où le terme un peu pompeux de "méta-distribution" dont on l'affuble parfois. Attention, maîtrise de la ligne de commande indispensable.
LFS : non, pas Live For Speed, mais Linux From Scratch. Le principe est très simple, on part de rien, et petit à petit, on se construit son système. C'est long, compliqué et difficile, mais le résultat est souvent à la hauteur de ses espérances (paraît-il). Réservés aux vrais pros, vous l'aurez compris.
En résumé, que faut-il faire ? A mon avis, commencer par Mandrake (ou Knoppix), bien se familiariser, notamment avec la ligne de commande (c'est 1000 fois plus puissant que n'importe quel GUI et vraiment très facile, j'entends vous le prouver) puis passer à Debian ou Gentoo quand on se sent prêt et commencer à se faire sa distro, qui ne ressemble à aucune autre !
Q : Allez, c'est parti, je me lance. L'installation n'est pas trop difficile, j'espère ?
A : Tout dépend de la distro choisie. J'ai mis plus de trois jours, compilation non comprise, la première fois que j'ai essayé Gentoo (pour de sombres raisons de pilotes de drivers de modem : il fallait une connexion internet pour installer Gentoo, mais Gentoo pour installer la connexion... Heureusement, ça s'est amélioré depuis).
Si vous avez suivi mon conseil, par contre, vous utilisez Ubuntu, pour le début.
Vous vous rendez donc ici, choisissez l'iso et le miroir qui vous conviennent (un PC est une architecture x86) puis téléchargez les fichiers. Essayez d'utiliser des CDs de bonne qualité aussi, ça évite de mauvaises surprises à l'installation (et la remarque "Linux c'est nul, ça pante avant même d'être installé !").
L'installation se fait en mode texte (c'est l'installeur de Debian) mais est extrêmement simple (on dit que pour installer Debian, il suffit de placer une poule à côté du clavier et de mettre du grain sur la touche Entrée...). Le point délicat étant de choisir où installer la chose. Deux choix s'offrent à vous :
- idéal : un disque entièrement réservé à Linux (3 Go suffisent pour installer la dernière Mandrake avec la plupart des gros paquets, tout tourne bien avec 1Go mais il faut faire attention à ce qu'on installe). L'installeur de Mandrake va s'occuper de le formater pour vous, donc faites attention à ce qu'il ne reste rien d'important dessus
- moins bon : vous aller réserver un bout de votre disque Windows au gentil pingouin. Pensez à faire une (voire plusieurs en cas de doutes) défragmentation(s) avant de vous lancer, même si Mandrake a un outil très chouette qui s'occupe tout seul de déterminer l'espace libre et de pousser les fichiers windows dans un coin pour s'y installer tranquillement. N'oubliez pas que Windows a besoin d'environ 15% d'espace libre pour fonctionner correctement, donc ne rognez pas chaque Ko, d'autant que Linux a une partition de swap (mémoire virtuelle) séparée du reste du disque et n'a jamais besoin de défragmenter.
Le choix du mot de passe de root est extrêmement important ! Choisissez-le soigneusement, de manière à ce qu'il ne figure pas dans un dictionnaire, utilise des minuscules et des majuscules (différentes sous Unix), voire des nombres et des symboles spéciaux. Les initiales d'une phrase marchent bien en général (exemple : "Ce forum est absolument génial, je devrais y venir plus souvent !" -> CfEaG,jDyVps!).
Pour le reste, il suffit de suivre les explications fort bien faites de l'installeur et en moins de 15 minutes, vous serez sous Linux, et vous retrouverez sur un système tout neuf (à base de gnome et non de KDE).
Félicitations !
<center>Le système de fichiers</center>
Q : Oula, je viens d'ouvrir un explorateur de fichiers et je suis complètement perdu ! Comment on se repère, là-dedans ?
A : Le système de fichiers d'Unix est très différent de celui de Windows. Voyons rapidement en quoi il consiste. Déjà, pour vous balader dans votre arborescence, bien que rien ne vaille un bon shell, vous pouvez utiliser Konqueror si vous êtes sous KDE, Nautilus si vous utilisez Gnome. Ou bien firefox, dans lequel vous tapez code: file:///
, ce qui vous emmènera à la racine. Il y en a encore plein d'autres, rox, gentoo, etc... mais je vous laisse les découvrir.
Déjà, tout est différent de Windows dans le sens où ici, c'est votre dossier utilisateur (celui où vous stockerez vos documents personnels) qui est immergé dans l'arborescence du système et pas l'inverse. Le système de fichiers a une structure d'arbre, avec une racine, notée / (et pas \ comme sous Windows) et des ramifications.
Pour se repérer, on peut utiliser soit une adresse relative (à partir de l'endroit où on est), soit une adresse absolue (à partir de la racine). Les secondes se distinguent des premières par l'existence d'un / au début. Ainsi, dans le cas (tordu) où existent deux répertoires code: /home/user/home/user/coucou
et code: /home/user/coucou
et si vous êtes à l'emplacement /home/user, les adresses code:
/home/user/coucou
home/user/coucou
ne désignent pas le même répertoire, la première étant relative et la seconde non (je vous laisse le soin de les traduire toutes les deux en relative ou en absolue pour vous en convaincre). Attention, donc, c'est une source d'erreurs assez fréquente.
Si vous êtes dans un terminal (une ligne de commande, donc) et que vous désirez savoir où vous vous trouvez, il existe une commande bien pratique pour ce faire : code: pwd
pour Print Working Directory (Afficher Répertoire de Travail).
Une convention veut que dans tout répertoire se trouvent aux moins deux répertoires : code: .
..
le premier représentant le répertoire courant et le second le répertoire précédent dans l'arborescence.
Un autre répertoire spécial est code: ~
qui désigne votre répertoire personnel, soit code: /home/votre_nom_d'utilisateur/
Si on ajoute à cela que, comme sous DOS, la commande pour changer de répertoire est code: cd
pour Change Directory, vous devriez être capable de vous repérez sans difficultés, en ligne de commande comme sous un explorateur graphique.
Q : Bon, je veux bien, mais où il est, C: ? Et mon lecteur de DVD ?
A : Sous Linux, les périphériques se trouvent dans le répertoire code: /dev/
mais ils ne sont pas évidents à retrouver...
D'abord, les disques. Chaque disque IDE commence par le préfixe "hd", puis une lettre. Le premier disque de votre système s'appelle "hda", le second "hdb", etc. Mais ce n'est pas le disque lui-même qui nous intéresse, plutôt les données qu'il y a dessus. Qui se trouvent sur une partition (même s'il n'y en n'a qu'une). Elles utilisent des chiffres commençant à 1. Ainsi, la première partition de votre second disque est "hdb1", la seconde "hdb2", etc...
Ainsi, ma partition de swap est /dev/hdb2, ma partition de boot /dev/hdb1 et toutes mes données se trouvent sur /dev/hdb3.
Pour les disques SCSI ou S-ATA, le préfixe est "sd" au lieu de "hd" mais tout le reste fonctionne de la même manière. Mon appareil photo numérique va apparaître comme disque SCSI (je ne sais pas pourquoi, d'ailleurs), mais la première place étant occupée par mon disque S-ATA, il s'appellera /dev/sdb. Simple, non ?
Et les lecteurs de CD/DVD ? Ils sont dans le répertoire cdroms et sont numérotés dans l'ordre de branchement sur la nappe à partir de 0 (attention, cela peut varier selon les distros). Par exemple, mon lecteur DVD est "/dev/cdroms/cdrom0"] et mon graveur "/dev/cdroms/cdrom1".
Le lecteur de disquette, lui s'appelle "/dev/floppy". La souris et le clavier ont des noms variables ("/dev/mouse" souvent, pour la première) mais vous n'aurez que très rarement à utiliser ces informations.
Q : D'accord, mais quand je vais voir /dev/hda1, mon deuxième disque, j'ai un message d'erreur ou le répertoire est vide. Pourquoi ?
A : Il faut se mettre à la place du système d'exploitation. Pour lui, un disque (ou un DVD, ou une disquette, c'est fondamentalement la même chose), c'est juste un gros tas de 0 et de 1, sans signification particulière. Puis, si on a besoin d'accéder aux données qui y sont stockées ou si le système veut modifier certaines de ces données, il va aller interpréter ces bits comme une arborescence, avec des fichiers (sous Unix, tout est fichier, c'est un des paradigmes de base). Et le système va alors aller "accrocher" le gros répertoire "disque dur" au reste de l'arborescence, signalant qu'il est disponible et que toutes les applications, si elles ont les droits nécessaires (j'y reviendrai plus tard) peuvent y avoir accès.
Cette opération s'appelle le montage (puisqu'on monte le disque sur l'arborescence) et le "point de montage" (l'endroit où le disque va aller s'accrocher) se trouve dans un autre répertoire que /dev, pour éviter de prêter à confusion. Généralement, il est dans /mnt, et le nom du point de montage peut être n'importe quoi (par exemple "/mnt/petit_disque_windows" ou "/mnt/graveur_de_DVD_qui_ne_marche_jamais_quand_on_en_a_besoin").
Conclusion : on n'accède jamais directement à un périphérique dans /dev, mais on le monte toujours d'abord dans /mnt. Si on a fini de l'utiliser, on pense à le démonter.
Q : Et comment est-ce qu'on monte un périphérique, concrètement ?
A : Il y a plusieurs méthodes. Si j'ai bonne mémoire, Mandrake propose dans le menu du clic droitsur un disque l'option "monter" et "démonter", qui utilise un logiciel du nom de supermount.
Sinon, on fait comme les vrais pingouins et on monte ça depuis un terminal (attention, il faut être root pour pouvoir le faire). La commande est code: mount /dev/nom_du_peripherique /mnt/point_de_montage
Par exemple, pour monter mon disque windows et mon appareil photo numérique, j'exécute les commandes suivantes ("su" sert à passer en root et "exit" à repasser à l'utilisateur normal, j'y reviendrai aussi).
code: su
*** mot de passe root ***
mount /dev/sda1 /mnt/win
mount /dev/sdb1 /mnt/photo
*** copie des photos qui m'intéressent ***
umount /mnt/photo
exit
La commande "umount" sert donc à démonter un système monté (indispensable avant de débrancher un APN, comme chacun sait).
A noter qu'il est possible d'automatiser ce processus au démarrage, en éditant le fichier "/etc/fstab".
Q : Et à quoi correspondent tous ces répertoires au nom barbare, à la racine ?
A : Les noms de ces répertoires n'ont (presque) pas changé depuis les première versions d'Unix, ce qui explique certainement (enfin je pense) leurs noms quelque peu abscons.
Voici, brièvement résumé, ce que vous pourrez trouver dans chacun d'eux :
- /bin : abbréviation de "binaries", binaires (soit fichiers compilés et exécutables). C'est un des répertoires où se trouvent donc vos exécutables (en compagnie de /usr/bin et /sbin, principalement). Dans celui-ci, où vous ne devriez jamais mettre les pieds avant de devenir développeur du noyau, se trouvent toutes les commandes de base (ls, cp, mv, grep...).
- /boot : pas toujours monté de base, c'est là que se trouvent toutes les infos chargés par votre système au boot et nécessaires à son démarrage (en particulier le noyau compilé).
- /dev : voir paragraphe précédent, c'est l'abbréviation de "devices".
- /etc : c'est l'abbréviation d'un truc tordu, que je connaissais mais que j'ai oublié. Quoi qu'il en soit, ce répertoire est peut-être le plus important de tout votre système. Il contient en effet tous les fichiers de configuration, sans lesquels plus grand chose ne fonctionne. La conf de X, le serveur graphique, s'appelle /etc/X11/xorg.conf (si votre installation est récente) ou /etc/X11/XFree86 (si elle est plus ancienne). Quelques scripts bien utiles se trouvent aussi dans /etc/init.d/ (variable aussi selon les distros).
- /home : c'est ici que vous allez stocker tous vos fichiers personnels. Autant dire que c'est là que vous vivez ! Si votre nom d'utilisateur est Gloubiboulga, votre dossier est "/home/Gloubiboulga/". Facile, non ?
- /lib : toutes les librairies dont vos programmes ont besoin. Pas très intéressant à part ça.
- /mnt : voir plus haut, c'est là que se trouveront vos périphériques une fois montés sur le système.
- /opt : un autre dossier inintéressant, avec je crois les logiciels propriétaires.
- /proc : un dossier du même style que /dev, mais cette fois pour les processus. N'allez pas jouer là-bas, ça peut être dangereux...
- /root : le répertoire personnel de l'admin.
- /sbin : d'autres exécutables de certains outils bien utiles.
- /sys : comme /proc et /dev, mais pour des trucs que j'ignore.
- /tmp : tous vos fichiers temporaires, notamment pour les installations.
- /usr : l'endroit où tous les logiciels que vous installez se retrouvent. Ce n'est pas pour autant que vous devez y traîner plus que de raison. Un exécutable fraîchement installé se retrouvera presque toujours dans /usr/bin.
- /var : des fichiers temporaires ou non utiles au systèmes. Aller tripafouiller dedans ne peut que casser votre système, sauf (rares) exceptions.
En conclusion, il n'y a que dans /home, /etc et /mnt que vous vous baladerez, en général... Rassurez-vous, c'est suffisant (surtout /etc ).
<center>La ligne de commande</center>
Q : Oula, la ligne de commande ? Mais pourquoi est-ce que j'irais utiliser ça, moi ?
A : Les raisons de l'utiliser ne manquent pas. Sa maîtrise vous aidera dans les cas où les cliquodrommes (ou GUI pour les anglophones) ne pourront plus rien pour vous (ce qui arrivera tôt ou tard). Elle vous aidera aussi à mieux comprendre le fonctionnement de votre système.
Mais aussi, elle permet la réalisation de scripts, permettant d'automatiser une tâche, elle est extrêmement puissante (renommer des fichiers en masse devient très facile alors que c'est un calvaire avec une interface graphique, pour ne citer qu'un exemple) et elle permet l'accès à toutes les ressources du systèe, sans dépendre du bon vouloir du concepteur d'une interface graphique (comment dépanne-t-on un système graphique une fois qu'on a constaté que toutes les zones graphiques cliquables ne sont d'aucun secours ? En passant à la ligne de commande !).
Je me permets de la trouver beaucoup plus pratique que n'importe quel GUI, personnellement, et je n'utilise plus du tout d'explorateur graphique de fichiers.
Et pour terminer, pensez aux cas où, lorsque vous aurez modifié le mauvais paramètre dans un fichier de conf, vous vous retrouverez avec un kernel panic, à devoir secourir votre machine sans le serveur graphique X... Un minimum de connaissances à son sujet ne vous ferait certainement pas de mal.
Q : Est-ce que c'est difficile à apprendre ? Je n'ai pas envie de passer mon temps à taper des commandes absconses.
A : Non, je vais pour l'instant me contenter de vous apprendre les principales commandes, qui vous permettront de vous débrouiller. Les scripts et tous les aspects (un peu) plus complexes viendront plus tard.
Et non, on ne passe pas son temps à taper de longues lignes de commande depuis l'invention de cette merveille du génie logiciel qu'est l'auto-complétion.
Il suffit de taper les premières lettres de sa commande et de son chemin et de presser TAB pour que le système, soit complète tout seul la commande s'il n'y a aucune ambiguité, soit affiche les différentes possibilités et vous demande de choisir.
Q : Bon, allons-y... Par quoi est-ce qu'on commence ?
A : On va commencer par lancer un terminal. Sous KDE, c'est l'espèce de coquillage (KShell, je crois). Sinon, faire "exécuter commande" et taper code: xterm
. C'est le nom du terminal le plus utilisé. Mais un terminal seul n'est qu'une fenêtre qui avale ce que vous lui donnez à manger et sait afficher des choses. Il faut lui adjoindre un interpréteur, qu'on appelle un shell, pour qu'il puisse comprendre nos commandes et réagir de manière appropriée.
Si vous ne lui précisez rien, xterm va automatiquement lancer le shell par défaut (vous pouvez changer sa valeur, je crois que c'est bash sous Mandrake mais je n'y mettrais pas ma main à couper).
Il y a plusieurs familles de shell différents et c'est assez compliqué. Pour l'instant (et par le futur, vous conseille-je, à moins que vous n'ayez une bonne raison de ne pas le faire), nous utiliserons le plus avancé d'entre eux (le plus récent, aussi) : zsh.
Première remarque avant d'aller plus loin : Unix, contrairement à Windows, est sensible à la casse. C'est à dire que pour lui, minuscules et majuscules sont deux choses différentes. De manière générale, toutes est en minuscules, mais cela peut être sujet à changements (par exemple, les variables d'environnement (on se fiche de ce que c'est pour l'instant) sont toutes en majuscules). Faites donc bien attention, c'est une source très fréquente d'erreurs !
Tapez donc code: zsh
dans votre terminal et validez par ENTREE. Vous devriez voir un changement du prompt (qui dépend là aussi des paramètres de l'utilisateur). Le prompt est la chaîne de caractères qui indique que vous avez la main. Un prompt typique (le mien, par exemple) ressemble à code: heimdall@issa:~#
On y trouve plusieurs informations bien utiles : je suis l'utilisateur heimdall sur la machine issa. je me trouve au répertoire ~ (donc /home/heimdall, voir chapitre précédent) et j'ai la main (symbole #). Ce symbole peut néanmoins varier, on retrouve aussi fréquemment $ et %.
Q : Je suis toujours obligé d'attendre qu'une commande se termine avant d'en exécuter une autre ? C'est souvent loooooong !
A : Vous ne pouvez entrer une commande que lorsque vous avez la main (le prompt). C'est-à-dire, en théorie, quand la dernière commande a fini de s'exécuter. Pour de "petites commandes", qui prennent une fraction de seconde, ce n'est pas un problème, mais si vous lancez, par exemple, une grosse compilation ou que vous mettez à jour une base de données, vous seriez obligé de relancer un second shell si vous voulez faire quelque chose d'autre pendant ce temps.
Il existe une solution simple pour contourner le problème : rajouter une espérluette (le signe &) à la fin de votre commande. Ainsi, le shell exécutera la commande en arrière-plan et vous rendra immédiatement la main. Ainsi : code: updatedb
*** prend une bonne dizaine de minutes pendant laquelle vous ne pouvez rien faire***
updatedb &
*** vous renvoit tout de suite le prompt et s'exécute en arrière-plan***
Pratique, non ?
Q : Oula, j'ai fait une bêtise, vite, vite, comment j'interromps l'exécution courante ?
A : La combinaison magique est CTRL+C (souvent abrégé en ^C). Elle interrompt (violemment) l'exécution courante et vous rend la main. Eminemment pratique, vous vous en servirez très (trop) souvent.
Q : J'ai à taper plusieurs fois la même commande, ou des commandes qui se ressemblent beaucoup. Est-ce qu'il est possible de ne pas les taper en entier à chaque fois ?
A : Oui, et il y a deux solutions, principalement. La première, la plus efficace (de loin) mais qui nécessite quelques connaissances supplémentaires et que je n'aborderai pas pour le moment, c'est de passer par un script sh, qui est un mini langage de programmation, permettant d'exécuter des boucles, d'avoir des variables, etc...
Mais on peut aussi, simplement, utiliser l'historique. En effet, les shells gardent en mémoire un nombre fixé des les dernières commandes tapées. Il suffit pour y avoir accès de presser la flèche du haut, et ainsi de remonter l'historique des commandes. Si vous recherchez une commande précise assez loin dans l'historique, une possibilité est de taper les premiers caractères puis de presser la flèche du haut : seules les commandes commençant par ce que vous avez tapé seront affichées.
Q : Tout ça, c'est bien joli, mais je n'en connais aucune, de commande, moi !
A : Très juste. Et bien allons-y. Vous êtes naturellement fortement invité à tester chacune de ces commandes au fur et à mesure.
<center>Les méta-commandes</center>
C'est moi qui les appelle comme ça, elles servent à obtenir des informations sur les commandes (d'où le préfixe méta). Pour l'instant, il n'y en a qu'une, mais ô combien importante.
<ul><li>man : sert à obtenir le manuel d'une certaine commande. Vous y trouverez une brève description de ce qu'elle fait, la liste de ses options, sa syntaxe et souvent beaucoup plus. A faire avant de poser la question sur un forum, sous peine de se faire répondre le célèbre RTFM (Read The Fucking Manual). Comme je ne m'amuserai pas à vous détailler toutes les options des commandes que je vous présente, référez-vous au manuel pour ce genre d'informations. Pour en savoir plus : code: man man
</ul>
<center>Les commandes de manipulations des fichiers</center>
A prendre au sens large, puisque nous verrons aussi comment se déplacer dans le système de fichiers et l'explorer.
<ul><li>ls : abbréviation de 'list', permet de lister les fichiers du répertoire où vous vous trouvez (équivalent de 'dir' en DOS). Si vous rajoutez un chemin en argument, c'est ce répertoire qui sera listé : si vous êtes dans /home/heimdall/, par exemple : code: ls
***liste les fichiers de /home/heimdall/***
ls /etc/
***liste les fichiers de /etc/ (chemin absolu)***
ls info/
***liste les fichiers de /home/heimdall/info/ (chemin relatif)***
Quelques options pratiques : -a affiche également les fichiers cachés (ceux préfixés par un point) et -l affiche des informations supplémentaires sur les fichiers (date de création, propriétaire, droits, taille, etc...). Si vous voulez la taille en KB, MB, GB plutôt qu'en bits, rajoutez -h (pour humanly readable).
<li>cd destination : pour change directory, même commande qu'en DOS. cd suivi d'un chemin (absolu ou relatif, souvenez-vous) vous place dans ce répertoire. Sans argument, il vous place dans votre répertoire personnel (/home/nom_d'utilisateur/). Suivi d'un simple point, il vous place dans le répertoire courant (donc ne fait rien). Suivi de deux points, il vous remonte d'une étape dans l'arborescence. A noter que vous pouvez les cumuler. Pour remonter de trois étapes dans l'arborescence, par exemple : code: cd ../../../
<li>pwd : pour print working directory, affiche le répertoire où vous vous trouvez actuellement, si vous vous êtes perdu.
<li>cp source cible : copie le fichier source à l'emplacement cible. Si cible est un répertoire (terminé par /, c'est mieux), le nouveau fichier portera le même nom que l'ancien et se trouvera dans ce répertoire. Si cible n'existe pas encore dans l'arborescence, le nouveau fichier portera le nom de cible. Enfin, si cible est un fichier déjà existant, cp va râler et vous demander si vous voulez l'écraser. Illustration (/home/heimdall/divers/ est un répertoire existant, il n'y a aucun fichier du nom de 'go.lisp' dans le répertoire /home/heimdall/divers) : code: # cp hello.lisp /home/heimdall/divers/
# ls /home/heimdall/divers
hello.lisp
# cp hello.lisp /home/heimdall/divers/go.lisp
# ls /home/heimdall/divers
go.lisp
hello.lisp
Mais vous allez vite vous rendre compte que 'cp' ne fonctionne pas pour les répertoires. Il faut lui fournir une option spéciale pour manipuler des répertoires : -R (ou -r, mais comme d'autres commandes ne supportent que le -R pour le même genre de manipulation, préférez la majuscule), pour -recursive
La suite tout à l'heure
__________________
Allez jeter un œil à mon portfolio !
Edité par Zakath le 15-04-2005 à 10:45
Signaler ce message à un modérateur | IP: Logguée Temps en ligne : 103 Jours, 6 Heures, 8 Minutes, 25 Secondes en ligne
|