Scroll to navigation

man(1) Manual pager utils man(1)

名前

man - オンラインリファレンスマニュアルのインターフェース

書式 aa

man [-c|-w|-tZT device] [-adhu7V] [-m system[,...]] [-L locale] [-p string] [-M path] [-P pager] [-r prompt] [-S list] [-e extension] [[section] page ...] ...
man -l [-7] [-tZT device] [-p string] [-P pager] [-r prompt] file ...
man -k [-M path] keyword ...
man -f [-M path] page ...

説明

man はシステムのマニュアルページャーである。 man に与えられる引き数 page は、通常はプログラムやユーティリティ、関数などの名前である。 これらの引き数それぞれに対応する マニュアルページ が検索・表示される。 section が指定されると、 man はマニュアルを検索する対象をそのセクションに限定する。 デフォルトの動作では、すべてのセクションを既定の順序で検索し、 最初に見つかった page だけを表示する。複数のセクションに同じ名前の page が存在する場合でも、表示されるのは最初の一つだけとなる。

以下の表にマニュアルの section 番号を示す。それぞれの section に、どのようなページが含まれるかもあわせて示す。

1 実行プログラムまたはシェルのコマンド
2 システムコール (カーネルが提供する関数)
3 ライブラリコール (システムライブラリに含まれる関数)
4 特殊なファイル (通常 /dev に置かれているもの)
5 ファイルのフォーマットと約束事。例えば /etc/passwd など
6 ゲーム
7 マクロのパッケージとその約束事。例えば man(7), groff(7) など
8 システム管理用のコマンド
9 カーネルルーチン [非標準]
n 新しいもの [最近では使われない]
l システムローカルなもの [最近では使われない]
p パブリックなもの [最近では使われない]
o 古いもの [最近では使われない]

それぞれのマニュアルページは、いくつかの章からなる。

それぞれには以下のような名前がついている。 名前 (NAME), 書式 (SYNOPSIS), 説明 (DESCRIPTION), オプション (OPTION), ファイル (FILES) , 関連項目 (SEE ALSO), バグ (BUGS), 著者 (AUTHOR)

書式 の章には以下のような形式が用いられている。 他の章でも同様のルールを用いると良い。

ボールド体 (bold) そのままタイプする。
イタリック体 (italic) 適切な引き数に置き代える。
[-abc] [ ] 内部の引き数はすべて省略できる。
-a|-b | で区切られたオプションは同時には指定できない。
argument ... argument は繰り返し指定できる。
[expression] ... [ ] 内部の expression 全体を繰り返し指定できる。

コマンドや関数は、これらのパターンの組みあわせによって、起動可能な書式の すべてを網羅しているべきである。複数ある起動方法のうちの排他的なものは、 場合によっては別々に示した方が良いかもしれない (このページの 書式 セクションではそのようにしている)。

(プログラム) ls に関するページを表示する。
man -a intro
マニュアルにある intro のページをすべて、順番に表示する。次のページに移るときに、以降の表示 を中止したり、見たくないものをスキップすることもできる。
man -t alias | lpr -Pps
alias で参照されるページ (通常はシェルのマニュアルページだろう) を、 troff または nroff のデフォルト出力フォーマットに整形して、 ps という名前のプリンターにパイプしている。 groff のデフォルト出力は通常 PostScript である。 man --help とすれば、 -t オプションによって起動される整形コマンドに関する情報が得られる。
man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi
このコマンドは nroff ソースのマニュアルページ ./foo.1x.gz を展開して、 デバイス非依存 (dvi) なファイルにフォーマットする。 -T オプションによって、フォーマットの結果は stdout にページャーなしで出力されているので、この場合リダイレクションが 必要である。この出力結果は xdvi のようなプログラムで見ることができる。また dvips のようなプログラムを用いれば、さらに PostScript に変換することも できる。
man -k printf
キーワード printf で、マニュアルページの要約文とページ名を検索し、 マッチした結果を表示する。
man -f smail
smail と言う名前のマニュアルページを探し、 見つかったものそれぞれに対して要約文を表示する。

概要

man には多くのオプションが存在し、ユーザーに可能な限りの柔軟性を提供してい る。検索パスやセクションの順番、出力プロセッサ、他の振る舞いや動作など が、以下に詳細に述べられている。

