tuteurs.ens.fr/unix/aide.tml
2009-09-27 15:43:57 +02:00

405 lines
14 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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ème d'exploitation
complexe. Il existe des centaines de commandes, la plupart avec des
options. Comment vous débrouiller, apprendre à utiliser une commande,
savoir quelle commande utiliser pour faire telle chose ? Heureusement,
Unix dispose aussi d'une aide abondante et très utile.
</p>
<h2><a name="help">Aide rapide</a></h2>
<p>
Tout d'abord, il faut savoir que trè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éter, c'est le rôle des <a href="#man">pages de man</a>). Il
y a plusieurs manières d'obtenir cette aide rudimentaire :
</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 :</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 : une commande peut comprendre
<code>-h</code> mais pas <code>--help</code> et <code>-?</code>, ou
inversement. Ensuite, ça ne marche pas toujours. Ainsi, si vous
essayez de demander de l'aide à la commande <code>df</code> (affiche
l'<a href="&url.tuteurs;unix/place_disque.html">espace disque</a>
disponible) :
</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">
Pour <code>df</code>, l'option <code>-h</code> veut dire tout autre
chose...
</p>
<h3>L'option fantaisiste</h3>
<p>
Cette astuce consiste à donner une option complètement fantaisiste à
la commande. Celle-ci va réagir en disant que ce n'est pas comme ça
qu'on fait, et vous indiquera brièvement quelles sont les syntaxes
correctes possibles. Exemple :
</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 être sûr que ce n'est pas
une option existante. Ça marche : <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écieuse, la plus complète et le plus importante,
c'est le manuel. Comme un livre, il est divisé en pages, chaque page
correspondant à une commande ou à un concept précis. C'est pour cette
raison qu'on parle de <dfn>pages de man</dfn>. Les pages de manuel se
présentent comme un fichier texte : 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ôt austère ! C'est que les pages de man ne sont pas des tutoriels,
mais des références.
</p>
<p>
Le principe est simple : pour lire l'aide correspondant à telle
commande ou concept, c'est <code>man commande</code>.</p>
<div class="ens">
À l'ENS, il existe la commande <code>fman</code> qui fonctionne
exactement comme la commande <code>man</code>, mais qui permet d'obtenir
de la documentation en français. Attention : la documentation
française est généralement en retard sur la documentation anglaise, donc
vous n'aurez pas toujours les pages les plus à jour...
</div>
<p>Ainsi, pour obtenir des renseignements sur la
commande <code>man</code> elle-même :
</p>
<pre>
<span class="prompt">clipper ~ $</span> man man
</pre>
<p class="continue">
Vous verrez alors apparaître ceci :
</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 écrites d'abord en anglais,
et éventuellement traduites. Ne partez pas en courant, l'anglais
technique est quand même moins difficile à 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 êtes
familiarisé avec celle-ci, vous savez rapidement à chercher
l'information. Voici une description des principales rubriques qu'on
peut trouver :
</p>
<ul>
<li> sur la première ligne, à droite (<code>man(1)</code> dans
l'exemple ci-dessus), vous est indiquée la <a href="#section">section du
manuel</a> où se trouve la page de man demandée.</li>
<li> NAME : le nom de la commande, tout simplement, assorti d'un bref
résumé de ce que fait la commande.</li>
<li> SYNOPSIS : c'est la syntaxe de la commande. Aprè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 : le c&oelig;ur de la page de man. Cette rubrique
vous indique plus précisément ce que fait la commande.</li>
<li> OPTIONS : description détaillée de chaque option. Cette rubrique
peut être assez longue, voyez par exemple la page de man de
<code>less</code> !</li>
<li> EXAMPLES : exemples pratiques d'utilisation.</li>
<li> SEE ALSO : ce sont des renvois vers d'autres pages de man qui
sont liées.</li>
</ul>
<h3>Se déplacer dans une page de man</h3>
<p>
Une fois la page de man lancé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écisément <code>less</code>.
</p>
<div class="encadre">
<strong>Définition</strong> : <dfn lang="en">pager</dfn> (ou
« visionneuse » en franç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ère, et surtout, qui affiche le texte par écrans de
25 lignes, permettant ainsi de lire à sa vitesse avant de passer à la
suite. Faites <code>man less</code> pour en savoir plus !
</div>
<p>
Il existe beaucoup de commandes différentes pour se déplacer dans une
page de man, voici les plus importantes :
</p>
<table class="tableau">
<tr>
<th>Action</th><th>Résultat</th>
</tr><tr>
<td>barre d'espace</td><td>Passage à l'écran suivant</td>
</tr><tr>
<td>flèche haut</td><td>Revenir en arrière dans le fichier</td>
</tr><tr>
<td>/tagada ENTER</td><td>Chercher la suite de caractère « tagada »
dans la suite de la page</td>
</tr><tr>
<td>?tagada ENTER</td><td>Chercher la suite de caractère « tagada »
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 à la fin de la page</td>
</tr><tr>
<td>h</td><td>Affiche un résumé 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é en grandes sections,
tout comme un livre peut être divisé en chapitres. Voici
l'organisation du manuel pour Unix System V (variante d'Unix à
laquelle se rattache Solaris, le systè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 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èmes</td><td>Idem</td>
</tr><tr>
<td>3</td><td>Bibliothèques</td><td>Idem</td>
</tr><tr>
<td>4</td><td>Fichiers de configuration et
d'administration</td><td>Points d'entré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ées-sorties, fichiers spé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ésentes dans le noyau</td>
</tr>
</table>
<p>
Il arrive qu'une même commande ait plusieurs pages de man dans des
sections diffé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èmes). Par défaut, <code>man
mkdir</code> renvoie à la section 1 (la page dans la section 2 est
mentionné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 :
<code>apropos</code></a></h3>
<p>
Le problème, c'est que vous, vous ne savez même pas quelle est la
bonne commande à utiliser. Tout ce que vous savez, c'est que vous
voulez créer un fichier MP3 à 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ées contenant le nom des
commandes, et leur description. Syntaxe de la commande : <code>apropos
&lt;mot clef&gt;</code>. Attention, le mot clef doit être en
anglais. Exemple d'utilisation :
</p>
<pre>
<span class="prompt">clipper ~ $</span> apropos MP3
lame lame (1) - create mp3 audio files
</pre>
<p class="continue">
Voici la réponse : il faut utiliser la commande <code>lame</code>, qui
« crée des fichiers audio mp3 ». Pour savoir comment l'utiliser,
consultez sa page de man, qui se trouve dans la section 1 du
manuel. Ça n'est pas toujours aussi simple : <code>apropos</code> peut
vous donner de longues réponses. Utilisez alors le pipe (|), qui
connecte la sortie standard d'une commande (c'est-à-dire le résultat
visible de cette commande) sur l'entrée standard d'une autre
commande. Dans notre cas, cela signifie que les lignes produites par
<code>apropos</code> pourront ê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.
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à, il y a à boire et à manger... Il faut regarder dans <a
href="#section">quelle section</a> se trouve chacune des propositions
pour faire la différence entre commandes que vous pouvez utiliser
(section 1) et autres.
</p>
<div class="encadre">
<strong>À noter</strong> : sur certains systèmes Unix, la commande
<code>apropos</code> n'existe pas. Vous pouvez faire la même chose
grâce à l'option <code>-k</code> de <code>man</code> : <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é des programmes écrits par le
<a href="http://www.gnu.org/" title="Page du Projet GNU">Projet
GNU</a>, une communauté de développeurs qui est l'auteur d'une grande
quantité 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/">é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ée : c'est dû à l'organisation
hiérarchique des pages info, avec des branches, des sous-branches,
etc. Ce fonctionnement convient bien à de gros projets comme Emacs,
mais peut sembler plus lourd pour des programmes avec une
documentation moins inportante.
</p>
<p>
À 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> : <code>pinfo
&lt;commande&gt;</code>. Par exemple, pour obtenir les pages info de
<code>pinfo</code> lui-même :
</p>
<pre>
<span class="prompt">clipper ~ $</span> pinfo pinfo
</pre>
<p class="continue">
Sous KDE, vous pouvez aussi taper <code>info:&lt;commande&gt;</code>
dans la barre d'adresse de Konqueror.
</p>
<div class="metainformation">Auteur : Marie-Lan Nguyen.
Dernière modification : le <date value="$Date: 2007-07-17 10:03:09 $" />.
</div>
</body>
</html>