web-dev-qa-db-ja.com

アプリケーションの利用可能なmanページのセクションを一覧表示する

Manページのセクションについて考えています1 =ユーザーコマンド2 =システムコールなど。

man 1 geditman 2 geditman 3 geditなどのようなものを実行する以外に、どのセクションを読み取ることができるかを教えてくれる方法はありますか?

6
Oscalation

1つのオプション:

apropos fork

正確な単語に制限するには:

apropos -e fork

または、aproposはデフォルトでregexを使用します。

apropos "^fork$"

または、man -kの代わりにapropos

詳細については、manページでaproposおよびmanを確認してください。

5
Runium

少なくともman-dbmanを使用:

$ man -f open
open (2)             - open and possibly create a file
open (1)             - start a program on a new virtual terminal (VT).
open (3tcl)          - Open a file-based or command pipeline channel
open (3Perl)         - Perl pragma to set default PerlIO layers for input and output

と同じ:

$ whatis open
open (2)             - open and possibly create a file
open (1)             - start a program on a new virtual terminal (VT).
open (3tcl)          - Open a file-based or command pipeline channel
open (3Perl)         - Perl pragma to set default PerlIO layers for input and output

または、manページのパスを取得するには:

$ man -wa open
/usr/share/man/man1/openvt.1.gz
/usr/share/man/man3/open.3tcl.gz
/usr/share/man/man2/open.2.gz
/usr/share/man/man3/open.3Perl.gz

特定のトピックに関するすべてのマニュアルページを読むには、man -aが非常に一般的です。

ただし、実装によっては、各マニュアルページに対してページャーの1つのインスタンスを実行する(次のマニュアルページに到達するためにページャーを終了する必要があり、戻ってこない)ことに注意してください。呼び出し(たとえば、lessページャーで:n:pを使用してページ間を移動します)。

10

私はパッケージマネージャーを使用して、この種のことを行っています。

Archlinuxの場合:

pacman -Ql gedit | grep /man/

RH/Fedora:

dnf repoquery -l gedit | grep /man/

Debian/Ubuntu/...

dpkg-query -L gedit | grep /man/
2
joepd

manが「man-db」パッケージからの場合は、これを呼び出して、マニュアルの各セクションの「イントロ」ページを表示できます。

_man -a intro
_

manページデータベースの場所がわかっている場合は、すべてのセクションディレクトリ(man1、man2、man3など)が一覧表示されます。

_(cd /usr/share/man; ls -d man*)
_

また、_man-db_パッケージのmanを使用している場合は、_man -w_を呼び出すことにより、マニュアルページデータベースの場所を確認できます(このオプションは、FreeBSD manにも存在しますが、インストールしていませんしたがって、同じ出力が得られるかどうかはわかりません)。たとえば、Debian 8(jessie)の場合:

_$ man -w
/usr/local/man:/usr/local/share/man:/usr/share/man
_

_man -w_を使用すると、すべてのmanデータベースディレクトリで使用可能なすべてのセクション番号を一覧表示する簡単なスクリプトは次のようになります。

_#!/bin/sh
IFS=":$IFS"
for i in $(man -w)
do
    (
        cd "$i"
        for j in man*
        do
            if [ -d "$j" ]
            then
                echo "${j#man}"
            fi
        done
    )
done | sort -u
_
2
RobertL

次のコマンドは、特定のコマンドで使用可能なすべてのマニュアルページセクションを一覧表示します。

find /usr/share/man -name "<command>.*.gz" | egrep -o '[0-9]' | sort -u
1
Paul Calabro