また man の動作に影響を及ぼす環境変数も数多く存在する。 「万能」な環境変数である $MANOPT を用いれば、コマンドラインと同じ形式の文字列を設定することもできる。 ただしオプションの引き数の一部として用いられるスペースは、 すべてエスケープする (バックスラッシュを前置する) 必要がある。 man は、 $MANOPT をコマンドラインの前に解釈する。引き数を必要とするオプションに関して は、同じものがコマンドラインにも存在すれば、コマンドラインの方が優先さ れる。 $MANOPT に設定されたオプションをすべてリセットするには、コマンドラインオプション の最初に -D を指定すればよい。 これによって man は一時的に $MANOPT の内容を「忘れる」が、環境変数の内容自体は有効なまま残る。 man_db パッケージのユーティリティ群の動作は、 index データベースキャッシュによって、非常に効率化されている。 これらのキャッシュには、各マニュアルページのファイルシステムでの位置と そのページの whatis (そのページの要約) が保持されている。 man の仕事の一つは、このキャッシュの整合性を保証することである。 これまで用いられていた whatis テキストデータベースでは、手動でソフトウェアを動作させて更新作業を行う 必要があったわけだが、この新しいデータベースキャッシュによって、これは 必要なくなった。また、毎回ファイルシステムを検索して必要なマニュアルペー ジを探す必要がなくなったので、 man の動作が速くなった。

mandb によって作成された index データベースが、特定のマニュアルページ階層 (hierarchy) に存在しない 場合でも、 man は要求されたマニュアルページの検索を続ける。ただしその階層の中では ファイル名の展開 (glob) が必要となる。 whatisaproposindex を見つけられない場合、それらは従来形式の whatis データベースを代わりに用いて、そこから情報を引きだそうとする。 `user' マニュアルページ階層には、「その場」で生成された index キャッシュが含まれることになるだろう。

これらのユーティリティでは、圧縮された nroff ソースファイルも扱うこと ができる。デフォルトでは、拡張子が .Z, .z, .gz のファイルが利用できる。 またデフォルトでは、生成された cat ページはすべて gzip を用いて圧縮される。 /usr/man/usr/X11R6/man のような、 `global' なマニュアルページ階層では、 それぞれ対応する cat ページの階層が存在するであろう。 従来は、 cat ページは man ページと同じ階層の下に置かれていた。 しかし Linux File System Standard (FSSTND) に記述されているような理由から、 cat ページは他の場所に置く方が良い かもしれない。こうしたい場合の方法については、 manpath(5) を読んで欲しい。理由に関しては FSSTND 文書を参照のこと。

このパッケージでは、国際化をサポートしている。 locale の機能を用いることによって、ネイティブな言語のマニュアルページにアクセ スすることができる (もちろんシステムに存在していれば、であるが)。 この機能を有効にするには、 $LC_MESSAGES, $LANG のいずれかか、他の (システム依存の) 環境変数を、使用している 言語のロケールに設定する必要がある。通常言語ロケールは POSIX 1003.1 に基づいたフォーマットで指定する:

<language>[_<territory>[.<character-set>[,<version>]]]

要求したページに対して、使用している locale のものが存在すれば、そのページが標準のページ (通常はアメリカ英語) の 代わりに表示される。

このパッケージでは、国際化されたメッセージカタログも用いることができ、 上記と同様の方法で有効にできる (もちろんカタログが存在すれば、だが)。 このパッケージに、あなたのネイティブな言語に対応したマニュアルページ やメッセージカタログがなく、これを追加したいと思う人は、著者に連絡して 欲しい。このような努力をまとめたいと思っている。

このマニュアルページャーで用いることのできる、その他の機能や拡張については、 このパッケージに付属しているドキュメントを読んで欲しい。

デフォルト

manindex データベースキャッシュを検索して、要求されたマニュアルページを見つけよ うとする。これに失敗すると、キャッシュの整合性のチェックが行われ、デー タベースがファイルシステムと正しく対応していることを確認する。 最初にキャッシュを生成したあとは、通常 mandb を実行する必要はない (ただしキャッシュが壊れた場合は別である)。

