man - マニュアルページの表示


man コマンドmanual を読むことができます。 きちんと作られたコマンドならば man 用のマニュアルが用意されているはずです。

% man [command]

のように実行します。 man コマンドが調べるのは環境変数 MANPATH で指定されたパスだけです。 自分でソフトをインストールした場合などは .cshrc で設定してしまいましょう。

Table of Contents

manの読み方 Edit

簡単に、man の SYNOPSIS(形式) の見方を説明します。 [ ] で囲まれている部分が省略可能という意味で、囲まれていない部分は必須という意味です。 例えば、System V 系(Solarisなど)での

% man man

の場合、

SYNOPSIS
     man [ - ]  [ -adFlrt ]  [ -M path ]  [ -T macro-package ]  [
     -s section ]  name ...
     man [ -M path ]  -k keyword ...
     man [ -M path ]  -f file ...

のように表示されると思います。 つまり man の第一形式では name は必ず必須で、-M などのオプションはなくてもいいということになります。 [ -adFlrt ] は -a としてもよし、-a -d としてもよし、-ad としてもよし、のような意味になります。 また、... は複数指定可能ということを意味しています。

セクション Edit

man を読んでみると more(1) などのようにセクション番号が書かれていると思います。 これらの番号には以下のような意味があります。

(1) 一般ユーザーコマンド (cp, more など)
(2) システムコール (C言語の関数。open, fork など)
(3) システムライブラリ、関数 (C言語の関数。printf、fopen、Tck/Tk、Xlib などの関数群)
(4) デバイス・デバイスドライバ (/dev ディレクトリのファイル)
(5) ファイル形式 (uuencodeなどのファイル形式、hostsなどの書式)
(6) ゲーム等
(7) その他 (環境変数の説明、取り決め的な文書など)
(8) システム管理コマンド
(9) カーネル等情報

同じ名前のコマンドでも別物の場合もあります。そのような時はセクション番号やパスを指定して一意的に man を表示してやります。

BSD系, Linux系 Edit

セクション番号を指定するには、

% man [section] [name]

のようにします。

・・・・未完。

SystemV系(Solarisなど)*1 Edit

セクション番号を指定するには、

% man -s [section] [name]

のようにします。

他のセクションに同名のマニュアルがあるかどうかは

% man -l [name]

のようにして調べます。 例えば

% man -l cd

とすると、

cd (1)  -M /usr/man/ja
cd (1)  -M /usr/man
cd (n)  -M /usr/local/man
cd (3)  -M /usr/local/gnu/man

のように出力されます。 一番下の cd のマニュアルを見たいときは

% man -s 3 cd

とするか、

% man -M /usr/local/gnu/man cd

のようにします。 オプション -M でマニュアルを検索するパスを指定できます。 オプション -s 、 -M で指定しなかった場合は man -l で一番上に表示されたマニュアルが表示されます。

他オプション Edit

% man -k [keyword]

aproposコマンドと同等です。

% man -f [file]

whatisコマンドと同等です。

おまけ Edit

あとはちょっとした技として

% man [name] | col -b | a2ps | lpr

のようにして col コマンドを使用してエスケープシーケンスを取り除いて印刷する技があります。 man で表示されるものには太字やアンダーラインなどのエスケープシーケンスが使われているので、 印刷したい場合などはこのようにしてエスケープシーケンスを消さないとまともな表示にならないです。



*1 http://yougo.ascii24.com/gh/05/000521.html。Linux系、BSD系でもなければ後はほとんどSystem V系。
xrea