\typeout{+==============================================+}
\typeout{|================= PREFACE ====================|}
\typeout{+==============================================+}
\chapter*{Préface}
\newlength{\parskipORIG}
\setlength{\parskipORIG}{\parskip}

\ifframabookversion
\else
\setlength{\parskip}{.6\baselineskip}
\fi

\begin{epigraphe}{Larry Wall\footnotemark}
  There is more\\
  than one way\\
  To do it.
\end{epigraphe}
\footnotetext{Créateur du logiciel Perl.}

\setlength{\parskipORIG}{\parskip}

\section*{Pourquoi ce manuel  ?}
\label{pref-unix}

En 1992, un collègue du DEA Image de l'université Jean Monnet de
Saint-Étienne, fait démarrer son PC en me disant : « tu vois ça c'est
\unix{} », il s'agissait bien sûr d'une des premières versions de
\linux{}. J'avais alors été plutôt sceptique sur cet imbroglio de
messages au démarrage et sur l'aspect plutôt spartiate de
l'environnement graphique. Parallèlement, nous travaillions sur des «
mini-projets » (sorte de projet de fin d'étude) axés sur
l'implantation d'algorithme de traitement et d'analyse d'image. À
l'époque, nous utilisions un compilateur C du commerce n'exploitant
pas le mode protégé du processeur Intel, et nous nous trouvâmes face
au problème aberrant de la mémoire segmentée par paquet de 64
ko. Cette limitation rendait très difficile le chargement d'images
numériques en mémoire.  C'est finalement « grâce » à ce problème que
nous sommes tombés sur un compilateur (\soft{djgpp}) en ligne de
commande capable d'exploiter le mode protégé des processeurs des
PCs\footnote{Et donc de permettre de joyeux
  \texttt{ptr=(char*)malloc(4194304);} que certes seuls les habitués
  du langage~C comprendront...} et ainsi de lever cette limitation.
Ce compilateur a été une révélation dans le sens où je me suis aperçu
que des gens distribuaient \emph{gratuitement} des outils qui allaient
enfin me permettre de travailler confortablement.

Certains mini-projets du DEA avaient lieu à l'école des Mines de
Saint-Étienne, et c'est là que j'ai eu les premiers contacts avec
cette « chose » qu'est \unix{}. Premiers contacts désagréables :
impossible de trouver un lecteur de disquette dans ce fatras de
machines, des éditeurs de texte pour programmer, dont tout le monde
vantait les mérites, nécessitant 23 doigts et une mémoire d'éléphant
pour arriver à insérer un caractère en fin de ligne, des utilisateurs
à la limite du fanatisme, devenant même hargneux et sectaires lorsque
je mentionnais mon expérience de développeur débutant en C avec Turbo
C... Cependant il émanait de ce laboratoire qui utilisait les
ressources de ce réseau \unix, une certaine liberté d'action qui m'a
d'emblée séduit : il était apparemment possible d'utiliser les
processeurs de plusieurs machines, chaque utilisateur semblait avoir
créé son propre environnement de travail, personne ne parlait de «
rebooter » ou de « plantage », certains s'attelaient à des projets de
logiciels ambitieux, d'autres rédigeaient des documents d'allure
professionnelle, il n'était pas question de pirater un logiciel du
commerce puisque tous les outils semblaient être à portée de main pour
travailler.

En 1993, débutant une thèse au laboratoire Ingénierie de la Vision de
la faculté de sciences à Saint-Étienne, j'entrepris d'installer une
version de \soft{gcc} (compilateur C de chez \gnu{}) et de comprendre
comment fonctionne ce fameux \LaTeX{} (système de préparation de
document qui a généré le document que vous avez sous les yeux). Le
fait que l'Université soit connectée au réseau Renater\footnote{Le
  réseau Renater regroupe près d'un millier d'établissements de
  recherche et d'enseignement.} a bien sûr grandement aidé à mener à
bien ce projet parsemé d'embûches qui m'a permis de me sensibiliser à
l'environnement d'\unix{}. J'ai été alors fasciné par l'immensité du
système, son aspect \emph{ouvert} donnant une sensation d'infini,
effrayant de complexité. Mais cette complexité était, me semblait-il,
le prix de la liberté, la liberté de pouvoir contrôler cette machine
qu'est l'ordinateur.


Les années qui ont suivi, je les ai consacrées en partie à
l'administration d'un système \unix{} pour l'équipe de recherche et
les étudiants, c'est également à cette époque que j'ai découvert et me
suis investi dans l'\unix{} que je pouvais emporter à la maison :
\linux{}. Je passais alors de simple utilisateur de l'informatique à
acteur qui tentait de comprendre les rouages de ce meccano géant qu'est
un système d'exploitation. La motivation venait bien sûr du fait que
toutes les pièces de ce meccano étaient accessibles et documentées.
J'avais la sensation de pouvoir potentiellement comprendre les
fondements de l'informatique tout en étant conscient que cela me
demanderait sans doute un temps infini...

La rencontre virtuelle via les forums de discussion, avec la
communauté de « bri\-co\-leurs » de chez \gnu{} et \linux{} a été
pratiquement une prise de conscience quasi politique, une autre vision
de la démarche scientifique. Je trouvais enfin des êtres humains
désirant « faire avancer le schmilblick » sans arrière pensée de
capitalisation de l'information. Malgré tout, si les logiciels libres
peuvent s'intégrer ---~et s'intègrent~--- dans l'économie de marché, je
reste aujourd'hui admiratif vis à vis de cette idée de \emph{diffuser
  les connaissances} et de s'assurer qu'elles \emph{puissent toujours
  être diffusées}. C'est sans doute à ce prix que le commun des