マニュアルページの位置が決定すると、これに対してすでに整形済みの `cat' ファイルが存在するかどうか、これが nroff ファイルよりも新しいかどうか がチェックされる。両方とも真である場合は、この整形済みファイルが (通常 は) 伸長されてからページャーで表示される。ページャーは色々な方法で指定 できる。何も指定しなければデフォルトのものが用いられる (詳細はオプション -P の部分を参照のこと)。 cat がない場合、あるいは nroff ファイルよりも古い場合は、 nroff がいろ いろなフィルタプログラムで整形されてから、その場で表示される。

cat ファイルが作成できる (対応する cat ディレクトリが存在していて、書 き込み権限がある場合) には、 man はバックグラウンドで cat ファイルを圧縮して保存する。

フィルタはいろいろな方法で指定できる。まず、コマンドラインオプション -p または環境変数 $MANROFFSEQ による指定ができる。 -p オプションも環境変数も指定されていない場合は、nroff ファイルの先頭行がプリ プロセッサ文字列 (preprocessor string) として解釈される。プリプロセッ サ文字列として有効なものであるためには、先頭行は以下のようなものでなけ ればならない。

'\" <string>

ここで string は、以下の -p オプションの部分で記述されている文字の任意の組み合わせである。

上記のいずれの手法も用いられず、フィルタの情報が与えられなかった場合は、 デフォルトのセットが用いられる。

整形プロセスのパイプラインは、フィルタ群と基本整形プログラム (nroff または [tg]roff + オプション -t) によって構成され、これが実行される。 あるいは、実行可能なプログラム mandb_nfmt (または mandb_tfmt-tオプション) が man 階層ツリーのルートにある場合は、これが代わりに実行される。 このプログラムはマニュアルのソースファイルとプリプロセッサ文字列とを 引き数に取る。省略可能であるが -T によるデバイス指定を行うこともできる。

オプション

引き数を取らないオプションは、コマンドラインでも $MANOPT 環境変数ででも、重ねて指定してかまわない。 引き数をとるオプションが重なった場合は、 後から指定されたものが優先される。

`local' モードを有効にする。システムのマニュアルを 検索する代わりに、ローカルなマ ニュアルファイルを整形して表示する。 マニュアルページの引き数は、正しいフォーマットを持った nroff のソースファイルであるとみなされる。 nroff ソースが圧縮されている場合は、圧縮を示す拡張子が man システムによってサポー トされていれば、展開されてから処理・表示される。 cat ファイルは生成されない。 `-' が引き数に指定された場合は、 標準入力から入力が与えられるとみなされる。
man は通常、カレント・ロケールを C 関数 setlocale(3) を呼ぶことによって決定しようとする。この関数の動作は、例えば $LC_MESSAGES や $LANG などのような、様々な環境変数によって影響される。 この値を一時的に上書きするには、このオプションを使って man に直接 locale 文字列を渡せば良い。 このオプションが効力を持つのは、実際のページの検索が始まってからである ことに注意すること。ヘルプメッセージなどの出力は、起動前に定まっていた ロケールで出力される。
このオプションは、通常先頭に指定して、 man のふるまいをデフォルトにリセットする。このオプションの目的は、 $MANOPT で指定されているかもしれないオプションをリセットすることである。 この -D 以降に指定されたオプションは、通常通りの効果を持つ。
通常の代わりに用いる manpath を指定する。デフォルトでは、 man は検索パスの決定に manpath 由来のコードを用いている。このオプションは、 $MANPATH 環境変数を上書きする。またこのオプションを指定すると、 -m オプションは無視される。
出力に用いるページャーを指定する。デフォルトでは、 manexec /usr/bin/pager -s を用いる。 このオプションは $PAGER 環境変数を上書きする。また、このオプションは -f-k と同時に用いることはできない。
最新版の less がページャーに用いられている場合には、 manless のプロンプトやオプションを設定しようとする。 デフォルトは以下のようなものである。

 Manual page name(sec) line x

ここで name はマニュアルページの名前、 sec はセクション、 x は現在の行番号である。 デフォルトのオプションは -six8 である。これは環境変数 $LESS を通して設定される。実際のデフォルトは locale の選択に依存する。

-r を文字列とともに指定すると、デフォルトを上書きできる。 使用している less がデフォルトのオプションを受け付けなかったり、 プロンプトを変更したい場合に、このオプションを用いる必要があるだろう。 文字列に $MAN_PN というテキストを入れると、現在のマニュアル名と、セクションを `(' と `)' で括ったものとに展開される。 デフォルトの出力となるような文字列は、以下のように表現できる。

\ Manual\ page\ \$MAN_PN\ ?ltline\ %lt?L/%L.:
byte\ %bB?s/%s..?\ (END):?pB %pB\\%..

ここで二行に分割されているのは、単に可読性のためである。これらの意味に 関しては less(1) のマニュアルページを見ること。このプロンプト文字列は、まずシェルによって 解釈される。 プロンプト中に存在するダブルクォート、バッククォート、バックスラッシュ は、すべてバックスラッシュを前置してエスケープしなければならない。プロンプ ト文字列はエスケープされた $ で終わり、これ以降は less に与える追加オ プションになる。デフォルトでは、 man-ix8 をオプションとして指定する。

