tuteurs.ens.fr/unix/aide.tml

391 lines
13 KiB
Text
Raw Normal View History

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
"tuteurs://DTD/tml.dtd">
<html>
<head>
<title>Aide</title>
</head>
<body>
<h1>Aide en ligne</h1>
<p>
<a href="unix-technique.html">Unix</a> est un syst<73>me d'exploitation
complexe. Il existe des centaines de commandes, la plupart avec des
options. Comment vous d<>brouiller, apprendre <20> utiliser une commande,
savoir quelle commande utiliser pour faire telle chose<73>? Heureusement,
Unix dispose aussi d'une aide abondante et tr<74>s utile.
</p>
<h2><a name="help">Aide rapide</a></h2>
<p>
Tout d'abord, il faut savoir que tr<74>s souvent, les commandes ont un
petit fichier d'aide rudimentaire, qui vous renseignera sur la syntaxe
de la commande (pour savoir ce que fait exactement la commande, ou
pour compl<70>ter, c'est le r<>le des <a href="#man">pages de man</a>). Il
y a plusieurs mani<6E>res d'obtenir cette aide rudimentaire<72>:
</p>
<h3>Options <code>-h</code>, <code>-?</code> et <code>--help</code></h3>
<p>C'est un moyen simple pour obtenir un peu d'aide sur une
commande. Exemple<6C>:</p>
<pre>
<span class="prompt">earendil ~ $</span> mkdir --help
usage: mkdir [-pv] [-m mode] directory ...
</pre>
<p class="continue">
Ici, on vous indique que la commande <code>mkdir</code> admet les
options <code>-p</code>, <code>-v</code>, <code>-m
&lt;mode&gt;</code>, et que sinon c'est <code>mkdir &lt;nom du
fichier&gt;</code>.
</p>
<p>
Attention, d'une part la syntaxe varie<69>: une commande peut comprendre
<code>-h</code> mais pas <code>--help</code> et <code>-?</code>, ou
inversement. Ensuite, <20>a ne marche pas toujours. Ainsi, si vous
essayez de demander de l'aide <20> la commande <code>df</code> (affiche
l'<a href="&url.tuteurs;unix/espace_disque.html">espace disque</a>
disponible)<29>:
</p>
<pre>
<span class="prompt">clipper ~ $</span> df -h
Filesystem Size Used Avail Use% Mounted on
/dev/dsk/c0t0d0s0 189M 92M 79M 54% /
/dev/dsk/c0t0d0s4 754M 595M 106M 85% /usr
/dev/dsk/c0t8d0s5 995M 467M 469M 50% /var
</pre>
<p class="continue">
2004-01-12 13:13:23 +01:00
Pour <code>df</code>, l'option <code>-h</code> veut dire tout autre
chose...
</p>
<h3>L'option fantaisiste</h3>
<p>
Cette astuce consiste <20> donner une option compl<70>tement fantaisiste <20>
la commande. Celle-ci va r<>agir en disant que ce n'est pas comme <20>a
qu'on fait, et vous indiquera bri<72>vement quelles sont les syntaxes
correctes possibles. Exemple<6C>:
</p>
<pre>
<span class="prompt">clipper ~ $</span> cal -xyz
cal: illegal option -- x
usage: cal [ [month] year ]
</pre>
<p class="continue">
On utilise une option <code>-xyz</code> pour <20>tre s<>r que ce n'est pas
une option existante. <20>a marche<68>: <a
href="divers.html"><code>cal</code></a> (petit programme qui affiche
le calendrier du mois) se plaint que cette syntaxe n'existe pas, et
vous indique ce qui est possible.
</p>
<h2><a name="man">Pages de man</a></h2>
<p>
L'aide la plus pr<70>cieuse, la plus compl<70>te et le plus importante,
c'est le manuel. Comme un livre, il est divis<69> en pages, chaque page
correspondant <20> une commande ou <20> un concept pr<70>cis. C'est pour cette
raison qu'on parle de <dfn>pages de man</dfn>. Les pages de manuel se
pr<EFBFBD>sentent comme un fichier texte<74>: pas de liens, pas d'images, on ne
peut pas cliquer. Il y a seulement un peu de mise en page. Bref, c'est
plut<EFBFBD>t aust<73>re<72>! C'est que les pages de man ne sont pas des tutoriels,
mais des r<>f<EFBFBD>rences.
</p>
<p>
Le principe est simple<6C>: pour lire l'aide correspondant <20> telle
commande ou concept, c'est <code>man commande</code>. Ainsi, pour
obtenir des renseignements sur la commande <code>man</code>
elle-m<>me<6D>:
</p>
<pre>
<span class="prompt">clipper ~ $</span> man man
</pre>
<p class="continue">
Vous verrez alors appara<72>tre ceci<63>:
</p>
<pre>
User Commands man(1)
NAME
man - format and display the on-line manual pages
manpath - determine user's search path for man pages
SYNOPSIS
man [-acdfhkKtwW] [-m system] [-p string] [-C config_file]
[-M path] [-P pager] [-S section_list] [section] name ...
DESCRIPTION
man formats and displays the on-line manual pages. This
version knows about the MANPATH and (MAN)PAGER environment
variables, so you can have your own set(s) of personal man
(...)
</pre>
<p>
Comme vous pouvez le voir, c'est en anglais. Comme dans beaucoup
d'autres domaines, l'anglais est la langue standard en
informatique. Les documentations Unix sont <20>crites d'abord en anglais,
et <20>ventuellement traduites. Ne partez pas en courant, l'anglais
technique est quand m<>me moins difficile <20> comprendre que du
Shakespeare.
</p>
<h3>Structure d'une page de man</h3>
<p>
Chaque page de man a la m<>me structure. Une fois que vous vous <20>tes
familiaris<EFBFBD> avec celle-ci, vous savez rapidement <20> chercher
l'information. Voici une description des principales rubriques qu'on
peut trouver<65>:
</p>
<ul>
<li> sur la premi<6D>re ligne, <20> droite (<code>man(1)</code> dans
l'exemple ci-dessus), vous est indiqu<71>e la <a href="#sect">section du
manuel</a> o<> se trouve la page de man demand<6E>e.</li>
<li> NAME<4D>: le nom de la commande, tout simplement, assorti d'un bref
r<EFBFBD>sum<EFBFBD> de ce que fait la commande.</li>
<li> SYNOPSIS<49>: c'est la syntaxe de la commande. Apr<70>s celle-ci
figurent les <dfn>arguments</dfn>, qui modifient le comportement de la
commande quand on les indique. Les arguments figurant entre crochets
sont des arguments optionnels, parmi ceux-ci, ceux qui commencent par
<code>-</code> sont des options.</li>
<li> DESCRIPTION<4F>: le c&oelig;ur de la page de man. Cette rubrique
vous indique plus pr<70>cis<69>ment ce que fait la commande.</li>
<li> OPTIONS<4E>: description d<>taill<6C>e de chaque option. Cette rubrique
peut <20>tre assez longue, voyez par exemple la page de man de
<code>less</code><3E>!</li>
<li> EXAMPLES<45>: exemples pratiques d'utilisation.</li>
<li> SEE ALSO<53>: ce sont des renvois vers d'autres pages de man qui
sont li<6C>es.</li>
</ul>
<h3>Se d<>placer dans une page de man</h3>
<p>
Une fois la page de man lanc<6E>e, vous pouvez parcourir la page en
utilisant les m<>mes commandes que le <i lang="en">pager</i>
<code>less</code>, car la commande <code>man</code> utilise
pr<EFBFBD>cis<EFBFBD>ment <code>less</code>.
</p>
<div class="encadre">
<strong>D<>finition</strong><3E>: <dfn lang="en">pager</dfn> (ou
<EFBFBD><EFBFBD>visionneuse<EFBFBD><EFBFBD> en fran<61>ais). Il s'agit d'un programme qui permet de
parcourir un fichier texte. Par d<>faut, il s'agit de
<code>less</code>, qui permet de faire des recherches dans le texte;
de revenir en arri<72>re, et surtout, qui affiche le texte par <20>crans de
25 lignes, permettant ainsi de lire <20> sa vitesse avant de passer <20> la
suite. Faites <code>man less</code> pour en savoir plus<75>!
</div>
<p>
Il existe beaucoup de commandes diff<66>rentes pour se d<>placer dans une
page de man, voici les plus importantes<65>:
</p>
<table class="tableau">
<tr>
<th>Action</th><th>R<>sultat</th>
</tr><tr>
<td>barre d'espace</td><td>Passage <20> l'<27>cran suivant</td>
</tr><tr>
<td>fl<66>che haut</td><td>Revenir en arri<72>re dans le fichier</td>
</tr><tr>
<td>/tagada ENTER</td><td>Chercher la suite de caract<63>re <20><>tagada<64><61>
dans la suite de la page</td>
</tr><tr>
<td>?tagada ENTER</td><td>Chercher la suite de caract<63>re <20> tagada <20>
plus haut dans la page</td>
</tr><tr>
<td>g</td><td>Retourner au tout d<>but de la page</td>
</tr><tr>
<td>G</td><td>Aller <20> la fin de la page</td>
</tr><tr>
<td>h</td><td>Affiche un r<>sum<75> des commandes de
<code>less</code></td>
</tr><tr>
<td>q</td><td>Quitte la lecture du manuel</td>
</tr>
</table>
<h3><a name="section">Sections du manuel</a></h3>
<p>
Comme nous vous l'avons dit, le manuel est divis<69> en grandes sections,
tout comme un livre peut <20>tre divis<69> en chapitres. Voici
l'organisation du manuel pour Unix System<65>V (variante d'Unix <20>
laquelle se rattache Solaris, le syst<73>me des stations Sun).
</p>
<table class="tableau">
<tr>
<th></th><th colspan="2">Qu'est-ce que c'est ?</th>
</tr><tr>
<th>Section</th><th>Solaris (System<65>V)</th><th>FreeBSD (BSD)</th>
</tr><tr>
<td>1</td><td>Commandes utilisateur</td><td>Idem</td>
</tr><tr>
<td>2</td><td>Appels syst<73>mes</td><td>Idem</td>
</tr><tr>
<td>3</td><td>Biblioth<74>ques</td><td>Idem</td>
</tr><tr>
<td>4</td><td>Fichiers de configuration et
d'administration</td><td>Points d'entr<74>es du noyau, pilotes</td>
</tr><tr>
<td>5</td><td>Divers</td><td>Fichiers de configuration</td>
</tr><tr>
<td>6</td><td>Jeux</td><td>Idem</td>
</tr><tr>
<td>7</td><td>Entr<74>es-sorties, fichiers sp<73>ciaux</td><td>Standards</td>
</tr><tr>
<td>8</td><td>Commandes d'administration</td><td>Idem</td>
</tr><tr>
<td>9</td><td>_</td><td>Fonctions pr<70>sentes dans le noyau</td>
</tr>
</table>
<p>
Il arrive qu'une m<>me commande ait plusieurs pages de man dans des
sections diff<66>rentes. C'est par exemple le cas de <code>mkdir</code>
sous Solaris, qui a une page dans la section 1 (commandes
utilisateurs) et 2 (appels syst<73>mes). Par d<>faut, <code>man
mkdir</code> renvoie <20> la section 1 (la page dans la section 2 est
mentionn<EFBFBD>e dans le SEE ALSO). Pour demander explicitement la page de
la section 2<>:
</p>
<pre>
<span class="prompt">clipper ~ $</span> man 2 mkdir
</pre>
<h3><a name="apropos">Chercher la bonne page de man<61>:
<code>apropos</code></a></h3>
<p>
Le probl<62>me, c'est que vous, vous ne savez m<>me pas quelle est la
bonne commande <20> utiliser. Tout ce que vous savez, c'est que vous
voulez cr<63>er un fichier MP3 <20> partir de l'un de vos CD. Pour cela, on
peut utiliser la commande <code>apropos</code>. Cette commande fait
des recherches dans une base de donn<6E>es contenant le nom des
commandes, et leur description. Syntaxe de la commande<64>: <code>apropos
&lt;mot clef&gt;</code>. Attention, le mot clef doit <20>tre en
anglais. Exemple d'utilisation<6F>:
</p>
<pre>
<span class="prompt">clipper ~ $</span> apropos MP3
lame lame (1) - create mp3 audio files
</pre>
<p class="continue">
Voici la r<>ponse<73>: il faut utiliser la commande <code>lame</code>, qui
<EFBFBD><EFBFBD>cr<EFBFBD>e des fichiers audio mp3<70><33>. Pour savoir comment l'utiliser,
consultez sa page de man, qui se trouve dans la section 1 du
manuel. <20>a n'est pas toujours aussi simple<6C>: <code>apropos</code> peut
vous donner de longues r<>ponses. Utilisez alors le pipe (|), qui
connecte la sortie standard d'une commande (c'est-<2D>-dire le r<>sultat
visible de cette commande) sur l'entr<74>e standard d'une autre
commande. Dans notre cas, cela signifie que les lignes produites par
<code>apropos</code> pourront <20>tre lues ensuite avec
<code>less</code>, comme un fichier.
</p>
<pre>
<span class="prompt">clipper ~ $</span> apropos editor | less
Curses::UI::TextEditor Curses (3) - Create and manipulate texteditor widgets
FvwmConsoleC.pl FvwmConsoleC.pl (1) - Command editor for FVWM command in put interface
Tk::ColorEditor Tk (3) - a general purpose Tk widget Color Editor
aa_createedit aa_createedit (3) - Simple interactive line editor provided as helper function.
aa_edit aa_edit (3) - Simple interactive line editor.
aa_editkey aa_editkey (3) - Notify the line editor about keypress.
2004-01-12 13:13:23 +01:00
cooledit cooledit-3.17.5 (1) - Full featured text editor for the X Window System, Version 11.
dotty dotty (1) - A Customizable Graph Editor
ed ed (1) - text editor
ex vim (1) - Vi IMproved, a programmers text editor
ile ile (1) - An input line editor for UNIX (Input Line Editor)
ile-2.7 ile (1) - An input line editor for UNIX (Input Line Editor)
(...)
</pre>
<p class="continue">
L<EFBFBD>, il y a <20> boire et <20> manger... Il faut regarder dans <a
href="#section">quelle section</a> se trouve chacune des propositions
pour faire la diff<66>rence entre commandes que vous pouvez utiliser
(section 1) et autres.
</p>
<div class="encadre">
<strong><3E> noter</strong><3E>: sur certains syst<73>mes Unix, la commande
<code>apropos</code> n'existe pas. Vous pouvez faire la m<>me chose
gr<EFBFBD>ce <20> l'option <code>-k</code> de <code>man</code><3E>: <code>man -k
&lt;mot clef&gt;</code>.
</div>
<h2>Pages info</h2>
<p>
Les pages info sont de l'aide en ligne, tout comme les pages de
man. Le format info est une particularit<69> des programmes <20>crits par le
<a href="http://www.gnu.org/" title="Page du Projet GNU">Projet
GNU</a>, une communaut<75> de d<>veloppeurs qui est l'auteur d'une grande
quantit<EFBFBD> d'utilitaires et de programmes. Par exemple, la documentation
d'<a href="&url.tuteurs;unix/editeurs/emacs.html">Emacs</a> (un <a
href="&url.tuteurs;unix/editeurs/"><3E>diteur de texte</a>) ou encore
celle de <a href="&url.tuteurs;unix/archives.html#tar">tar</a> (un
archiveur), est au format info.
</p>
<p>
Les pages info remplissent les m<>mes fonctions que les pages de man,
mais la navigation est plus compliqu<71>e<EFBFBD>: c'est d<> <20> l'organisation
hi<EFBFBD>rarchique des pages info, avec des branches, des sous-branches,
etc. Ce fonctionnement convient bien <20> de gros projets comme Emacs,
mais peut sembler plus lourd pour des programmes avec une
documentation moins inportante.
</p>
<p>
<EFBFBD> l'ENS, le plus simple est d'utiliser le programme
<code>pinfo</code>, qui permet de naviguer dans les pages info. La
syntaxe est aussi simple que celle de <code>man</code><3E>: <code>pinfo
&lt;commande&gt;</code>. Par exemple, pour obtenir les pages info de
<code>pinfo</code> lui-m<>me<6D>:
</p>
<pre>
<span class="prompt">clipper ~ $</span> pinfo pinfo
</pre>
<div class="metainformation">Auteur&nbsp;: Marie-Lan Nguyen.
2004-01-12 13:13:23 +01:00
Derni<EFBFBD>re modification&nbsp;: le <date value="$Date: 2004-01-12 12:13:23 $" />.
</div>
</body>
</html>