mortels, utilisateur de l'outil informatique gardera son indépendance
d'esprit et sa liberté de choix.


\section*{Qu'y a-t-il dans ce manuel ?}
\label{pref-quoi}

J'ai entrepris de rédiger ce manuel lorsqu'en 1999, le responsable de
maîtrise de l'IUP Vision de Saint-Étienne m'a demandé de dispenser
quelques heures de cours pour présenter aux étudiants le système
\unix{}. Le document était alors composé d'un « petit guide de survie »
présentant les fonctionnalités de base à connaître pour survivre devant
un ordinateur géré par un \unix. J'ai ensuite décidé de compléter ce
document, en tentant de présenter ce qu'un \emph{utilisateur} doit
savoir pour se débrouiller sous \unix{}. Ce manuel ne contient donc
aucune allusion à l'\emph{administration} d'un système. Il ne se veut
pas non plus un guide de référence\footnote{Peut-on d'ailleurs
  créer un guide de référence sur l'utilisation d'\unix{} ?}, mais plutôt une
\emph{sensibilisation} à la « philosophie » d'\unix{}. On trouvera
donc beaucoup de pistes à explorer et jamais de présentation
systématiquement détaillée. Comme disait mon professeur de Taï Chi au
sujet d'un stage qu'il avait effectué sur le Yi Qing, si \unix{} était
un livre, ce document serait l'équivalent de passer son doigt sur la
couverture pour y enlever la poussière...

Les informations présentées ici font partie des connaissances que
j'ai acquises ces dernières années et dont je fais usage
régulièrement, il s'agit donc à mon humble avis d'informations utiles
et directement exploitables et non pas de fonctionnalités obscures.
J'ai tenté de les présenter avec l'idée de m'adresser à un novice,
dans le but de le convaincre de l'intérêt qu'il y a à apprendre
\unix{}.  En outre, si la plupart des informations de ce manuel sont
adaptées à n'importe quel \unix{}, il est évident que \linux{} est notre
\unix{} de « référence » de même que les outils présentés le sont dans
leur version du projet \gnu. Il ne s'agit pas d'un choix sectaire mais
simplement de l'exploitation de la grande disponibilité de ces outils.


\section*{Ce qu'il n'y a pas dans ce manuel}

L'utilisateur novice d'\unix{} et de \linux{} en particulier cherche
souvent des informations pour installer ce système d'exploitation sur
sa machine, pour savoir s'il faut partitionner son disque dur ou en
acheter un autre, pour connaître la distribution\footnote{Une
  distribution de \linux{} est un ensemble de logiciels composé du
  noyau \linux{}, d'applications (bureautique, images, sons, etc.) et
  surtout d'un programme d'installation et de mise à jour qui la
  caractérise.} de \linux{} qui lui conviendrait le mieux, pour savoir
comment, une fois la dite distribution installée, il est possible
d'avoir du son, d'utiliser son scanner, de configurer sa connexion
internet, etc. Ce manuel ne traite ni de l'installation, ni de
l'administration d'un système \unix, mais donne le savoir faire
nécessaire pour s'y attaquer.

D'autres interrogations concernent les équivalents des logiciels de
bureautique\footnote{Une des questions angoissantes pour l'utilisateur
  débutant ou sur le point d'utiliser \unix{} est en effet de savoir
  s'il lui sera toujours possible d'utiliser les merveilleux outils de
  la suite bureautique de la célèbre entreprise dont nous tairons le
  nom ici...}, de jeux, etc.  Il ne sera donc pas question dans ce
manuel, ni des équivalents en logiciels libres des tableurs et autres
traitements de texte, ni de l'utilisation des célèbres bureaux qu'on
trouve aujourd'hui sous \linux{} : Kde et Gnome. Nous ne pouvons que
vous conseiller de vous procurer l'excellent~\textsl{Simple comme
  Ubuntu} \citep{scu} pour trouver des réponses s'appuyant sur la
