man ページに出てくる (1) などのカッコ付き数字は何?

man コマンドに関する話。

以下は MacOS の場合だが、ターミナルで

$ man chown

と叩くと、次のように表示される。

CHOWN(8)                  BSD System Manager's Manual                 CHOWN(8)

NAME
     chown -- change file owner and group

…中略…

SEE ALSO
     chgrp(1), find(1), chown(2), fts(3), compat(5), symlink(7)

…中略…

BSD                             March 31, 1994                             BSD

1行目には CHOWN(8) と書いてあり、最後の方の SEE ALSO セクションには chown(2) と書かれている。

この (8) とか (2) とかって何なんだ?というのが今日の話。

マニュアルにはセクションがある

答えは Wikipedia など多くのサイトに書いてあった。

マニュアルの章立て

マニュアルは一般に8つの章に分かれており、以下のように構成されている(BSD系とLinuxでの章立て)。

内容
1 汎用コマンド
2 システムコール
3 ライブラリ関数、特に標準Cライブラリ関数
4 特殊なファイル(主に/devにあるデバイス)とドライバ
5 ファイル形式とその使用法
6 ゲームとスクリーンセーバー
7 その他
8 システム管理コマンドとデーモン

この数字を man コマンドで指定しながら、マニュアルページを開くのが本来の形のようだ。

つまり、先程の CHOWN(8) のマニュアルは、

$ man 8 chown

と叩いても開ける。

そして、chown(2) の方は

$ man 2 chown

と実行すると開け、コチラは先程の chown(8) とは内容が異なるのだ。

当該コマンドのマニュアルがどのセクションにあるのか、という一覧は、whatis コマンドで調べられる。

$ whatis chown
gchown(1), chown(1)      - change file owner and group
chown(8)                 - change file owner and group

このとおり。

他にも aporposinfo を覚えておくと楽かも。

man のカラー化

ついでに見つけたモノ。以下のように環境変数を設定すると、man コマンドの結果を色分けできるようだ。

man() {
  env LESS_TERMCAP_mb=$'\E[01;10m' \
  LESS_TERMCAP_md=$'\E[01;38;5;13m' \
  LESS_TERMCAP_me=$'\E[0m' \
  LESS_TERMCAP_se=$'\E[0m' \
  LESS_TERMCAP_so=$'\E[38;5;9m' \
  LESS_TERMCAP_ue=$'\E[0m' \
  LESS_TERMCAP_us=$'\E[04;38;5;14m' \
  man "$@"
}

Mac のターミナルだと2色くらいしか効果がなかったけど、コレは良いかも。


以上。

man は Windows GitBash にも無理矢理入れたけど不完全で、

Mac では日本語化してみたけど中身が GNU 版だったり、

なんかイマイチ。もっと充実させたいんだけどな〜。