%%%%%Introduction {\`a} Linux par la ligne de commande
%%Thomas Temp{\'e}
%%Juillet 2001


\documentclass[french, twoside, 12pts]{article}
\usepackage[T1]{fontenc}
\usepackage{babel, a4, indentfirst}

\begin{document}
\title{Premiers pas sous GNU/Linux\\avec la ligne de commande}
\date{Juillet 2001}
\author{Thomas Temp{\'e}}
\maketitle

\section*{Introduction}

Aujourd'hui, la plupart des distributions de GNU/Linux viennent avec
de jolis programmes d'installation graphique. La configuration d'un
syst{\`e}me, se fait en quelques clics de souris. Ces progr{\`e}s
indiscutables ont l'inconv{\'e}nient d'isoler l'utilisateur de la ligne
de commande et des longues heures de t{\^a}tonnement {\^o} combien
didactiques. Le but de ce document est d'introduire les outils
merveilleux de notre unix libre aux utilisateurs aventureux qu'une
installation en mode texte n'aurait pas rebut{\'e}. Il est assum{\'e} que
le lecteur a un minimum de connaissances en informatique.

Mais pourquoi donc apprendre des outils arcanes pour faire des choses
aussi triviales que copier ou {\'e}diter des fichiers, alors qu'un
glisser-d{\'e}poser fait la m{\^e}me chose?  D'abord, parce que pour peu
que vous soyez amen{\'e} {\`a} utiliser un ordinateur quotidiennement, le
gain de temps et de confort qu'apporte la ligne de commande par
rapport {\`a} une interface graphique permet de tr{\`e}s vite rentabiliser
l'investissement initial de son apprentissage. Mais aussi par passion,
parce que l'apprentissage de la ligne de commande est le premier pas
vers la d{\'e}couverte de l'un des plus grands piliers de l'informatique:
unix.


\section{Un peu de th{\'e}orie}

On parle souvent de \textsl{Linux}. Linux n'est qu'un noyau de
syst{\`e}me d'exploitation. Il effectue la gestion de la m{\'e}moire,
impl{\'e}mente les syst{\`e}mes de fichier, g{\`e}re la carte son et pilote
les disques dur. Mais Linux par lui-m{\^e}me n'est pas bien utile sans
un certain nombre d'outils ( librairie C, environnement
graphique\ldots). Le \textsl{projet GNU} fournit un grand nombre de
ces outils. C'est pour cela qu'il est courant de dire
\textsl{GNU/Linux} quand on parle du syst{\`e}me complet.

Par-dessus le noyau, la librairie C et quelques autres, il est courant
de faire tourner un \textsl{shell}. Le shell est l'interface
utilisateur la plus {\'e}l{\'e}mentaire et la plus incontournable qui
soit. Un shell est un programme qui permet {\`a} l'utilisateur de taper
des commandes au clavier. Il les interpr{\`e}te, et les ex{\'e}cute. Il
n'est pas plus privil{\'e}gi{\'e} qu'un autre programme, et on a
couramment un grand nombre de shells ouverts en m{\^e}me temps sur une
machine unix. Le shell de pr{\'e}dilection sous Linux s'appelle
\textsl{bash}, il fait partie du projet GNU.

Chaque shell a son comportement propre. \textsl{sh} est le shell de
r{\'e}f{\'e}rence, le plus petit d{\'e}nominateur commun des shells unix. Il est {\`a}
peine sup{\'e}rieur {\`a} la ligne de commande de MS-DOS en terme de confort
d'utilisation. Des shells comme \textsl{bash} ou \textsl{zsh}, en
comparaison, sont des outils extr{\^e}mement sophistiqu{\'e}s.

Lors du d{\'e}marrage du syst{\`e}me, un certain nombre de distributions sont
configur{\'e}es pour lancer \textsl{X-Window} (notez l'absence de "s"
final). X-Window n'est que la tranche de pain de la tartine : c'est
sur lui que tout repose, mais tout seul, il est un peu fade. Des
outils comme KDE, GNOME, Enlightenment ou WindowMaker jouent le r{\^o}le
de la confiture en proposant un bureau virtuel convivial, des menus,
des ic{\^o}nes...

 X-Window est une interface graphique client-serveur. Le
serveur est la partie qui g{\`e}re l'affichage et pilote la carte
vid{\'e}o. Le client ex{\'e}cute les applications, et envoie les requ{\^e}tes
d'affichage au serveur. Les deux s'ex{\'e}cutent typiquement sur la m{\^e}me
machine, mais {\c c}a n'est pas obligatoire: on peut ex{\'e}cuter un programme
sur un ordinateur et l'afficher sur un autre.

L'interface graphique peut sembler nous isoler du besoin d'un
shell. C'est une illusion. Toute distribution propose un vaste choix
d'{\'e}mulateurs de terminaux, (\texttt{xterm}, \texttt{konsole},
\texttt{gnome-terminal}, \texttt{eterm}\ldots) qui permettent
d'utiliser un shell.

\section{Prise en main}

Vous {\^e}tes sur un PC avec GNU/Linux. L'interface graphique est
d{\'e}marr{\'e}e. Appuyez sur \textbf{Ctrl-Alt-F1} ( pas
\textbf{Ctrl-Alt-Suppr}! ). Vous devriez {\^e}tre pass{\'e} en mode
texte. Tapez vos login et mot de passe. Vous {\^e}tes sur la console
virtuelle num{\'e}ro 1. Utilisez la commande \texttt{tty} pour vous en
convaincre.

En maintenant \textbf{Alt} enfonc{\'e}, naviguez entre les diff{\'e}rentes
consoles avec les touches de fonction (\textbf{F1}-\textbf{F12}) et
les fl{\`e}ches gauche et droite. Remarquez en passant comment on peut
retourner en mode graphique. Vous pouvez vous loguer sur une autre
console, et y ex{\'e}cuter un programme. Toutes les consoles sont
ind{\'e}pendantes. Ce m{\'e}canisme permet de travailler tr{\`e}s efficacement sur
plusieurs t{\^a}ches en parall{\`e}le.

\section{ Standing on the Shoulders of Giants }

Retour sur la th{\'e}orie. GNU/Linux est un unix, c'est-{\`a}-dire que c'est
l'un des nombreux clones de l'Unix originel d{\'e}velopp{\'e} en 1971.
Multi-t{\^a}che et multi-utilisateur, Unix a {\'e}t{\'e} con{\c c}u {\`a} une {\'e}poque o{\`u} il
{\'e}tait impensable d'avoir un ordinateur par personne. Il faut donc voir
votre machine comme une sorte de serveur. Toute personne autoris{\'e}e
peut y acc{\'e}der par l'interm{\'e}diaire du r{\'e}seau, et y lancer des
programme comme s'il {\'e}tait assis devant. Plusieurs personnes peuvent
s'en servir simultan{\'e}ment, de mani{\`e}re transparente.

Un unix n'appartient pas {\`a} son utilisateur. L'utilisateur est un
invit{\'e} parmi d'autres. Il n'a comme droits que ceux qu'on lui
accorde. Le syst{\`e}me appartient {\`a} l'administrateur, appel{\'e}
\textsl{root}.

\textbf{R{\`e}gle num{\'e}ro 1:}
Ne jamais se loguer en tant que root. C'est inutile et dangereux.
Quand une action n{\'e}cessite les privil{\`e}ges de root, utiliser la
commande \texttt{su} pour l'ex{\'e}cuter.

Bien sur, ce genre de r{\`e}gles, c'est comme les copies de sauvegarde.
Personne ne les applique jamais avant d'avoir fait : \texttt{rm -rf
  /bin}.  Unix, c'est avant tout une affaire d'exp{\'e}rience \texttt{:-)}.


\section{Le syst{\`e}me de fichiers}

Parlons maintenant de la fa{\c c}on dont est organis{\'e} un syst{\`e}me de
fichiers. Au commencement est la racine ( \texttt{/} ). La racine
appartient {\`a} l'OS. Tapez \texttt{ls /} La racine contient un certain
nombre de r{\'e}pertoires dont le sens est grav{\'e} dans la tradition
ancestrale de unix. Le r{\'e}pertoire \texttt{/bin}, par exemple,
contient les fichiers ex{\'e}cutables (binaires) essentiels au
syst{\`e}me. 

Le r{\'e}pertoire \texttt{/home} contient un sous-r{\'e}pertoire pour
chaque utilisateur. C'est l{\`a} o{\`u} sont cr{\'e}{\'e}s tous vos fichiers
personnels, et o{\`u} vous vous trouvez quand vous ouvrez un
shell. Tapez \texttt{pwd} (Print Working Directory) pour vous en
convaincre. Le r{\'e}pertoire personnel est repr{\'e}sent{\'e} par le chemin
\texttt{$\sim$/}~. \texttt{$\sim$/lettres\_d'amour} est la m{\^e}me chose que
\texttt{/home/<nom d'utilisateur>/lettres\_d'amour}. Tapez \texttt{ls
-l /home} pour avoir un aper{\c c}u de ce qu'il vous reste {\`a} apprendre
sur les attributs des fichiers (commandes \texttt{chown},
\texttt{chmod}, \texttt{chgrp}\ldots)

\texttt{/usr} contient les programmes destin{\'e}s aux utilisateurs,
\texttt{/var} des fichiers de donn{\'e}es changeant, mais qui
n'appartiennent {\`a} aucun utilisateur en particulier (logs, courrier,
bases de donn{\'e}es, etc...), et \texttt{/mnt} contient les
point de montage de vos diff{\'e}rents p{\'e}riph{\'e}riques. 

Pour acc{\'e}der au contenu d'une disquette ou d'un CD, on le projette {\`a}
l'int{\'e}rieur d'un r{\'e}pertoire, ou point de montage, {\`a} l'aide des
commandes \texttt{mount} et \texttt{umount}. Le montage et le
d{\'e}montage se font automatiquement dans certaines distributions.

Pour les utilisateurs de DOS: les diff{\'e}rences les plus flagrantes a
priori sont le fait que Linux fait la diff{\'e}rence entre majuscules et
minuscules, et qu'il faut mettre un espace entre \texttt{cd} et
\texttt{..}. Essayez aussi \texttt{pushd} et
\texttt{popd}. \texttt{alias} permet de faire une premi{\`e}re
personnalisation, par exemple en ajoutant la ligne \texttt{alias
ls=pushd} dans votre fichier \texttt{$\sim$/.bashrc}. 

Notez que le nom des
fichiers cach{\'e}s sous unix commence par un point, et qu'on les affiche
avec \texttt{ls -a}. Les param{\`e}tres de la plupart des commandes unix
peuvent {\^e}tre agglom{\'e}r{\'e}s, dans la mesure o{\`u} cela n'introduit pas
d'ambigu{\"\i}t{\'e}. Par exemple, \texttt{ls -a -l} est  {\'e}quivalent {\`a}
\texttt{ls -al}.

Comme sous DOS, la variable d'environnement \texttt{PATH} contient la
liste des r{\'e}pertoires o{\`u} le shell cherche les programmes ex{\'e}cutables.
Ex{\'e}cutez \texttt{export}, ou \texttt{echo \$PATH} pour l'afficher.
Notez bien que \texttt{PATH} repr{\'e}sente le nom de la variable, et
\texttt{\$PATH} son contenu. \texttt{export PATH=\$PATH:$\sim$/bin} permet
d'ajouter vos ex{\'e}cutables personnels dans votre home.  Si vous
souhaitez ex{\'e}cuter un programme qui ne se trouve pas dans les
r{\'e}pertoires du \texttt{PATH}, tapez son nom pr{\'e}c{\'e}d{\'e} d'un \texttt{./}~.
Il s'agit d'un m{\'e}canisme permettant d'{\'e}viter d'ex{\'e}cuter
involontairement un fichier d'origine inconnue.


\section{ Dieu cr{\'e}a le fichier texte.\\Tout le reste est l'oeuvre de l'homme.}

Votre meilleur ami ici bas est un {\'e}diteur de texte. Je me permets de
conseiller \textsl{GNU Emacs}, d'autres pr{\'e}f{\'e}reront
\textsl{Vim}. C'est une affaire de personnalit{\'e}. Inutile d'essayer
\textsl{gedit} ou \textsl{kwrite}. Ce sont des outils primitifs, sans
aucune sophistication. Un utilisateur exp{\'e}riment{\'e} de gedit saura tout
juste {\'e}conomiser quelques clics pour sauver un fichier, alors qu'un
utilisateur exp{\'e}riment{\'e} de Emacs pourra {\'e}diter son code presque sans
contraintes, par le seul pouvoir de sa pens{\'e}.

Le r{\'e}pertoire \texttt{/etc} contient les fichiers de configuration de
votre syst{\`e}me unix. Ce sont tous des fichiers texte. Tapez
\texttt{emacs /etc/bash.bashrc}. Notez au passage comme vous pouvez
vous {\'e}viter de saisir toute la commande en utilisant la touche de
tabulation.

Le fichier \texttt{/etc/bash.bashrc} est un script shell qui s'ex{\'e}cute
{\`a} chaque ouverture d'un shell, pour tous les utilisateurs. Notez que
si vous {\^e}tes arriv{\'e} jusqu'{\`a} l{\`a}, c'est que vous n'{\^e}tes pas root, et que
le fichier est accessible en lecture seule (ce qui est indiqu{\'e} par les
petits symboles \texttt{\%\%} en bas {\`a} gauche de votre {\'e}cran).
Explorez-le un petit peu. Vous verrez qu'il contient des commentaires
et des lignes de programme. Il y a aussi souvent le nom de l'auteur et
son adresse e-mail.  Ceci est tr{\`e}s important, car il s'agit de
logiciel libre.

Pour quitter emacs, vous pouvez utiliser \textbf{Ctrl-x Ctrl-c}, et
pour enregistrer vos modifications, utilisez \textbf{Ctrl-x Ctrl-s}.

\section{Les filtres}

Loguez-vous dans une autre console, et tapez \texttt{echo "Hello
world"}. \texttt{echo} est une commande qui prend un argument, et
l'envoie sur la \textsl{sortie standard}. La sortie standard est
redirig{\'e}e vers l'{\'e}cran. Vous devriez avoir vu quelque
chose. (Notez au passage qu'il est n{\'e}cessaire de mettre des
guillemets autour d'un argument contenant un caract{\`e}re d'espacement
ou caract{\`e}re sp{\'e}cial. On aurait aussi pu {\'e}crire \texttt{echo
Hello$\backslash$ world}).

Tapez maintenant \texttt{echo "Hello world" > FooBar}. Vous n'avez
rien vu?  Normal: la sortie standard de \texttt{echo} a {\'e}t{\'e} redirig{\'e}e
vers le fichier \texttt{FooBar} du r{\'e}pertoire courant. Tapez \texttt{cat
FooBar}. \texttt{cat} envoie le contenu d'un fichier sur la sortie
standard, qui est votre {\'e}cran.

La ligne \texttt{echo "alias e=emacs" >{}> $\sim$/.bashrc} ajoute la commande
\texttt{alias e=emacs} {\`a} la fin de votre fichier \texttt{.bashrc}, est
ex{\'e}cut{\'e} {\`a} chaque fois que vous d{\'e}marrez un shell \texttt{bash}. Cette
commande vous premet d'abr{\'e}ger le lancement de \texttt{emacs}. Vous
pouvez l'essayer imm{\'e}diatement en la saisissant dans votre shell.
Attention, si vous aviezs tap{\'e} : \texttt{echo "alias e=emacs" >
  $\sim$/.bashrc}, vous auriez \textbf{remplac{\'e}} votre fichier par cette
seule commande.

\texttt{less} est un afficheur page par page. Il affiche soit le
fichier dont le nom lui est donn{\'e} {\`a} la ligne de commande (
\texttt{less FooBar} ), soit le contenu de son entr{\'e}e standard. Pour
rediriger la sortie standard de \texttt{cat} vers l'entr{\'e}e standard de
\texttt{less}, tapez \texttt{cat FooBar | less}. (pour quitter
\texttt{less}, tapez \textbf{q}).

Ce m{\'e}canisme est particuli{\`e}rement int{\'e}ressant, mais n{\'e}cessite un peu
d'entra{\^\i}nement. Par exemple, en sachant que la commande \texttt{grep}
filtre un fichier ou son entr{\'e}e standard et n'affiche que les lignes
contenant un mot donn{\'e}, et que \texttt{ps} {\'e}crit sur la sortie
standard la liste des processus que l'on est actuellement en train
d'ex{\'e}cuter, il est possible de taper \texttt{ps | grep bash} pour
retrouver rapidement le num{\'e}ro de processus de \texttt{bash}.  Petit
exercice: trouvez ce que fait la ligne suivante: \texttt{ps -ax| grep
bash |grep -v grep|wc -l}

Autre exemple: compressez le fichier \texttt{FooBar} {\`a} l'aide de la
commande \texttt{gzip FooBar}. Un appel {\`a} \texttt{ls} vous indiquera
que \texttt{FooBar} a {\'e}t{\'e} replac{\'e} par \texttt{FooBar.gz}. Pour le
relire page par page, trois possibilit{\'e}s: \texttt{gunzip FooBar.gz;
less FooBar}, \texttt{zcat FooBar | less } ou \texttt{zless FooBar}.

Vous pouvez maintenant supprimer tous les fichiers commen{\c c}ant par
\texttt{FooBar}, {\`a} l'aide de la commande \texttt{rm FooBar$\ast$}.

\section{Les processus}

Lancez la commande \texttt{cat}, sans argument. Celle-ci attend du
texte sur son entr{\'e}e standard (le clavier) et le reproduit sur sa
sortie standard. Tapez quelques lignes suivies de \texttt{<entr{\'e}e>}.

Pour terminer \texttt{cat}, deux solutions : \textbf{Ctrl-C} tue le
processus sans piti{\'e}, et \texttt{Ctrl-D} le termine proprement, en lui
signalant une \textbf{fin de fichier} sur l'entr{\'e}e standard.

Relancez \texttt{cat}, et allez dans une autre console. Tapez
\texttt{ps}. \texttt{ps} liste les processus actifs dans cette
console. Tapez \texttt{ps -a}, qui liste tous les processus d'un
utilisateur. Vous pourrez y rep{\'e}rer \texttt{cat}, et trouver son
num{\'e}ro de processus. Pour le chercher plus facilement, essayez
\texttt{ps ax | grep cat}. La commande \texttt{grep} filtre toutes les
lignes de l'entr{\'e}e standard (ou d'un fichier), et ne laisse passer que
celles qui contiennent le mot-cl{\'e} donn{\'e}. Pour tout savoir sur les
processus s'ex{\'e}cutant sur votre machine, essayez \texttt{ps aux}.

Vous avez rep{\'e}r{\'e} le num{\'e}ro de processus (ou PID) de \texttt{cat}.
Tuez-le maintenant avec la commande \texttt{kill <PID>}. Le m{\^e}me
travail peut {\^e}tre accompli {\`a} l'aide de \texttt{killall cat}.
Les processus r{\'e}calcitrants peuvent {\^e}tre tu{\'e}s {\`a} l'aide de \texttt{kill
-9 <PID>}. Lisez le manuel de \texttt{signal} pour en savoir plus.

Lancez maintenant Emacs, et tapez \texttt{Ctrl-z}. Emacs est
interrompu, mais continue d'exister en t{\^a}che de fond.
Convainquez-vous-en {\`a} l'aide de la commande \texttt{ps}.  Quand un
processus est interrompu, il ne peut plus rien faire, il est bloqu{\'e}.
Pour lui laisser reprendre son fonctionnement de t{\^a}che de fond,
utilisez \texttt{bg} (\textsl{background}). Pour le faire revenir en
avant-plan et continuer votre travail, essayez \texttt{fg}
(\textsl{foreground}).


\section{ RTFM: Read The Fine Manual}

Loguez-vous sur une console virtuelle voisine, et tapez \texttt{man
inittab}. De la bonne litt{\'e}rature. Une des blagues qui entoure unix
est que les experts gardent leur monopole sur la connaissance en
ass{\'e}nant aux n{\'e}ophytes de grands coups de manuels sur la
t{\^e}te. Au moins, un linuxien n'a pas d'excuse pour ne rien apprendre.

Tapez maintenant \texttt{man ls}, et comptez le nombre de pages
disponibles, histoire de vous convaincre de la quantit{\'e} de 
documentation disponible, et de la richesse des outils GNU. Utilisez
le raccourci \texttt{/} pour chercher le mot \texttt{sort}, histoire
de voir si on peut trier les fichiers selon leur taille.  Notez
{\'e}galement la section \textsl{Voir aussi} en fin de man.

Tapez \texttt{ls -{}-help}, puis \texttt{info ls}. Info est un syst{\`e}me
de documentation hypertexte. Vous pouvez y naviguer {\`a} l'aide des
touches \texttt{n} (\textsl{next}), \texttt{p} (\textsl{previous}) et
\texttt{u} (\textsl{up}).  Le lecteur info s'utilise comme Emacs, que
vous devriez maintenant savoir quitter.

Les \textsl{man pages} ou manuels ( \texttt{man ls} ) sont des
documents de r{\'e}f{\'e}rence. Assez indigestes comme livres de chevets, ils
permettent de retrouver une information ou d{\'e}couvrir une commande
rapidement. La plupart des programmes acceptent un param{\`e}tre
\texttt{-{}-help} qui donne un r{\'e}sum{\'e} tr{\`e}s succin des param{\`e}tres
accept{\'e}s. Info agit souvent comme une sorte de super-man pour les
programmes les plus volumineux.

Chaque paquet install{\'e} sur le syst{\`e}me contient sa propre
documentation. Celle-ci est souvent localis{\'e}e dans
\texttt{/usr/share/doc/<nom du paquet>}. (Voyez comme la compl{\'e}tion
automatique de Bash avec la touche de tabulation peut {\^e}tre utile).
Allez voir le fichier README de la documentation du programme
\texttt{mc} {\`a} l'aide de la commande \texttt{less}. Profitez-en pour
essayer la diff{\'e}rence entre \texttt{less}, \texttt{more},
\texttt{cat}, \texttt{head} et \texttt{tail}. Notez que mc est souvent
le meilleur ami des d{\'e}butants sous GNU/Linux.

\section{ Il faut d{\'e}j{\`a} savoir beaucoup de choses avant de pouvoir demander ce qu'on ne sait pas}

\textsl{Lynx} et \textsl{Links} sont deux navigateurs Web en mode
texte. Servez-vous-en pour allez lire la documentation du paquet
\texttt{HOWTO}. Jetez un oeil {\`a} la liste des \textsl{HOWTO}
disponibles, et regardez-en un ou deux ( utilisez les touches de
direction pour naviguer, et \textbf{Q} pour quitter ).  Ces docs sont
une mine d'or pour le linuxien d{\'e}soeuvr{\'e}: rien de plus instructif
pour tuer le temps que d'aller lire un HOWTO. Rien de plus efficace,
surtout, pour apprendre comment marche le r{\'e}seau sous Linux ou tout
savoir sur la gravure de CD. Les HOWTO constituent une partie
importante de l'arsenal de documentation disponible, et une source
insond{\'e}e de connaissances.

L'apprentissage de GNU/Linux ne s'arr{\^e}te jamais, pour peu qu'on aie
commenc{\'e} un jour. Impossible de tout couvrir, mais j'esp{\`e}re avoir
donn{\'e} quelques indices pour d{\'e}marrer. Bien s{\^u}r, si le mode texte vous
rebute, rien ne vous emp{\^e}che de travailler dans une fen{\^e}tre de
terminal en mode graphique; mais une chose est s{\^u}re, c'est qu'aucune
autre interface utilisateur n'arrive encore {\`a} la cheville de la ligne
de commande quand il s'agit de prendre en main son syst{\`e}me.

La suite des op{\'e}rations passera probablement par une exploration des
outils de la ligne de commande ({\`a} grands coups de manuels), parmi
lesquels \texttt{ln}, \texttt{mkdir}, \texttt{find} ou \texttt{file},
 \texttt{nice}, et tous ceux abord{\'e}s dans cette doc.

De m{\^e}me, il est indispensable d'examiner plus en profondeur le syst{\`e}me
de fichiers, et particuli{\`e}rement le contenu de /etc.  Il faudra aussi
apprendre un {\'e}diteur de texte (Pour Emacs, de la documentation est
disponible sur \texttt{http://gpl.insa-lyon.fr}).

Certaines distributions de GNU/Linux sont particuli{\`e}rement propices {\`a}
l'apprentissage, comme la \textsl{Debian}, la \textsl{Gentoo} ou la
\texttt{Slackware}. D'autres unix libres existent {\'e}galement, parmi eux
\textsl{OpenBSD}.

\section{Documentation}

Si vous avez lu cette documentation jusqu'ici, f{\'e}licitations. Vous
{\^e}tes maintenant pr{\^e}t {\`a} vous lancer dans le grand vide.

Comme elle contient beaucoup d'informations, ne vous attendez pas {\`a}
tout comprendre ou retenir imm{\'e}diatement. Gardez-la sur un coin de
bureau, et revenez-y de temps en temps.

Sur Internet, les sites les plus incontournables sont:
\begin{itemize}
\item \texttt{http://www.lea-linux.org} pour la documentation en fran{\c c}ais,
\item \texttt{http://www.linuxfr.org} pour se tenir au courant,
\item \texttt{http://freshmeat.net} pour chercher un programme sous Linux,
\item \texttt{http://www.sourceforge.net si} vous voulez d{\'e}velopper,
\item \texttt{http://www.gnu.org} pour sa section 'Philosophie' que tout
linuxien se doit d'avoir lue, 
\item \texttt{http://www.refcards.com/about/emacs.html} pour apprendre Emacs,et {\'e}ventuellement
\item \texttt{http://www.slashdot.org} pour perdre son temps. 

\end{itemize}

Ceux qui souhaitent trouver une documentation du m{\^e}me go{\^u}t, mais plus
compl{\`e}te peuvent se r{\'e}f{\'e}r{\'e} {\`a} \textsl{Le syst{\`e}me Linux}, de Matt Welsh,
Matthias Kalle Dalheimer et Lar Kaufman, paru aux {\'e}ditions O'Reilly
(ISBN : 2-84177-086-9). Il est disponible dans toutes les bonnes
biblioth{\`e}ques techniques ( Doc'INSA, biblioth{\`e}ques de d{\'e}partements).

Enfin, l'adh{\'e}rence {\`a} un \textsl{LUG} (groupe d'utilisateurs de
Linux) est une source importante d'informations.
\end{document}

