.jpg/440px-Sed_stream_editor_(cropped).jpg)
マニュアルページ(man page )は、UnixおよびUnix系オペレーティングシステムで見られるソフトウェアドキュメントの一種です。扱われるトピックには、プログラム、システムライブラリ、システムコール、そして場合によってはローカルシステムの詳細が含まれます。ローカルホスト管理者は、特定のホストに関連付けられたマニュアルページを作成およびインストールできます。エンドユーザーは、コマンドに続けてドキュメントが必要な項目名を入力することで、マニュアルページを呼び出すことができます。これらのマニュアルページは通常、リアルタイム作業を行うエンドユーザー、プログラマー、管理者によって要求されますが、印刷用にフォーマットすることもできます。 man
デフォルトでは、は通常、マクロ パッケージやmandocmanなどの書式設定プログラムを使用し、またやなどのターミナル ページャープログラムも使用して、その出力をユーザーの画面に表示します。 nroffmoreless
マニュアルページは、インターネットアクセスを必要としないコマンドであるにもかかわらず、しばしばオンライン形式のソフトウェアドキュメントと呼ばれます[ 1 ] 。これは、マニュアルページが印刷された形式でのみ閲覧可能であるだけでなく、コマンドラインインターフェースのコマンドやグラフィカルユーザーインターフェースのマニュアルページビューアからも閲覧可能であるためです。環境変数MANPATHは、多くの場合、様々なドキュメントページを検索するためのディレクトリパスのリストを指定します。マニュアルページの歴史は、印刷されたドキュメントが一般的だった時代にまで遡ります。 manman
歴史


一部のソフトウェアでは、1987年時点で、ドキュメントは印刷されたページ形式で、ユーザーが施設内で利用できるようになっていました。[ 2 ]一部の施設では、ドキュメントはスチール製のバインダーにまとめられ、テーブルやカウンターにボルトで固定された一体型のスチール製閲覧ラックに収納されていました。ページはモジュール情報の更新、交換、正誤表、補遺ごとに整理されていました。マイクロコンピュータに関する一般的なマニュアルは、定期的に更新されるルーズリーフバインダーで販売されていると宣伝されていました。[ 3 ]
Unix の歴史の最初の2年間は、ドキュメントは存在しなかった。[ 4 ] Unix Programmer's Manual は、 1971年11月3日に初めて出版された。最初の実際の man ページは、 1971年にマネージャのDoug McIlroyの強い要望により、Dennis RitchieとKen Thompsonによって書かれた。manページとは別に、Programmer's Manual には一連の短い論文も収録されており、その中にはチュートリアル(Unix の一般的な使用方法、Cプログラミング言語、 Yaccなどのツールなど) やオペレーティングシステムの機能の詳細な説明などがあった。マニュアルの印刷版は当初1冊のバインダーに収まっていたが、PWB/UNIXおよびResearch Unixの第7版の時点で2巻に分割され、印刷された man ページが第1巻となった。[ 5 ]
後期版のドキュメントは、初版のマニュアルページの簡潔さを踏襲した。リッチーは第3版の序文に「はじめに」のセクションを追加し、ロリンダ・チェリーは第6版と第7版に「パープルカード」というポケットマニュアルを提供した。 [ 4 ]ソフトウェアのバージョンはマニュアルの改訂版にちなんで命名された。例えば、 『 Unixプログラマーズマニュアル』の第7版は、Unix第7版、つまりバージョン7に付属していた。 [ 6 ]
第4版では、マニュアル ページはtroff組版パッケージ[ 4 ]とそのマクロ セット(マニュアル-manの第 6 版と第 7 版の間で完全に改訂されましたが[ 5 ]、それ以降は大幅に変更されていません) を使用してフォーマットされました。当時、マニュアル ページ システムを通じてオンライン ドキュメントを利用できることは大きな進歩と見なされていました。今日でも、事実上すべての Unix コマンドライン アプリケーションにはマニュアル ページが付属しており、多くの Unix ユーザーはプログラムにマニュアル ページがないことを品質の低さや不完全さの兆候と認識しています。実際、Debianなどの一部のプロジェクトでは、マニュアル ページがないプログラムのために特別な努力を払っています。4.4BSD の最近の後継システムも、システム ドキュメントの主要な形式の 1 つとしてマニュアル ページを配布しています(古いマクロを新しい に置き換えました)。 -man-mdoc
manコマンドのman-db版には、00:30に実行すると「gimme gimme gimme」を返すという隠しイースターエッグがありました(これはABBAの曲「 Gimme! Gimme! Gimme! (A Man After Midnight) 」への言及です) 。これは2011年に導入されましたが[ 7 ]、最初は制限され[ 8 ] 、最終的に発見されて2017年に削除されました[ 9 ] 。 [ 10 ]
書式設定

