web-dev-qa-db-fra.com

Comment trouver l'information requise chez l'homme

La commande man ouvre un manuel Nice pour de nombreux programmes, mais comment puis-je l'utiliser plus efficacement? Par exemple, man gcc apporte:

NAME
       gcc - GNU project C and C++ compiler

SYNOPSIS
       gcc [-c|-S|-E] [-std=standard]
           [-g] [-pg] [-Olevel]
           [-Wwarn...] [-Wpedantic]
           [-Idir...] [-Ldir...]
           [-Dmacro[=defn]...] [-Umacro]
           [-foption...] [-mmachine-option...]
           [-o outfile] [@file] infile...

       Only the most useful options are listed here; see below for the
       remainder.  g++ accepts mostly the same options as gcc.
....
many text

Mais que se passe-t-il si je n'ai besoin que d'une partie? Quel est le meilleur moyen de passer à la section où -Idir est décrit, par exemple?

11
vico

Recherchez la page man en appuyant sur / et la chaîne de recherche

man utilise la visionneuse less par défaut. Vous pouvez rechercher dans less en appuyant sur / (barre oblique), puis ajoutez la chaîne de recherche, dans votre exemple -Idir

GCC(1)                                GNU                               GCC(1)

NAME
       gcc - GNU project C and C++ compiler

SYNOPSIS
       gcc [-c|-S|-E] [-std=standard]
           [-g] [-pg] [-Olevel]
           [-Wwarn...] [-Wpedantic]
           [-Idir...] [-Ldir...]
           [-Dmacro[=defn]...] [-Umacro]
           [-foption...] [-mmachine-option...]
           [-o outfile] [@file] infile...

       Only the most useful options are listed here; see below for the
       remainder.  g++ accepts mostly the same options as gcc.

DESCRIPTION
       When you invoke GCC, it normally does preprocessing, compilation,
       Assembly and linking.  The "overall options" allow you to stop this
       process at an intermediate stage.  For example, the -c option says not
       to run the linker.  Then the output consists of object files output by
       the assembler.

/-Idir

Appuyez sur la Enter clé, et obtenir le premier match.

Presse / (slash) et le Enter Appuyez de nouveau sur la touche, répétez cette opération jusqu'à ce que vous trouviez la section souhaitée. Vous pouvez également appuyer sur n pour le prochain match.

       -Idir
           Add the directory dir to the head of the list of directories to be
           searched for header files.  This can be used to override a system
           header file, substituting your own version, since these directories
           are searched before the system header file directories.  However,
           you should not use this option to add directories that contain
           vendor-supplied system header files (use -isystem for that).  If
           you use more than one -I option, the directories are scanned in
           left-to-right order; the standard system directories come after.

           If a standard system include directory, or a directory specified
           with -isystem, is also specified with -I, the -I option is ignored.
           The directory is still searched but as a system directory at its
           normal position in the system include chain.  This is to ensure
           that GCC's procedure to fix buggy system headers and the ordering
           for the "include_next" directive are not inadvertently changed.  If
           you really need to change the search order for system directories,
           use the -nostdinc and/or -isystem options.

       -iplugindir=dir
           Set the directory to search for plugins that are passed by
           -fplugin=name instead of -fplugin=path/name.so.  This option is not
           meant to be used by the user, but only passed by the driver.

 Manual page gcc(1) line 10179 (press h for help or q to quit)