distribution Ubuntu.

Les outils présentés ici, sont ceux que l'on peut retrouver sur
n'importe quel \unix. L'accent est donc mis sur l'usage des
\emph{commandes} et de leur utilisation interactive ainsi que dans le
cadre de \emph{scripts} ; il sera donc davantage question de clavier que de
souris.  Ce manuel a d'ailleurs pour objectif de convaincre le lecteur de
l'intérêt de cette approche dans le cadre de l'apprentissage d'\unix.

\begin{gnuposix}
  Il est important de noter que le titre de ce manuel est un mensonge
  éhonté. Le contenu de ce document ne se veut pas être une
  présentation d'\unix{}, ou même des \unix{}, ni des standards tels
  que Posix. L'\unix{} de référence ici est GNU/\linux{} car c'est
  sans doute aujourd'hui le plus accessible et le plus utilisé.
  Cependant, la majeure partie des outils présentés dans ce manuel
  peuvent être utilisés tels quels sur n'importe quel \unix{}. Lorsque
  ça ne sera pas le cas nous tenterons d'insérer ce joli panneau dans
  le paragraphe.
\end{gnuposix}

\begin{nota}
  Ce manuel est avant tout un manuel destiné aux \emph{débutants}, il
  a donc pour objectif d'être \emph{didactique} et tente donc de ne
  pas noyer le lecteur dans un fatras de détails techniques. Encore
  une fois, le titre pourrait induire le lecteur naïf que vous n'êtes
  pas, en erreur : vous ne saurez pas tout sur \unix{} ! Aux endroits
  où apparaîtra ce panneau, j'ai introduit quelques concepts un peu
  plus « pointus » qu'il est, dans un premier temps, inutile de lire
  mais qui corrigent certaines imprécisions.
\end{nota}

\ifframabookversion\clearpage\fi
\section*{Comment lire ce manuel ?}
\label{pref-lire}

Les pages se lisent de gauche à droite et de haut en bas et pour
donner l'impression d'une cohérence globale, ce manuel est divisé en
chapitres dont les titres sont :
\begin{description}
\item[\unix{} et les logiciels libres :] une présentation de
 la naissance d'\unix{}, du lien avec les logiciels libres. Un
 chapitre non technique, assorti de considérations
 phi\-lo\-so\-phi\-co-politico-économico-éthiques douteuses ;
