マニュアルページ
マニュアルページ( man pageの略) は、 UnixまたはUnix 系オペレーティング システムで通常見られるソフトウェア ドキュメントの形式です。扱われるトピックには、コンピュータ プログラム(ライブラリ コールやシステム コールを含む)、正式な標準や規則、さらには抽象的な概念も含まれます。ユーザーは、コマンド を発行してマニュアル ページを呼び出すことができます。
man
デフォルトでは、出力を表示するために
、man
通常はや などのターミナル ページャープログラムが使用されます。more
less
マニュアルページは、インターネットアクセスを必要としないコマンドであるにもかかわらず、印刷されたアウトオブバンドマニュアルが標準であった
時代にまで遡り、オンラインまたはオンライン形式のソフトウェアドキュメントと呼ばれることがよくあります[ 1]。man
歴史
Unix 以前 ( GCOSなど) では、ドキュメントは印刷されたページで、ユーザー (スタッフ、学生など) が施設内で利用でき、スチール製のバインダーにまとめられ、1 つのモノリシックなスチール製の読書ラックにまとめてロックされ、テーブルやカウンターにボルトで固定され、ページはモジュール情報の更新、置き換え、正誤表、および補遺用に整理されていました。[引用が必要]
Unix の歴史の最初の 2 年間は、ドキュメントは存在しなかった。[2] 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 巻となった。[3]
ドキュメントの後のバージョンは、最初のマニュアルページの簡潔さを模倣しました。リッチーは第3版の序文に「始め方」のセクションを追加し、ロリンダ・チェリーは第6版と第7版に「パープルカード」ポケットリファレンスを提供しました。[2]ソフトウェアのバージョンはマニュアルの改訂版にちなんで名付けられました。たとえば、Unixプログラマーズマニュアルの第7版は、Unixの第7版またはバージョン7に付属していました。 [4]
第4版では、マニュアル ページはtroff タイプセッティング パッケージ[2]とそのマクロ セット(マニュアル-man
の第 6 版と第 7 版の間で完全に改訂されましたが[3]、それ以降は大幅に変更されていません) を使用してフォーマットされました。当時、マニュアル ページ システムを通じてオンライン ドキュメントを利用できることは大きな進歩と見なされていました。今日でも、事実上すべての 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年に導入されたが[5]、最初は制限され[6] 、最終的に発見されて2017年に削除された[7] 。 [8]
書式設定
マニュアル ページのデフォルトの形式はtroffで、マクロ パッケージman (外観重視) または mdoc (意味重視) のいずれかを使用します。これにより、マニュアル ページをPostScript、PDF、およびその他のさまざまな形式でタイプセットして表示または印刷 できるようになります。
一部のUnixシステムにはman2htmlコマンドのパッケージがあり、これを使用すると HTML ブラウザを使用してマニュアル ページを参照できます。groff と man-db を備えたシステムでは、代わりに高品質のネイティブ HTML 出力 ( man --html ) を使用する必要があります。GNU EmacsプログラムWoMan ("WithOut man" から) を使用すると、エディターからマニュアル ページを参照できます。[9]
2010 年に、OpenBSD はマニュアル ページのフォーマットにtroff を廃止し、代わりにPostScript、HTML、XHTML 、および端末での出力をネイティブにサポートするマニュアル ページ専用のコンパイラ/フォーマッタであるmandocを導入しました。これはマニュアル ページで使用される troff のサブセット、具体的には mdoc マクロを使用するもののみをサポートすることを目的としています。
オンラインサービス
さまざまな Unix 系システムのマニュアル ページへのオンライン アクセスを提供する Web サイトは数多くあります。
2013年2月、BSDコミュニティは新しいオープンソースのmdoc.suサービスを立ち上げました。これは、*BSDマニュアルページ用の独自のnginxベースの決定論的URL短縮サービスを通じて、主要な現代のBSDプロジェクトのman.cgiスクリプトへのアクセスを統合し短縮するものでした。 [10] [11] [12]
Linuxでは、システム固有のマニュアルを提供するためにman7.orgサービスが設立されました。[13] ManKierサービスはより幅広い選択肢を提供し、TLDRページも統合しています。[14]
コマンドの使用法
Unix コマンドのマニュアル ページを読むには、次のように入力します。
man <コマンド名>
ページは、伝統的に「名前(セクション)」という表記法を使用して参照されます。たとえば、
。セクションは、トピックが参照されるさまざまな方法を参照します。たとえば、システム コール、シェル (コマンド ライン) コマンドまたはパッケージ、パッケージの構成ファイル、コーディング構造 / ヘッダーなどです。システム コール、ユーザーコマンド、またはマクロ パッケージの名前が一致する場合など、同じページ名がマニュアルの複数のセクションに表示されることがあります。例としては、 および 、または およびがあり ます。デフォルト以外のマニュアル セクションにアクセスするための構文は、man の実装によって異なります。
たとえば、Solaris および illumos では、読み取りの構文は次
のようになります。man -s 3cプリントf
Linux および BSD 派生システムでは、同じ呼び出しは次のようになります。
男3 printf
これは、マニュアル ページのセクション 3 で printfを検索します。
マニュアルセクション
マニュアルは一般的に8つの番号付きセクションに分かれています。今日のほとんどのシステム(BSD、[15] macOS、Linux、[16]およびSolaris 11.4など)は、Research Unix [17]で使用されている番号体系を継承しています。[ 18] System Vでは異なる順序が使用されています:[19]
一般 | システム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)[18] [15] |
l | LAPACKライブラリ関数[20] |
ん | Tcl / Tkコマンド |
x | X ウィンドウシステム |
一部のセクションは接尾辞によってさらに細分化されます。たとえば、一部のシステムでは、セクション 3C は C ライブラリ呼び出し用、3M は数学ライブラリ用などです。この結果、セクション 8 (システム管理コマンド) は、メイン コマンド セクションの 1M サブセクションに格下げされることがあります。一部のサブセクション接尾辞は、セクション間で一般的な意味を持ちます。
サブセクション | 説明 |
---|---|
p | POSIX仕様 |
x | X Window Systemドキュメント |
(セクション 3 は、さまざまな言語の接尾辞が多数あるため、例外となる傾向があります。)
のいくつかのバージョンは、man
最後に表示した数ページのフォーマットされたバージョンをキャッシュします。 1 つの形式は、単にページャーにパイプされて表示される
cat pageです。
レイアウト
すべてのマニュアルページは、単純なASCIIテキストディスプレイでの表示に最適化された共通のレイアウトに従っており、ハイライトやフォント制御は一切行われない可能性があります。セクションには次のものが含まれます。[21] : マニュアルの構造
- 名前
- コマンドまたは関数の名前と、その機能の 1 行の説明が続きます。
- 概要
- コマンドの場合は、その実行方法と使用するコマンドライン オプションの正式な説明。プログラム関数の場合は、関数が使用するパラメータのリストと、その宣言が含まれるヘッダー ファイル。
- 説明
- コマンドまたは機能の動作に関するテキストによる説明。
- 例
- 一般的な使用例をいくつか示します。
- 参照
- 関連するコマンドまたは関数のリスト。
他のセクションが存在する場合もありますが、これらはマニュアル ページ間で十分に標準化されていません。一般的な例としては、オプション、終了ステータス、戻り値、環境、バグ、ファイル、著者、バグの報告、履歴、著作権などがあります。
オーサリング
man
マニュアルページは、古いマクロ、新しいdoc
マクロ、またはその両方の組み合わせ ( )のいずれかで記述できますmandoc
。[22]マクロman
セットは、タイトル行、セクションヘッダー、(太字、小文字、斜体) フォント、段落、インデントの追加/削減に関する指示を含む、最小限のリッチテキスト機能を提供します。 [23]新しいmdoc
言語はよりセマンティックな性質を持ち、プログラム名、概要、関数名、著者名など、ほとんどの標準セクションに特化したマクロが含まれています。 この情報を使用して、mandocなどのプログラムでマニュアルのセマンティック検索を実装できます。 スタイルを直接制御する指示も含まれていますが、特殊なマクロでほとんどのユースケースをカバーできると予想されます。[21] mandoc プロジェクトと groff プロジェクトの両方で、新しいドキュメントの推奨形式が検討されています。[24]mdoc
troff にとって、マニュアルページは 10 ポイントのRoman フォントでレイアウトされたテキストですが、この区別は通常意味がありません。マニュアルページは紙にレイアウトされるのではなく、端末 (TTY) で表示されるからです。その結果、「小さいフォント」マクロはほとんど使用されません。[25]一方、太字と斜体のテキストはECMA-48を介して端末でサポートされており、groff はgrotty
サポートしている端末を検出すると、要求どおりにそれらを出力します。ただし、BSD のマニュアルドキュメントは、タイプライターのバックスペースと上線シーケンスを介してのみ太字と下線 (斜体の代わり) のテキストをサポートしており、これは によって ECMA-48 に変換される必要がありますless
。[26] [27]
より簡単な形式の文書をマニュアルページに変換するツールがいくつか使われてきました。例としてはhelp2man
、出力と追加のコンテンツを受け取り--help
、マニュアルページを生成する GNU の があります。[28]マニュアルは、前述の出力よりもほとんど役に立ちませんが、GNU プログラムでは texinfo が主要なドキュメントシステムであるため、これは問題になりません。[29] pandoc、ronn、md2manなど、いくつかのツールがMarkdownからマニュアルページへの変換をサポートしています。これらすべてのツールは 形式を出力します。これはman
、Markdown が の意味内容に一致するほど表現力がないためですmdoc
。DocBookには man(7)コンバータが組み込まれていますが、mandoc の作者[30]によると、その品質はひどいとのことで、mandoc の作者は別の mdoc(7) コンバータを書いています。
マニュアルページは通常英語で書かれていますが、システム上で他の言語への翻訳が利用できる場合があります。GNUman-db
とmandocはman
サブディレクトリの下でローカライズされたマニュアルページを検索することが知られています。[31] [16] : 概要 [15]
代替案
GNUプロジェクトの「」システム(初期のシンプルなハイパーテキストman
システム)を除けば、あまり人気がない代替手段はほとんどありません。また、チートシートに似た、一般的な使用例の簡単な例を提供するTLDRページ( )と呼ばれるサードパーティの取り組みもあります。[32]info
tldr
さらに、一部のUnix GUIアプリケーション(特にGNOMEおよびKDE開発環境を使用して構築されたもの)では、エンドユーザー向けのドキュメントをHTMLで提供し、yelp
アプリケーション内でヘルプを読むための埋め込みHTMLビューアが含まれています。EmacsのHTMLシステムもtexinfoに代わる予定です。[33]
参照
- Unixコマンドのリスト
- プラン9のアプリケーションのリスト
info
apropos
- README
- RTFM
- ManOpen – NeXT / macOSグラフィカル man ユーティリティ
参考文献
- ^ "man(1)". FreeBSD 一般コマンドマニュアル. 2023-01-30 にオリジナルからアーカイブ。2023-07-15に取得。
- ^ abc McIlroy, MD (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (技術レポート). CSTR. Bell Labs. 139. 2017-11-11 にオリジナルからアーカイブ(PDF)されました。2015-02-01に取得。
- ^ ab Darwin, Ian; Collyer, Geoffrey. 「UNIX Evolution: 1975-1984 Part I - Diversity」。2012年7月17日時点のオリジナルよりアーカイブ。2012年12月22日閲覧。1984年11月、 Microsystems 5 (11)に最初に掲載されました。
- ^ Fiedler, Ryan (1983 年 10 月). 「Unix チュートリアル / パート 3: マイクロコンピュータ市場における Unix」. BYTE . p. 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日閲覧。
- ^ Wright, Francis 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日閲覧。
- ^ abc FreeBSD一般コマンドマニュアル –
- ^ ab Linux一般コマンドマニュアル –
- ^ 「Manual Pages for Research Unix Eighth Edition」。man.cat -v.org。2020年6月30日時点のオリジナルよりアーカイブ。2020年5月6日閲覧。
- ^ ab “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日閲覧。
- ^ ab FreeBSDその他の情報マニュアル –
- ^ Linuxファイルフォーマットマニュアル –
- ^ Linuxその他マニュアル –
- ^ “Groff Mission Statement - 2014”. www.gnu.org . 2020-12-03にオリジナルからアーカイブ。 2021-01-02に取得。
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 マークダウンコンバーター」. 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 などのマニュアル ページもあります。