
                        From DOS/Windows to Linux HOWTO

Par Guido Gonzato, REMOVE_MEguido@ibogfs.cineca.it (enlevez REMOVE_ME) ;
adaptation franaise : Mark Hoebeke, mh@jouy.inra.fr.

   v1.3.2, 22 Fvrier 1999
     _________________________________________________________________

   _Ce HOWTO est consacr  tous les (bientt ex-?) utilisateurs de DOS
   et Windows qui ont dcid de basculer vers Linux, le clone gratuit
   d'UNIX. L'objectif de ce document est d'aider le lecteur  transposer
   sa connaissance de DOS et Windows  l'environnement Linux, et
   galement de lui fournir des astuces sur la manire d'changer des
   fichiers et des ressources entre les deux systmes d'exploitation._
     _________________________________________________________________

1. Introduction

1.1 Est-ce bien Linux qu'il vous faut ?

   Vous voulez basculer du monde DOS (cette dfinition incluant Windows)
   vers Linux ? Bonne ide : Linux est techniquement suprieur au DOS, 
   Windows 9x et mme  Windows NT. Mais prenez garde : cela ne vous sera
   peut-tre pas si utile que a. Voici les principales diffrences entre
   DOS/Windows et Linux :

     * Windows peut faire tourner Microsoft Office et des tas de jeux ;
       est considr comme facile  installer et configurer ; est
       notoirement instable ; est peu performant et sujet  des plantages
       frquents.
     * Linux peut faire tourner StarOffice, un flope de logiciels
       techniques mais moins de jeux ; peut tre difficile  installer et
        configurer ; est d'une stabilit  toute preuve ; offre des
       performances optimales et ne plante qu'extrmement rarement.

   C'est  vous de dcider ce dont vous avez besoin. En outre, Linux vous
   donne la puissance mais ncessite un temps d'apprentissage pour la
   matriser. Ainsi, si vous voulez utiliser avant tout des logiciels du
   commerce, ou si vous ne vous sentez pas d'attaque pour apprendre
   quelques nouveaux concepts et commandes, vous feriez mieux de regarder
   ailleurs. Soyez conscient que de nombreux dbutants abandonnent 
   cause des difficults rencontres au dmarrage.

   Des travaux sont en cours pour rendre Linux plus simple d'utilisation,
   mais _n'esprez pas vous y sentir  l'aise  moins de lire pas mal de
   documentation et de l'utiliser au moins pendant quelques mois_. Linux
   ne vous donnera pas de rsultats immdiats. En dpit de ces
   avertissements, je suis confiant  100% que si vous tes le bon type
   d'utilisateur, vous trouverez en Linux votre Nirvana informatique. Au
   fait, Linux + DOS/Win peuvent coexister en toute harmonie sur la mme
   machine.

   Prrequis pour ce howto : je supposerai que

     * vous connaissez les bases des commandes et des concepts du DOS ;
     * Linux, et ventuellement le systme X Window (X11 en abrg), sont
       correctement installs sur votre PC ;
     * votre interprteur de commandes (ou _shell_, l'quivalent de
       COMMAND.COM) est bash.

   Sauf indication contraire, toute l'information de ce document concerne
   ce vieux mchant DOS. On trouvera des informations  propos de Windows
   par-ci par-l, mais gardez  l'esprit que Windows et Linux sont
   totalement diffrents, contrairement au DOS qui est une espce de
   parent pauvre d'UNIX.

   Veuillez galement noter que ce document n'est ni une introduction
   exhaustive ni un guide de configuration !

   La version la plus rcente de ce document est disponible en diffrents
   formats  l'adresse ftp://sunsite.unc.edu:/pub/Linux/docs/howto.

