manコマンドのmanページ
manページ (マンページ)とは、UNIX およびUnix系 オペレーティングシステム の man システムのコンテンツであり、電子化されたドキュメント のこと。各ページは独立した文書として構成されている。ライブラリやシステムコールなどのコンピュータプログラム 、標準や慣例、抽象的概念などに関するページがある。man
コマンド を実行することでmanページを閲覧することができる。
使い方
マニュアル内のあるページを閲覧するには、以下のようなコマンドを使用する。
% man [<章番号>] <ページ名>
% man [-s <章番号>] <ページ名>
シェルのプロンプトで、たとえば "man ftp " と入力する(章番号は通常省略可能)。見やすくするため、ページャ として一般にless をman内部で用いている。
ページを文章内で指す場合 "ページ名(章番号)" という書き方をする(たとえば、ftp(1)
)。章番号は、同じ名前のページが複数の章に存在する場合、特定のページを指定するために使う。これはたとえば、システムコール の名前とコマンド の名前などが衝突する場合に必要となる。たとえば、man(1)
と man(7)
、exit(2)
と exit(3)
などがある。
多くの man のバージョンでは最近閲覧した数ページのフォーマットされた内容をキャッシュとして保存している。マニュアルファイルのパス設定は環境変数MANPATHにて定義・指定する。このパスの通っていない場所にあるマニュアルは表示されない。また、言語設定が “ja” または “japanese” になっていない場合に、日本語と英語両方のマニュアルが存在する場合は、日本語で表示されない可能性があるので注意が必要。
man コマンドのその他のオプションを知るには、
% man man
% man 5 man
というコマンドラインを入力・実行する。
歴史
UNIX Programmer's Manual は1971年 11月3日に最初に出版された[ 1] 。オンラインのmanページは1971年、ダグ・マキルロイ の命令でデニス・リッチー とケン・トンプソン が書いた。後にUNIX System III のマニュアルの主執筆者となったTed Dolottaが汎用的なtroff (en:troff ) マクロを書き、それをマニュアル向けに修正したものを使っている。当時、マニュアルページシステムによる文書のオンライン化は大きな特長と考えられていた。今日では、UNIX上のコマンドライン・アプリケーションには必ずそのmanページが付属しており、逆にmanページがないアプリケーションは品質が悪いと思われるようになった。実際、Debian プロジェクトなどでは、未だ書かれていないプログラムのmanページまで作っていた。
しかし、各アプリケーションについてひとつのページという形態は複雑で大きなアプリケーションやユーザとやりとりを行うアプリケーションには合わず、グラフィックスなども使えないフォーマット機能も時代遅れになりつつある。アプリケーションが複雑化し、ユーザーが文書がないことに文句を言わないことから、manページシステムは廃れつつあり、後継のシステムが開発されつつある。
基本的には全てのUnix系システムはmanページをサポートし続けているが、多くの場合それ以外のオンライン文書やヘルプを提供している。初期の後継システムのプロジェクトとしては、GNUプロジェクト の "info " システムがあり、これは素朴なハイパーテキスト システムであった。多くのUNIXのGUI アプリケーション(特にGNOME やKDE の開発環境を使って作られたもの)は、ユーザー向け文書としてHTML を採用し、yelp
などのHTMLビューアーをアプリケーションに内蔵することが多い。
manページのデフォルトのフォーマットはtroff (en:troff ) で あり、troffマクロのman(見た目重視)またはシステムによってはmdoc(意味論重視)を使っている。これによりmanページはPostScript やPDF に変換でき、様々なフォーマットで表示・印刷可能となっている。
最近のLinuxディストリビューション のmanパッケージには man2html というコマンドがあり、manページをHTMLブラウザで閲覧することも可能である。
2010年、OpenBSD はtroffの代わりにmandoc (英語版 ) をmanページのフォーマットに採用した。mandocはmanページ専用のコンパイラ/フォーマッタで、PostScript 、HTML 、XHTML 、端末向けの出力を自前で行える。
マニュアルの章立て
マニュアルは一般に8つの章に分かれており、以下のように構成されている(BSD 系とLinux での章立て)。
UNIX System V では章立てが少し異なっている。
いくつかのシステムではマニュアルに以下のような章もある。
章は後ろに文字を付与することでさらに分割されている。例えば、3CはCライブラリ、3Mは数学ライブラリなどといった具合である。これに関連して、8章のシステム管理コマンドを 1章の一部として1Mで表すこともある。以下のような文字は章を横断して同じ意味で使われる。
レイアウト
manページのレイアウトは、単純なテキストとして表示するのに最適化され、何らかの強調やフォント制御も可能ならば行われる。1つのmanページ内の節構成は以下の通りで、常に以下の順序で配置される。
NAME(名前) - コマンドや関数の名前とその機能を一行で説明する文。
SYNOPSIS(書式) - コマンドの場合、コマンド行のオプションを含めた形式定義。関数の場合、定義のあるヘッダファイルの指定とプロトタイプ宣言形式の定義。
DESCRIPTION(説明) - コマンドや関数についての具体的な説明。
EXAMPLES(例) - 使用法の具体例。
SEE ALSO(関連項目) - 関連するコマンドや関数のリスト。
他にも節はあるが、あらゆるマニュアルで共通化されているわけではない。例えば、OPTIONS、EXIT STATUS、ENVIRONMENT、KNOWN BUGS、FILES、AUTHOR、REPORTING BUGS、HISTORY、COPYRIGHTなどがある。
manページの書き方
macOS やLinux では、man とmdoc という2つのgroff マクロのパッケージがmanページ執筆に使える。man の方が古く、UNIXの従来からのフォーマットのmanページを書くことができる。一方mdoc は新しく、文書の意味論的構造をよくサポートしている。macOSおよびLinuxでこれらの使い方を知るには、man groff_man
およびman groff_mdoc
というコマンドを実行すればよい。
あるいは、システム内にある個々のmanページのソースコード を見て真似をすればmanページを書ける。macOSとLinuxの場合、通常/usr/share/man
にmanページのソースファイルがある。ソースファイルの場所は、例えばコマンド名がcommand
ならばman -w command
を実行することで得られる。
manページはDocBook やLinuxDoc (英語版 ) フォーマットで書くこともでき、それをgroffにより変換すればよい。
manページの変換
オンラインで(man
コマンドを使って)manページを見る以外に、manページをPDF に変換して印刷することもできる。macOSとLinuxでは次のように入力する(command
を適当なコマンド名に置き換えること)。
groff -mandoc command.1 >command.ps
gs -dNOPAUSE -dBATCH -sDEVICE= pdfwrite -sOutputFile= command.pdf command.ps
1行目でmanページをPostScript フォーマットでエクスポートし、2行目でPDFに変換している。これはman フォーマットでもmdoc フォーマットでも機能する。場合によっては、等幅フォント を使って印刷した方が読みやすい場合もある。その場合は上記のgroff
コマンドの-mandoc
オプションの次に-f C
オプションを追加すればよい。
mandoc (英語版 ) フォーマッタは各種ファイルフォーマットで出力でき、PDFフォーマットも直接サポートしている。
mandoc -Tpdf command.1 >command.1.pdf
mandoc -Tps command.1 >command.1.ps
mandoc -Txhtml command.1 >command.1.xhtml
脚注
外部リンク
ファイルとファイルシステム管理 プロセス管理 ユーザ管理/環境 テキスト処理 シェル ビルトイン通信 検索 マニュアル ソフトウェア開発 その他
この記事は2008年11月1日以前にFree On-line Dictionary of Computing から取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。