web-dev-qa-db-ja.com

manで必要な情報を見つける方法

manコマンドは、多くのプログラムのNiceマニュアルを表示しますが、より効果的に使用するにはどうすればよいですか?たとえば、man gccは以下をもたらします。

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

しかし、その一部だけが必要な場合はどうなりますか?たとえば、-Idirが記述されているセクションにジャンプする最良の方法は何ですか?

11
vico

を押してmanページを検索します / および検索文字列

manはデフォルトでビューアlessを使用しています。を押してlessで検索できます / (スラッシュ)、検索文字列を追加します。例では-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

を押す Enter キーを押し、最初の一致を取得します。

押す / (スラッシュ)および Enter もう一度キーを押し、目的のセクションが見つかるまで繰り返します。を押すこともできます n 次の試合に向けて。

       -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)

押す h 使用可能なコマンドの概要を示します。

                   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

「ヘルプツール」の詳細については、次のリンクを参照してください。

端末コマンドのヘルプを取得するにはどうすればよいですか?

13
sudodus

UnixとLinuxのQ&Aで同じ質問をしたときに Wildcardの答え を改善することはできません。

ハイフンで始まるパターンに対してgrepman <program>結果を使用する場合は、指定するパターンの前に--を使用します。 man findを使用した例:

man find | grep -- -type

オプションについて説明するセクション全体など、より多くの情報が必要な場合は、couldsedを使用してみてください。

$ 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.

ただし、これは検索するすべてのオプションで機能するわけではありません。例えば:

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

あまり役に立たない。さらに悪いことに、一部のオプションについては、実際にはそうでなかったときにオプションに関するテキスト全体を読んでしまうと誤解される可能性があります。たとえば、-deleteを検索すると、その見出しの下にあるsecond段落として含まれる非常に重要なWARNINGが省略されます。


私の推奨事項は、man環境変数が設定されたLESSの標準呼び出しを使用することです。私はこのサイトの回答で非常によく使用しています。

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

この仕組みの詳細については、以下を参照してください。

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

マニュアルページでオプションをすばやく対話的に検索する場合は、lessの検索機能の使用方法を学習してください。また、以下も参照してください。

3
karel

最も簡単な方法で答えたいと思います。

man <package>を使用してパッケージのマンページを開くと、検索ユーティリティを使用して/<option>を使用して特定のオプションの詳細を検索できます。たとえば、-rオプションの詳細を確認するには/-r

2
MIB

を押してマニュアルページを表示して検索するとき /lessは実際に検索パターンを 正規表現 として扱っています。 コマンドラインオプションを検索するとき、単語境界に一致する\bをオプションに追加すると非常に便利ですこれは、そうでなければ一致するが、私が探しているものではない(または、いずれにしても、最初に読みたいものではない)多くのテキストをスキップすることがよくあります。

たとえば、-Iオプションを検索するには、次のように入力できます。

/-I\b
  • /文字は、他の人が言及したように、検索することをlessに伝えます( MIBの答え を参照)。検索をマンページで下向きではなく上向きにしたい場合は、?の代わりに/と記述します。
  • -Iは、検索するリテラルテキストです。
  • \bは、Word文字(A-Za-z、または_)と非Word文字、またはWord文字と最初または最後との境界に一致します。発生するテキストの.

引き続き一致するものを見つける必要があるかもしれません。それを行うには、を押します n前の一致に戻るには、を押します Shift+n

たとえば、gccのマンページで-Iを検索した場合、-Iが検索されていた一致の前に-Iが6回一致したことがわかりました。オプションは実際に文書化されました。対照的に、-I\bは、その一致の前に一度だけ一致しました。

必要に応じて、\>の代わりに\bを使用できます。 \>は、Wordの最後に一致します(「Word」は、上記で定義された1つ以上のWord文字です)。 Wordの先頭を一致させたい場合は、\<を使用できます。ただし、\<-Iは空白に続いて-Iのマッチングに失敗するため、\<のようなオプションを-に一致させることはできません。

2
Eliah Kagan