Manページのセクションについて考えています1 =ユーザーコマンド、2 =システムコールなど。
man 1 gedit
、man 2 gedit
、man 3 gedit
などのようなものを実行する以外に、どのセクションを読み取ることができるかを教えてくれる方法はありますか?
1つのオプション:
apropos fork
正確な単語に制限するには:
apropos -e fork
または、aproposはデフォルトでregexを使用します。
apropos "^fork$"
または、man -k
の代わりにapropos
。
詳細については、manページでaproposおよびmanを確認してください。
少なくともman-db
のman
を使用:
$ 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
を使用してページ間を移動します)。
私はパッケージマネージャーを使用して、この種のことを行っています。
Archlinuxの場合:
pacman -Ql gedit | grep /man/
RH/Fedora:
dnf repoquery -l gedit | grep /man/
Debian/Ubuntu/...
dpkg-query -L gedit | grep /man/
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
_
次のコマンドは、特定のコマンドで使用可能なすべてのマニュアルページセクションを一覧表示します。
find /usr/share/man -name "<command>.*.gz" | egrep -o '[0-9]' | sort -u