-7, --ascii
純粋な ascii(7) コードで記述されたマニュアルページを 7 ビット端末 (や端末エミュレータ) で読む場合、 GNU nrofflatin1(7) デバイス表示を用いると、文字によっては正しく表示されない可能性がある。 このオプションを用いると、純粋な ascii のマニュアルページを、 latin1 デバイスでも ascii で表示することができるようになる。 ただしこれは latin1 テキストを変換するわけではない。以下の表は、行われる変換の様子を 示すものである。

Description Octal latin1 ascii
continuation hyphen 255 ­ -
bullet (middle dot) 267 o
acute accent 264 ´ '
multiplication sign 327 × x

latin1 カラムの表示が正しい場合は、あなたが現在使っている端末は latin1 文字向けに設定されているので、このオプションは必要ない。 latin1ascii カラムが同一である場合は、あなたは現在このページをこのオプションで 見ているか、あるいは man がこのページの整形に latin1 デバイスの指定を用いていないことになる。 latin1 カラムが空であるか、変な表示になっている場合は、マニュアルページを見る 場合にはこのオプションを指定する必要がある。

このオプションは -t, -T, -Z オプションを用いている場合は無視される。また GNU 以外の nroff を用いている場合も、おそらく指定する意味はない。

引き数 list には、検索対象とするセクションをコロン区切りで指定する。検索は 指定した順序でなされる。このオプションは $MANSECT 環境変数を上書きする。
デフォルトでは man は検索で見つかったページのうち、もっとも適切と判断したものを一つだけ 表示して終了する。このオプションを用いると、 man は検索でマッチしたすべてのファイルを表示する。
このオプションは一般的な用途のためのものではなく、 catman プログラムを通してのみ用いるべきである。
実際にはマニュアルページを表示せず、代わりに大量のデバッグ情報を出力す る。
(例えば Tcl などがそうだが) システムによっては、大きなマニュアルページのパッケージを、 メインのマニュアルページ階層にインストールするようなものがある。 同じ名前のページ (例えば exit(3) など) が二つ存在してしまうことを避けるために、通常 Tcl のページは l というセクションに割り当てられえいた。 これは望ましくないので、ページを正しいセクションに入れ、それらに特定の 「拡張」を追加することができるようになった。例えばこの場合なら exit(3tcl) のようになる。 通常の動作では、 manexit(3)exit(3tcl) より優先して表示する。 この状況を調整し、目的とするページがどのセクションにあるのかをいちいち 記憶しておかなくてもすむように、 mansub-extension 文字列を与えることができるようになった。この文字列は、ページが 所属するパッケージを指定するものである。上記の例なら、オプションとして -e tclman に与えれば、検索対象とするページは拡張子が *tcl のものに限られるようになる。
whatis と等価。指定したマニュアルページが存在すれば、そのページの要約文を表示する。 詳細は whatis(1) を見よ。
ヘルプメッセージを表示して終了する。
apropos と等価。マニュアルページの要約文からキーワードを検索し、 マッチしたものをすべて表示する。 詳細は apropos(1) を見よ。

-m system[,...], --systems=system[,...]

現在のシステムから、他のオペレーティングシステムについてのマニュアルに アクセスできる場合には、このオプションをつけるとそれらのマニュアルが 検索される。 NewOS のマニュアルページを検索する場合には、 -m NewOS のようなオプションを指定する。

system には複数のオペレーティングシステムをコンマで区切った形式で指定できる。 ネイティブのオペレーティングシステムの whatis 記述を検索の対象に含めるためには、システム名 man を引き数文字列に加える。 このオプションは $SYSTEM 環境変数を上書きする。

nroff または troff/groff の前に実行するプリプロセッサのシーケンスを指定する。 すべてのインストール環境で、以下すべてのプリプロセッサが使えるわけではない。 プリプロセッサと、それを指定する文字のいくつかを以下に挙げる。 eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r) このオプションは $MANROFFSEQ 環境変数を上書きする。 zsoelim は、常に他のプリプロセッサすべてに先立って実行される。
index データベースキャッシュは、通常「その場」で更新される。つまり、キャッシュ の整合性を保つために mandb を定期的に実行する必要はない。もし選択したマニュアルページが キャッシュに存在しなかった場合や、 -a オプションが指定された場合には、 man は「ディレクトリレベル」での整合性チェックを行い、キャッシュがファイル システムを正しく反映したものになっていることを確認する。 マニュアルページの検索に先立ち、「i-ノードレベル」での整合性チェック を行いたい場合は、このオプション -u を指定する。
マニュアルページの整形と、標準出力への表示に /usr/bin/groff -mandoc を用いる。 -T-Z オプションの指定時に、このオプションを指定する必要はない。