Pressage h donne un bon aperçu des commandes disponibles.

                   SUMMARY OF LESS COMMANDS

      Commands marked with * may be preceded by a number, N.
      Notes in parentheses indicate the behavior if N is given.
      A key preceded by a caret indicates the Ctrl key; thus ^K is ctrl-K.

  h  H                 Display this help.
  q  :q  Q  :Q  ZZ     Exit.
 ---------------------------------------------------------------------------

                           MOVING

  e  ^E  j  ^N  CR  *  Forward  one line   (or N lines).
  y  ^Y  k  ^K  ^P  *  Backward one line   (or N lines).
  f  ^F  ^V  SPACE  *  Forward  one window (or N lines).
  b  ^B  ESC-v      *  Backward one window (or N lines).
  z                 *  Forward  one window (and set window to N).
  w                 *  Backward one window (and set window to N).
  ESC-SPACE         *  Forward  one window, but don't stop at end-of-file.
  d  ^D             *  Forward  one half-window (and set half-window to N).
  u  ^U             *  Backward one half-window (and set half-window to N).
  ESC-)  RightArrow *  Left  one half screen width (or N positions).
  ESC-(  LeftArrow  *  Right one half screen width (or N positions).
  F                    Forward forever; like "tail -f".
  ESC-F                Like F but stop when search pattern is found.
  r  ^R  ^L            Repaint screen.
  R                    Repaint screen, discarding buffered input.
        ---------------------------------------------------
        Default "window" is the screen height.
        Default "half-window" is half of the screen height.
 ---------------------------------------------------------------------------

                          SEARCHING

  /pattern          *  Search forward for (N-th) matching line.
  ?pattern          *  Search backward for (N-th) matching line.
  n                 *  Repeat previous search (for N-th occurrence).
  N                 *  Repeat previous search in reverse direction.
  ESC-n             *  Repeat previous search, spanning files.
  ESC-N             *  Repeat previous search, reverse dir. & spanning files.
  ESC-u                Undo (toggle) search highlighting.
  &pattern          *  Display only matching lines
        ---------------------------------------------------
        A search pattern may be preceded by one or more of:
        ^N or !  Search for NON-matching lines.
        ^E or *  Search multiple files (pass thru END OF FILE).
        ^F or @  Start search at FIRST file (for /) or last file (for ?).
        ^K       Highlight matches, but don't move (KEEP position).
        ^R       Don't use REGULAR EXPRESSIONS.
 ---------------------------------------------------------------------------
HELP -- Press RETURN for more, or q when done

Vous trouverez plus de détails sur les 'outils d'aide' en cliquant sur le lien suivant

Comment puis-je obtenir de l'aide sur les commandes de terminal?

13
sudodus

Je ne peux pas améliorer réponse de Wildcard quand j'ai posé la même question à Unix & Linux Q & A.

Si vous voulez grep le man <program> pour un motif commençant par un trait d'union, utilisez -- avant le motif que vous spécifiez. Exemple utilisant man find:

man find | grep -- -type

Si vous voulez plus d'informations, par exemple la section entière décrivant une option, vous pourriez essayer d'utiliser sed:

$ man find | sed -n '/-mindepth/,/^$/p'
   -mindepth levels
          Do  not apply any tests or actions at levels less than levels (a
          non-negative integer).  -mindepth  1  means  process  all  files
          except the command line arguments.

Cependant, cela ne fonctionnera pas pour toutes les options que vous pourriez rechercher. Par exemple:

$ man find | sed -n '/^[[:space:]]*-type/,/^$/p'
   -type c
          File is of type c:

Pas très utile. Pire encore, pour certaines options, vous pourriez être induit en erreur en pensant que vous auriez lu le texte intégral de l’option alors que vous ne l’aviez pas fait. Par exemple, la recherche -delete omet le très important AVERTISSEMENT contenu dans un deuxième paragraphe situé sous cet en-tête.


Ma recommandation est d'utiliser un appel standard à man avec le jeu de variables d'environnement LESS. Je l'utilise assez souvent dans mes réponses sur ce site.

LESS='+/^[[:space:]]*-type' man find

Pour en savoir plus sur la façon dont cela fonctionne, voir:

LESS='+/^[[:space:]]*LESS ' man less
LESS='+/\+cmd' man less
LESS='+/\/' man less

Si vous souhaitez simplement trouver l’option rapidement et de manière interactive dans la page de manuel, apprenez à utiliser les fonctionnalités de recherche de less. Et aussi voir:

3
karel

Je voudrais y répondre de la manière la plus simple.

Une fois que vous avez ouvert la page de manuel du package à l'aide de man <package>, vous pouvez utiliser l'utilitaire de recherche pour trouver les détails d'une option en utilisant /<option>, par exemple, pour vérifier les détails de l'option -r, utilisez /-r.

2
MIB

Lorsque vous affichez des pages de manuel et recherchez en appuyant sur /, less traite actuellement votre modèle de recherche comme un expression régulière . Lors de la recherche d'options de ligne de commande, je trouve très utile de leur ajouter \b, ce qui correspond à une limite de mot . Cela saute souvent beaucoup de texte qui correspondrait, mais n’est pas ce que je cherche (ou qui, en tout cas, n’est pas ce que je veux lire en premier).

Par exemple, pour rechercher l'option -I, vous pouvez taper:

/-I\b
  • Le caractère / indique à less que vous souhaitez effectuer une recherche, comme d'autres l'ont mentionné (voir réponse de la base MIB ). Vous écririez ? au lieu de / si vous vouliez que votre recherche aille vers le haut dans la page de manuel plutôt que vers le bas.
  • -I est le texte littéral que vous recherchez.
  • \b correspond à la limite entre un caractère Word (A-Z, a-z ou _) et un caractère autre que Word, ou entre un caractère Word et son tout début ou sa fin. du texte dans lequel il se produit.

Vous devrez peut-être encore rechercher des correspondances ultérieures. Pour ce faire, appuyez sur n. Pour revenir aux matchs précédents, appuyez sur Shift+n.

Dans le cas de la recherche de -I dans la page de manuel gcc, par exemple, j'ai constaté que -I avait été apparié six fois avant le match que je cherchais, où -I l'option a été réellement documentée. En revanche, -I\b n'a été associé qu'une seule fois avant ce match.

Si vous préférez, vous pouvez utiliser \> au lieu de \b. \> ne fait que correspondre à la fin d'un mot (où un "mot" correspond à un ou plusieurs caractères Word définis ci-dessus). Si vous voulez faire correspondre le début d'un mot, vous pouvez utiliser \<. Notez cependant que cela ne fonctionne pas d'écrire quelque chose comme \<-I pour correspondre à l'option -I, car \< ne correspondrait pas aux espaces suivis de -.

2
Eliah Kagan