マニュアルページのデフォルトフォーマットはtroffで、マクロパッケージman (外観重視)または mdoc (意味重視)のいずれかを使用します。これにより、マニュアルページをPostScript、PDF 、その他様々な形式で表示または印刷することが可能になります。
一部のUnixシステムにはman2htmlコマンドのパッケージがあり、これを使用するとHTMLブラウザを使ってmanページを閲覧できます。groffとman-dbを搭載したシステムでは、代わりに高品質のネイティブHTML出力(man --html)を使用する必要があります。GNU EmacsプログラムWoMan(「WithOut man」に由来)は、エディタからmanページを閲覧できます。[ 11 ]
2010年、OpenBSDはマニュアルページのフォーマットにtroffを廃止し、代わりにPostScript、HTML、XHTML 、端末出力をネイティブサポートするマニュアルページ専用のコンパイラ/フォーマッタであるmandocを導入しました。mandocは、マニュアルページで使用されるtroffのサブセット、特にmdocマクロを使用するもののみをサポートすることを目的としています。
オンラインサービス
さまざまな Unix 系システムのマニュアル ページへのオンライン アクセスを提供する Web サイトは数多くあります。
2013年2月、BSDコミュニティは新しいオープンソースのmdoc.suサービスを立ち上げました。このサービスは、*BSDマニュアルページ用の独自のnginxベースの決定論的URL短縮サービスを通じて、主要な現代のBSDプロジェクトのman.cgiスクリプトへのアクセスを統合し、短縮しました。[ 12 ] [ 13 ] [ 14 ]
Linuxでは、システム固有のマニュアルを提供するためにman7.orgサービスが設立されました。[ 15 ] ManKierサービスはより幅広い選択肢を提供し、TLDRページも統合しています。[ 16 ]
コマンドの使用法
Unix コマンドのマニュアル ページを読むには、次のように入力します。
man <コマンド名> ページは伝統的に「名前(セクション)」という表記法で参照されます。例:。セクションは、トピックが参照されるさまざまな方法を指します。例:システムコール、シェル(コマンドライン)コマンドまたはパッケージ、パッケージの設定ファイル、コーディング構造/ヘッダーなど。
システムコール、ユーザーコマンド、マクロパッケージの名前が一致する場合など、同じページ名がマニュアルの複数のセクションに出現することがあります。例としては、 と、またはと などがあります。デフォルト以外のマニュアルセクションにアクセスするための構文は、man の実装によって異なります。
たとえば、Solaris および illumos では、読み取りの構文は次のようになります。
man -s 3cプリントfLinux および BSD 派生システムでは、同じ呼び出しは次のようになります。
男3 printfこれは、マニュアルページのセクション3でprintfを検索します。実際のファイル名には、おそらくセクションが含まれています。この例を続けると、 printf.3.gz は、セクション3にあるprintfの圧縮されたマニュアルページファイルになります。
マニュアルセクション
マニュアルは一般的に8つの番号付きセクションに分かれています。今日のほとんどのシステム(例:BSD、[ 17 ] macOS、Linux、[ 18 ] Solaris 11.4 )は、Research Unix [ 19 ] [ 20 ]で使用されている番号体系を継承していますが、System Vでは異なる順序が使用されています。[ 21 ]
| 一般 | システムV | 説明 |
|---|---|---|
| 1 | 1 | 一般的なコマンド |
| 2 | 2 | システムコール |
| 3 | 3 | ライブラリ関数、特にC標準ライブラリをカバーする |
| 4 | 7 | 特殊ファイル(通常はデバイス、/dev にあるもの)とドライバー |
| 5 | 4 | ファイル形式と規則 |
| 6 | 6 | ゲームとスクリーンセーバー |
| 7 | 5 | その他 |
| 8 | 100万 | システム管理コマンドとデーモン |
POSIX API はセクション 2 と 3 の両方に存在し、セクション 2 にはシステム コールとして実装される API が含まれ、セクション 3 にはライブラリ ルーチンとして実装される API が含まれます。
一部のシステムでは、次のような追加のセクションが含まれる場合があります。
| セクション | 説明 |
|---|---|
| 0 | C ライブラリヘッダー ファイル(Unix v6) |
| 9 | カーネルルーチン(FreeBSD、SVR4、Linux)[ 20 ] [ 17 ] |
| l | LAPACKライブラリ関数[ 22 ] |
| n | Tcl / Tkコマンド |
| × | Xウィンドウシステム |
一部のセクションは接尾辞によってさらに細分化されます。例えば、一部のシステムでは、セクション3CはCライブラリ呼び出し用、セクション3Mは数学ライブラリ用などです。この結果、セクション8(システム管理コマンド)は、メインコマンドセクションのサブセクション1Mに格下げされることがあります。サブセクションの接尾辞の中には、セクション間で共通の意味を持つものがあります。
| サブセクション | 説明 |
|---|---|
| p | POSIX仕様 |
| × | X Window System のドキュメント |
(セクション 3 は例外となる傾向があり、さまざまな言語の接尾辞が多数あります。)
のバージョンによっては、man最後に閲覧した数ページのフォーマット済みバージョンをキャッシュするものがあります。その一つがcat pageで、これは単にページャーにパイプされて表示されます。
レイアウト
すべてのマニュアルページは、シンプルなASCIIテキストディスプレイでの表示に最適化され、ハイライトやフォント制御が一切行われない共通のレイアウトに従っています。セクションには以下が含まれます。[ 23 ] : マニュアルの構造
- 名前
- コマンドまたは関数の名前と、その機能の 1 行の説明が続きます。
- 概要
- コマンドの場合は、実行方法とコマンドラインオプションの正式な説明。プログラム関数の場合は、関数が受け取るパラメータのリストと、その宣言を含むヘッダーファイル。
- 説明
- コマンドまたは関数の機能に関するテキストによる説明。プログラムの場合、このセクションには利用可能なコマンドラインオプションの説明が含まれることがよくあります。
- 例
- 一般的な使用例をいくつか示します。
- 参照
- 関連するコマンドまたは関数のリスト。
その他のセクションが存在する場合もありますが、これらはmanページ間で十分に標準化されていません。一般的な例としては、オプション、終了ステータス、戻り値、環境、バグ、ファイル、著者、バグ報告、履歴、著作権などがあります。
オーサリング
manマニュアルページは、古いマクロでも新しいマクロでも記述できますdoc。[ 24 ]マクロmanセットは、タイトル行、セクションヘッダー、(太字、小文字、斜体)フォント、段落、インデントの追加/削減に関する指示を含む、最小限のリッチテキスト機能を提供します。 [ 25 ]新しいmdoc言語は本質的によりセマンティックであり、プログラム名、概要、関数名、著者名など、ほとんどの標準的なセクションに特化したマクロが含まれています。この情報は、mandocなどのプログラムによるマニュアルのセマンティック検索の実装に使用できます。スタイルを直接制御する指示も含まれていますが、特殊なマクロでほとんどのユースケースをカバーできると予想されます。[ 23 ] mandoc プロジェクトと groff プロジェクトはどちらも、新しいドキュメントの推奨フォーマットを検討しています。[ 26 ]mdoc
troffにとって、マニュアルページは10ポイントのローマン体でレイアウトされたテキストですが、マニュアルページは紙にレイアウトされるのではなく端末(TTY)で表示されるため、この区別は通常意味を持ちません。その結果、「小さいフォント」マクロはほとんど使用されません。[ 27 ]一方、太字と斜体のテキストはECMA-48を介して端末でサポートされており、groffはgrottyサポートしている端末を検出すると、要求に応じてそれらを出力します。しかし、BSDのマニュアルドキュメントは、タイプライターのバックスペースとオーバーストライクのシーケンスを介してのみ、太字と下線(斜体の代わりとして)のテキストをサポートしており、これはtroffによってECMA-48に変換される必要がありますless。[ 28 ] [ 29 ]
あまり不自然でない形式の文書をマニュアルページに変換するツールがいくつか使われてきました。例としてはhelp2man、出力と追加のコンテンツを受け取り、--helpマニュアルページを生成します。[ 30 ]マニュアルは前述の出力よりほとんど役に立たないでしょうが、GNU プログラムでは主要なドキュメンテーションシステムが texinfo なので、これは問題になりません。[ 31 ] pandoc、ronn、md2manなど、多くのツールがMarkdownからマニュアルページへの変換をサポートしています。これらすべてのツールはman形式を出力します。Markdown は の意味内容に一致するほど表現力がないためですmdoc。DocBookには man(7) コンバータが組み込まれていますが、mandoc の作者[ 32 ]によると、品質はひどいとのことで、別途 mdoc(7) コンバータを書いています。
マニュアルページは通常英語で書かれていますが、システムによっては他の言語への翻訳が利用できる場合があります。GNUman-dbとmandocはman、サブディレクトリ配下のローカライズされたマニュアルページを検索することが知られています。[ 33 ] [ 18 ] : 概要 [ 17 ]
代替案
GNUプロジェクトの初期のシンプルなハイパーテキストシステムである「 」システムmanを除けば、それほど人気を博した代替手段はほとんどありません。また、 TLDRページ( )と呼ばれるサードパーティのプロジェクトもあり、これはチートシートに似た、一般的なユースケース向けの簡単な例を提供しています。[ 34 ]infotldr
さらに、一部のUnix GUIアプリケーション(特にGNOMEおよびKDE開発環境を使用して構築されたもの)では、エンドユーザー向けにHTML形式のドキュメントが提供されており、アプリケーション内でヘルプを閲覧するためのHTMLビューアが組み込まれていますyelp。EmacsのHTMLシステムもTexinfoに取って代わる予定です。[ 35 ]
参照
参考文献
- ^ "man(1)" . FreeBSD 一般コマンドマニュアル. 2023年1月30日時点のオリジナルよりアーカイブ。2023年7月15日閲覧。
- ^ ASTMコンピュータシステム規格(第2版)アメリカ材料試験協会、1987年、136ページ。ISBN 978-0-8031-1580-4システムの運用に必要な用紙、用紙、リボン、磁気記憶媒体、その他の消耗品を注文してください。
また、書類、プリントアウト、磁気テープリール、ディスクパックなど、ファイルキャビネット、収納キャビネット、ラック、バインダー、その他のオフィス機器も注文してください。
- ^ Adam Osborne (1969年6月). 「OSBORNE/McGraw-Hill社がマイクロコンピュータ入門を発表」 . Software Age .
- ^ a b c McIlroy, MD (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (技術レポート). CSTR. ベル研究所. 139. 2017年11月11日時点のオリジナルよりアーカイブ(PDF) . 2015年2月1日閲覧。
- ^ a bイアン・ダーウィン、ジェフリー・コリアー「UNIXの進化:1975-1984 パートI - 多様性」。2012年7月17日時点のオリジナルよりアーカイブ。 2012年12月22日閲覧。1984年11月、 Microsystems 5 (11)に初出掲載。
- ^フィードラー、ライアン(1983年10月)「Unixチュートリアル / パート3:マイクロコンピュータ市場におけるUnix」 BYTE 、 132ページ。 2015年1月30日閲覧。
- ^ “GIT commit 002a6339b1fe8f83f4808022a17e1aa379756d99” . 2017年12月4日時点のオリジナルよりアーカイブ。2017年11月22日閲覧。
- ^ “GIT commit 84bde8d8a9a357bd372793d25746ac6b49480525” . 2018年9月5日時点のオリジナルよりアーカイブ。2017年11月22日閲覧。
- ^ “GIT commit b225d9e76fbb0a6a4539c0992fba88c83f0bd37e” . 2020年11月9日時点のオリジナルよりアーカイブ。 2018年9月25日閲覧。
- ^ "「なぜ人間は 00:30 に「gimme gimme gimme」と印刷するのか?」. 2017年11月21日時点のオリジナルよりアーカイブ。2017年11月22日閲覧。
- ^ライト、フランシス J. 「WoMan: Unix マニュアルページ「WO (without) Man」を参照」GNU . 2020年11月11日時点のオリジナルよりアーカイブ。2020年8月3日閲覧。
- ^ Pali, Gabor編 (2013年5月12日). 「FreeBSD 四半期ステータスレポート、2013年1月~3月」 . FreeBSD . 2014年12月22日時点のオリジナルよりアーカイブ。 2014年12月25日閲覧。
- ^ Murenin, Constantine A. (2013年2月19日). 「mdoc.su、短縮マニュアルページURLの発表」 . [email protected] (メーリングリスト). 2014年8月7日時点のオリジナルよりアーカイブ。 2014年12月25日閲覧。
- ^ Murenin, Constantine A. (2013年2月23日). 「mdoc.su — FreeBSD、OpenBSD、NetBSD、DragonFly BSDのショートマニュアルページURL」 . 2014年12月17日時点のオリジナルよりアーカイブ。 2014年12月25日閲覧。
- ^ 「Linux man pages online」 . man7.org . 2020年5月7日時点のオリジナルよりアーカイブ。2020年5月5日閲覧。
- ^ 「About」 . ManKier . 2020年4月25日時点のオリジナルよりアーカイブ。2020年5月5日閲覧。
- ^ a b c – FreeBSD一般コマンドマニュアル
- ^ a b – ManKier.com のLinux一般コマンドマニュアル
- ^ 「Manual Pages for Research Unix Eighth Edition」 . man.cat-v.org . 2020年6月30日時点のオリジナルよりアーカイブ。2020年5月6日閲覧。
- ^ a b “Unix Programmer's Manual - Introduction” . www.bell-labs.com . 1971年11月3日. 2020年6月1日時点のオリジナルよりアーカイブ。2020年5月6日閲覧。
- ^ 「System V release 4 manuals」 . bitsavers.trailing-edge.com . 2020年8月3日時点のオリジナルよりアーカイブ。2020年5月6日閲覧。
- ^ "lapack (l) - Linux Man Pages" . www.systutorials.com . 2023年3月11日時点のオリジナルよりアーカイブ。2021年5月29日閲覧。
- ^ a b – FreeBSDその他の情報マニュアル
- ^ – ManKier.com のLinuxファイル形式マニュアル
- ^ – ManKier.com のLinux雑学マニュアル
- ^ "Groff Mission Statement - 2014" . www.gnu.org . 2020年12月3日時点のオリジナルからのアーカイブ。2021年1月2日閲覧。man
(7)の作業と並行して、mdoc(7)も積極的にサポートされ、その利用が促進されます。
- ^ "man" . GNU Troffマニュアル. 2019年12月24日時点のオリジナルよりアーカイブ。 2019年12月31日閲覧。
- ^ 「noshユーザー空間仮想端末のマニュアルページにおけるイタリック体と色」jdebp.eu . 2021年1月28日時点のオリジナルよりアーカイブ。2021年1月21日閲覧。
- ^ – FreeBSD一般コマンドマニュアル. 「フォントスタイルはバックスペースエンコーディングを使用して適用されます...」
- ^ “help2man リファレンスマニュアル” . 2023年3月6日時点のオリジナルよりアーカイブ。2023年3月5日閲覧。
- ^ 「Man Pages (GNU Coding Standards)」 . www.gnu.org . 2023年3月5日時点のオリジナルよりアーカイブ。 2023年3月5日閲覧。
- ^ Ingo Schwarze. 「新しい mandoc -mdoc -T markdown コンバータ」 . undeadly.org . 2023年3月5日時点のオリジナルよりアーカイブ。 2023年3月5日閲覧。著者による具体的な苦情については、Ingo Schwarze (2014年2月28日) の「Re: Groff man pages (tangential to Future Redux)」を参照してください。Groff (メーリングリスト)。2023年3月5日時点のオリジナルからのアーカイブ。
- ^ 「コマンドライン - Linuxのmanページ(様々な言語)」。Ask Ubuntu。2023年3月11日時点のオリジナルよりアーカイブ。 2020年5月5日閲覧。
- ^ 「TLDRページ」 . tldr.sh. 2020年4月27日時点のオリジナルよりアーカイブ。2020年5月5日閲覧。
- ^ Raymond, Eric S. "Re: [Groff] man pages (tangential to Future Redux)" . groff (メーリングリスト). 2023年3月5日時点のオリジナルよりアーカイブ。 2023年3月5日閲覧– lists.gnu.org経由。
外部リンク
- UNIX マニュアル ページの一次ソースの履歴については、「UNIX マニュアル ページの履歴」を参照してください。
- 約 300,000 個の適切にフォーマットされたマニュアル ページを含むUNIX および Linux マニュアル ページ リポジトリ。
- マニュアルページ内の数字は何を意味していますか?
- FreeBSD マニュアルページ、freebsd.org – Darwin、Debian、HP-UX、IRIS、NetBSD、OpenBSD、NextSTEP、SunOS などのマニュアルページもあります。
- Linux man-pages プロジェクト