Outils pour utilisateurs

Outils du site


cours:informatique:fun_mooc:maitrise_du_bash_univ-reunion:120_aide

Shell: Trouver de l'aide

Les arguments attendus par les commandes du shell et les fonctionnalités fournies sont trop diversifiés pour être retenus par l’utilisateur ou réunis dans un manuel unique. Par conséquent, la documentation est fournie:

  • par les commandes elles-mêmes;
  • au travers d’utilitaires dédiés.

Lorsque vous n’êtes pas sûr du nom de la commande à utiliser pour accomplir une action, le système propose également des outils pour vous aider à trouver la commande adéquate.

Accéder à l'aide depuis la commande

La plupart des commandes disposent d’une aide interne. Lorsque l’utilisateur saisit de mauvais arguments, la commande affiche l'aide.

Les options -h ou --help permettent également d'afficher l'aide interne de la commande.

La documentation est alors directement affichée dans le terminal. Il n’est pas aisé de naviguer entre les différentes parties ou même de rechercher du texte à l’intérieur. De plus, l’aide affichée est souvent en anglais et ce même si le système d’exploitation a été installé avec un autre langage.

L'utilitaire man

Les systèmes de type Unix disposent d’un outil de visualisation des manuels appelé man1). Lorsque l’on cherche à accéder à la documentation d’une commande, il suffit d’appeler man avec en argument le nom de la commande dont on cherche le manuel.

La commande man interprète des fichiers de documentation 1 puis les affiche via le lecteur de fichier less permettant notamment de faire défiler le texte par page d’écran et de faire des recherches de motifs.

Si votre système d’exploitation est configuré en français, le manuel sera présenté en français s’il existe. Si vous êtes sur un système configuré en anglais et que vous voulez néanmoins accéder à l’aide en français, vous pouvez utiliser l’option -L fr.

Le manuel ne se limite pas à la description des commandes, il comprend de la documentation sur les fonctions, des formats de fichiers ou encore des périphériques. Par conséquent, les pages du manuel sont regroupées en plusieurs sections :

  1. commandes pour l’utilisateur,
  2. appels système (fonctions fournies par le noyau),
  3. appels de bibliothèque (fonctions fournies pour le développement de programmes),
  4. fichiers spéciaux (situés généralement dans /dev),
  5. formats des fichiers et conventions (par exemple /etc/passwd),
  6. jeux,
  7. divers,
  8. commandes de gestion du système (généralement réservées au super utilisateur),
  9. documentation du noyau.

Cette distinction a été faite pour éviter les ambiguïtés. En effet un même nom peut faire référence à une fonction d’une bibliothèque ou à une commande. C’est par exemple le cas de printf.

On peut définir dans quelle section on souhaite effectuer une recherche en la spécifiant un premier argument:

man 1 read
Aucune entrée de manuel pour read en section 1

On peut définir une liste de sections dans laquelle on souhaite lancer la recherche:

man -S 1,2,8,9 read

Structure d'une page de manuel

Une page de manuel contient plusieurs parties/:

  • NOM,
  • SYNOPSIS,
  • DESCRIPTION,
  • OPTIONS,
  • FICHIERS,
  • VERSIONS,
  • NOTES,
  • EXEMPLES,
  • AUTEURS,
  • VOIR AUSSI.

La partie synopsis propose un résumé du format de la commande. Il utilise les conventions suivantes:

texte gras à taper exactement comme indiqué
texte italique à remplacer par l’argument approprié
[-abc] tous les arguments entre [ ] sont facultatifs
-a|-b les options séparées par | ne peuvent pas être utilisées simultanément
argument … les trois petits points signifient que l’argument peut être répété
[expression] … les trois petits points signifient que toute l’expression située à l’intérieur de [ ] peut être répétée (en plus d’être facultative).

Autres outils pour consulter l'aide

man est l’outil le plus utilisé pour trouver de l’aide mais ce n’est pas le seul. Des outils tels que info ou help proposent également de la documentation sur certaines commandes. Ils n’ont pas rencontré le même succès que man mais perdurent encore dans certaines distributions Linux.

help est une commande builtin du shell permettant d'afficher de l'aide concernant sa propre syntaxe et les commandes builtin.

info

Historiquement, l’utilitaire info était un concurrent de man. La documentation des commandes était rédigée via le format texinfo et visualisée via le mode info de l’éditeur de texte Emacs. Texinfo est resté le format de documentation officiel du projet GNU. L’outil info permet d’accéder à la documentation des commandes et bibliothèques GNU (y compris le Bash) ainsi qu’aux pages du man. Son principal avantage réside dans la possibilité de naviguer dans la documentation en hypertexte.

Trouver une commande

apropos est une commande qui permet de lister les manuels dont la description comprend les mots passés en arguments. Les manuels sont indexés dans une base qui comporte le nom de la commande et une courte description. apropos recherche un mot clé passé en argument dans ces deux parties puis affiche les commandes correspondantes. L’affichage de la description courte d’une commande s’obtient par la commande whatis.

La commande apropos est d'un grand secours lorsqu'on souhaite effectuer une action sans connaître le mnémonique de la commande associée.

Si par exemple on souhaite modifier un encodage de fichier, le mot clé encoding permettra à apropos de trouver l’utilitaire cherché:

$ apropos encoding
man-recode (1)       - convert manual pages to another encoding
bind_textdomain_codeset (3) - set encoding of message translations
chardet (1)          - universal character encoding detector
chardet3 (1)         - universal character encoding detector
chardetect (1)       - universal character encoding detector
chardetect3 (1)      - universal character encoding detector
encguess (1)         - guess character encodings of files
Encode::Locale (3pm) - Determine the locale encoding
iconv (1)            - convert text from one character encoding to another
...
1)
MANual
cours/informatique/fun_mooc/maitrise_du_bash_univ-reunion/120_aide.txt · Dernière modification : 2021/03/16 20:28 de 93.28.24.141