wh ですべてのコマンドを検索し、man ページでキーワードの一部で検索します。

wh ですべてのコマンドを検索し、man ページでキーワードの一部で検索します。

で始まるコマンドのすべてのマニュアルページを検索したいのですwhが、次のキーワードが機能しない理由がわかりません。

  man -f "wh"

また、私が

  man chmod

のマニュアルページにはchmod「symbolic」という単語があるので、

  man -f "symbolic"

しかし、chmodコマンドは結果に表示されません。

つまり、単語内の内容でコマンドまたはコマンドの説明を検索するにはどうすればよいでしょうか。マニュアル ページを取得した後、/文字を使用して特定の単語を検索する方法は知っていますが、検索語を含むすべてのマニュアル ページを検索したいと考えています。

答え1

スイッチを使用すると、名前または短い説明のいずれかに が含まれる-kすべてのマニュアル ページを見つけることができます。次に、 で始まるものを grep で検索します。このコマンドはと同等です。whwhaproposman -k

$ man -k wh | grep "^wh"
what (1p)            - identify SCCS files (DEVELOPMENT)
whatis (1)           - display manual page descriptions
whereis (1)          - locate the binary, source, and manual page files for a command
which (1)            - shows the full path of (shell) commands.
while (n)            - Execute script repeatedly as long as a condition is met
whiptail (1)         - display dialog boxes from shell scripts
whirlwindwarp (6x)   - crazy moving stars
whline (3x)          - create curses borders, horizontal and vertical lines
whline_set (3x)      - create curses borders or lines using complex characters and renditions
who (1)              - show who is logged on
who (1p)             - display who is on the system
whoami (1)           - print effective userid
whois (1)            - client for the whois service

manページを検索する

マニュアル ページ全体をテキスト検索で調べる場合は、-Kスイッチを使用できます。これは大文字の K です。

$ man -w -K symbolic | head -10
/usr/local/share/man/man1/mimeopen.1
/usr/local/share/man/man1/mimetype.1
/usr/local/share/man/man1/ptksh.1
/usr/share/man/man1/as.1.gz
/usr/share/man/man1/atop.1.gz
/usr/share/man/man1/atopsar.1.gz
/usr/share/man/man1/attr.1.gz
/usr/share/man/man1/autoreconf.1.gz
/usr/share/man/man1/bakefilize.1.gz
/usr/share/man/man1/bash.1.gz

ただし、この方法ではマニュアル ページの名前も短い説明も表示されません。マニュアル ページが保存されているファイルの実際の名前 (通常はコマンドの名前) のみが表示されます。

答え2

man -f wh( と同義whatis) は、コマンド の短い (1 行の) 説明を表示しますwh。 フラグは、ページ全体ではなく、最初の行のみを表示するように-f指示しますman。これは、あなたが求めているものではありません。

コマンドapropos wh( と同義man -k wh) は、短い説明に文字列 が含まれるマニュアル ページを一覧表示しますwh。短い説明の検索とコマンド名のパターンを組み合わせる場合は、aproposを使用しての結果をフィルターできますgrep。ユーザー コマンド (セクション 1 など) に制限し、管理者コマンド、C ライブラリ関数などを表示しないようにするには、 を渡します-S 1。ユーザー コマンドと管理者コマンドの両方が必要な場合は、 を渡します-S 1:8

apropos symbolic | grep '^wh'

mandb (Linux で最も一般的なman実装)を使用してマニュアル ページ全体を検索するには、 -K(のK小文字ではなく大文字の) を使用します。多数のマニュアル ページがインストールされている場合は、この操作に非常に長い時間がかかることがあります。1行の説明が正規表現に一致するマニュアル ページのみに検索を制限するオプションを渡すことを検討してください。kapropos--regex

man -K -S 1:8 --regex 'change.*file' symbolic

答え3

man -k '^symbolic$'

これにより、アプリ名と、symbolic という単語が含まれるページ番号が一覧表示されます。symbolic で始まるものが必要な場合は、$ を削除してください。

関連情報