1.2 Oui, c'est bien Linux. Je veux en savoir plus.

   Vous avez install Linux et les programmes dont vous avez besoin sur
   le PC. Vous vous tes cr un compte utilisateur (si ce n'est pas le
   cas, tapez adduser votre_nom _maintenant !_) et Linux est en train de
   tourner. Vous venez d'entrer votre nom et votre mot de passe, et, 
   prsent, vous regardez l'cran en vous demandant : Et maintenant, que
   faire ?

   Ce n'est pas le moment de dsesprer. Vous tes sur le point de faire
   les mmes choses que celles que vous aviez l'habitude de faire avec
   DOS/Win, et beaucoup plus. Si vous tiez sous DOS/Win au lieu d'tre
   sous Linux, vous seriez en train de faire quelques-unes des tches
   suivantes :

     * faire tourner des programmes et crer, copier, visualiser,
       effacer, imprimer et renommer des fichiers ;
     * faire des CD, des MD, des RD et des DIR dans vos rpertoires ;
     * formater des disquettes et copier des fichiers vers ou  partir de
       celles-ci ;
     * personnaliser le systme ;
     * surfer sur l'Internet ;
     * crire des fichiers .BAT et des programmes dans votre langage
       prfr ;
     * le 1% restant.

   Vous serez ravi de savoir que ces tches peuvent tre accomplies sous
   Linux de manire similaire au DOS. Sous DOS, l'utilisateur moyen
   n'utilise qu'une fraction de la bonne centaine de commandes
   disponibles : la mme chose, jusqu' un certain point, s'applique 
   Linux.

  Concepts introductifs

   La meilleure faon d'apprendre quelque chose de nouveau est de se
   jeter  l'eau. Il vous est chaudement recommand d'exprimenter et de
   jouer avec Linux :  moins de vous connecter en tant que root cela ne
   peut en aucun cas endommager le systme. Quelques points  noter :

     * avant tout, comment quitter Linux en toute scurit ? Si vous tes
       devant un cran en mode texte, faites <CTRL-ALT-DEL>, attendez que
       le systme commence  redmarrer ;  ce moment-l, teignez le PC.
       Si vous travaillez sous X Windows, tapez <CTRL-ALT-BACKSPACE>
       d'abord, puis <CTRL-ALT-DEL>. Il ne faut _jamais_ teindre ou
       redmarrer le PC directement : cela pourrait endommager le systme
       de fichiers ;
     * contrairement au DOS, Linux est pourvu d'origine de mcanismes de
       scurit. Des droits d'accs sont associs aux fichiers et aux
       rpertoires ; par consquent, l'utilisateur normal ne peut accder
        certains d'entre eux, cf. Droits d'accs et proprit. 
       l'inverse, DOS et Windows vous permettront de rayer de la carte
       l'intgralit du contenu de votre disque dur ;
     * il existe un utilisateur particulier appel root : c'est
       l'administrateur systme qui dispose du pouvoir de vie et de mort
       sur la machine. Si vous travaillez sur votre propre PC, c'est vous
       qui tes root. Travailler sous root est _dangereux_ : toute erreur
       peut endommager srieusement voire dtruire le systme, comme avec
       DOS/Win. Ne travaillez pas sous root sauf en cas de ncessit
       absolue ;
     * une grande part de la complexit de Linux provient du fait qu'il
       est configurable  l'extrme : tout paramtre et toute application
       peuvent virtuellement tre personnaliss grce  un ou plusieurs
       fichiers de configuration. Cette complexit est le prix  payer
       pour la puissance ;
     * les redirections et les _pipes_ sont des capacits secondaires du
       DOS, mais ils sont beaucoup plus importants et plus puissants sous
       Linux. Des commandes simples peuvent tre mises bout  bout pour
       accomplir des tches complexes. Je vous encourage fortement 
       apprendre  vous en servir.

  Obtenir de l'aide.

   Il existe de nombreuses manires d'obtenir de l'aide avec Linux. Les
   plus importantes sont de :

     * _lire la documentation_ -- J'insiste. Bien que le HOWTO que vous
       lisez en ce moment puisse servir d'introduction  Linux, il y a
       plusieurs livres que vous devriez vraiment lire : le Linux
       Installation and Getting Started par Matt Welsh (
       http://sunsite.unc.edu/mdw/LDP/gs/gs.html), le Linux User Guide
       de Larry Greenfield (
       ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/users-guide
       ) , et la FAQ Linux (
       http://sunsite.unc.edu/mdw/FAQ/Linux-FAQ.html). Vous devriez vous
       sentir coupable jusqu' ce que vous ayez lu au moins l'un d'entre
       eux.
     * la documentation des paquetages installs sur votre machine se
       trouve souvent dans les sous-rpertoires de /usr/doc/ ;
     * pour obtenir un peu d'aide sur les commandes internes du shell,
       tapez help ou mieux, man bash ou info bash ;
     * pour avoir l'aide sur une commande, tapez man commande qui invoque
       la page du manuel (_man_) relative  commande. D'autre part, vous
       pouvez taper info commande qui invoque la page d'informations
       (_info_) traitant de commande. Info est un systme de documentation
        base d'hypertexte, dont l'utilisation n'est peut-tre pas
       intuitive au dbut. Enfin, vous pouvez essayer apropos commande ou
       whatis commande. Pour toutes ces commandes, tapez q pour
       quitter.
     * enfin, sur l'Internet : l'endroit appropri pour obtenir de l'aide
       est Usenet, par exemple dans news:comp.os.linux.setup. S'il vous
       plat, ne m'envoyez pas de messages d'appel  l'aide car je suis
       quelque peu dbord.

1.3 Conventions

   Tout au long de ce document, les exemples figureront souvent au format
   suivant : <...> est un argument obligatoire, alors que [...] est
   optionnel. Par exemple :

$ tar -tf <fic.tar> [> fic-redir]

   fic.tar doit tre spcifi, mais la redirection vers fic_redir est
   optionnelle.

   LPM signifie Lisez les Pages du Manuel pour de plus amples
   informations. Je ne soulignerai jamais assez combien il est important
   de lire la documentation. DOSWin signifie DOS/Windows.

   Lorsque l'invite (_prompt_) d'un exemple de commande est le symbole #,
   cette commande ne peut tre lance que par root.

2. Pour les impatients

   Envie de vous y mettre tout de suite ? Examinez ce tableau :

DOS                     Linux                   Notes
------------------------------------------------------------------------------

ATTRIB (+-)attr fic    chmod <mode> fic            completement different
BACKUP                 tar -Mcvf device dir/  idem
CD repertoire\         cd repertoire/         presque la meme syntaxe
COPY fic1 fic2         cp fic1 fic2           idem
DEL fic                rm fic                 attention, pas de undelete
DELTREE repertoire     rm -R repertoire/      idem
DIR                    ls                     pas exactement la meme syntaxe
DIR fic /S             find . -name fic       completement different
EDIT fic               vi fic                 Je ne pense pas que vous aimerez
                       jstar fic              un peu comme 'edit' sous DOS
EDLIN fic              ed fic                 n'y pensez meme pas
FORMAT                 fdformat,
                       mount, umount          syntaxe assez differente
HELP command           man command,           meme philosophie
                       info command
MD repertoire          mkdir repertoire/      presque la meme syntaxe
MORE < fic             less fic               bien mieux
MOVE fic1 fic2         mv fic1 fic2           idem
NUL                    /dev/null              idem
PRINT fic              lpr fic                idem
PRN                    /dev/lp0,
                       /dev/lp1               idem
RD repertoire          rmdir repertoire/      presque la meme syntaxe
REN fic1 fic2          mv fic1 fic2           ne marche pas pour plusieurs fich
iers
RESTORE                tar -Mxpvf device      syntaxe differente
TYPE fic               less fic               beaucoup mieux
WIN                    startx                 a mille lieues !

   S'il vous faut plus qu'un tableau de commandes, veuillez vous reporter
   aux sections suivantes.

3.  la rencontre du bash

   Bonne nouvelle : avec Linux vous devez taper beaucoup moins de
   caractres  l'invite car l'interprteur de commandes bash tape 
   votre place autant que possible, et dispose de fonctionnalits
   d'dition de ligne du tonnerre. Pour commencer, la flche vers le haut
   rappelle les lignes de commandes prcdentes ; mais il y a plus.
   L'appui sur <TAB> complte les noms de fichiers et de rpertoires,
   ainsi, taper

$ls /uTABloTABbTAB

   c'est comme taper

$ ls /usr/local/bin

   S'il y a des ambiguts, comme lorsque vous tapez

$ ls /uTABloTABiTAB

   bash s'arrte parce qu'il ne sait pas si vous voulez dire
   /usr/local/info ou /usr/local/include. Il faut fournir plus de
   caractres avant de taper <TAB>  nouveau.

   D'autres combinaisons utiles sont <ESC-BACKSPACE> qui efface un mot
   sur la gauche, et <ESC-D> qui en efface un sur la droite ; <ESC-F>
   dplace le curseur d'un mot vers la gauche ; <CTRL-A> l'amne au dbut
   de la ligne, <CTRL-E> vers la fin. La touche <ALT> est quivalente 
   la touche <ESC>.

   On s'arrte l pour le moment. Une fois habitu(e)  ces raccourcis,
   vous vous lasserez trs rapidement de l'invite du DOS...

4. Fichiers et Programmes

4.1 Fichiers : notions prliminaires

   La structure des rpertoires et des fichiers sous Linux est trs
   similaire  celle de DOSWin. Les fichiers ont des noms qui doivent
   obir  certaines rgles, ils sont stocks dans des rpertoires,
   certains d'entre eux sont excutables et parmi ceux-ci, la plupart
   disposent d'options. De plus, il est possible d'utiliser les
   caractres _joker_, la redirection et les pipes. Seules quelques
   diffrences mineures existent :

     * sous DOS, les noms de fichier sont au format appel 8.3 ; comme
       dans TROPCOUR.TXT. Linux peut faire mieux. Si vous avez install
       Linux en utilisant un systme de fichiers comme ext2 ou umsdos,
       vous avez le loisir d'utiliser des noms de fichier plus longs
       (jusqu' 255 caractres), et avec plus d'un point : par exemple,
       Ceci_est.un.TRES_long.nom.de.fichier. Veuillez noter que j'ai
       utilis aussi bien des majuscules que des minuscules : en fait...
     * majuscules et minuscules dans les noms de fichier ou les commandes
       sont diffrencies. Par consquent, NOMFIC.tar.tgz et
       nomfic.tar.gz sont deux fichiers diffrents. De mme, ls est une
       commande mais LS est une erreur ;
     * utilisateurs de Windows, faites attention en utilisant les noms de
       fichier longs sous Linux. Si un nom de fichier contient des
       espaces (ce qui n'est pas recommand mais nanmoins possible),
       vous devez l'entourer avec des guillemets  chaque fois que vous y
       faites rfrence. Par exemple :

$ # la commande suivante cree un repertoire appele "Mes vieux fichiers"
$ mkdir "Mes vieux fichiers"
$ ls
Mes vieux fichiers bin tmp

       De plus, l'usage de certains caractres est  viter : parmi eux,
       il y a !*$&.
     * il n'existe pas d'extensions obligatoires comme .COM ou .EXE pour
       les programmes ou .BAT pour les fichiers de commandes. Les
       fichiers excutables sont suivis d'un astrisque * lorsque vous
       faites la commande ls -F. Par exemple :

$ ls -F
Je_suis_un_rep/   cindy.jpg    cjpg*   lettre_a_Joe    mon_1er_script*  vieux

       Les fichiers cjpg* et mon_1er_script* sont des excutables,
       autrement dit des programmes. Sous DOS, les copies de sauvegarde
       se terminent en .BAK, alors que sous Linux elles se terminent par
       une tilde ~. De plus, un fichier commenant par un point est
       considr comme tant cach. Exemple : le fichier
       .Je.suis.un.fichier.cache ne sera pas visible  la suite de la
       commande ls ;
     * sous DOS, les options des commandes sont obtenues avec /option,
       Linux utilise -option ou --option. Exemple : dir /s devient ls -R.
       Remarquez que de nombreux programmes DOS, comme PKZIP ou ARJ
       utilisent les options dans le style d'UNIX.

    prsent, vous pouvez aborder la section Traduire les commandes DOS
   en Linux, mais  votre place, je poursuivrais ici.

4.2 Liens symboliques

   UNIX est pourvu d'un type de fichier sans quivalent sous DOS : le
   lien symbolique. On peut l'imaginer comme un pointeur sur un fichier
   ou un rpertoire, et on peut l'utiliser en lieu et place du fichier ou
   du rpertoire sur lequel il pointe ; cela ressemble aux raccourcis de
   Windows. Des exemples de liens symboliques sont /usr/X11, qui pointe
   sur /usr/X11R6; /dev/modem, qui pointe ou bien sur /dev/ttyS0 ou bien
   sur /dev/ttyS1.

   Pour fabriquer un lien symbolique :

$ ln -s <fic_ou_rep> <nomdulien>

   Exemple :

$ ln -s /usr/doc/g77/DOC g77manual.txt

   Il est alors possible de faire rfrence  g77manual.txt au lieu de
   /usr/doc/g77/DOC. Les liens apparaissent de la manire suivante dans
   l'affichage du contenu des rpertoires :

$ ls -F
g77manual.txt@
$ ls -l
(des choses et d'autres...)           g77manual.txt -> /usr/doc/g77/DOC

4.3 Droits d'accs et proprit

   Sous DOS, les fichiers et les rpertoires disposent des attributs
   suivants : A (archive), H (cach : _hidden_), R (lecture seule :
   _read-only_) et S (systme). Seuls H et R ont un sens sous Linux : les
   fichiers cachs sont ceux qui commencent par un point, et pour ce qui
   est de l'attribut R, lisez ce qui suit.

   Sous UNIX un fichier possde des droits d'accs et un propritaire,
   qui,  son tour, fait partie d'un groupe. Regardez cet exemple :

$ ls -l /bin/ls
-rwxr-xr-x  1  root  bin  27281 Aug 15 1995 /bin/ls*

   Le premier champ contient les droits d'accs au fichier /bin/ls, qui
   appartient  root et au groupe bin. En laissant de ct le reste de
   l'information, souvenez-vous que la signification de -rwxr-xr-x, de
   gauche  droite, est :

   - est le type de fichier (- = fichier ordinaire, d = rpertoire :
   _directory_, l = lien etc.) ; rwx sont les droits d'accs pour le
   propritaire du fichier (lecture : _read_, criture : _write_,
   excution) ; r-x sont les droits d'accs pour le groupe auquel
   appartient le propritaire du fichier (lecture, excution) ; (je
   n'aborderai pas le concept de groupe, vous n'en avez pas besoin pour
   survivre, tant que vous tes dbutant ;-) r-x sont les droits d'accs
   pour tous les autres utilisateurs (lecture, excution).

   Le rpertoire /bin dispose lui aussi de droits d'accs : cf. Droits
   d'accs aux rpertoires pour plus d'informations. C'est la raison pour
   laquelle vous ne pouvez pas effacer le fichier /bin/ls  moins d'tre
   root : vous n'avez pas les droits pour le faire. Pour changer les
   droits d'accs d'un fichier, la commande est :

$ chmod <quiXperm> <fic>

   o qui peut tre u (utilisateur, ou propritaire), g (groupe) o
   (autres, _other_), X vaut + ou -, et perm est  choisir parmi r
   (lecture, _read_), w (criture, _write_) ou x (excution). Les usages
   courants pour chmod sont les suivants :

$ chmod +x fichier

   cela positionne le droit d'excution pour le fichier.

$ chmod go-rw fichier

   cela enlve les droits de lecture et d'criture pour tous except le
   propritaire.

$ chmod ugo+rwx fichier

   cela donne les droits de lecture, d'criture et d'excution  tout le
   monde.

# chmod +s fichier

   cela fabrique un fichier de type setuid ou suid -- un fichier que
   tout un chacun peut excuter avec les privilges de son propritaire.
   Typiquement, vous rencontrerez des fichiers suid appartenant  root ;
   souvent, il s'agit de fichiers systme importants, comme le serveur X.

   Un moyen plus court de faire rfrence aux droits d'accs est
   d'utiliser les chiffres : rwxr-xr-x peut tre exprim comme 755
   (chaque lettre correspond  un bit : --- vaut 0, --x vaut 1, -w- vaut
   2, -wx vaut 3 etc.). Cela peut sembler difficile, mais avec un peu de
   pratique, vous comprendrez le concept. root, en tant que
   super-utilisateur, a la possibilit de changer les droits d'accs de
   quiconque. LPM.

4.4 Fichiers : traduction des commandes

    gauche, les commandes DOS,  droite, leurs correspondants Linux.

ATTRIB:         chmod
COPY:           cp
DEL:            rm
MOVE:           mv
REN:            mv
TYPE:           more, less, cat

   Les redirections et la tuyauterie : < > >> |

   Les jokers : * ?

   nul: /dev/null

   prn, lpt1: /dev/lp0 ou /dev/lp1; lpr

  Exemples

DOS                                     Linux
---------------------------------------------------------------------

C:\GUIDO>ATTRIB +R FIC.TXT              $ chmod 400 fic.txt
C:\GUIDO>COPY JOE.TXT JOE.DOC           $ cp joe.txt joe.doc
C:\GUIDO>COPY *.* TOTAL                 $ cat * > total
C:\GUIDO>COPY FRACTALS.DOC PRN          $ lpr fractals.doc
C:\GUIDO>DEL TEMP                       $ rm temp
C:\GUIDO>DEL *.BAK                      $ rm *
C:\GUIDO>MOVE PAPIER.TXT TMP\           $ mv papier.txt tmp/
C:\GUIDO>REN PAPIER.TXT PAPIER.ASC      $ mv papier.txt papier.asc
C:\GUIDO>PRINT LETTRE.TXT               $ lpr lettre.txt
C:\GUIDO>TYPE LETTRE.TXT                $ more lettre.txt
C:\GUIDO>TYPE LETTRE.TXT                $ less lettre.txt
C:\GUIDO>TYPE LETTRE.TXT > NUL          $ cat lettre.txt > /dev/null
        n/a                             $ more *.txt *.asc
        n/a                             $ cat section*.txt | less

   Notes:

     * * est plus malin sous Linux : * dsigne tous les fichiers, sauf
       ceux qui sont cachs ; .* dsigne tous les fichiers cachs (mais
       galement le rpertoire courant . et son rpertoire parent ..
       : attention !) ; *.* ne dsigne que les fichiers qui contiennent,
       ou qui se terminent par un . ; p*r dsigne aussi bien papier
       que plier ; *c* dsigne aussi bien ici que pacha ;
     * lors de l'utilisation de more, tapez <ESPACE> pour parcourir le
       fichier, et q pour quitter. less est plus intuitif et vous
       permet d'employer les flches ;
     * UNDELETE n'existe pas, alors _pensez-y  deux fois_ avant
       d'effacer quoi que ce soit ;
     * en plus des < > >> du DOS, Linux dispose de 2> pour rediriger les
       messages d'erreur (stderr) ; de plus, 2>&1 redirige stderr vers
       stdout, alors que 1>&2 redirige stdout vers stderr ;
     * Linux possde un autre joker : les []. Utilisation : [abc]*
       dsigne les fichiers commenant par a, b ou c ; *[I-N1-3] dsigne
       les fichiers se terminant par I, J, K, L, M, N, 1, 2, ou 3 ;
     * lpr <fic> imprime un fichier en tche de fond. Pour vrifier
       l'tat de la file d'impressions, utilisez lpq ; pour retirer un
       fichier de la file, utilisez lprm ;
     * il n'existe pas de RENAME identique  celui du DOS ; en fait, mv
       *.xxx *.yyy ne marchera pas. Un commande du type REN est
       disponible  l'adresse ftp://sunsite.unc.edu/pub/Linux/utils/file;
     * utilisez cp -i et mv -i pour tre averti lorsqu'un fichier est sur
       le point d'tre cras.

4.5 Excution de programmes : le multi-tches et les sessions

   Pour lancer un programme, entrez son nom comme vous le feriez sous
   DOS. Si le rpertoire (cf. section Utilisation des rpertoires) o se
   trouve le programme est inclus dans le PATH (cf. section Fichiers
   d'initialisation du systme), le programme dmarrera. Une exception :
   contrairement au DOS, sous Linux, un programme situ dans le
   rpertoire courant ne s'excutera pas  moins que ce rpertoire ne
   soit inclus dans le PATH. _Escamotage_

     NdT. : En franais dans le texte.

   : si prog est votre programme, tapez ./prog.

   Voici  quoi ressemble une ligne de commande typique :

$ commande [-o1 [-o2] ... [-on]] [arg1 [arg2] ... [argn]] [< entree] [> sortie]

   o -o1,...,-on sont les options de la commande et arg1,...,argn sont
   les arguments de la commande. Il est possible de spcifier plusieurs
   commandes sur une seule ligne :

$ commande1 ; commande2 ; ... ; commanden

   C'est tout au sujet de l'excution des commandes, mais on peut
   facilement faire un pas de plus. L'une des principales motivations
   pour l'utilisation de Linux est qu'il s'agit d'un systme
   d'exploitation multi-tches -- il est capable de faire tourner
   plusieurs programmes (qu'on appellera des processus) en mme temps.
   Vous pouvez lancer des processus en arrire-plan et continuer 
   travailler dans la foule. De plus, Linux vous permet d'avoir
   plusieurs sessions : c'est comme si on travaillait sur plusieurs
   ordinateurs  la fois !

     * Pour passer  la session 1...6 parmi les consoles virtuelles,
       tapez <ALT-F1> ... <ALT-F6>
     * Pour dmarrer une nouvelle session dans la mme console virtuelle,
       sans quitter la session courante, tapez su - <nomdelogin>. Par
       exemple : su - root. Cela peut tre utile pour effectuer une tche
       que seul root peut accomplir, par exemple.
     * Pour clore une session, tapez exit. S'il reste des jobs arrts
       (cf. plus loin) vous en serez averti.
     * Pour lancer un processus en arrire-plan, ajoutez une perluette
       &  la fin de la ligne de commande :

$ nomduprog [-options] [arguments] [< entree] [> sortie] &
[1] 123

       Le shell associe un numro de job au processus (ex. : [1] ; cf.
       plus loin), ainsi qu'un PID (_Process Identification Number_

     numro d'identification du processus
       ) ; 123 dans notre exemple).
     * Pour voir combien il y a de processus, tapez ps ax. Cela affichera
       la liste des processus qui tournent actuellement.
     * Pour tuer (_terminate_) un processus, tapez kill <PID>. Vous
       pouvez tre oblig de tuer un processus lorsque vous ne savez pas
       comment le quitter proprement...  moins d'tre root, il vous est
       impossible de tuer les processus d'autres personnes. Quelquefois,
       un processus ne pourra tre tu qu'en faisant kill -SIGKILL <PID>.
       De plus, le shell vous permet d'arrter ou de suspendre
       temporairement un processus, de l'envoyer en arrire-plan ou de le
       remettre au premier plan. Dans ce contexte, les processus sont
       appels jobs.
     * Pour voir combien il y a de jobs, tapez jobs. Dans ce cas, les
       jobs sont identifis par leur numro de job, et non pas par leur
       PID.
     * Pour arrter un processus qui tourne au premier plan, tapez
       <CTRL-C> (cela peut ne pas marcher).
     * Pour suspendre un processus qui tourne au premier plan, tapez
       <CTRL-Z> (idem).
     * Pour envoyer un processus suspendu en arrire-plan, tapez bg
       <%job> (il devient alors un job).
     * Pour amener un job au premier plan, tapez fg <%job>. Pour ramener
       au premier plan le dernier job envoy en arrire-plan, il suffit
       de taper fg.
     * Pour tuer un job, tapez kill <%job>, o <job>peut tre 1, 2, 3,...

    l'aide de ces commandes, vous pouvez formater un disque, compresser
   une flope de fichiers, compiler un programme, et dcompresser et
   archiver le tout, tout cela en mme temps, tout en gardant la main.
   Essayez-donc de faire cela avec Windows, rien que pour voir la
   diffrence de performance (si a ne plante pas, bien sr).

4.6 Excution de programmes sur des ordinateurs distants

   Pour lancer un programme sur une machine distante dont le nom est
   machine.distante.edu, il suffit de faire :

$ telnet machine.distante.edu

   Aprs vous tre connect, dmarrez votre programme prfr. Cela va
   sans dire, vous devez avoir un compte utilisateur sur la machine
   distante.

   Si vous disposez de X11, il vous est mme possible de faire tourner
   une application X sur une machine distante dont l'affichage se fera
   sur votre cran X. Soit machine.distante.edu la machine distante
   disposant de X, et machine.locale.linux votre machine Linux. Pour
   faire tourner  partir de machine.locale.linux une application X
   rsidant sur machine.distante.edu, il faut faire ce qui suit :

     * dmarrez X11, lancez un mulateur de terminal comme xterm ou ses
       quivalents, et tapez :

$ xhost +machine.distante.edu
$ telnet machine.distante.edu

     * aprs vous tre connect, tapez :

remote:$ DISPLAY=machine.locale.linux:0.0
remote:$ nomduprogramme &

       (au lieu de DISPLAY..., il se peut que vous ayez  taper setenv
       DISPLAY machine.locale.linux:0.0. Cela dpend du shell distant.)

   _Et voila_ ! nomduprogramme va maintenant dmarrer sur
   machine.distante.edu et ses affichages se feront sur votre machine.
   Toutefois, il est inutile d'essayer de le faire par modem, ce serait
   trop lent pour tre utilisable. De plus il s'agit d'une mthode fruste
   et non scurise : veuillez vous reporter au Remote X Apps
   mini-HOWTO disponible  l'adresse
   http://sunsite.unc.edu/LDP/HOWTO/mini/Remote-X-Apps.

5. Utilisation des rpertoires

5.1 Rpertoires : notions prliminaires

   Nous avons dj vu les diffrences entre les fichiers sous DOSWin et
   Linux. Pour ce qui est des rpertoires, sous DOSWin, le rpertoire
   racine est \, sous Linux c'est /. De mme, les rpertoires imbriqus
   sont spars par \ sous DOSWin, et par / sous Linux. Un exemple de
   chemin d'accs :

DOS:     C:\ARTICLES\GEOLOGIE\MI_EOC.TEX
Linux:   /home/guide/articles/geologie/mi_eocene.tex

   Comme d'habitude, .. est le rpertoire parent et . est le rpertoire
   courant. Rappelez-vous que le systme ne vous autorisera pas  faire
   des cd, rd ou des md n'importe o  votre convenance. Chaque
   utilisateur place ses affaires dans son propre rpertoire appel
   rpertoire d'accueil (_home directory_), attribu par l'administrateur
   systme ; par exemple mon rpertoire d'accueil est /home/guido.

5.2 Droits d'accs aux rpertoires

   Les rpertoires ont galement des droits d'accs. Ce que nous avons vu
   dans la section Droits d'accs et proprit (propritaire, groupe et
   autres), s'applique galement aux rpertoires. Pour un rpertoire, rx
   signifie que vous pouvez vous rendre dans ce rpertoire  l'aide de
   cd, et w que vous pouvez effacer un fichier de ce rpertoire, ou le
   rpertoire lui-mme.

   Par exemple, pour empcher d'autres utilisateurs de venir fouiner dans
   /home/guido/text :

$ chmod o-rwx /home/guido/text

5.3 Rpertoires: traduction de commandes

DIR:            ls, find, du
CD:             cd, pwd
MD:             mkdir
RD:             rmdir
DELTREE:        rm -rf
MOVE:           mv

  Exemples

DOS                                     Linux
---------------------------------------------------------------------

C:\GUIDO>DIR                            $ ls
C:\GUIDO>DIR  FIC.TXT                   $ ls fic.txt
C:\GUIDO>DIR *.H *.C                    $ ls *.h *.c
C:\GUIDO>DIR/P                          $ ls | more
C:\GUIDO>DIR/A                          $ ls -l
C:\GUIDO>DIR *.TMP /S                   $ find / -name "*.tmp"
C:\GUIDO>CD                             $ pwd
        inapplicable, cf. notes         $ cd
        idem                            $ cd
        idem                            $ cd  /temp
C:\GUIDO>CD \AUTRES                     $ cd /autres
C:\GUIDO>CD ..\TEMP\CORBEIL             $ cd ../temp/corbeille
C:\GUIDO>MD PROGSNVX                    $ mkdir progsnvx
C:\GUIDO>MOVE PROG ..                   $ mv prog ..
C:\GUIDO>MD \PROGS\TURBO                $ mkdir /progs/turbo
C:\GUIDO>DELTREE TEMP\CORBEIL           $ rm -rf temp/corbeille
C:\GUIDO>RD PROGSNVX                    $ rmdir progsnvx
C:\GUIDO>RD \PROGS\TURBO                $ rmdir /progs/turbo

   Notes :

     * L'utilisation de rmdir ne peut se faire que sur des rpertoires
       vides. Pour effacer un rpertoire et tout son contenu, utilisez rm
       -rf ( vos risques et prils).
     * Le caractre ~ est un raccourci pour le nom de votre rpertoire
       d'accueil. Les commandes cd ou cd vous emmneront dans votre
       rpertoire d'accueil, quel que soit l'endroit o vous tes ; la
       commande cd /tmp/ vous emmnera dans
       /home/votre_rep_d_accueil/tmp.
     * cd - dfait le dernier cd.

6. Disquettes, disques durs et consorts

   Il existe deux manires de grer les priphriques sous Linux :  la
   manire du DOS, ou  celle d'UNIX. Faites votre choix.

6.1 Gestion des priphriques  la DOS

   La plupart des distributions Linux sont accompagnes de la suite
   Mtools, un ensemble de commandes parfaitement quivalentes  leurs
   correspondants DOS, mais commenant par un m : mformat, mdir, mdel,
   mmd, etc. Ils sont mme capables de conserver les noms de fichiers
   longs, mais pas les droits d'accs aux fichiers. En configurant
   Mtools, par l'dition d'un fichier appel /etc/mtools.conf (dont un
   exemple est fourni), vous pouvez galement accder  la partition
   DOS/Windows, aux lecteurs de CD--ROM et de Zip. Toutefois, pour
   formater une disquette, la commande format ne fait pas l'affaire. Il
   vous faudra pralablement excuter, en tant que root, la commande :
   fdformat /dev/fd0H1440

   Note : il ne vous est pas possible d'accder aux fichiers d'une
   disquette avec une commande de type less a:fic.txt! C'est
   l'inconvnient d'accder aux disques  la manire du DOS.

6.2 Gestion des priphriques   la UNIX

   UNIX aborde la gestion des priphriques d'une manire totalement
   diffrente. Il n'existe pas de volumes comme A: ou C: ; un disque, que
   ce soit une disquette ou n'importe quoi d'autre, devient une partie du
   systme de fichiers local par une opration que l'on appelle le
   montage. Lorsque vous n'avez plus besoin du disque, avant de
   l'jecter il vous faut le dmonter.

   Le formatage physique d'un disque est une chose, y crer un systme de
   fichiers en est une autre. La commande DOS FORMAT A: fait les deux 
   la fois, mais Linux fournit des commandes spares. Pour formater une
   disquette, voyez ci-dessus ; pour y crer un systme de fichiers :

# mkfs -t ext2 -c /dev/fd0H1440

   Vous pouvez utiliser dos, vfat (ce qui est conseill) ou d'autres
   formats  la place de ext2. Une fois le disque prpar, montez-le avec
   la commande :

# mount -t ext2 /dev/fd0 /mnt

   en spcifiant le type adapt pour le systme de fichiers si vous
   n'utilisez pas ext2.  prsent, vous pouvez accder aux fichiers de la
   disquette  l'aide de /mnt au lieu de A: ou B:. Quelques exemples :

DOS                                     Linux
---------------------------------------------------------------------

C:\GUIDO>DIR A:                         $ ls /mnt
C:\GUIDO>COPY A:*.*                     $ cp /mnt/* .
C:\GUIDO>COPY *.ZIP A:                  $ cp *.zip /mnt
C:\GUIDO>EDIT A:FIC.TXT                 $ jstar /mnt/fic.txt
C:\GUIDO>A:                             $ cd /mnt
A:> _                                   /mnt/$ _

   Lorsque vous avez termin, et avant d'jecter la disquette, vous
   _devez_ la dmonter avec la commande :

# umount /mnt

   Bien videmment, vous ne devez utiliser fdformat et mkfs qu'avec des
   disquettes non-formates, et non pas avec celles dj utilises. Si
   vous voulez utiliser le lecteur B:, faites rfrence  fd1H1440 et fd1
   au lieu de fd0H1440 et fd0 dans les exemples ci-dessus.

   Il va sans dire que ce qui s'applique aux disquettes s'applique
   galement  d'autres priphriques ; par exemple, vous pouvez avoir
   envie de monter un autre disque dur ou un lecteur de CD--ROM. Voici
   comment monter le CD--ROM :

# mount -t iso9660 /dev/cdrom /mnt

   Ce qui prcde tait la manire officielle de monter les disques,
   mais il y a une astuce. Comme c'est assez pnible de passer root pour
   monter un disque ou un CD--ROM, chaque utilisateur peut tre autoris
    les monter de la faon suivante :
     * sous root, faites ce qui suit :

# mkdir /mnt/floppy ; mkdir /mnt/cdrom
# chmod 777 /mnt/floppy /mnt/cd*
# # assurez-vous que le peripherique correspondant au CD-ROM est correct
# chmod 666 /dev/hdb ; chmod 666 /dev/fd*

     * ajoutez les lignes suivantes  /etc/fstab :

/dev/cdrom      /mnt/cdrom  iso9660 ro,user,noauto          0       0
/dev/fd0        /mnt/floppy vfat    user,noauto             0       0

    prsent, pour monter un disquette DOS et un CD--ROM vous pouvez
   faire :

$ mount /mnt/floppy
$ mount /mnt/cdrom

   /mnt/floppy, et /mnt/cdrom sont  prsent accessibles  tous les
   utilisateurs. Souvenez-vous que d'autoriser tout le monde  monter des
   disques de cette manire est un trou de scurit bant, si cela vous
   proccupe.

   Deux commandes utiles sont df, qui donne des informations sur les
   systmes de fichiers monts, et du nomderepertoire qui renseigne sur
   l'espace disque utilis par le rpertoire.

6.3 Les sauvegardes

   Il existe plusieurs paquetages pour vous aider, mais le moins que vous
   puissiez faire pour obtenir une sauvegarde sur plusieurs volumes est
   (sous root) :

# tar -M -cvf /dev/fd0H1440 rep_a_sauvegarder/

   Assurez-vous d'avoir une disquette formate dans le lecteur, et un
   paquet d'autres sous la main. Pour restaurer vos affaires, insrez la
   premire disquette dans le lecteur et faites :

# tar -M -xpvf /dev/fd0H1440

7. Et Windows alors ?

   Le systme X Window est l'quivalent de Windows.  l'oppos de
   Windows ou du Mac, X11 n'a pas t conu pour tre facile
   d'utilisation ni esthtique, mais uniquement pour munir les stations
   de travail sous UNIX de capacits graphiques

     NdT. : Et surtout de la possibilit de dporter l'affichage sur
     d'autres machines au travers du rseau

   . Voici les principales diffrences :

     * Alors que Windows adopte le mme _look and feel_ partout dans le
       monde, ce n'est pas la cas pour X11 qui est beaucoup plus
       configurable. Son apparence gnrale est dfinie par un
       composant-cl appel le gestionnaire de fentres (_window
       manager_) dont il existe une large gamme : fvwm, lmentaire mais
       agrable et peu gourmand en mmoire, fvwm2-95, Afterstep,
       WindowMaker, Enlightenment et beaucoup d'autres. Ce gestionnaire
       est habituellement invoqu dans un fichier nomm .xinitrc.
     * Votre gestionnaire peut tre configur de manire  ce que les
       fentres agissent comme dans, hum, Windows : vous cliquez dessus
       pour les faire venir au premier plan. Une autre possibilit est de
       l'amener au premier plan lorsque la souris se dplace dessus (la
       fentre obtient le focus). De plus, le placement des fentres
       sur l'cran peut tre automatique ou interactif : si, au lieu de
       votre programme, il apparat un cadre trange, cliquez avec le
       bouton gauche  l'endroit o vous voulez le faire apparatre.
     * la plupart des fonctionnalits peuvent tre personnalises en
       ditant un ou plusieurs fichiers de configuration. Lisez la
       documentation de votre gestionnaire de fentres ; ces fichiers de
       configuration peuvent tre .fvwmrc, .fvwm2rc95, .steprc, etc. Un
       fichier de configuration type se trouve gnralement dans :
       /etc/X11/window-manager-name/system.window-manager-name;
     * Les applications X11 sont crites  l'aide de bibliothques
       spciales (les widget sets) ; comme il en existe plusieurs, les
       applications ont des apparences diffrentes. Les plus lmentaires
       sont celles utilisant les widgets Athena (apparence 2--D; xdvi,
       xman, xcalc) ; d'autres utilisent Motif (netscape), d'autres
       encore utilisent Tcl/Tk, XForms, Qt, Gtk et en veux-tu en voil.
       Presque toutes ces bibliothques fournissent en gros le mme look
       & feel que Windows.
     * Malheureusement, le mode d'interaction peut se rvler incohrent.
       En l'espce, lorsque vous slectionnez une ligne de texte  la
       souris et tapez <BACKSPACE>, vous vous attendez  ce que la ligne
       disparaisse, pas vrai ? Cela ne fonctionne pas avec les applis
       bases sur Athena, mais avec celles utilisant d'autres
       bibliothques de widgets.
     * Le mode de fonctionnement des ascenseurs (_scrollbars_) et le
       redimensionnement dpendent du gestionnaire de fentres et du
       widget set. Astuce : si les ascenseurs ne se comportent pas 
       votre got, essayez d'utiliser le bouton du milieu, ou les deux
       boutons en mme temps pour les dplacer.
     * Les applications n'ont pas d'icne par dfaut, mais elles peuvent
       en avoir un certain nombre. La plupart des gestionnaires de
       fentres proposent un menu que l'on appelle en cliquant sur le
       fond de l'cran (_root window_) ; il va sans dire que ce menu peut
       tre personnalis. Pour changer l'apparence du fond de l'cran,
       utilisez xsetroot ou xloadimage.
     * Le presse-papiers ne peut contenir que du texte, et se comporte
       trangement. Une fois un texte slectionn, il est dj copi dans
       le presse-papiers : dplacez vous ailleurs et cliquez sur le
       bouton du milieu pour le coller. Il existe une application
       xclipboard fournissant de multiples tampons pour le
       presse-papiers.
     * Le glisser-dplacer est une option, et n'est disponible qu'avec
       les applications et/ou les gestionnaires de fentres qui
       l'intgrent.

   Pour conomiser la mmoire, il est prfrable d'utiliser des
   applications utilisant les mmes bibliothques, mais cela peut se
   rvler difficile  appliquer.

   Il existe des projets visant  doter X11 d'une apparence et d'un
   comportement aussi cohrents que Windows. Gnome, http://www.gnome.org
   et KDE, http://www.kde.org, sont patants. Donnez-leur une chance :
   vous ne regretterez plus votre bureau Windows.

8. Personnalisation du systme

8.1 Fichiers d'initialisation du systme

   Sous DOS, deux fichiers importants sont AUTOEXEC.BAT et CONFIG.SYS,
   utiliss lors du dmarrage pour initialiser le systme, positionner
   quelques variables d'environnement comme PATH et FILES, et, le cas
   chant lancer un programme ou un fichier de commandes. Sous Linux, il
   y a une flope de fichiers d'initialisation, qu'il vaut mieux ne pas
   bidouiller pour certains d'entre eux  moins de savoir exactement ce
   que vous faites. Je vous dirai quels sont les plus importants de toute
   faon :

FICHIERS                                NOTES

/etc/inittab                            pas touche pour le moment !
/etc/rc.d/*                             idem

   Si vous vous contentez de positionner le PATH et d'autres variables
   d'environnement, ou dsirez changer les messages de login, ou
   souhaitez lancer automatiquement un programme aprs vous tre
   connect, considrez les fichiers suivants :

FICHIERS                                NOTES

/etc/issue                              positionne le message de pre-connexion
/etc/motd                               positionne le message de post-connexion
/etc/profile                            positionne $PATH, d'autres variables et
c.
/etc/bashrc                             positionne alias et fonctions etc.
/home/votre_home/.bashrc                positionne vos alias et fonctions
/home/votre_home/.bash_profile   ou
/home/votre_home/.profile               definit l'environnemement et lance vos
programmes

   Si ce dernier fichier existe (remarquez que c'est un fichier cach),
   il sera lu aprs que vous vous soyez connect et les commandes qu'il
   contient seront excutes.

   Un exemple -- examinez ce fichier .bash_profile:
     _________________________________________________________________

# Je suis un commentaire
echo Environnement:
printenv | less   # equivalent de la commande SET sous DOS
alias d='ls -l'   # pour comprendre facilement ce qu'est un alias
alias up='cd ..'
echo "Je vous rappelle que le chemin est "$PATH
echo "Aujourd'hui nous sommes le `date`"  # utilise la sortie de la commande 'd
ate'
echo "Bonjour, "$LOGNAME
# Ce qui suit est une "fonction" shell
ctgz() # Affiche le contenu d'une archive .tar.gz.
{
  for file in $*
  do
    gzip -dc ${file} | tar tf -
  done
}
# fin du .profile
     _________________________________________________________________

   $PATH et $LOGNAME, vous l'aurez devin, sont des variables
   d'environnement. Il s'en trouve beaucoup d'autres avec lesquels on
   peut s'amuser ; LPM pour des applis comme less ou bash par exemple.

   Ajouter la ligne suivante  votre /etc/profile vous fournira
   approximativement un quivalent de PROMPT $P$G :

export PS1="\w\\$ "

8.2 Fichiers d'initialisation de programmes

   Sous Linux, tout peut potentiellement tre personnalis pour convenir
    vos besoins. La plupart des programmes ont un ou plusieurs fichiers
   d'initialisation que vous pouvez triturer, souvent appels
   .nomdeprogrammerc et situs dans votre rpertoire d'accueil. Les
   premiers que vous aurez envie de modifier sont :

     * .inputrc : utilis par bash pour dfinir les touches du clavier ;
     * .xinitrc : utilis par startx pour initaliser le systme X Window
       ;
     * .fvwmrc : utilis par le gestionnaire de fentres fvwm ;
     * .joerc, .jstarrc : utilis par l'diteur joe ;
     * .jedrc : utilis par l'diteur jed ;
     * .pinerc : utilis par l'outil de traitement de courrier
       lectronique pine ;
     * .Xdefault : utilis par de nombreux programmes X Window.

   Pour tous ceux-ci et d'autres que vous rencontrerez tt ou tard, LPM.
   Au cas o, je vous signale l'existence du _Configuration HOWTO_
   disponible  l'adresse
   http://sunsite.unc.edu/mdw/HOWTO/Config-HOWTO.html .

9. Le rseau : concepts

   Non seulement la connexion au rseau par modem est disponible sous
   Linux, mais elle est galement plus stable et plus rapide. Ce dont il
   s'agit, c'est PPP, le protocole employ pour se connecter 
   l'Internet  l'aide de modems. Vous avez besoin d'un noyau intgrant
   le support PPP et d'un outil pour composer les numros et tablir la
   connexion.

   Pour rcuprer votre courrier chez votre fournisseur d'accs Internet
   (_FAI_), vous aurez besoin d'un outil appel rcuprateur de mail
   utilisant le protocole POP ; lorsque le courrier est rcupr, tout se
   passera comme s'il avait t livr directement sur votre babasse
   Linux. Vous utiliserez ensuite un MUA (_Mail User Agent_ ou agent
   utilisateur de courrier) comme pine, mutt, elm ou l'un des nombreux
   autres pour grer votre courrier.

   Alors que sous Windows, le programme de composition de numros est
   invoqu automatiquement au lancement d'une application Internet, sous
   Linux, on procde dans l'autre sens : on compose d'abord le numro,
   puis on lance l'application. Un truc du nom de diald fournit le
   comportement habituel. L'installation et la configuration d'un rseau
   avec connexion par modem tait habituellement l'une des choses les
   plus difficiles  faire sous Linux, mais ce n'est plus le cas :
   veuillez vous reporter au Configuration HOWTO.

   Enfin, un mot du Voisinage rseau : il vous est possible de faire
   croire aux machines Windows du rseau local que votre station Linux
   est un serveur Windows NT/9x. La formule magique est Samba : il ne
   s'agit pas de la danse brsilienne endiable, mais d'une
   implmentation du protocole SMB pour Linux. Rendez-vous 
   http://samba.anu.edu.au/samba.

10. Un peu de programmation

10.1 Les _shell-scripts_ : des fichiers .BAT dops aux anabolisants

   Si vous utilisiez des fichiers .BAT pour crer des raccourcis pour de
   longues lignes de commandes (moi-mme j'en ai fait pas mal), vous
   pouvez atteindre ce but en insrant des lignes d'_alias_ appropris
   (cf. l'exemple ci-dessus) dans le profile ou le .bash_profile. Mais si
   vos .BAT taient plus compliqus, alors vous adorerez le langage de
   _script_ que vous offre le _shell_ : il est aussi puissant que ce bon
   vieux QBasic, si ce n'est plus. Il possde des variables, des
   structures comme while, for, case, if... then... else et des tas
   d'autres fonctionnalits : il peut tre une bonne alternative  un
   vrai langage de programmation.

   Pour crire un script -- l'quivalent d'un fichier .BAT sous DOS --
   tout ce que vous avez  faire c'est d'crire un fichier ASCII
   contenant les instructions, de le sauver, et de le rendre excutable 
   l'aide de la commande chmod +x <fichierscript>. Pour l'excuter, tapez
   son nom.

   Un mot d'avertissement. L'diteur du systme s'appelle vi, et, d'aprs
   mon exprience, la plupart des nouveaux utilisateurs le trouvent trs
   ardu. Je ne m'tendrai pas sur son utilisation, veuillez consulter le
   livre de Matt Welsh ou faire une recherche sur le Net. Je me
   contenterai de dire que :

     * pour insrer du texte, tapez i puis votre texte ;
     * pour effacer des caractres; tapez <ESC> puis x ;
     * pour quitter vi sans enregistrer, tapez <ESC> puis :q! ;
     * pour enregistrer et quitter, tapez <ESC> puis :wq.

   Un bon diteur pour dbutants est joe : en le lanant avec la commande
   jstar, vous obtiendrez les mmes raccourcis-clavier que ceux de
   l'diteur de DOSWin. jed en mode WordStar ou IDE est mme mieux.
   Veuillez consulter la section O trouver les applications pour savoir
   o obtenir ces diteurs.

   L'criture de scripts sous bash est un sujet tellement vaste qu'il
   ncessite un livre en lui-mme, et je ne creuserai pas le sujet plus
   avant. Je me contenterai de vous donner un exemple de shell-script
   duquel vous pourrez extraire quelques rgles de base :
     _________________________________________________________________

#!/bin/sh
# exemple.sh
# Je suis un commentaire.
# Ne changez pas la premiere ligne, elle doit se trouver a cet endroit.
echo "Ce systeme est : `uname -a`" # utilise la sortie de la commande
echo "Mon nom est $0" # variables predefinies
echo "Vous m'avez transmis les $# parametres suivants : "$*
echo "Le premier parametre est : "$1
echo -n "Quel est votre nom ? " ; read votre_nom
echo notez la difference : "salut $votre_nom" # citation avec "
echo notez la difference : 'salut $votre_nom' # citation avec '
REPS=0 ; FICS=0
for fic in `ls .` ; do
  if [ -d ${fic} ] ; then # si fic est un repertoire
    REPS=`expr $REPS + 1`  # REPS = REPS + 1
  elif [ -f ${fic} ] ; then
    FICS=`expr $FICS + 1`
  fi
  case ${fic} in
    *.gif|*jpg) echo "${fic}: image" ;;
    *.txt|*.tex) echo "${fic}: fichier texte" ;;
    *.c|*.f|*.for) echo "${fic}: fichier source" ;;
    *) echo "${fic}: fichier generique" ;;
  esac
done
echo "il y a ${REPS} repertoires et ${FICS} fichiers"
ls | grep "ZxY--!!!WKW"
if [ $? != 0 ] ; then # code de retour de la derniere commande
  echo "ZxY--!!!WKW introuvable"
fi
echo "ca suffit... tapez 'man bash' pour en savoir plus."
     _________________________________________________________________

10.2 E-C-iez par vous-mme

   Sous UNIX, le langage du systme est le C, que vous l'aimiez ou non.
   Des douzaines d'autres langages (Java, FORTRAN, Pascal, Lisp, Basic,
   Perl, awk...) sont galement disponibles.

   En partant du principe que vous connaissez le C, voici quelques lignes
   directrices pour ceux d'entre vous qui ont t trop gts par le Turbo
   C++ ou l'un de ses cousins sous DOS. Le compilateur C de Linux
   s'appelle gcc et n'est pourvu d'aucun des gadgets qui accompagnent en
   gnral ses quivalents DOS : pas de IDE (_Integrated Development
   Environment_ ou environnement de dveloppement intgr), ni d'aide en
   ligne ou de dbogueur intgr etc. Il s'agit juste d'un compilateur en
   ligne de commande brut de dcoffrage, trs puissant et efficace. Pour
   compiler votre hello.c de base, vous ferez :

$ gcc hello.c

   ce qui crera un fichier excutable appel a.out. Pour donner un nom
   diffrent  l'excutable, faites :

$ gcc -o hola hello.c

   Pour intgrer une bibliothque lors de l'dition de liens, ajoutez
   l'option -l<nomdebibli>. Par exemple, pour intgrer la bibliothque
   mathmatique :

$ gcc -o progmath progmath.c -lm

   (L'option -l<nomdebibli> oblige gcc  intgrer la bibliothque
   /usr/lib/lib<nomdebibli>.so; ainsi, -lm intgre /usr/lib/libm.so).

   Jusque-l, tout va bien. Mais lorsque votre programme se compose de
   plusieurs fichiers source, vous aurez besoin de l'utilitaire make.
   Supposons que vous ayez crit un analyseur d'expresssions : son
   fichier source s'appelle parser.c et il inclut (par #include) deux
   fichiers d'en-tte, parser.h et xy.h. Ensuite, vous souhaitez utiliser
   les routines de parser.c dans un programme, disons calc.c, qui  son
   tour inclut parser.h. Quel bazar ! Que faut-il faire pour compiler
   calc.c ?

   Vous devrez crire un Makefile, c'est ainsi qu'on l'appelle, qui
   apprenne au compilateur quelles sont les dpendances entre fichiers
   source et fichiers objet. Dans notre exemple :
     _________________________________________________________________

# Voici Makefile, utilise pour compiler calc.c
# Appuyez sur <TAB> aux endroits indiques !

calc: calc.o parser.o
<TAB>gcc -o calc calc.o parser.o -lm
# calc depend de deux fichiers objet : calc.o et parser.o

calc.o: calc.c parser.h
<TAB>gcc -c calc.c
# calc.o depend de deux fichiers source

parser.o:  parser.c parser.h xy.h
<TAB>gcc -c parser.c
# parser.o depend de trois fichiers source

# fin du Makefile.
     _________________________________________________________________

   Enregistrez ce fichier sous le nom Makefile et faites make pour
   compiler votre programme ; une alternative est de l'enregistrer sous
   calc.mak et de taper make -f calc.mak, et, bien sr, LPM. Vous pouvez
   accder  quelques aides sur les fonctions C, qui se trouvent dans les
   pages du man,  la section 3, par exemple,

$ man 3 printf

   Pour dboguer vos programmes, utilisez gdb. Faites info gdb pour
   apprendre  vous en servir.

   De nombreuses bibliothques sont disponibles ; les premires d'entre
   elles qui vous seront utiles sont ncurses (effets en mode texte), et
   svgalib (graphismes en mode console). Si vous vous sentez assez
   enhardi pour aborder la programmation X11 (ce n'est pas si difficile
   que cela), il existe des bibliothques qui transforment l'criture de
   programmes X11 en une promenade de sant. Regardez donc du ct de
   http://www.xnet.com/ blatura/linapp6.html en n'oubliant pas que Gtk
   devient un standard Linux.

   Beaucoup d'diteurs peuvent faire office d'IDE ; emacs et jed, par
   exemple, sont capables de mettre en vidence la syntaxe, faire de
   l'indentation automatique etc. Autrement, rapatriez le paquetage rhide
    partir de ftp://sunsite.unc.edu:/pub/Linux/devel/debuggers/. C'est
   un clone de l'IDE de Borland, et vous devriez l'apprcier.

11. Le 1% restant

   En fait, il reste beaucoup plus que 1%...

11.1 Utilisation de tar et gzip

   Sous UNIX, il y a quelques applications trs rpandues pour
   l'archivage et la compression de fichiers. tar sert  fabriquer des
   archives -- comme PKZIP ou Winzip mais il ne fait qu'archiver, sans
   compression. Pour fabriquer une nouvelle archive :

$ tar -cvf <nom_d_archive.tar> <fic> [fic...]

   Pour extraire des fichiers d'une archive :

$ tar -xpvf <nom_d_archive.tar> [fic...]

   Pour examiner le contenu d'une archive :

$ tar -tf <nom_d_archive.tar> | less

   Vous pouvez compresser les fichiers  l'aide de compress, mais il est
   obsolte et ne devrait plus tre utilis, ou gzip :

$ compress <fic>
$ gzip <fic>

   qui crent un fichier compress portant l'extension .Z (compress) ou
   .gz (gzip). Ces programmes ne peuvent compresser qu'un fichier  la
   fois. Pour dcompresser :

$ compress -d <fic.Z>
$ gzip -d <fic.gz>

   LPM.

   Il existe galement les utilitaires unarj, zip et unzip (compatibles
   avec PK??ZIP). Les fichiers portant l'extension .tar.gz ou .tgz
   (archivs avec tar, puis compresss avec gzip) sont aussi communs dans
   le mode UNIX que les fichiers .ZIP sous DOS. Voici comment examiner le
   contenu d'une archive au format .tar.gz :

$ tar -ztf <fic.tar.gz> | less

11.2 Installation d'applications

   Tout d'abord : l'installation de paquetages est le travail de root. La
   plupart des applications Linux sont distribues sous forme d'archives
   .tar.gz qui contiennent typiquement un rpertoire portant un nom
   appropri o se trouvent tous les fichiers et/ou sous-rpertoires. Un
   bonne habitude est d'installer ces paquetages  partir de /usr/local 
   l'aide de la commande :

# tar -zxf <archive.tar.gz>

   puis de lire les fichiers README ou INSTALL. La plupart du temps,
   l'application est distribue sous forme de code source, que vous
   devrez compiler pour crer les binaires ; en gnral, en vous
   contentant de taper make puis make install. Si l'archive contient un
   script configure lancez celui-ci d'abord. Bien videmment, vous devez
   avoir les compilateurs gcc ou g++.

   D'autres archives doivent tre dballes  partir de / ; c'est
   notamment le cas pour les archives .tgz de Slackware. D'autres
   archives contiennent des fichiers mais pas de sous-rpertoires --
   attention  ne pas mettre le souk ! Il faut toujours examiner le
   contenu d'une archive avant de l'installer.

   Debian et Red Hat ont leurs propres formats d'archives, respectivement
   .deb et .rpm. Ce dernier bnficie d'une reconnaissance de plus en
   plus large ; pour installer un paquetage rpm, tapez :

# rpm -i paquetage.rpm

11.3 Astuces indispensables

   _Le dfilement en arrire_ : l'appui sur <SHIFT + PAG UP> (la touche
   grise) vous permet de remonter en arrire de quelques pages, en
   fonction de la quantit de mmoire vido dont vous disposez.

   _Le nettoyage de l'cran_ : s'il vous arrive de faire more ou cat sur
   un fichier binaire, votre cran peut se retrouver rempli de caractres
   bizarres. Pour y remedier, tapez reset mme si vous n'y voyez plus
   rien, ou entrez cete squence de caractres : echo CTRL-V ESC c
   RETURN.

   _Le collage de texte_ : dans la console, voyez plus loin ; sous X,
   cliquez et dplacez la souris en maintenant le bouton enfonc pour
   slectionner le texte dans une fentre xterm, puis cliquez avec le
   bouton central (ou les deux boutons  la fois si vous avez une souris
    deux boutons) pour coller. Il existe galement un xclipboard

     NdT. : Presse-papiers sous X.

   (qui ne marche qu'avec du texte, hlas) ; ne vous laissez pas
   perturber par son trs long temps de rponse.

   _L'utilisation de la souris_ : si vous avez install gpm, un pilote de
   souris pour la console, alors vous pouvez cliquer et dplacer la
   souris sans relcher le bouton pour slectionner du texte, puis
   cliquer avec le bouton droit pour coller le texte slectionn. Cela
   marche d'une console virtuelle  l'autre.

   _Messages mis par le noyau_ : examinez /var/adm/messages, ou
   /var/log/messages en tant root pour savoir ce que le noyau a  vous
   dire, y compris les messages de dmarrage. La commande dmesg est
   galement bien pratique.

11.4 O trouver les applications

   Si vous vous demandez si vous pouvez ou non remplacer votre bonne
   vieille application DOS/Win par un quivalent Linux, je vous propose
   de parcourir les principaux entrepts de logiciels pour Linux :
   ftp://sunsite.unc.edu/pub/Linux, ftp://tsx-11.mit.edu/pub/linux, et
   ftp://ftp.funet.fi/pub/Linux. D'autres endroits idaux pour commencer
   sont la Linux Applications and Utilities Page situe 
   http://www.xnet.com/ blatura/linapps.shtml, et la page officielle de
   Linux  http://www.linux.org.

11.5 Quelques trucs impossibles sous DOS

   Linux peut faire tout un tas de choses qui taient pnibles,
   difficiles ou impossibles sous DOS/Win. Voici une petite liste qui
   devrait vous ouvrir l'apptit :

     * at vous permet de lancer des programmes  des heures spcifiques ;
     * awk est un langages simple mais nanmoins puissant pour manipuler
       des fichiers de donnes (mais pas seulement). Par exemple, si
       data.dat est votre fichier contenant des donnes sur plusieurs
       champs,

$ awk '$2   "abc" {print $1, "\t", $4}' data.dat

       affiche tous les premiers et quatrimes champs de chaque ligne de
       data.dat dont le second champ contient abc.
     * cron est utile pour effectuer des tches de manire priodique, 
       des dates et des heures spcifiques. Tapez man 5 crontab.
     * file <nomdefichier> vous indique le type de nomdefichier (texte
       ASCII, excutable, archive, etc.) ;
     * find (cf. galement la section Rpertoires : traduction de
       commandes) est l'une des commandes les plus puissantes et les plus
       utiles. On l'utilise pour trouver des fichiers rpondant 
       certaines caractristiques, et pour effectuer des actions sur
       ceux-ci. L'utilisation de base de find est :

$ find <repertoire> <expression>

       o <expression> inclut les critres de recherche et les actions.
       Exemples :

$ find . -type l -exec ls -l {} \;

       trouve tous les fichiers qui sont des liens symboliques et
       montrent ce sur quoi ils pointent ;

$ find / -name "*.old" -ok rm {} \;

       trouve tous les fichiers correspondant au motif donn et les
       efface, aprs vous avoir demand confirmation ;

$ find . -perm +111

       trouve tous les fichiers dont les droits d'accs sont 111
       (excutables) ;

$ find . -user root

       trouve tous les fichiers appartenant  root. Il y a plein d'autres
       possibilits -- LPM ;
     * grep trouve des motifs de caractres dans des fichiers. Par
       exemple,

$ grep -l "geologie" *.tex

       affiche tous les fichiers *.tex contenant le mot geologie. La
       variante zgrep marche avec les fichiers gzipps. LPM ;
     * _Les expressions rgulires_ constituent un mcanisme complexe
       mais fichtrement puissant pour effectuer des oprations de
       recherche dans un texte. Par exemple, ^a[^a-m]X{4,}txt$ correspond
       aux lignes commenant par un a, suivi d'un autre caractre ne se
       trouvant pas dans l'intervalle a-m, suivi de de 4 ou plus X et
       finissant en txt. Les expressions rgulires sont utilises avec
       des diteurs avancs, less, et de nombreuses autres applications.
       man grep pour avoir une introduction ;
     * script <fichier_script> envoie le contenu de l'cran dans le
       fichier fichier_script jusqu' ce que vous lanciez la commande
       exit. Utile pour le dbogage ;
     * sudo autorise les utilisateurs  effectuer certaines tches de
       root (par ex. : le formatage et le montage des disques. LPM) ;
     * uname -a vous renvoie de l'info sur votre systme ;
     * zcat et zless sont utiles pour parcourir et rediriger des fichiers
       gzipps sans les dcompresser. Par exemple :

$ zless fictexte.gz
$ zcat fictexte.gz | lpr

     * les commandes suivantes tombent souvent  pic : bc, cal, chsh,
       cmp, cut, fmt, head, hexdump, nl, passwd, printf, sort, split,
       strings, tac, tail, tee, touch, uniq, w, wall, wc, whereis, write,
       xargs, znew. LPM.

11.6 Entranement  Unix sous DOS/Windows

   Le croirez-vous ? Il existe de chouettes outils fournissant un
   environnement de type UNIX sous DOS/Windows. L'un d'entre eux est la
   suite Djgpp ( http://www.delorie.com/djgpp) pour DOS, alors que Cygnus
   ( http://www.cygnus.com) est un portage plus complexe pour Win32. Les
   deux comprennent les mmes outils de dveloppement et utilitaires GNU
   que sous Linux ; vous n'aurez cependant ni la mme stabilit ni les
   mmes performances.

   Si vous voulez avoir un avant-got de Linux, essayez Djgpp.
   Tlchargez et installez les fichiers suivants (au moment de la
   rdaction de ce document, la version la plus rcente est la 2.02) :
   djdev202.zip, bnu281b.zip, bsh1147b.zip, fil316b.zip, find41b.zip,
   grep22b.zip, gwk303b.zip, lss332b.zip, shl112b.zip.. Les instructions
   pour l'installation sont fournies, et vous obtiendrez de l'aide sur
   news:comp.os.msdos.djgpp.

   En particulier, l'utilisation de bash sous DOSWin constitue une
   bouffe d'air frais. Pour le configurer correctement, ditez le
   fichier BOOT.BAT fourni pour l'adapter  votre configuration, mettez
   ensuite ces fichiers dans votre rpertoire d'accueil (dans la
   partition Windows) en remplacement de ceux qui sont fournis :

# voici le  _bashrc

LS_OPTIONS="-F -s --color=yes"
alias cp='cp -i'
alias d='ls -l'
alias l=less
alias ls="ls $LS_OPTIONS"
alias mv='mv -i'
alias rm='rm -i'
alias u='cd ..'

# voici le  _bprof
if [ -f  /_bashrc ]; then
  .  /_bashrc
fi
PS1='\w\$ '
PS2='> '
CDPATH="$CDPATH: "
# trucs pour less(1)
LESS="-M-Q"                     # invite longue, silencieuse
LESSEDIT="%E ?lt+%lt. %f"       # edition de la ligne superieure
VISUAL="jed"                    # editeur
LESSCHARSET=latin1              # visualisation des lettre accentuees
export PS1 PS2 CDPATH LS_OPTIONS LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET

11.7 Les extensions courantes et les programmes correspondants

   Vous pouvez rencontrer d'innombrables extensions aux noms de fichiers.
   En excluant les plus exotiques (en l'occurrence les polices etc.),
   voici une liste de qui est qui :

     * 1 ... 8 : les pages du manuel (man). Lisez-les avec groff -Tascii
       -man <file.1>.
     * arj : archive fabrique avec arj.
     * dvi : fichier de sortie produit par TeX (cf. ci-dessous). xdvi
       permet de le visualiser et dvips le transforme en fichier
       Postscript .ps.
     * gz : archive fabrique avec gzip.
     * info : fichier info (espce d'alternative aux pages man).
       Rcuprez info.
     * lsm : fichier Linux Software Map. Il s'agit d'un fichier ASCII
       ordinaire contenant la description d'un paquetage.
     * ps : fichier PostScript. Pour le visualiser, ruprez gs et,
       optionnellement ghostview ou gv.
     * rpm : paquetage Red Hat. Il est possible de l'installer sur
       n'importe quel systme  l'aide du gestionnaire de paquetages rpm.
     * taz, tar.Z : archive fabrique avec tar et compresse avec
       compress.
     * tgz, tar.gz : archive fabrique avec tar et compresse avec gzip.
     * tex : fichier texte  fournir en entre  TeX, un puissant systme
       de composition de documents. Rcuprez le paquetage tex disponible
       pour de nombreuses distributions.
     * texi : fichier texinfo, peut produire aussi bien des fichiers TeX
       et des fichiers info (cf. info). Rcuprez texinfo.
     * xbm, xpm, xwd : fichiers graphiques.
     * Z : archive fabrique avec compress.

11.8 Conversion de fichiers

   Si vous devez changer des fichiers entre DOS/Windows et Linux,
   mfiez-vous du problme des sauts de ligne. Sous DOS, chaque ligne
   se termine par CR/LF (plus prcisment, ASCII 13 + ASCII 10), alors
   que Linux se contente de LF. Si vous essayez d'diter un fichier DOS
   sous Linux, il est probable que chaque ligne se termine par un trange
   caractre M ; un texte Linux apparatra sous DOS comme une ligne
   unique extrmement longue et aucun paragraphe ne sera prsent. Il
   existe quelques outils, dos2unix et unix2dos, pour convertir les
   fichiers.

   Si vos fichiers texte contiennent des caractres accentus,
   assurez-vous qu'ils ont t saisis sous Windows (avec Notepad) et non
   sous DOS ; sinon tous les caractres accentus seront joyeusement
   mlangs.

   Pour convertir des fichiers Word ou WordPerfect vers des fichiers
   texte pur, le sujet est un peu plus dlicat mais c'est possible. Vous
   aurez besoin de l'un des outils qui se trouvent sur les sites CTAN ;
   l'un d'entre eux tant ftp://ftp.tex.ac.uk. Rcuprez le paquetage
   word2x du rpertoire /pub/tex/tools/, ou essayez l'un des paquetages
   disponibles dans le rpertoire /pub/tex/support/. En particulier,
   word2x convertit les fichiers Word 6, alors que pour Word 7, vous
   aurez besoin de mswordview ( http://www.csn.ul.ie/
   caolan/docs/MSWordView.html) qui les transforme en HTML.

11.9 Suites bureautiques gratuites

   Si la conversion de fichiers ne suffit pas, vous avez le choix de vous
   faire les dents sur un paquetage (gratuit !) du type Microsoft Office.

   La suite StarOffice est gratuite pour une utilisation personnelle.
   Elle est volumineuse, un peu lente, mais trs bonne quoi qu'il en soit
   : elle offre de nombreuses fonctionnalits absentes de Microsoft
   Office. Elle est galement capable de lire et d'crire des fichiers
   Word et Excel, bien que la conversion ne soit pas toujours parfaite.
   Page Web : http://www.stardivision.com.

   Un autre paquetage de bonne qualit est Corel WordPerfect, dont une
   dition gratuite est disponible en tlchargement. Dois-je en dire
   plus ? Allez la rcuprer sur : http://www.corel.com.

12. La fin, du moins pour l'instant

   Flicitations !  prsent, vous avez quelques notions d'UNIX et tes
   prt pour commencer  travailler. Souvenez-vous que votre connaissance
   du systme est encore limite, et qu'il est prfrable d'avoir un peu
   plus de pratique de Linux pour l'utiliser confortablement. Mais si
   tout ce que vous aviez  faire tait de rcuprer un paquet
   d'applications pour commencer  travailler, ce que j'ai inclus dans ce
   document est suffisant.

   Je suis persuad qu'il vous plaira d'utiliser Linux et que vous
   continuerez votre apprentissage -- comme tout le monde. Je prends
   galement le pari que vous ne retournerez plus jamais sous DOSWin !
   J'espre avoir t comprhensible et avoir rendu service  mes 3 ou 4
   lecteurs.

12.1 Droits d'auteur

   Sauf mentionn explicitement, les documents Linux HOWTO sont la
   proprit de leurs auteurs respectifs. Les documents Linux HOWTO
   peuvent tre reproduits et distribus en totalit ou en partie, sur
   n'importe quel support physique ou lectronique,  condition que cette
   note concernant les droits d'auteur soit prsente sur toutes les
   copies. La redistribution commerciale est autorise et encourage ;
   cependant, l'auteur aimerait tre tenu inform de toute distribution
   de ce type.

   Toute traduction, tous travaux drivs ou toute compilation intgrant
   des documents Linux HOWTO doivent tre couverts par cette note
   concernant les droits d'auteur. En l'occurrence, vous n'avez pas le
   droit de produire un travail driv d'un HOWTO et d'imposer des
   restrictions supplmentaires  sa distribution. Des exceptions  ces
   rgles peuvent tre accordes sous certaines conditions ; veuillez
   contacter le coordinateur des Linux HOWTO  l'adresse indique
   ci-dessous.

   Bref, nous souhaitons promouvoir la dissmination de cette information
    travers le plus grand nombre possible de canaux. Nanmoins, nous
   voulons conserver les droits d'auteur des documents HOWTO, et
   aimerions tre tenus au courant de tout projet de redistribution des
   HOWTOs.

   Si vous avez des questions, veuillez contacter Tim Bynum, le
   coordinateur des Linux HOWTO, par courrier lectronique  l'adresse
   linux-howto@sunsite.unc.edu via email.

12.2 Responsabilits

   Le From DOS/Windows to Linux HOWTO a t crit par Guido Gonzato,
   REMOVE_MEguido@ibogfs.cineca.it. Un grand merci  Matt Welsh, l'auteur
   de Linux Installation and Getting Started  Ian Jackson, l'auteur de
   Linux frequently asked questions with answers,  Guiseppe Zanetti,
   l'auteur de Linux  toutes les personnes qui m'ont envoy des
   suggestions par courrier lectronique, et des remerciements
   particuliers  Linux Thorvalds et GNU qui nous ont apport Linux.

   Ce document est fourni en l'tat. Je me suis efforc de le rdiger
   avec toute l'exactitude possible, mais l'utilisation que vous faites
   de l'information qu'il contient est  vos risques et prils. Je ne
   pourrai en aucun cas tre tenu pour responsable de dommages rsultant
   de l'utilisation de ce travail.

   Tout retour est le bienvenu. N'hsitez pas  me contacter pour toute
   question, suggestion, critique incendiaire etc.

   Profitez de la vie et de Linux,

   Guido =8-)
