たとえば、マニュアルページはfork
システムコールセクションにあり、番号は2です。
man 2 fork
Google を使わずに Part 2 の他のコンテンツをどのように知ることができますか?
答え1
すべて一覧表示インストール済みセクションごとのマニュアルページを使用できます。まさに:
apropos -s 2 . # use an regex for apropos . means anything
apropos -s 2 -w '*' # use unix globbing for apropos
答え2
マンページは通常、にあります/usr/share/man
が、確認し、$MANPATH
次のセクションで構成します。
Section 1:
/usr/share/man/man1/
Section 2:
/usr/share/man/man2/
...
したがって、インストールされているすべてのパート2のマンページを一覧表示するには、次の手順を実行します。
ls /usr/share/man/man2/
またはより完全な:
find $(echo $MANPATH | tr ':' ' ') -path '*/man2/*'
$MANPATH
後者の場合、ディレクトリ名にスペースが含まれていると問題になります。
ほとんどのディストリビューションでは、パッケージツールを使用して利用可能なマニュアルページを確認することもできます。たとえば、Debian 派生ディストリビューションでは、apt-file
次のように使用できます。
apt-file search /man2/
答え3
このコマンドは、特定のセクションのすべての項目のソートされた名前をリストします。
man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//' | sort -u
パス名を表示するには、次のようにします。
man -aWS 1 \* | sed 's/\.[^.]*$//' | sort
これは、ワイルドカードパターン(シェルが解釈しないようにバックスラッシュを引用)man
を使用してセクション内のすべてのコマンドを取得するように指示します。一致するものをすべて見つけてページを表示するのではなく、パス名を印刷して最初のセクションを指定します。検索したい部分に変更してください。*
-a
-W
-S 1
1
このsed
コマンドはファイル拡張子を削除します。フルファイル名を表示するには、拡張子を削除してください。sort
結果を並べ替えます(-u
重複項目を削除)。
再利用を容易にするために、Bashシェル関数がここで定義されています。
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//' | sort -u; }
たとえば、これを呼び出して3番目のセクションmansect 3
の項目を表示できます。
[macOSでテスト済み。 ]
答え4
私はこれが非常に古い質問であることを知っていますが、ここに与えられた答えのどれも私には役に立ちませんでした。だから私は次のような効果を思いついた。Ubuntu18.04とアップルシステムモハーベ、10.14.6:
find $(man --path | tr ':' ' ') -type f -path '*man2*' \
-exec basename {} \; | sed 's/\..*//' | sort
クイックラン:
- Thors回答を書く:
$(man --path | tr ':' ' ')
マニュアルページの現在のパスを入手してください。 find <man paths> -type f -path '*man2*' -exec basename {} \;
man パス内のすべての一般ファイルのファイル名を取得します。sed
ファイル拡張子を削除sort
アルファベット順に。