-T device, --troff-device [=device]

このオプションは groff (あるいは他の troff) の出力を、デフォルトから用いるデバイスにあわせて変更するために用いられる。 -t が暗黙のうちに指定される。例としては (Groff-1.09 でのもの)、 dvi, latin1, X75, X100 などが挙げられる。
grofftroff を実行し、その後適切なポストプロセッサを用いて選択したデバイスに応じた 出力を生成する。もし /usr/bin/groff -mandocgroff であるならば、このオプションは groff に渡されて、ポストプロセッサの利用を抑制する。 -t が暗黙のうちに指定される。
実際にはマニュアルページを表示せず、整形・表示されることになるファイル の位置を表示する。複数のファイルが表示されることもある。ファイルが cat ファイルの場合は、ソースである nroff ファイルの位置も表示される。
バージョンと著者に関する情報を表示する。

返り値

0
プログラムの実行に成功した。
1
使用法、文法、設定ファイルのいずれかにエラーがある。
2
実行時エラー。
3
子プロセスの返り値が非ゼロだった。
16
少なくとも、ページ、ファイル、キーワードのどれか一つが存在しないか、マッ チしなかった。

環境変数

$MANPATH が設定されている場合には、その値がマニュアルページの検索パスとして用 いられる。
$MANROFFSEQ が設定されている場合には、その値は各々のマニュアルページを処理 するプリプロセッサのセットを定義する。デフォルトのプリプロセッサの セット はシステムによって異なる。
$MANSECT が設定されている場合には、その値はセクションのリスト (コロン区切り) と して扱われ、マニュアルのどのセクションを検索するかを決定する際に用いら れる。セクションは指定された順序で検索される。
$PAGER が設定されている場合には、その値がマニュアルページを表示するプログラム の名前として用いられる。デフォルトでは exec /usr/bin/pager -s が用いられる。
$SYSTEM 環境変数が設定されている場合には、 -m string オプションと同じ効果を持つ。 string が $SYSTEM の内容である。
$MANOPT が設定されている場合には、その内容が man のコマンドラインに先立って解釈される。形式はコマンドラインのものと同じ である。 man に影響する他のすべての環境変数には、同じ効果を持つコマンドラインオプション が存在し、したがって $MANOPT に記述することができるので、これらの環境変数はいずれ使用されなくなる だろう。 オプションの引き数の一部として解釈させたいすべてのスペースは、エスケープ する必要があることに注意すること。
システムと実装に依存するが、 $LANG と $LC_MESSAGES のどちらか、あるいは両方は、カレントロケールの指定に用いられる。 man は自分自身のメッセージを、そのロケールで出力する (可能な場合)。 正確な内容は setlocale(3) を見よ。

ファイル

/etc/manpath.config
man_db の設定ファイル。
/usr/man
global なマニュアルページの階層。
/usr/man/index.(bt|db|dir|pag)
従来形式の、 global なデータベースキャッシュの インデックス。
/var/catman/index.(bt|db|dir|pag)
新しい (FSSTND 準拠の)、 global なデータベースキャッシュのインデッ クス。
/usr/man/mandb_nfmt
ある階層に専用の整形スクリプトを用意する場合の例。 nroff ベースのものになっている。
/usr/man/mandb_tfmt
ある階層に専用の整形スクリプトを用意する場合の例。 [tg]roff-t と共に用いるものになっている。

関連項目

mandb(8), manpath(1), manpath(5), apropos(1), whatis(1), catman(8), less(1), nroff(1), troff(1), groff(1), zsoelim(1), setlocale(3), ascii(7), latin1(7), FSSTND

履歴

1990, 1991 - オリジナルの著者は John W. Eaton (jwe@che.utexas.edu) で あった。

Dec 23 1992: Rik Faith (faith@cs.unc.edu) が Willem Kasdorp (wkasdo@nikhefk.nikef.nl) のバグフィックスを当てた。

April 30th, 1994 - July 12th 1995: Wilf. (G.Wilford@ee.surrey.ac.uk) が何人かの人々の助力のもと、このパッ ケージをメンテナンスしている。

July 12th, 1995 2.3.10