web-dev-qa-db-ja.com

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

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

  man -f "wh"

また入れたら

  man chmod

chmodのmanページに「symbolic」という単語が含まれているので、

  man -f "symbolic"

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

つまり、Word内のコンテンツでコマンドまたはコマンドの説明を検索/検索するにはどうすればよいですか? /文字を使用してmanページを取得した後、特定の単語を見つける方法を知っていますが、検索Wordですべてのmanページを検索したいと思います。

2

-kスイッチを使用して、名前または簡単な説明にwhを含むすべてのマニュアルページを検索できます。次に、whで始まるものをgrepします。コマンドaproposman -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

マニュアルページを検索する

全文検索を実行してマニュアルページを検索することにした場合は、-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

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

1
slm

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

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

apropos symbolic | grep '^wh'

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

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

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

0
R3dkn33