  Le DOS/Windows vers Linux HOWTO
  Par Guido Gonzato, guido@ibogfs.cineca.it
  v1.2.2, 31 Octobre 1997

  Ce  HOWTO est dedie a tous les (bientot ex- ?)  utilisateurs de DOS et
  de Windows qui viennent de faire le grand saut et ont decide de passer
  a Linux,le clone gratuit d'UNIX. Etant donne les similarites entre DOS
  et UNIX, le but de ce document est d'aider l'utilisateur a  transposer
  sa  connaissance  de  DOS  et  Windows  a  l'environnement Linux, pour
  devenir productif le plus rapidement possible.  Adaptation francaise :
  Mark Hoebeke (Mark.Hoebeke@jouy.inra.fr).

  11..  IInnttrroodduuccttiioonn

  11..11..  EEsstt--ccee LLiinnuuxx qquu''iill vvoouuss ffaauutt ??

  Vous voulez passer de DOS/Windows a Linux ? Bonne idee, mais attention
  : cela peut ne pas etre  utile  pour  vous.  A  mon  humble  avis,  il
  n'existe   pas   de  ``meilleur  ordinateur''  ou  ``meilleur  systeme
  d'exploitation'' : cela depend  de  ce  que  l'on  veut  faire.  Voila
  pourquoi  je  ne  crois  pas que Linux soit la meilleure solution pour
  tout le monde, meme s'il est techniquement  superieur  a  de  nombreux
  systemes  d'exploitation du commerce. Vous tirerez un immense benefice
  de  Linux  si  ce  dont  vous  avez  besoin,  c'est  de  logiciels  de
  programmation,  de  l'Internet,  de  TeX... de logiciels techniques en
  general,  mais  si  vos  besoins  concernent  d'abord  des   logiciels
  commerciaux, ou si vous ne vous sentez pas d'attaque pour apprendre et
  pour taper des commandes, passez votre chemin.

  Linux n'est  pas  (pour  l'instant)  aussi  facile  a  utiliser  et  a
  configurer que Windows ou le Mac, alors soyez pret(e) a bidouiller pas
  mal. En depit de ces avertissements, laissez-moi vous dire que je suis
  sur  a  100% que si vous faites partie du bon type d'utilisateur, vous
  trouverez en Linux votre Nirvana informatique. La balle est dans votre
  camp.  Et  rappelez-vous  que,  de  toute facon,  Linux et DOS/Windows
  peuvent coexister sur la meme machine.

  Pre-requis pour ce HOWTO : je supposerai que

  +o  vous connaissez le commandes et les concepts de base de DOS;

  +o  Linux, et le  systeme  X  Window  si  possible,  sont  correctement
     installes sur votre PC;

  +o  votre shell--- l'equivalent du COMMAND.COM-- est bash;

  +o  vous  comprenez  que ce guide n'est qu'une introduction incomplete.
     Pour plus d'information,  consultez  le  ``Linux  Installation  and
     Getting  Started''  de  Matt Welsh et/ou le ``Linux User Guide'' de
     Larry Greenfield  (sunsite.unc.edu:/pub/Linux/docs/LDP).

     NdT. : "Le Guide du Rootard",  une introduction approfondie a Linux
     en   francais   est   disponible   sous   divers   format  a  l'URL
     ftp://ftp.ibp.fr/pub/linux/french/docs/ .

  Ce HOWTO remplace le vieux mini-HOWTO ``From DOS to Linux - Quick !''.
  Remarquez    egalement   que,   sauf   indication   contraire,   toute
  l'information de ce travail concerne le vieux mechant DOS. Il y a  une
  section  Windows,  mais,  gardez  a l'esprit que Windows et Linux sont
  totalement differents, au contraire de DOS qui est un  parent  eloigne
  d'UNIX.
  11..22..  OOuuii,, cc''eesstt llee bboonn cchhooiixx.. DDiitteess--mm''eenn pplluuss..

  Vous  avez installe Linux et les programmes dont vous aviez besoin sur
  le PC. Vous vous etes cree un compte (si ce n'est pas  le  cas,  tapez
  adduser  _s_u_r _l_e _c_h_a_m_p_!) et Linux tourne. Vous venez d'entrer votre nom
  et votre mot de passe, et, a present vous fixez l'ecran en  pensant  :
  ``Et maintenant ?''

  Ce n'est pas le moment de desesperer. Vous etes tout pres de faire les
  memes choses que celle que vous aviez l'habitude de faire sous DOS, et
  beaucoup plus. Si vous etiez sous DOS, au lieu d'etre sous Linux, vous
  feriez quelques unes des taches suivantes :

  +o  executer des programmes  et  creer,  copier,  visualiser,  effacer,
     renommer des fichiers;

  +o  faire des CD, MD, RD et DIR sur vos repertoires;

  +o  formater  des  disquettes  et  copier  des fichiers a partir de/sur
     ceux-ci;

  +o  vous occuper de vos AUTOEXEC.BAT et CONFIG.SYS;

  +o  ecrire vos propres fichiers  .BAT  et/ou  programmes  QBasic  et/ou
     C/Pascal;

  +o  le 1% restant;

  Vous  serez ravi de savoir que ces taches peuvent etre accomplies sous
  Linux de maniere similaire que sous DOS. Sous DOS, l'utilisateur moyen
  utilise  bien  peu  de la bonne centaine de commandes disponibles : la
  meme chose, jusqu'a un certain point, reste valable pour Linux.

  Quelques points a souligner avant de continuer :

  +o  d'abord, comment en sortir. Pour quitter Linux : si vous  voyez  un
     ecran  en  mode  texte,  appuyez  sur CTRL-ALT-DEL, attendez que le
     systeme ait pris soin de ses entrailles et vous dise que  tout  est
     OK,  eteignez  alors  le  PC.  Si vous travaillez sous le systeme X
     Window, appuyez d'abord  sur  CTRL-ALT-BACKSPACE,  et  ensuite  sur
     CTRL-ALT-DEL.   Ne   _j_a_m_a_i_s   eteindre   ou  re-initialiser  le  PC
     directement : cela peut endommager le systeme de fichiers;

  +o  contrairement a DOS, Linux a des mecanismes de  securite  internes,
     dus  a  sa  nature multi-utilisateurs. Des droits sont associes aux
     fichiers et aux repertoires, et certains  d'entre  eux  ne  peuvent
     donc  pas  etre  accessible  par  un utilisateur ordinaire; (cf. la
     section ``Droits''). Seul l'utilisateur dont le nom  de  login  est
     ``root''  a  tous les pouvoirs. (Ce gars la, c'est l'administrateur
     systeme. Si vous travaillez sur votre propre  PC,  c'est  egalement
     vous  qui serez root.) Au contraire, DOS vous laissera effacer tout
     le contenu de votre disque dur.

  +o  vous etes fortement encourage(e) a experimenter, jouer, essayer par
     vous-meme  :  cela  ne fera surement pas de mal. En case de besoin,
     voici ce que vous pouvez faire:

  +o  pour obtenir un peu d'aide sur les ``commandes internes'' du shell,
     tapez help;

  +o  pour  avoir l'aide sur une commande, tapez man commande qui invoque
     la page de manuel (``man'') relative a commande.  Autrement,  tapez
     info  commande  qui  invoque  la  page  d'informations  relative  a
     commande  si  elle  est  disponible.  Info  est   un   systeme   de
     documentation  base  sur  l'hypertexte,  pas  toujours  intuitif au
     depart. Enfin, vous  pouvez  essayer  apropos  commande  ou  whatis
     commande et taper 'q' pour quitter;

  +o  une  grande  partie  de  la  puissance  et de la flexibilite d'UNIX
     provient des concepts simples de redirection et de ``piping''  bien
     plus  puissants  que  sous  DOS. Des commandes simples peuvent etre
     chainees les unes aux autres pour accomplir des  taches  complexes.
     N'ayez pas peur d'utiliser ces commandes !

  +o  conventions  : <...> signifie que quelque chose doit etre specifie,
     alors que [...] designe quelque chose d'optionnel. Par exemple :

       $ tar -tf <fichier.tar> [> fichier_de_redirection]

  fichier.tar   doit   etre   indique,   mais   la   redirection    vers
  fichier_de_redirection est optionnelle.

  +o  a  partir  de maintenant, ``LPM'' signifie ``veuillez vous reporter
     aux pages du manuel pour plus d'information''.

  11..33..  PPoouurr lleess iimmppaattiieennttss

  Vous voulez vous faire la main ? Jetez un oeil a ceci :

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

  BACKUP                  tar -Mcvf device dir/   completement different
  CD dirname\             cd dirname/             presque la meme syntaxe
  COPY file1 file2        cp file1 file2          idem
  DEL file                rm file                 attention - pas de undelete
  DELTREE dirname         rm -R dirname/          idem
  DIR                     ls                      pas exactement la meme syntaxe
  DIR file /S             find . -name file       completement different
  EDIT file               vi file                 je ne pense pas que vous
                                                  aimerez
                          emacs file              ca c'est mieux
                          jstar file              un peu comme edit de dos
  FORMAT                  fdformat,
                          mount, umount           une syntaxe assez differente
  HELP command            man command             la meme philosophie
  MD dirname              mkdir dirname/          presque la meme syntaxe
  MOVE file1 file2        mv file1 file2          idem
  NUL                     /dev/null               idem
  PRINT file              lpr file                idem
  PRN                     /dev/lp0,
                          /dev/lp1                idem
  RD dirname              rmdir dirname/          presque la meme syntaxe
  REN file1 file2         mv file1 file2          ne marche pas pour des fichiers
                                                  mutliples
  RESTORE                 tar -Mxpvf device       une syntaxe differente
  TYPE file               less file               beaucoup mieux
  WIN                     startx                  completement differents !

  Si vous avez besoin de plus que d'une  table  de  commandes,  veuillez
  vous reporter aux sections suivantes.

  22..  LLeess ffiicchhiieerrss eett lleess pprrooggrraammmmeess

  22..11..  LLeess ffiicchhiieerrss :: nnootteess pprreelliimmiinnaaiirreess

  Linux  a  un  systeme  de fichiers, ce qui signifie ``la structure des
  repertoires et des fichiers qui s'y trouvent', tres similaire a  celui
  de  DOS.  Les  fichiers  ont  des  noms  qui  obeissent  a  des regles
  speciales,  sont  disposes  dans  des   repertoires,   certains   sont
  executables,  et  parmi  ceux-ci  la plupart ont des options. De plus,
  vous pouvez utiliser les caracteres ``joker'', faire des  redirections
  et  des  enchainements de commandes. Il n'y a que quelques differences
  mineures :

  +o  sous  DOS,  les  noms  de  fichiers  sont  de  la  forme  8.3;  ex.
     SUFFITPA.TXT.  Sous  Linux,  on  peut  faire  mieux.  Si  vous avez
     installe Linux en utilisant un systeme de fichiers de type ext2  ou
     umsdos,  vous  pouvez  utiliser  des  noms  de  fichiers plus longs
     (jusqu'a 255 caracteres), et qui comportent plus d'un point  :  par
     exemple   Ceci_est.un.TRES_long.nom.de.fichier.   Notez   que  j'ai
     utilise aussi bien des majuscules que des minuscules : en fait...

  +o  dans un nom de fichier ou  une  commande,  les  majuscules  et  les
     minuscules   sont   differenciees.   Donc,  NOMDEFICHIER.tar.gz  et
     nomdefichier.tar.gz sont  deux  fichiers  differents.  ls  est  une
     commande, LS est une erreur;

  +o  bien  entendu, les utilisateurs de Windows 95 voudront utiliser les
     noms de fichiers longs sous Linux. Si un nom  de  fichier  contient
     des  espaces  (ce qui est possible mais pas recommande), vous devez
     entourer le fichier par des guillemets a chaque  fois  que  vous  y
     ferez reference. Par exemple:

       $ # la commande qui suit cree un repertoire appelle "Mes vieux fichiers"
       $ mkdir "Mes vieux fichiers"
       $ ls
       Mes vieux fichiers   bin   tmp

  Certains  caracteres  peuvent  etre  utilises,  mais  ne devraient pas
  l'etre, comme : !*$&. Toutefois, je ne dirais pas comment.

  +o  il n'y a pas d'extensions obligatoires pour  les  programmes  comme
     .COM  et  .EXE, ou pour les fichiers batch comme .BAT. Les fichiers
     executables se terminent par une asterisque Par exemple :

       $ ls -F
       lettre_a_Joe  cindy.jpg  cjpg*  Je_suis_un_repertoire/  mon_1er_script*  old~

  Les fichiers cjpg* et mon_1er_script* sont executables---  des  ``pro-
  grammes''. Sous DOS, des fichiers de sauvegarde se terminent par .BAK,
  alors que sous Linux, ils se terminent par une tilde '~'. En outre, un
  fichier  dont  le nom commence par un point est considere comme cache.
  Exemple : le fichier .Je.suis.un.fichier.cache ne figurera pas dans la
  sortie de la commande ls;

  +o  Sous  DOS,  les options des programmes sont specifies avec /option,
     sous Linux il s'agit de -option  ou  --option.  Exemple  :  dir  /s
     devient  ls  -R.  Remarquez  que  de nombreux programmes DOS, comme
     PKZIP ou ARJ, utilisent les options a la maniere d'UNIX.

  Vous pouvez maintenant vous  rendre  a  la  Section  ``Traduction  des
  commandes  DOS  vers  Linux'', mais, a votre place, je poursuivrais la
  lecture ici.

  22..22..  LLeess lliieennss ssyymmbboolliiqquueess

  UNIX dispose d'un type de fichier qui n'existe pas sous DOS : le  lien
  symbolique. On peut le voir comme un pointeur sur un fichier ou sur un
  repertoire, et il peut etre utilise en lieu et place du fichier ou  du
  repertoire  sur  lequel  il  pointe;  cela ressemble aux raccourcis de
  Windows 95.  Des exemples  de  liens  symboliques  sont  /usr/X11  qui
  pointe  sur  /usr/X11R6;  /dev/modem  qui pointe soit sur /dev/cua0 ou
  /dev/cua1.

  Pour creer un lien symbolique :

       $ ln -s <fichier_ou_rep> <nom_du_lien>

  Example :

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

  Maintenant,  vous   pouvez   utiliser   g77manual.txt   au   lieu   de
  /usr/doc/g77/DOC. Les lignes apparaissent comme suit dans l'inventaire
  des repertoires:

       $ ls -F
       g77manual.txt@
       $ ls -l
       (diverses choses...)           g77manual.txt -> /usr/doc/g77/DOC

  22..33..  DDrrooiittss eett pprroopprriieetteess

  Les fichiers et  repertoires  DOS  ont  les  attributs  suivants  :  A
  (archive),  H  (cache), R (lecture seule) et S (systeme). Seuls H et R
  ont un sens sous Linux : les fichiers caches commencent par un  point,
  et pour ce qui est de l'attribut R, lisez ce qui suit.

  Sous  UNIX,  un  fichier  a  des  ``droits''  et  un  proprietaire qui
  appartient a un ``groupe''. Considerez cet exemple :

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

  Le  premier  champ  contient  les  droits  du  fichier  /bin/ls,   qui
  appartient  a  root  et  au groupe bin. Si l'on ne tient pas compte du
  reste de l'information (il y a le livre de Matt pour cela),  souvenez-
  vous que -rwxr-xr-x signifie (de gauche a droite) :

  -  est  le type du fichier (- = fichier ordinaire, d = repertoire, l =
  lien etc...); rwx sont les droits  pour  le  proprietaire  du  fichier
  (r=read=lecture,  w=write=ecriture,  x=execution); r-x sont les droits
  pour le groupe auquel appartient le proprietaire (lecture, execution);
  (je  n'aborderai  pas  le  concept  de  groupe,  tant  que  vous serez
  debutant(e), vous pouvez vous en passer ;-) r-x sont les  droits  pour
  tous les autres utilisateurs (lecture, execution).

  Ainsi,  vous  ne  pouvez pas effacer le fichier /bin/ls a moins d'etre
  root : vous n'avez pas les droits pour  le  faire.  Pour  changer  les
  droits d'un fichier, la commande est :

       $ chmod <quiXdroits> <fichier>

  ou  'qui'  est  u (user, c.a.d le proprietaire), g (groupe), o (other,
  les autres), 'X' est  soit  +  ou  -,  'droits'  est  r  (lecture),  w
  (ecriture)  ou  x  (execution).   NdT. : de plus, la lettre 'a' est un
  raccourci pour designer a la fois 'u', 'g' et 'o'.  Exemples :

       $ chmod u+x fichier

  ceci met les droits d'execution pour le  proprietaire du fichier.

       $ chmod go-wx fichier

  ceci enleve les droits d'ecriture et d'execution pour  tout  le  monde
  sauf le proprietaire.

       $ chmod ugo+rwx fichier

  ceci  donne  les droits de lecture d'ecriture et d'execution a tout le
  monde.

       # chmod +s fichier

  ceci fabrique un fichier appele ``setuid'' ou  ``suid''  --un  fichier
  que  tout  le  monde  peut executer avec les droits du proprietaire du
  fichier.

  Un moyen plus court  pour  designer  les  droits  est  d'utiliser  des
  nombres  :  rwx-xr-x peut s'ecrire 755 (chaque lettre  correspond a un
  bit : --- vaut 0, --x vaut 1, -w- vaut 2, -wxvaut 3...).  Cela  parait
  complique,  mais avec un peu de pratique, vous comprendrez le concept.
  NdT. : la notation chiffree des droits est  faite  en  octal,  donc  7
  correspond  au  nombre  binaire  111  ou  les  3  bits  indiquant  les
  permissions sont positionnes.

  root, appele egalement le super-utilisateur, peut changer  les  droits
  des  fichiers  quelque  soit leur proprietaire.  Il y aurait plus a en
  dire---LPM.

  22..44..  TTrraadduuccttiioonn lleess ccoommmmaannddeess DDOOSS vveerrss LLiinnuuxx

  A gauche, les commandes DOS; a droite, leurs equivalents Linux.

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

  Les operateurs de redirection et d'enchainement de commandes :  < > >>
  |

  Les jokers : * ?

  nul :        /dev/null

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

  - EXEMPLES -

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

       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 PAPER.TXT TMP\            $ mv paper.txt tmp/
       C:\GUIDO>REN PAPER.TXT PAPER.ASC        $ mv paper.txt paper.asc
       C:\GUIDO>PRINT LETTER.TXT               $ lpr letter.txt
       C:\GUIDO>TYPE LETTER.TXT                $ more letter.txt
       C:\GUIDO>TYPE LETTER.TXT                $ less letter.txt
       C:\GUIDO>TYPE LETTER.TXT > NUL          $ cat letter.txt > /dev/null
               n/a                             $ more *.txt *.asc
               n/a                             $ cat section*.txt | less

  Notes :

  +o  *  est  plus  malin  sous Linux : * correspond a tous les fichiers,
     sauf les fichiers caches; .* correspond a tous les fichiers caches;
     *.*  correspond  seulement  a  ceux qui ont un '.' au milieu, suivi
     d'autres caracteres; p*r correspond a la fois a  `par'  et  `pour';
     *c* correspond a la fois a `secher' et `bocal';

  +o  lors de l'utilisation de more, appuyez sur ESPACE pour parcourir le
     fichier, 'q' ou CTRL-C pour quitter. less est plus intuitif et vous
     permet d'utiliser les fleches;

  +o  il  n'y  a  pas  de UNDELETE alors _r_e_f_l_e_c_h_i_s_s_e_z_-_y _a _d_e_u_x _f_o_i_s avant
     d'effacer quoi que ce soit.

  +o  en plus des < > >> du DOS, Linux  connait  2>  pour  rediriger  les
     messages  d'erreur  (stderr);  de  plus,  2>&1 redirige stderr vers
     stdout, alors que 1>&2 redirige stdout vers  stderr;  NdT.:  stdout
     est  ``la  sortie  standard''  (le  lieu  ou  sont envoyes tous les
     messages qui ne sont pas des  messages  d'erreur);  stderr  est  la
     ``sortie  erreur standard'' (lieu ou sont envoyes tous les messages
     d'erreur).

  +o  Linux a un autre caractere joker : le  [].  Utilisation  :   [abc]*
     correspond  a  tous  les fichiers commencant par a, b, c; *[I-N123]
     correspond aux fichiers se terminant par I,J,K,L,M,N,1,2,3;

  +o  il n'y a pas de RENAME identique a celui du DOS; en fait, mv  *.xxx
     *.yyy  ne marchera pas. Vous pourriez essayer ce script simple; cf.
     la section ``Les shell-scripts'' pour plus de details.

     ___________________________________________________________________
     #!/bin/sh
     # ren: renomme plusieurs fichiers selon certaines regles

     if [ $# -lt 3 ] ; then
       echo "usage: ren \"motif\" \"remplacement\" fichiers..."
       exit 1
     fi

     vieux=$1 ; nouveau=$2 ; shift ; shift

     for file in $*
     do
       new=`echo ${file} | sed s/${vieux}/${nouveau}/g`
       mv ${file} $vieux
     done
     ___________________________________________________________________

  Attention: ce script ne se comporte pas comme le REN du DOS, puisqu'il
  utilise  des  ``expressions  regulieres''  que  vous ne connaissez pas
  encore. En bref, si vous voulez simplement changer l'extension de cer-
  tains  fichiers,  utilisez  le  comme  suit:  ren  "htm$" "html" *htm.
  N'oubliez pas le signe $.

  +o  utilisez cp -i et mv -i pour etre averti(e) lorsqu'un  fichier  est
     sur le point d'etre ecrase.

  +o  utilisez  cp  -i et mv -i pour etre averti lorsqu'un fichier risque
     d'etre ecrase.

  22..55..  LL''eexxeeccuuttiioonn ddee pprrooggrraammmmeess  :: llee mmuullttiittaacchhee eett lleess sseessssiioonnss

  Pour  faire  tourner un programme, entrez son nom comme vous le feriez
  sous DOS. Si le repertoire (section ``Repertoires'') ou se  trouve  le
  programme est inclus  dans le PATH (section ``Demarrage du systeme''),
  le programme demarrera. Attention : au contraire du DOS,  sous  Linux,
  un  programme  situe  dans  le  repertoire courant ne sera pas lance a
  moins que ce repertoire ne soit inclus dans le  PATH.  Solution  :  si
  prog est votre programme, tapez

  Voici a quoi ressemble une ligne de commande typique:

  $ commande -o1 -o2 ... -on par1 par2 ... parm < entree > sortie

  ou  -o1,  ..., -on sont les options de la commande, et par1, ..., parm
  ses parametres. Vous pouvez specifier plusieurs commandes sur la ligne
  de commande:

       $ commande1 ; commande2 ; ... ; commanden

  C'est  a  peu pres tout en ce qui concerne l'execution des programmes,
  mais on peut facilement franchir un pas de  plus.  L'une  des  raisons
  principales  d'utiliser  Linux est que c'est un systeme d'exploitation
  multitache--il peut  faire  tourner  plusieurs  programmes  (que  nous
  appellerons  processus  a  partir  de  maintenant) en meme temps. Vous
  pouvez lancer des processus en arriere-plan et continuer a  travailler
  sans  aucune  gene.  De  plus,  Linux  vous  permet  d'avoir plusieurs
  sessions : c'est comme d'avoir plein  d'ordinateurs  a  la  fois  pour
  travailler !

  +o  Pour passer de la session 1..6 :

       $ ALT-F1 ... ALT-F6

  +o  Pour  commencer  une  nouvelle  session  sans  quitter  la  session
     courante :

       $ su - <nom de login>

  Exemple :

       $ su - root

  Ceci est utile, par exemple, lorsque vous avez besoin  de  monter  une
  disquette  (section  ``Les  disquettes'') : en temps normal, seul root
  peut le faire.

  +o  Pour terminer une session :

  $ exit

  S'il y a des jobs arretes (lire plus loin), vous en serez averti(e).

  +o  Pour lancer un processus en avant-plan :

       $ nomdeprogramme [-options] [parametres] [< entree] [> sortie]

  +o  Pour lancer un processus en arriere-plan,  ajoutez  une  eperluette
     '&' a la fin de la ligne de commande :

       $ nomdeprogramme [-options] [parametres] [< entree] [> sortie] &
       [1] 123

  le  shell  identifie le processus a un numero de job (ex. [1]; cf. ci-
  dessous), et a un PID (123 dans notre exemple).

  +o  Pour voir combien il y a de processus :

       $ ps -a

  Ceci affichera une liste des processus en train de tourner.

  +o  Pour tuer un processus :

       $ kill <PID>

  Vous pourrez avoir besoin de tuer un processus lorsque vous  ne  savez
  pas   comment  le  quitter proprement... ;-). Parfois, un processus ne
  pourra  etre tue qu'en faisant ceci :

       $ kill -15 <PID>
       $ kill -9 <PID>

  En plus de ceci, le shell vous permet d'arreter ou de suspendre tempo-
  rairement  un  processus,  d'envoyer  un  processus en arriere-plan et
  d'amener un processus de l'arriere-plan vers le premier plan. Dans  ce
  contexte, les processus sont appeles des ``jobs''.

  +o  Pour voir combien il y a de jobs :

       $ jobs

  ici,  les jobs sont identifies par leur numero de job, et non par leur
  PID.

  +o  Pour arreter un processus qui  tourne  au  premier  plan  (cela  ne
     marchera pas toujours) :

       $ CTRL-C

  +o  Pour  suspendre  un  processus  qui  tourne  au  premier plan (meme
     remarque) :

       $ CTRL-Z

  +o  Pour envoyer un processus  suspendu  en  arriere-plan  (il  devient
     alors un job) :

       $ bg <job>

  +o  Pour amener un job vers le premier plan :

       $ fg <job>

  +o  Pour tuer un job :

  $ kill <%job>

  ou  <job>  peut  etre  1, 2, 3, ... (NdT. : ce parametre est optionnel
  s'il n'y a qu'un seul job.)  A l'aide de ces  commandes,  vous  pouvez
  formater  un  disque,  comprimer  un lot de fichiers, compiler un pro-
  gramme, decomprimer et archiver tout a la fois  tout  en  gardant  une
  invite  a  votre  disposition.  Essayez  de  faire  ceci sous DOS ! Et
  essayez avec Windows, rien que pour voir la difference de performance.

  22..66..  LL''eexxeeccuuttiioonn ddee pprrooggrraammmmeess ssuurr ddeess oorrddiinnaatteeuurrss ddiissttaannttss

  Pour  faire  tourner  un  programme  sur  une  machine  distante  dont
  l'adresse IP est grossebecane.distante.fr, faites :

       $ telnet grossebecane.distante.fr

  Apres  vous etre connecte, demarrez votre programme favori. Il va sans
  dire que vous devez avoir un compte sur la machine distante.

  Si  vous  disposez  de  X11,  vous  pouvez  meme  faire  tourner   une
  application  X  sur  un  ordinateur  distant, avec affichage sur votre
  ecran   X.   Supposons   que    la    machine    X    distante    soit
  grossebecane.distante.fr  et que boite.linux.locale soit votre machine
  Linux.   Pour   faire   tourner   un   programme   X   residant    sur
  grossebecane.distante.fr a partir de boite.linux.locale, faites ce qui
  suit :

  +o  demarrez  X11,  lancez  un  xterm  ou  un  emulateur  de   terminal
     equivalent, et tapez :

       $ xhost + grossebecane.distante.fr
       $ telnet grossebecane.distante.fr

  +o  apres vous etre connecte, tapez :

       grossebecane:$ DISPLAY=boite.linux.locale:0.0
       grossebecane:$ nomdeprogramme &

  (  au  lieu de DISPLAY..., vous pourriez avoir a ecrire setenv DISPLAY
  boite.linux.locale:0.0. Cela depend du shell distant. )

  Et    voila!    Maintenant,    nomdeprogramme    va    demarrer    sur
  grossebecane.distante.fr  et  s'affichera  sur votre ecran. Toutefois,
  n'essayez pas ceci sur une liaison PPP,  celle-ci  serait  trop  lente
  pour etre vraiment utilisable.

  33..  LL''uuttiilliissaattiioonn ddeess rreeppeerrttooiirreess

  33..11..  LLeess rreeppeerrttooiirreess :: nnoottiioonnss pprreelliimmiinnaaiirreess

  Nous  avons  vu  les differences entre les fichiers sous DOS et Linux.
  Pour ce qui est des repertoires, sous DOS, le repertoire racine  est
  sous  Linux  c'est  /. De meme, les repertoires imbriques sont separes
  par sous DOS, et par / sous Linux. Exemple  de  chemin  d'acces  a  un
  fichier :

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

  Comme  d'habitude,  ..  est  le  repertoire  pere,  et systeme ne vous
  permettra pas de  faire  des  cd,  rd,  ou  md  n'importe  ou.  Chaque
  utilisateur  demarre  de  son propre repertoire, appele 'home' qui lui
  est attribue par l'administrateur systeme; par exemple,  sur  mon  PC,
  mon repertoire home est /home/guido/.

  33..22..  LLeess ddrrooiittss ssuurr lleess rreeppeerrttooiirreess

  Les  repertoires  disposent  egalement de droits. Ce que nous avons vu
  dans la section ``Droits'' est  aussi  valable  pour  les  repertoires
  (utilisateur,  groupe  et autres). Pour un repertoire, rx signifie que
  vous pouvez faire cd vers ce repertoire, et w signifie que vous pouvez
  detruire  un fichier dans ce repertoire (si les permissions du fichier
  vous le permettent, bien sur), ou effacer le repertoire lui-meme.

  Par exemple, pour empecher les  utilisateurs  de  jeter  un  oeil  sur
  /home/guido/texte/ :

       $ chmod o-rwx /home/guido/texte

  33..33..  TTrraadduuccttiioonn ddeess ccoommmmaannddeess DDOOSS vveerrss LLiinnuuxx

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

  - EXEMPLES -

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

       C:\GUIDO>DIR                            $ ls
       C:\GUIDO>DIR FILE.TXT                   $ ls file.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
               n/a - cf note                   $ cd
               idem                            $ cd ~
               idem                            $ cd ~/temp
       C:\GUIDO>CD \AUTRE                      $ cd /autre
       C:\GUIDO>CD ..\TEMP\POUBELLE            $ cd ../temp/poubelle
       C:\GUIDO>MD NVXPROG                     $ mkdir nvxprogs
       C:\GUIDO>MOVE PROG ..                   $ mv prog ..
       C:\GUIDO>MD \PROGS\TURBO                $ mkdir /progs/turbo
       C:\GUIDO>DELTREE TEMP\POUBELLE          $ rm -R temp/poubelle
       C:\GUIDO>RD NVXPROGS                    $ rmdir nvxprogs
       C:\GUIDO>RD \PROGS\TURBO                $ rmdir /progs/turbo

  Notes :

  1. pour  utiliser  rmdir, le repertoire a effacer doit etre vide. Pour
     effacer un repertoire et tout son contenu, utilisez rm  -R  (a  vos
     risques et perils).

  2. le  caractere  '~' est un raccourci pour le nom de votre repertoire
     home.  Les  commandes  cd  ou  cd  ~  vous  emmeneront  dans  votre
     repertoire  home,  ou  que  vous  soyez;  la commande cd ~/tmp vous
     emmenera vers /home/votre_rep_home/tmp.

  3. cd - ``defait'' le dernier cd.

  44..  DDiissqquueetttteess,, ddiissqquueess dduurrss ccoonnssoorrttss

  44..11..  GGeessttiioonn ddeess ppeerriipphheerriiqquueess

  Vous n'y avez jamais pense,  mais  la  commande  DOS  FORMAT  A:  fait
  beaucoup  plus  de  travail  qu'il  n'y  parait. En fait, lorsque vous
  lancez la commande FORMAT  cela  va  :  1)  formater  physiquement  le
  disque, 2) creer le repertoire A: (= creer un systeme de fichiers); 3)
  rendre le disque accessible a l'utilisateur (= monter le disque).

  Ces trois etapes sont distinguees sous Linux. Vous pouvez utiliser des
  disquettes  au  format  MS-DOS,  bien  que  d'autres  formats,  et des
  meilleurs, soient disponibles---le format MS-DOS ne vous laissera  pas
  utiliser les noms de fichiers longs.  Voici comment preparer un disque
  (vous aurez besoin de demarrer une session en tant que root) :

  +o  Pour formater une disquette classique 1.44 Mo (A:) :

       # fdformat /dev/fd0H1440

  +o  Pour creer un systeme de fichiers :

       # mkfs -t ext2 -c /dev/fd0H1440

  pour creer un systeme de fichiers MS-DOS, utilisez msdos  au  lieu  de
  ext2. Avant d'utiliser le disque, vous devez le monter.

  +o  Pour monter le disque :

       # mount -t ext2 /dev/fd0 /mnt

  ou

       # mount -t msdos /dev/fd0 /mnt

  Maintenant,  vous pouvez acceder aux fichiers de la disquette. Lorsque
  vous avez fini, et avant d'extraire la disquette vous _d_e_v_e_z le  demon-
  ter.

  +o  Pour demonter le disque :

       # umount /mnt

  A  present  vous pouvez extraire la disquette. De toute evidence, vous
  ne devez faire fdformat et mkfs que sur des disquettes non  formatees,
  et  pas  sur des disquettes deja utilisees. Si vous voulez utiliser le
  lecteur B:, adressez fd1H1440 et fd1 au lieu de fd0H1440 et  fd0  dans
  les exemples ci-dessus.

  Tout  ce  que  vous  aviez  l'habitude  de  faire  avec  A: et B: peut
  maintenant etre fait en utilisant /mnt a la place. Exemples :

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

       C:\GUIDO>DIR A:                         $ ls /mnt
       C:\GUIDO>COPY A:*.*                     $ cp /mnt/* /docs/temp
       C:\GUIDO>COPY *.ZIP A:                  $ cp *.zip /mnt
       C:\GUIDO>A:                             $ cd /mnt
       A:>_                                    /mnt/$ _

  Si   vous   ne   voulez   pas   vous   embarrasser   avec   tous   ces
  montages/demontages,  utilisez  mtools:  il  s'agit  d'un  ensemble de
  commandes parfaitement  equivalentes  a  leurs  homologues  DOS,  sauf
  qu'ils  commencent  par  un 'm' : par ex., mformat, mdir, mdel etc....
  Elles sont meme capables de preserver les noms de fichiers longs, mais
  pas  les  droits.  Utilisez  ces  commandes comme vous utiliseriez les
  commandes DOS sans vous poser d'autres questions.

  Cela va sans dire, ce qui est vrai pour les disquettes vaut  egalement
  pour  d'autres peripheriques; en l'occurrence, 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

  Ceci  etait la maniere ``officielle'' de monter vos disques, mais il y
  a une astuce. Comme c'est un peu penible  de  devoir  etre  root  pour
  monter  une disquette ou un CD-ROM, voici comment faire pour permettre
  a tout utilisateur d'utiliser cette maniere pour les monter :

  +o  en tant que root, executez les commandes suivantes:

       ~# mkdir /mnt/a: ; mkdir /mnt/a ; mkdir /mnt/cdrom
       ~# chmod 777 /mnt/a* /mnt/cd*
       ~# # il faut s'assurer que le peripherique correspondant au CD-ROM est
       ~# # correct
       ~# chmod 666 /dev/hdb ; chmod 666 /dev/fd*

  +o  ajoutez les lignes suivantes dans le fichier  /etc/fstab :

       /dev/cdrom      /mnt/cdrom  iso9660 ro,user,noauto          0       0
       /dev/fd0        /mnt/a:     msdos   user,noauto             0       0
       /dev/fd0        /mnt/a      ext2    user,noauto             0       0

  A present, pour monter une disquette au format DOS, au format ext2  et
  un CD-ROM :

       $ mount /mnt/a:
       $ mount /mnt/a
       $ mount /mnt/cdrom

  /mnt/a,  /mnt/a:,  et  /mnt/cdrom peuvent maintenant etre utilises par
  chaque utilisateur. Rappelez -vous que d'autoriser  n'importe  qui  de
  monter  des  disques  de cette facon est un trou de securite beant, si
  cela vous preoccupe.

  44..22..  LLeess ssaauuvveeggaarrddeess

  Maintenant que vous savez comment manipuler les disquettes etc., voici
  quelques  lignes  montrant  comment  faire  vos  sauvegardes.  Il  y a
  plusieurs paquetages pour vous venir en  aide,  mais  la  moindre  des
  choses  que  vous  puissiez faire pour effectuer une sauvegarde multi-
  volumes est (en tant que root) :

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

  Assurez-vous d'avoir mis une disquette formatee dans  le  lecteur,  et
  d'en  avoir  prepare  plusieurs  autres.  Pour recuperer vos affaires,
  inserez la premiere disquette dans le lecteur et faites :

       # tar -M -xpvf /dev/fd0H1440

  55..  QQuuiidd ddee WWiinnddoowwss ??

  ``L'equivalent'' de Windows est le systeme graphique X11. Au contraire
  de  Windows  ou du Mac, X11 n'a pas ete concu pour etre facile d'acces
  ou avoir  une  belle  apparence,  mais  uniquement  pour  fournir  des
  capacites   graphiques   aux  stations  de  travail  UNIX.  Voici  les
  differences principales:

  +o  alors que Windows dispose du meme ``look and feel'' dans  le  monde
     entier,  ce  n'est  pas  le  cas  pour  X11:  il  est beaucoup plus
     configurable.  L'apparence  generale  de  X11  est  donnee  par  un
     composant  cle appele le gestionnaire de fenetres (window manager);
     il y en a tout un  tas  au  choix.  Le  plus  repandus  sont  fvwm,
     rudimentaire  mais agreable et peu gourmand en memoire, fvwm2-95 et
     The Next Level qui donnent un gout de Windows-95 a X11, et beaucoup
     d'autres. Il y en a de vraiment esthetiques;

  +o  votre  gestionnaire  de  fenetres  peut  etre configure pour qu'une
     fenetre se comporte comme dans, ahem, Windows: vous cliquez  dessus
     et  elle  vient  au  premier  plan. Une autre possibilite est de la
     faire venir au premier plan lorsque la  souris  s'y  trouve.  Cette
     fonctionnalite   (``focus'')  et  beaucoup  d'autres  peuvent  etre
     modifiees en editant un ou  plusieurs  fichiers  de  configuration.
     Reportez-vous a la documentation de votre gestionnaire de fenetres;

  +o  les applications X sont ecrites a l'aide de bibliotheques speciales
     (``widget  sets'');  comme  il  y en a plusieurs de disponible, les
     applications possedent un look  different.  Les  plus  elementaires
     sont   celles   qui   utilisent  les  composants  (widgets)  Athena
     (apparence 2-D; xdvi, xman); d'autres utilisent  Motif  (netscape),
     d'autres  encore  utilisent  Tcl/Tk, XForms, Qt etc... Certaines de
     ces bibliotheques, pas toutes, fournissent en gros le  meme  ``look
     and feel'' que Windows;

  +o  restons   en  la  pour  le  look  de  X11,  mais  qu'en  est-il  de
     l'interactivite  ?  Malheureusement,  toutes  les  applications  se
     comportent  differemment.  Par  exemple,  si  vous selectionnez une
     ligne de texte a l'aide de la souris et que vous tapiez  BACKSPACE,
     vous  vous  attendez  a ce que la ligne disparaisse, n'est-ce pas ?
     Ceci ne marche pas pour les applications basees  sur  Athena,  mais
     cela marche pour celles reposant sur Motif, Qt et Tcl/Tk;

  +o  les   barres   de   defilement,   le   changement   de   taille  et
     l'iconification dependent egalement du jeu de composants.  Il  y  a
     trop  de  differences  pour  les  mentionner toutes ici, voici donc
     quelques  points  particuliers.  Dans  des  applications   a   base
     d'Athena,  il  est plus facile de deplacer les barres de defilement
     avec le bouton du milieu. Si vous n'avez  pas  de  souris  a  trois
     boutons, essayez de maintenir les deux boutons enfonces;

  +o  les applications n'ont pas une icone par defaut, mais elles peuvent
     en avoir beaucoup. Cela depend  du  gestionnaire  de  fenetres.  Le
     bureau  s'appelle  la  ``root  window'', et vous pouvez changer son
     apparence grace a des applications comme xsetroot ou xloadimage;

  +o  le presse-papiers ne peut contenir que du  texte,  et  se  comporte
     etrangement.  Une  fois  que vous avez selectionne du texte, il est
     copie  automatiquement  dans   le   presse-papiers:   deplacez-vous
     ailleurs   et   appuyez  sur  le  bouton  central.  Il  existe  une
     application, xclipboard qui fournit de multiples  tampons  pour  le
     presse-papiers;

  +o  le ``drag and drop'' est une option, uniquement disponible avec les
     applications X qui en tiennent compte.

  Pour economiser de la memoire, il vaut mieux utiliser des applications
  reposant sur les memes bibliotheques, mais ceci est difficile a mettre
  en pratique. Il existe un projet, appele le K Desktop Environment  qui
  a  pour  but  de  faire  en  sorte  que  X11  ait  une apparence et un
  comportement aussi coherents que Windows; il est encore en phase  beta
  precoce,  mais,  croyez-moi,  il est impressionnant. Il fera rougir de
  honte   l'interface   Windows.   Pointez    votre    navigateur    sur
  http://www.kde.org.

  66..  TTaaiilllleerr llee ssyysstteemmee aa vvoottrree mmeessuurree

  66..11..  LLeess ffiicchhiieerrss dd''iinniittiiaalliissaattiioonn dduu ssyysstteemmee

  Deux fichiers importants sous DOS sont AUTOEXEC.BAT et CONFIG.SYS, qui
  sont utilises au demarrage pour initialiser  le  systeme,  positionner
  quelques  variables  d'environnement  comme  PATH  et FILES, et le cas
  echeant lancer un programme ou un fichier batch. Sous Linux,  il  y  a
  plusieurs  fichiers  d'initialisation,  dont  certains que vous feriez
  mieux de ne pas modifier  a moins de savoir  exactement  ce  que  vous
  faites.  De  toute  facon,  je  vais  vous dire lesquels sont les plus
  importants :

       FICHIERS                        NOTES

       /etc/inittab                    n'y touchez pas pour l'instant !
       /etc/rc.d/*                     idem

  Si tout ce dont vous avez besoin est  de  positionner  votre  PATH  et
  d'autres  variables  d'environnement, ou de changer les messages de la
  connexion ou de lancer un programme apres la connexion,  regardez  les
  fichiers suivants :

       FILES                           NOTES

       /etc/issue                      definit le message de pre-connexion
       /etc/motd                       definit le message de post-connexion
       /etc/profile                    definit PATH et d'autres variables etc.
       /etc/bashrc                     definit les alias et les fonctions etc
                                       (cf. ci-dessous)
       /home/votre_home/.bashrc        definit vos alias + fonctions
       /home/votre_home/.bash_profile  definit l'environnement +  lance vos progs
       /home/votre_home/.profile       idem

  Si  ce  dernier fichier existe (remarquez que c'est un fichier cache),
  il sera lu apres la connexion et les commandes qu'il  contient  seront
  executees.

  Exemple---regardez ce .bash_profile :

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

  PATH   et   LOGNAME,   vous   l'avez   devine,   sont   des  variables
  d'environnement. Il y en a beaucoup d'autres avec lesquelles  on  peut
  s'amuser;  par exemple, LPM, pour des applications comme less ou bash.

  66..22..  LLeess ffiicchhiieerrss dd''iinniittiiaalliissaattiioonn ddeess pprrooggrraammmmeess

  Sous Linux, tout peut virtuellement etre taille selon vos besoins.  La
  plupart des programmes a un ou plusieurs fichiers d'initialisation que
  vous pouvez manipuler, souvent sous forme de que vous voudrez modifier
  sont :

  +o  affectations des touches du clavier.

  +o  systeme  X Window.

  +o  fvwm.   Un  exemple se trouve dans: /usr/lib/X11/fvwm/system.fvwmrc
     Ndt. : c'est ce dernier qui est pris par defaut lorsque le  fichier
     .fvwmrc n'existe pas.

  +o  terminal  pour X, et d'autres programmes.  NdT. : ce fichier permet
     de  specifier  des  ``ressources''  (couleur  de  fond,  taille  de
     fenetre,  police  de  caracteres)  pour  de nombreuses applications
     graphiques.

  Pour tous ceux-ci, et les autres que vous rencontrerez  tot  ou  tard,
  LPM.

  77..  UUnn ppeeuu ddee pprrooggrraammmmaattiioonn

  77..11..  LLeess sshheellll--ssccrriippttss :: ddeess ffiicchhiieerrss ..BBAATT ddooppeess aauuxx sstteerrooiiddeess

  Si vous utilisiez les fichiers .BAT pour creer des raccourcis pour  de
  longues  lignes  de  commande  (c'est  ce que je faisais beaucoup moi-
  meme),  ce  but  peut  etre  atteint  en  inserant  des  lignes  alias
  appropriees  (cf.  les  exemples  ci-dessus) dans profile ou .profile.
  Mais si vos .BAT  etaient  plus  compliques,  alors  vous  aimerez  le
  langage  de  commandes que vous offre le shell : il est aussi puissant
  que le QBasic, sinon plus. Il a des variables,  des  structures  comme
  while,   for,   case,   if...   then...   else,  et  un  tas  d'autres
  caracteristiques : il peut  constituer  une  bonne  alternative  a  un
  ``vrai'' langage de programmation.

  Pour  ecrire  un script, l'equivalent d'un fichier .BAT sous DOS, tout
  ce que vous avez a  faire  est  d'ecrire  un  fichier  ASCII  standard
  contenant  les  instructions, de le sauver, et de le rendre executable
  avec la commande chmod +x <fichierscript>. Pour l'executer, tapez  son
  nom.

  Quelques  mots  de  mise en garde. L'editeur du systeme est appele vi,
  et, d'apres mon experience, la plupart des  nouveaux  utilisateurs  le
  trouve  tres  difficile  a  utiliser. Je ne vais pas expliquer comment
  l'utiliser, parce que je ne l'aime pas et que  je  ne  l'utilise  pas,
  alors  voila.  Lisez le ``Linux installation...'' de Math Welsh p. 109
  (vous feriez mieux de mettre la main sur un autre editeur comme joe ou
  emacs pour X.) Je me contenterai de dire que :

  +o  pour inserer du texte, tapez 'i' puis votre texte;

  +o  pour quitter vi sans sauver, tapez ESC puis :q!

  +o  pour sauver et quitter, tapez ESC puis :wq

  L'ecriture  de  scripts  sous  bash est un sujet tellement vaste qu'il
  necessiterait un livre a lui seul, et je ne  creuserai  pas  le  sujet
  plus  en  avant.  Je  vous  donnerai juste un exemple de shell-script,
  duquel vous pouvez extraire quelques regles de base :

  ______________________________________________________________________

  #!/bin/sh
  # echantillon.sh
  # je suis un commentaire
  # ne changez pas la premiere ligne, elle doit se trouver la
  echo "Ce systeme est : `uname -a`" # utilise la sortie de la commande 'uname'
  echo "Je m appelle $0" # variables predefinies
  echo "Vous m avez donne les  $# parametres suivants : "$*
  echo "Le premier parametre est : "$1
  echo -n "Comment vous appelez-vous? " ; read votre_nom
  echo notez la difference : "salut $votre_nom" # delimitation par "
  echo notez la difference : 'salut $votre_nom' # delimitation par '
  DIRS=0 ; FILES=0
  for file in `ls .` ; do
    if [ -d ${file} ] ; then # si le fichier est un repertoire
      DIRS=`expr $DIRS + 1`  # DIRS = DIRS + 1
    elif [ -f ${file} ] ; then
      FILES=`expr $FILES + 1`
    fi
    case ${file} in
      *.gif|*jpg) echo "${file} : fichier graphique" ;;
      *.txt|*.tex) echo "${file} : fichier texte" ;;
      *.c|*.f|*.for) echo "${file} : fichier source" ;;
      *) echo "${file} : fichier generique" ;;
    esac
  done
  echo "il y a  ${DIRS} repertoires et ${FILES} fichiers"
  ls | grep "ZxY--!!!WKW"
  if [ $? != 0 ] ; then # code de sortie de la derniere commande
    echo "ZxY--!!!WKW not found"
  fi
  echo "Ca suffit... tapez 'man bash' si vous voulez plus d infos."
  ______________________________________________________________________

  77..22..  EE--CC--iieezz ppaarr vvoouuss--mmeemmee

  Sous UNIX, le langage systeme est  le  C,  que  vous  l'aimiez  ou  le
  detestiez. Des tonnes d'autres langages (FORTRAN, Pascal, Lisp, Basic,
  Perl, awk...) sont  egalement  disponibles.   NdT.  :  bien  sur,  une
  version de l'environnement Java est egalement disponible pour Linux.

  En  partant  du  principe  que  vous  connaissez  le C, voici quelques
  indications pour ceux d'entre vous qui ont ete trop gates par le Turbo
  C++ ou l'un de ses freres du DOS. Le compilateur C de Linux est appele
  gcc et n'a pas toutes les fioritures qui accompagnent generalement ses
  correspondants  DOS : pas de IDE, d'aide en ligne, de debugger integre
  etc... C'est juste un compilateur brut en mode ligne de commande, tres
  puissant et efficace. Pour compiler votre hello.c standard, vous ferez
  :
       $ gcc hello.c

  ce qui va creer un fichier executable appele a.out. Pour donner un nom
  different a l'executable, faites :

       $ gcc -o hola hello.c

  Pour  linker  un  programme  avec  une  bibliotheque; ajoutez l'option
  -l<nomdebiblio>.  Par  exemple,  pour  linker  avec  la   bibliotheque
  mathematique :

       $ gcc -o mathprog mathprog.c -lm

  (L'option   -l<nomdebiblio>   oblige  gcc  a  linker  la  bibliotheque
  /usr/lib/lib<nomdebiblio>.a; donc, -lm renvoie a  /usr/lib/libm.a.)

  Jusque la, tout va bien. Mais lorsque votre programme est  compose  de
  plusieurs  fichiers  source,  vous  aurez  besoin  de  faire  appel  a
  l'utilitaire  make.  Supposons  que  vous  ayez  ecrit  un   analyseur
  d'expressions  :  son  fichier  source  s'appelle parser.c et inclut (
  #include ) deux fichiers  d'en-tetes,  parser.h  et  xy.h.  Puis  vous
  voulez  utiliser  les  routines de parser.c dans un programme, disons,
  calc.c, qui inclut ( #include ) a  son  tour  parser.h.  Quel  souk  !
  Comment devez vous faire pour compiler calc.c?

  Vous  aurez  a  ecrire  un  fichier  appele  makefile,  qui apprend au
  compilateur les dependances entre fichiers objet et  fichiers  source.
  Dans notre exemple :

  ______________________________________________________________________
  # Voici le makefile, utilise pour compiler calc.c
  # Pressez la touche <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.
  ______________________________________________________________________

  Sauvez ce fichier sous le nom de  makefile et tapez make pour compiler
  votre programme; sinon, sauvez le sous le nom calc.mak et  tapez  make
  -f calc.mak, et, bien sur, LPM.

  Vous  pouvez  invoquer un minimum d'aide a propos des fonctions C, qui
  sont traitees dans les pages man, section 3, par exemple,

       $ man 3 printf

  Il y a des tas de bibliotheques disponibles; parmi  les  premiers  que
  vous  voudrez utiliser il y a ncurses, qui s'occupe des effets du mode
  texte, et svgalib pour faire du graphique.  Si  vous  vous  sentez  de
  taille   a   attaquer   la   programmation   X,  procurez-vous  XForms
  (bloch.phys.uwm.edu/pub/xforms   )   et/ou   l'une   des    nombreuses
  bibliotheques  qui font de l'ecriture de programmes utilisant X un jeu
  d'enfant. Jetez un oeil sur  http://www.xnet.com/~blatura/linapp6.html
  .

  De  nombreux  editeurs  peuvent fonctionner comme un IDE; emacs et jed
  par exemple, sont capables  de  surlignage  syntaxique,  d'indentation
  automatique etc... Autrement, recuperez le paquetage rhide a partir de
  sunsite.unc.edu:/pub/Linux/devel/debuggers/. Il s'agit d'un  clone  du
  IDE de Borland, et il y a des chances que vous l'aimiez.

  88..  LLee 11%% qquuii rreessttee

  88..11..  LL''uuttiilliissaattiioonn ddee ttaarr && zziipp

  Sous  UNIX,  il  y a deux applications tres repandues pour archiver et
  comprimer  les  fichiers.  tar  est  utilise   pour   construire   des
  archives---il  agit  comme  PKZIP  mais  ne  comprime  pas, il archive
  seulement. Pour fabriquer une nouvelle archive :

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

  Pour extraire des fichiers d'une archive :

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

  Pour afficher le contenu d'une archive :

       $ tar -tf <nom_d_archive.tar> | less

  Vous pouvez comprimer les fichiers  a  l'aide  de  compress,  qui  est
  obsolete et ne devrait plus etre  utilise, ou gzip :

       $ compress <fichier>
       $ gzip <fichier>

  qui  creent un fichier compresse avec l'extension .Z (compress) ou .gz
  (gzip). Ces programmes ne peuvent comprimer qu'un fichier a  la  fois.
  Pour decomprimer, utilisez :

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

  LPM.

  Les  utilitaires  unarj,  zip et unzip (compatibles avec PK??ZIP) sont
  egalement disponibles. Des fichiers avec l'extension .tar.gz  ou  .tgz
  (archives avec tar, puis compresses avec gzip) sont aussi communs dans
  le monde UNIX que le sont les fichiers .ZIP sous  DOS.  Voici  comment
  afficher la liste du contenu d'une archive .tar.gz :

       $ gzip -dc <fichier.tar.gz> | tar tf - | less

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

  88..22..  LL''iinnssttaallllaattiioonn dd''aapppplliiccaattiioonnss

  Tout  d'abord  :  l'installation de paquetages est le travail de root.
  Certaines applications Linux sont distribuees  sous  forme  d'archives
  .tar.gz  ou  .tgz,  specialement  preparees  pour etre decompressees a
  partir de / a l'aide de la commande suivante :

       # gzip -dc <fichier.tar.gz> | tar xvf -

  NdT. : le tar, version GNU, permet de faire directement :

       tar xzvf <fichier.tar.gz>

  Les fichiers seront decompresses dans le bon repertoire qui sera  cree
  au  passage.  Les  utilisateurs de la distribution Slackware disposent
  d'un programme a l'utilisation facile: pkgtool; un autre outil est rpm
  qui est disponible dans toutes les distributions grace a Red Hat.

  La  plupart des paquetages ne devrait pas etre installe a partir de /;
  typiquement, l'archive contiendra un repertoire appele nomdupaquetage/
  et tout un tas de fichiers et de sous-repertoires sous nomdupaquetage.
  Une bonne regle est d'installer ces paquetages a partir de /usr/local.
  Il  existe  egalement  quelques  paquetages  distribues  sous forme de
  fichiers source C ou C++ que  vous  devrez  compiler  pour  creer  les
  binaires.  Dans la plupart des cas, tout ce que vous aurez a faire est
  de lancer make. Bien evidemment, vous aurez besoin du compilateur gcc.

  88..33..  LLeess aassttuucceess iinnddiissppeennssaabblleess

  LLaa  ccoommpplleettiioonn  ddeess  ccoommmmaannddeess  :  l'appui sur <TAB> lors de la saisie
  d'une commande completera la ligne de  commande  pour  vous.  Exemple:
  vous  n'avez pas besoin de taper gcc ceci_est_un_nom_long; l'entree de
  gcc cec<TAB> suffira. (Si vous avez d'autres fichiers  qui  commencent
  par  les  memes  caracteres,  il faut fournir assez de caracteres pour
  resoudre toutes les ambiguites.)

  LLee ddeeffiilleemmeenntt eenn aarrrriieerree : l'appui sur  SHIFT  +  PAG  UP  (la  touche
  grise)  vous  permet  de  remonter  de quelques pages, le nombre etant
  determine par la quantite de memoire video dont vous disposez.

  LLee nneettttooyyaaggee ddee ll''eeccrraann : si par hasard, vous faites  more ou cat  sur
  un fichier binaire, votre ecran peut se retrouver rempli de caracteres
  quelconques. Pour  y  remedier,  tapez  reset  ou  cette  sequence  de
  caracteres : echo CTRL-V ESC c RETURN.

  LLee ccoollllaaggee ddee tteexxttee : en mode console, cf. ci-dessous; sous X, cliquez
  et deplacez la souris en maintenant enfonce le bouton de gauche;  pour
  selectionner  le  texte  dans  une fenetre xterm, cliquez alors sur le
  bouton du milieu (ou sur les deux boutons en meme temps si  vous  avez
  une souris a deux boutons) pour coller. Il existe egalement xclipboard
  (helas, uniquement pour le texte); ne vous laissez  pas  derouter  par
  son temps de reponse tres long.

  UUttiilliissaattiioonn  ddee llaa ssoouurriiss : installez gpm, un pilote de souris pour le
  mode console. Cliquez  et deplacez la souris en maintenant  enfonce le
  bouton  de  gauche; pour selectionner le texte, cliquez ensuite sur le
  bouton de droite pour coller le  texte  selectionne.  Cela  fonctionne
  d'une console a l'autre.

  LLeess  mmeessssaaggeess  dduu  nnooyyaauu  :  jetez  un  oeil  sur /var/adm/messages ou
  /var/log/messages en tant que  root pour voir ce que le noyau a a vous
  dire,  y  compris  les  messages  de demarrage.  La commande dmseg est
  aussi tres pratique.

  88..44..  QQuueellqquueess pprrooggrraammmmeess eett ddeess ccoommmmaannddeess uuttiilleess

  Cette liste est bien sur le  reflet  de  mes  preferences  et  de  mes
  besoins  personnels.  En  premier  lieu,  ou les trouver. Puisque vous
  savez tous comment surfer sur le Net et  comment  utiliser  archie  et
  ftp,  je  me  contenterai  de  vous  donner trois des plus importantes
  adresses   pour   Linux   :   sunsite.unc.edu,   tsx-11.mit.edu,    et
  nic.funet.fi. Veuillez utiliser votre site miroir le plus proche.

  +o  at  vous  permet  de faire tourner des programmes a une date et une
     heure donnees;

  +o  awk est un langage simple mais puissant pour manipuler les fichiers
     de  donnees (et pas seulement ca). Par exemple, soit data.dat votre
     fichier de donnees a plusieurs champs,

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

  affiche les champs 1 et 4 de chaque ligne de data.dat dont  le  second
  champ contient ``abc''.

  +o  cron est utile pour effectuer des taches de facon periodique, a des
     dates et heures specifiees.

  +o  delete-undelete   font   ce   qu'indique   leur   nom    (    NdT.:
     efface-''desefface'' );

  +o  df vous donne des information sur le(s)s disque(s)s montes;

  +o  dosemu  vous  permet de faire tourner plusieurs programmes DOS (mas
     pas tous)--- y compris Windows 3.x, avec un peu de bidouillage;

  +o  file <nomdefichier> vous dit ce qu'est  nomdefichier (texte  ASCII,
     executable, archive, etc.);

  +o  find  (cf.  egalement  la  section  ``repertoires'')  est l'une des
     commandes les plus puissantes et les plus utiles. On l'utilise pour
     trouver  des  fichiers  qui  satisfont  plusieurs criteres, et pour
     effectuer des actions sur ceux-ci. Une utilisation courante de find
     est :

       $ find <repertoire> <expression>

  ou  <expression>  comprend  des  criteres de recherche et des actions.
  Exemples :

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

  trouve tous les fichiers qui sont des liens symboliques et montre leur
  destination.

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

  trouve tous les fichiers correspondant au motif et les efface, en vous
  demandant la permission au prealable.

       $ find . -perm +111

  trouve tous les fichiers dont les droits correspondent a 111 (executa-
  bles).

       $ find . -user root

  trouve tous les fichiers appartenant a root. Il y a enormement de pos-
  sibilites---LPM.

  +o  gnuplot est un programme brillant pour tracer des courbes de nature
     scientifique;

  +o  grep trouve des motifs de texte dans des fichiers, par exemple :

       $ grep -l "geologie" *.tex

  affiche  les  fichiers  *.tex  qui contiennent le mot ``geologie''. La
  variante zgrep marche sur des fichiers ``gzippes'' ( NdT.:  compresses
  avec gzip ). LPM;

  +o  tcx   comprime   les  fichiers  binaires  tout  en  les  maintenant
     executables.

  +o  joe est un excellent editeur. En le lancant par la commande   jstar
     vous  obtiendrez  les memes raccourcis clavier que sous WordStar et
     ses descendants, y compris les editeurs DOS et  ceux  des  langages
     Turbo de chez Borland.

  +o  less  est  probablement  le  meilleur  ``browser'' ( NdT.: outil de
     visualisation  )  de  fichiers  texte,  et,  lorsqu'il   est   bien
     configure,   vous  permet  egalement  de  visualiser  des  fichiers
     gzippes, ``tares'' ( NdT.: archives avec tar )et zippes;

  +o  lpr <fichier> imprime un fichier  en  arriere-plan.  Pour  verifier
     l'etat  de  la  file  d'impression,  utilisez  lpq; pour enlever un
     fichier de la file d'impression, utilisez lprm;

  +o  mc est un gestionnaire de fichiers epatant;

  +o  pine est un chouette programme pour le courrier electronique;

  +o  script <fichier_script> copie dans fichier_script  ce qui  apparait
     a  l'ecran jusqu'a ce que vous faites la commandes exit. Utile pour
     deboguer;
  +o  sudo permet aux utilisateurs d'accomplir certaines taches  de  root
     (ex. : formater et monter des disques; LPM);

  +o  uname -a vous donne de l'information sur votre systeme;

  +o  zcat  et  zless  sont  utiles  pour  visualiser  des fichiers texte
     gzippes sans les ``de-gzipper'' ( NdT.: les decomprimer avec gunzip
     ou gzip -d ). Exemples d'utilisation :

       $ zless fichiertexte.gz
       $ zcat fichiertexte.gz | lpr

  +o  Les  commandes  suivantes  se revelent souvent tres pratiques : 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.

  88..55..  LLeess eexxtteennssiioonnss ccoouurraanntteess eett lleess pprrooggrraammmmeess qquuii ss''yy rraattttaacchheenntt

  Vous  pouvez  rencontrer des douzaines d'extensions. A l'exception des
  plus exotiques (ex. polices de caracteres etc...), voici une liste  de
  qui fait quoi :

  +o  1 ... 8: pages du manuel. Procurez-vous man.

  +o  arj: archive fabriquee avec  arj. unarj pour desarchiver.

  +o  dvi:   fichier  produit  en  sortie  de  TeX  (cf.  ci-dessous).  A
     visualiser avec xdvi, et a transformer  en  PostScript  (.ps)  avec
     dvips.

  +o  gif: fichier graphique. Rapatriez seejpeg ou xpaint.

  +o  gz: archive fabriquee avec gzip.

  +o  info:  fichier  d'information ( sorte d'alternative a aux pages man
     ). Procurez-vous info.

  +o  jpg, jpeg: fichiers graphiques. Procurez-vous seejpeg.

  +o  lsm: fichier de type Linux Software Map.  Il  s'agit  d'un  fichier
     ASCII pur contenant la description d'un paquetage.

  +o  ps:  fichier  PostScript.  Pour  le  visualiser  installez  gs  et,
     optionellement, ghostview.

  +o  rpm: paquetage Red Hat. Vous pouvez l'installer sur  n'importe  que
     systeme a l'aide du gestionnaire de paquetages rpm.

  +o  tgz,  .tar.gz: archive fabriquee avec  tar et compressee avec gzip.

  +o  tex: fichier texte a soumettre a  TeX,  un  programme  puissant  de
     composition  de  documents.  Installez le paquetage tex, disponible
     dans de nombreuses distributions, mais  mefiez-vous  de  NTeX,  qui
     contient  des  polices  de caracteres incorrectes et fait partie de
     certaines versions de Slackware.

  +o  texi: fichier texinfo, peut produire a la fois de fichiers  TeX  et
     des fichiers info (cf. info). Procurez-vous texinfo.

  +o  xbm, xpm, xwd: fichiers graphiques. Procurez-vous  xpaint.

  +o  Z: archive fabriquee avec compress.

  +o  zip: archive fabriquee avec zip. Procurez-vous  zip et unzip.

  99..  LLaa ffiinn,, ppoouurr ll''iinnssttaanntt dduu mmooiinnss

  Felicitations  !  Vous  connaissez  maintenant  un  peu d'UNIX et etes
  pret(e) a vous mettre au travail. Rappelez-vous que votre connaissance
  du  systeme  est encore limitee, et que vous devrez pratiquer Linux un
  peu plus pour etre a l'aise. Mais si tout ce que vous  aviez  a  faire
  etait  de  rapatrier  un  paquet  d'applications  et  de  commencer  a
  travailler avec, je parie que ce que j'ai inclus ici vous a suffi.

  Je suis sur que vous  aimerez  utiliser  Linux  et  continuerez  a  en
  apprendre  plus a son sujet---tout le monde le fait. Je fais egalement
  le pari que vous ne retournerez plus jamais sous DOS  !  J'espere  que
  j'ai  reussi  a  me faire comprendre et que j'ai bien servi mes 3 ou 4
  lecteurs.

  99..11..  CCooppyyrriigghhtt

  Sauf contre-indication, les droits  des  documents  Linux  HOWTO  sont
  detenus  par  leurs  auteurs  respectifs.  Les  documents  Linux HOWTO
  peuvent etre reproduits et distribues en totalite ou  en  partie,  par
  n'importe  quel moyen physique ou electronique, tant que cette note de
  copyright reste  attachee  a  toutes  les  copies.  La  redistribution
  commerciale  est  autorisee et encouragee cependant, l'auteur aimerait
  etre informe de toute distribution de ce type.

  Toute traduction, oeuvre derivee ou compilation integrant un  document
  Linux  HOWTO  doit  etre couverte par cette notice de copyright. Donc,
  vous ne pouvez produire un travail derive d'un HOWTO  et  imposer  des
  restrictions  additionnelles sur sa distribution. Des exceptions a ces
  regles peuvent etre  accordees  dans  certaines  conditions;  veuillez
  prendre  contact  avec  le  coordinateur  des  HOWTO Linux a l'adresse
  indiquee en dessous.

  Bref, nous souhaitons promouvoir la dissemination de cette information
  a  travers le plus de canaux possibles. Cependant, nous voulons garder
  les droits d'auteur sur les documents HOWTO, et etre tenus au  courant
  de toute initiative de redistribution des HOWTOs.

  Si  vous  avez  des  questions,  veuillez  contacter  Greg Hankins, le
  coordinateur des HOWTO Linux, par courrier electronique a l'adresse  :
  gregh@sunsite.unc.edu

  99..22..  AAvveerrttiisssseemmeenntt

  ``Le  DOS/Windows  vers  Linux  HOWTO'' a ete ecrit par Guido Gonzato,
  guido@ibogfs.cineca.it. Un grand  merci  a  Matt  Welsh,  l'auteur  du
  ``Linux Installation and Getting Started'', a Ian Jackson, l'auteur du
  ``Linux frequently asked questions with answers'', a Giuseppe Zanetti,
  l'auteur  du  ``Linux'',  a  toutes les personnes qui m'ont envoye des
  suggestions, et particulierement a Linus Thorvalds et GNU qui nous ont
  donne Linux.
  Ce document est fourni ``en l'etat''. Je me suis astreint a le rediger
  avec toute l'exactitude  possible,  mais  l'utilisation  que  vous  en
  faites est a vos risques et perils. Je ne saurais en aucune facon etre
  tenu pour responsable des dommages resultant de  l'utilisation  de  ce
  travail.

  Vos  reactions  sont les bienvenues. N'hesitez pas a me contacter pour
  toute question, suggestion, lettre d'insultes etc...,

  Vivez heureux et amusez-vous avec Linux,

  Guido   =8-)

