man ページ
関連記事
man ページ ("マニュアルページ"の略) は Arch Linux を含む、ほとんどの主要な UNIX ライクなオペレーティングシステムで最初からインストールされているドキュメントです。man ページを表示するには man
コマンドを使います。
man ページのカバーする範囲の如何を問わず、man ページは完結型のドキュメントとして作られており、必然的に、関連する話題を述べるときに他の man ページを参照するということが控えられています。このことはハイパーリンクを使用する info ファイルと対象的であり、GNU は info ファイルで伝統的な man ページ形式を置き換えようとしています。
man で使用されるデフォルトのページャは less です。
目次
Man ページの表示
man ページを読むには、次を入力してください:
$ man page_name
マニュアルは複数のセクションに分類されています:
- 一般的なコマンド
- システムコール (カーネルによって提供されている関数)
- ライブラリコール (C ライブラリの関数)
- 特殊ファイル (通常は
/dev
以下に存在します) とドライバー - ファイルのフォーマットと規則
- ゲーム
- その他 (約束事など)
- システム管理コマンド (通常は root 権限を必要とします) とデーモン
基本的に Man ページはページの名前で呼ばれ、括弧で囲まれたセクション番号が後ろに付きます。man(1) と man(7) のように、同じ名前の man ページが存在することも時々あります。この場合は、man を呼び出すときにセクション番号と man ページの名前を指定します。例:
$ man 5 passwd
上記のコマンドを実行すると passwd
ユーティリティではなく、/etc/passwd
についての man ページが表示されます。
whatis
コマンドを使用することで man ページの一行説明を表示できます。例えば、ls
の man ページセクションの簡単な説明を見るには、次を入力:
$ whatis ls
ls (1p) - list directory contents ls (1) - list directory contents
形式
全ての Man ページは標準の書式に従って書かれており、読みやすいようになっています。よく出てくるセクションは以下の通り:
- NAME - コマンドの名前、コマンドの使用目的について一行の説明。
- SYNOPSIS - コマンドが受け付けるオプションや引数のリスト、または関数が使用するパラメータやヘッダーファイル。
- DESCRIPTION - コマンドや関数の目的・動作に関する詳しい説明。
- EXAMPLES - 一般的な例。シンプルなコマンドからやや複雑なコマンドまで様々。
- OPTIONS - コマンドが受け付けるオプションの説明、何が変わるのか。
- EXIT STATUS - 様々な終了コードの意味。
- FILES - コマンドや関数に関連するファイル。
- BUGS - 解決が棚上げされているコマンドや関数の問題。いわゆる既知のバグ。
- SEE ALSO - 関連するコマンドや関数のリスト。
- AUTHOR, HISTORY, COPYRIGHT, LICENSE, WARRANTY - プログラムに関する情報、プログラムの履歴、利用条件、開発者。
マニュアルの検索
man
ユーティリティを使えば man ページを表示することはできますが、そもそも読みたいマニュアルページの名前を知らない場合に問題が起こります。幸いに、-k
または --apropos
オプションを使うことで、キーワードを指定してマニュアルページの説明文を検索することができます。
検索機能は専用のキャッシュを使っています。デフォルトでは、キャッシュが作成されていないために、何を検索しても該当するページは見つからないという結果になってしまいます。次を実行することでキャッシュを生成または更新することが可能です:
# mandb
新しい man ページをインストールしたら上のコマンドを実行するようにしてください。
キャッシュを作成したら検索をすることができます。例えば、"password" に関する man ページを検索するには:
$ man -k password
または:
$ man --apropos password
上記のコマンドは以下のように apropos
コマンドを実行するのと同じです:
$ apropos password
デフォルトでは、指定したキーワードは正規表現として解釈されます。
ページ全体でキーワードが検索されるように細かく検索して欲しい場合、-K
オプションを使います:
$ man -K password
ページ幅
man ページの幅は MANWIDTH
環境変数で制御できます。
ターミナルのカラム数が小さすぎる場合 (例: ウィンドウの幅が小さい場合)、間違ったところで改行されることがあります。man
を実行するときに MANWIDTH を設定することで読みやすくすることが可能です:
~/.bashrc
man() { local width=$(tput cols) [ $width -gt $MANWIDTH ] && width=$MANWIDTH env MANWIDTH=$width \ man "$@" }
ローカルの man ページを読む
標準のインターフェイスの代わりに、lynx や Firefox などのブラウザを使って man ページを見ることで info ページの利点 (ハイパーリンク) を得ることができます。
KDE ユーザーは次のようにして Konqueror で man ページを読めます:
man:<name>
他に、公式リポジトリには2つの選択肢があります:
1. xorg-xman は X で man ページをカテゴライズされた形で見ることができます。
2. GNOME のヘルプブラウザ yelp はさらに小奇麗な方法ですが依存パッケージが複数存在します。
ブラウザで表示できる HTML に変換する
mandoc
mandocAUR パッケージをインストールしてください。例えば free(1)
のページを変換するなら:
$ gunzip -c /usr/share/man/man1/free.1.gz | mandoc -Thtml -Ostyle=style.css 1> free.html
free.html
ファイルをお好きなブラウザで開いて下さい。
man2html
まず、公式リポジトリから man2html をインストールします。
そして、man ページを変換:
$ man free | man2html -compress -cgiurl man$section/$title.$section$subsection.html > ~/man/free.html
他の使い方として印刷しやすいように man2html
でプレーンテキストにすることもできます:
$ man free | man2html -bare > ~/free.txt
man -H
Arch のリポジトリに入っている man の GNU 実装には HTML で表示する機能が付いています:
$ man -H free
使用されるブラウザは BROWSER
環境変数によって決まります。-H
オプションにバイナリを渡すことで上書きできます。
roffit
AUR から roffitAUR をインストールしてください。
man ページを変換するには:
$ gunzip -c /usr/share/man/man1/free.1.gz | roffit > free.html
PDF に変換する
man ページは基本的に印刷ができるようになっています。man ページは troff で書かれており、troff はもともと組版言語だからです。ghostscript をインストールしていれば、man ページを PDF に変換するのはとても簡単に行えます: man -t <manpage> | ps2pdf - <pdf>
。どんな風になるかは google で画像検索 してみればわかります。これは万人向けとは言えないでしょう。
オンラインの Man ページ
man ページのオンラインデータベース:
- man7.org - Arch Linux の man-pages で使われています。
- Arch Linux man pages
- Debian GNU/Linux man pages
- DragonFlyBSD manual pages
- FreeBSD man pages
- Linux and Solaris 10 man pages
- Linux man pages at die.net
- NetBSD manual pages
- Mac OS X manual pages
- On-line UNIX manual pages
- OpenBSD manual pages
- Plan 9 Manual — Volume 1
- Inferno Manual — Volume 1
- Storage Foundation man pages
- The UNIX and Linux forums man page repository
- Ubuntu manpage リポジトリ
特筆すべき man ページ
以下は読む価値があるページの部分的なリストであり、様々なことを深く理解するのに役立ちます。リファレンスとして役立つページもあります (ascii テーブルなど)。
- ascii(7)
- boot(7)
- charsets(7)
- chmod(1)
- credentials(7)
- fstab(5)
- hier(7)
- systemd(1)
- locale(1p), locale(5), locale(7)
- printf(3)
- proc(5)
- regex(7)
- signal(7)
- term(5), term(7)
- termcap(5)
- terminfo(5)
- utf-8(7)
他のページは、カテゴリ 7 ページを見て下さい:
$ man -s 7 -k ".*"
Arch Linux 特有のページ:
参照
- 一般的な推奨事項 - Arch の一般的な推奨事項
- man page - Gentoo Wiki - Gentoo wiki の記事
- Write The Fine Manual with pod2man