\item[Petit guide de survie :] chapitre présentant
  les concepts de base d'\unix{} (notions d'utilisateurs, de fichiers,
  de processus, etc.) ;
\item[La boîte à outils :] contient une description de quelques-uns
  des outils du grand meccano. Ce chapitre permet d'avoir une idée de
  la souplesse apportées par l'homogénéité de tous ces outils ;
\item[Communiquer ! :] présente les outils axés sur le réseau, la
  communication entre utilisateurs, entre machines, le transfert de
  fichiers, l'utilisation de la messagerie et l'accès aux Web ;
\item[Développer :] contient des informations relativement précises
  sur le langage de commande \soft{bash} (le shell de chez \gnu),
  l'utilisation de ces étranges bêtes que sont les \texttt{makefile}s,
  et la façon de créer des programmes en langage C qui est le langage
  utilisé pour développer \unix{} ;
\item[Se mettre à l'aise :] permet de comprendre comment on peut
  configurer son environnement de travail : personnaliser son shell,
  comprendre le fonctionnement des éditeurs de texte \soft{vi} et
  \soft{emacs}, configurer l'environnement graphique, et quelques
  pistes pour installer des logiciels sur son propre compte ;
\item[À l'aide !] donne des pistes pour chercher de la documentation
  sur les commandes d'\unix{} à la fois localement et en ligne.
\end{description}
Il est conseillé de lire ce manuel de manière linéaire au moins une
fois, pour comprendre comment s'articulent les différents concepts
introduits. On pourra revenir dans un deuxième temps sur des
informations plus spécifiques contenues dans certains chapitres. La
complexité et l'immensité du sujet font que vous trouverez beaucoup
d'interconnexions entre les sujets traités.

\section*{Comment imprimer ce manuel ?}
\label{preface-impression}

Avec une imprimante\footnote{Arf arf (comme disait Frank
  \textsc{Zappa}).},  \ifframabookversion en utilisant la version «
papier » produite à partir de ce document, version prévue pour être
massicotée en 15~cm par 25~cm. Au cas où vous ne disposeriez pas de
massicot et souhaiteriez imprimer ce manuel sur un format A4, vous
trouverez toutes les informations nécessaires sur
\url{http://lozzone.free.fr}.\else en utilisant
exclusivement les fichiers proposés sur
\url{http://lozzone.free.fr}. Ce manuel est conçu pour être
imprimé en deux pages logiques par page physique (\emph{2up printing}
comme disent nos amis anglosaxons). En d'autres termes, chaque page de
ce document doit apparaître sur une page au format~A5.  Quatre
solutions ---~et quatre fichiers associés~--- sont possibles :
\begin{enumerate}
\item une version destinée à être reliée du long coté de la
  feuille~A4, c'est la solution pour ceux qui ne disposent pas de
  massicot ; le fichier portant le nom \verb+guide-unix-0.pdf+ est en
  outre généré pour présenter la page impaire (dite belle page) à
  droite (cf. figure\vref{fig-reliure-longue}) ;
\item une version pour ceux qui disposent d'un massicot : dans ce cas,
  il faudra « plier » le document et le relier au niveau de cette
  pliure (voir figure\vref{fig-reliure-courte-1ex}). Le fichier
  correspondant se nomme \verb+guide-unix-1.pdf+ ;
\item une version contenant 2 exemplaires (fichier
  \verb+guide-unix-2.pdf+). On reliera ces deux exemplaires comme
  indiqué à la figure\vref{fig-reliure-courte-2ex} ;
\item une version au format PostScript \verb+guide-unix.ps.gz+ pour
  ceux qui voudraient faire « à leur sauce »...
\end{enumerate}
\begin{nota}
  Attention, les deux derniers fichiers au format Pdf, sont prévus pour
  être imprimés en recto verso en demandant à l'imprimante de retourner
  la feuille du côté court. Il faudra donc veiller à ce que le pilote
  d'imprimante utilise cette option.
\end{nota}
\begin{figure}[tb]
  \begin{changemargin}{-1.5cm}{-2.2cm}
    \centering
    \subfloat[Reliure longue]{%
      \begin{minipage}{.55\textwidth}
        \begin{center}
          \includegraphics[width=\textwidth]{reliure-longue}
          \label{fig-reliure-longue}
        \end{center}
      \end{minipage}}\\
    \subfloat[Reliure courte « 1 exemplaire »]{%
      \begin{minipage}{.55\textwidth}
        \begin{center}
          \includegraphics[width=\textwidth]{reliure-courte-1ex}
          \label{fig-reliure-courte-1ex}
        \end{center}
      \end{minipage}}
    \subfloat[Reliure courte « 2 exemplaires »]{%
      \begin{minipage}{.55\textwidth}
        \begin{center}
          \includegraphics[width=\textwidth]{reliure-courte-2ex}
          \label{fig-reliure-courte-2ex}
        \end{center}
      \end{minipage}}
  \end{changemargin}
  \caption{Les versions imprimables}
  \label{fig-prints}
\end{figure}
\fi


\section*{Que pouvez-vous faire de ce manuel ?}

\begin{description}
\item[Nom de l'auteur :] Vincent \textsc{Lozano} ;
\item[Titre :] Tout ce que vous avez toujours voulu savoir sur
  \unix{} sans jamais avoir osé le demander ;
\item[Date :] \today
\item[Copyleft :] ce manuel est libre selon les termes de la Licence
  Art Libre (\url{http://www.artlibre.org}) (LAL).
\end{description}
La LAL stipule en résumé que vous pouvez copier ce manuel. Vous pouvez
également le diffuser à condition :
\begin{itemize}
\item d'indiquer qu'il est sous la LAL ;
\item d'indiquer le nom de l'auteur de l'original : Vincent
  \textsc{Lozano} et de ceux qui auraient apporté des modifications ;
\item d'indiquer que les fichiers sources peuvent être téléchargés sur
  \url{http://lozzone.free.fr} ;
\end{itemize}
Enfin vous pouvez le modifier à condition :
\begin{itemize}
\item de respecter les conditions de diffusion énoncées ci-dessus ;
\item d'indiquer qu'il s'agit d'une version modifiée et si possible la
  nature de la modification ;
\item de diffuser vos modifications sous la même licence ou sous une
  licence compatible.
\end{itemize}

\section*{Conventions typographiques}
\label{sec-convention-typo}

Certaines conventions utilisées dans ce manuel nécessitent d'être
quelque peu éclaircies. Les commandes \unix{} qui parsèment
le document apparaîtront comme ceci :
\begin{shellcom}
  ¢usercom«type cat»
  cat is /bin/cat
\end{shellcom}
\begin{note}
  Certaines parties sont présentées sous forme de « notes » pour
  éclaircir un point sans que la lecture soit indispensable au premier
  abord.
\end{note}
\begin{nota}
  Si la lecture est indispensable, on aura recours au pictogramme
  ci-contre pour attirer l'attention du lecteur distrait...
\end{nota}
Les \softwi{logiciels} sont typographiés comme indiqués ci-avant. Les
mots en anglais sont produits \anglais{like this}. Pour mettre en
évidence les parties génériques d'une commande on utilisera
\marg{cette notation}. Par exemple, on pourra trouver une phrase comme
:
\begin{quote}
  « ...pour obtenir des informations sur les attributs d'un
  fichier dont le nom est \marg{nomfic}
  \begin{shellcom}[noendprompt]
    ¢usercom«ls -l ¢marg«nomfic»»
  \end{shellcom}
  et le tour est joué ...»
\end{quote}
Dans la version papier apparaissent des renvois sur des chapitres ou
des paragraphes, comme celui-ci dirigeant le lecteur vers la gestion des
\makeatletter%
\let\voirOrig\v@ir%
\let\v@ir\v@irpapier
\voir[\S]{sec-processus}{processus}
\let\v@ir\voirOrig
\makeatother
sous \unix{}.

\section*{Merci}

À l'équipe de recherche de feu l'IUP Vision de Saint-Étienne pour
m'avoir soutenu dans ce travail, plus particulièrement à Serge
\textsc{Chastel} qui a rédigé la première version du chapitre « À
l'aide ». À Jacques \textsc{Lopez} pour avoir pu relire attentivement
ce manuel et me proposer des suggestions constructives. À Laurent
\textsc{Defours} pour insister à me faire utiliser des mots du
français. J'ai dû sous la pression faire :
\begin{verbatim}
  for F in *.tex ; do 
    sed 's/librairie/bibliothèque/g' $F | 
    sed 's/Librairie/Bibliothèque/g' >  tmp.tex ; 
    mv -f tmp.tex $F ; 
  done
\end{verbatim}
pour rendre ce document acceptable à ses yeux\footnote{Le plus
  terrible est qu'après avoir relu cette préface, il m'a gentiment
  suggéré de regarder du côté de l'option \texttt{i} de la version
  \gnu{} du programme \soft{sed}...}.  À Nabil \textsc{Boukala} pour
avoir trouvé exactement 138 coquilles et autres fautes dans la
précédente version, ainsi que pour m'avoir indiqué l'orthographe
exacte de « Massachusetts ».  Aux intervenants des newsgroups autour
de \linux{} et d'\unix{} pour leurs précieuses informations qu'ils
m'ont indirectement apportées. À Andrea \textsc{Ferraris} pour ses
encouragements, à Cédric « rixed » pour ses remarques sur l'Osf,
Hugues « débianiste avant tout » pour sa précision sur la naissance du
projet \gnu, Jacques \textsc{L'Helgoualc'h} pour m'avoir suggéré qu'un
\emph{mécano} réparait des voitures et qu'un \emph{meccano} était un
jeu de construction, Paul \textsc{Gaborit} pour sa remarque judicieuse
sur le caractère libre du package french de \LaTeX{}, un grand merci à
Géo « cherchetout » pour m'avoir transmis 149 coquilles après avoir lu
le document intégrant les 138 fautes repérées par Nabil.

J'adresse mes plus profonds remerciements à Stéphane \textsc{Chazelas}
pour sa lecture minutieuse de la version précédente de ce manuel.
C'est suite à ses remarques constructives que ce manuel s'est enrichi
de nombreuses « nota »  et surtout que beaucoup
d'imprécisions et d'erreurs de fond ont été corrigées...


Je tiens enfin à exprimer ma gratitude et mon grand respect pour le
travail et la motivation d'Alexis \textsc{Kaufman} et Didier
\textsc{Roche} qui m'ont fait confiance pour la publication de ce
livre. Merci également à tous les membres du groupe de relecture des
Framaboooks pour l'effort qu'ils ont fourni pour parfaire ce document
: en particulier Barbara « Garburst » que l'on peut qualifier d'« \oe
il de lynx », Laurent « lolonene », kinouchou. Un autre merci va à
Philippe \textsc{Martin} qui m'a transmis des fichiers « diff »
permettant de corriger 51 coquilles directement sur les sources
\LaTeX{}.

Enfin, je souhaite remercier chaleureusement Christophe
\textsc{Masutti} pour sa lecture attentive. Je pense qu'une bonne
trentaine de virgules ainsi que bonne vingtaine d'appels de notes de
bas de page ont été correctement placés grâce à lui.

\begin{center}
À toute la communauté des hackers pour l'énergie qu'ils insufflent...
\end{center}

\bigskip

\pagebreak[1]
\begin{center}
  $*$\\
  $*\quad *$\\[2\baselineskip]\nopagebreak[4] \textbf{Bonne
    lecture\footnote{Histoire de commencer un peu à mettre des notes
      de bas de page un peu partout, vous noterez peut-être au cours
      de cette lecture, que malgré tout des termes anglais
      apparaîtront souvent, parfois non traduits. Une honte !} !}
\end{center}

\setlength{\parskip}{\parskipORIG}


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "../framabook"
%%% End: 
