EN JA
man(1)
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 全体を繰り返し指定できる。
 
コマンドや関数は、これらのパターンの組みあわせによって、起動可能な書式のすべてを網羅しているべきである。複数ある起動方法のうちの排他的なものは、場合によっては別々に示した方が良いかもしれない (このページの 書式 セクションではそのようにしている)。

man  ls
(プログラム) ls に関するページを表示する。
man -a  intro
マニュアルにある intro のページをすべて、順番に表示する。次のページに移るときに、以降の表示を中止したり、見たくないものをスキップすることもできる。
man -t alias | lpr -Pps
alias で参照されるページ (通常はシェルのマニュアルページだろう) を、 troff または nroff のデフォルト出力フォーマットに整形して、 ps という名前のプリンターにパイプしている。 groff のデフォルト出力は通常 PostScript である。 man --help とすれば、 -t オプションによって起動される整形コマンドに関する情報が得られる。
man -l -T dvi ./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 環境変数ででも、重ねて指定してかまわない。引き数をとるオプションが重なった場合は、後から指定されたものが優先される。
-l, --local-file
`local' モードを有効にする。システムのマニュアルを検索する代わりに、ローカルなマニュアルファイルを整形して表示する。マニュアルページの引き数は、正しいフォーマットを持った nroff のソースファイルであるとみなされる。 nroff ソースが圧縮されている場合は、圧縮を示す拡張子が man システムによってサポートされていれば、展開されてから処理・表示される。 cat ファイルは生成されない。 `-' が引き数に指定された場合は、標準入力から入力が与えられるとみなされる。
-L  locale , --locale= locale
man は通常、カレント・ロケールを C 関数 setlocale(3) を呼ぶことによって決定しようとする。この関数の動作は、例えば $ LC_MESSAGES や $ LANG などのような、様々な環境変数によって影響される。この値を一時的に上書きするには、このオプションを使って man に直接 locale 文字列を渡せば良い。このオプションが効力を持つのは、実際のページの検索が始まってからであることに注意すること。ヘルプメッセージなどの出力は、起動前に定まっていたロケールで出力される。
-D, --default
このオプションは、通常先頭に指定して、 man のふるまいをデフォルトにリセットする。このオプションの目的は、 $ MANOPT で指定されているかもしれないオプションをリセットすることである。この -D 以降に指定されたオプションは、通常通りの効果を持つ。
-M  path , --manpath= path
通常の代わりに用いる manpath を指定する。デフォルトでは、 man は検索パスの決定に manpath 由来のコードを用いている。このオプションは、 $ MANPATH 環境変数を上書きする。またこのオプションを指定すると、 -m オプションは無視される。
-P  pager , --pager= pager
出力に用いるページャーを指定する。デフォルトでは、 manexec /usr/bin/pager -s を用いる。このオプションは $ PAGER 環境変数を上書きする。また、このオプションは -f-k と同時に用いることはできない。
-r  prompt , --prompt= prompt
最新版の 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 を用いている場合も、おそらく指定する意味はない。
-S  list , --sections= list
引き数 list には、検索対象とするセクションをコロン区切りで指定する。検索は指定した順序でなされる。このオプションは $ MANSECT 環境変数を上書きする。
-a, --all
デフォルトでは man は検索で見つかったページのうち、もっとも適切と判断したものを一つだけ表示して終了する。このオプションを用いると、 man は検索でマッチしたすべてのファイルを表示する。
-c, --catman
このオプションは一般的な用途のためのものではなく、 catman プログラムを通してのみ用いるべきである。
-d, --debug
実際にはマニュアルページを表示せず、代わりに大量のデバッグ情報を出力する。
-e  sub-extension , --extension= sub-extension
(例えば Tcl などがそうだが) システムによっては、大きなマニュアルページのパッケージを、メインのマニュアルページ階層にインストールするようなものがある。同じ名前のページ (例えば exit(3) など) が二つ存在してしまうことを避けるために、通常 Tcl のページは l というセクションに割り当てられえいた。これは望ましくないので、ページを正しいセクションに入れ、それらに特定の「拡張」を追加することができるようになった。例えばこの場合なら exit(3tcl) のようになる。通常の動作では、 manexit(3) を exit(3tcl) より優先して表示する。この状況を調整し、目的とするページがどのセクションにあるのかをいちいち記憶しておかなくてもすむように、 mansub-extension 文字列を与えることができるようになった。この文字列は、ページが所属するパッケージを指定するものである。上記の例なら、オプションとして -e tclman に与えれば、検索対象とするページは拡張子が *tcl のものに限られるようになる。
-f, --whatis
whatis と等価。指定したマニュアルページが存在すれば、そのページの要約文を表示する。詳細は whatis(1) を見よ。
-h, --help
ヘルプメッセージを表示して終了する。
-k, --apropos
apropos と等価。マニュアルページの要約文からキーワードを検索し、マッチしたものをすべて表示する。詳細は apropos(1) を見よ。

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

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

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

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

返り値

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

環境変数

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