ディレクトリ /usr/share/man (昔は /usr/man
だった)を見てみる。
大別すると2種類のサブディレクトリがある。
- 国名(の2文字コード)ごとのディレクトリ
- ja
は日本語に翻訳されたコンテンツ(あとからインストールしたものかも知れない)
- 各サブディレクトリの下にもまた man1〜man8
のサブディレクトリがあるだろう。
- man_
という名前のディレクトリ(この末尾の数字がセクション番号に対応している)
1〜8
のセクションがあり、各セクションに意味付けがされている(調べてみてください。たとえば
「linux セクション」などで検索するなど。
あるいは、たとえばdebian
のページで各セクションの intro ページを見てみよう。
- これまで見てきたマニュアルの殆どは、ユーザが(シェルに入力して)使う
コマンドのものであった。これはセクション1にまとめられている。
- 同じ名前のマニュアルエントリーが、複数のセクションに重複して置かれることもある。
たとえば passwd は セクション1と5にある。
セクション1にあるのは、パスワードを変更するためのユーザコマンド。
セクション5にあるのは、ユーザ情報(ユーザ名、ユーザIDなど)を保持する
ための基幹ファイル /etc/passwd の記述。
このようにUnixでは、システムの設定などコンピュータ(とOS)の運用
に関係する情報をテキストファイルで保持することが伝統的に行われてきていて、
セクション5はそれらのファイルそれぞれの文法や用法について述べている。
- 伝統的にはこの8つ(1〜8)のセクションが標準だがそれ以外の番号または記号のついてセクションも最近は使われている。
セクション1とは別に、セクション8も主として管理者を対象として設けられており、
このセクションでは管理者向けのコマンドを扱っている。
- 前述のユーザコマンド passwd
は各ユーザが自分のパスワードを変更するためのもの (変更内容は
/etc/passwd または比較的新しいOSではそれに代わるややセキュアなファイル
に保持される)
であるが、root権限を持つシステム管理者は自分以外の人のパスワード(を含むユーザ情報)
を変更することも時として必要になる、そのために用意されているのが vipw
などのコマンド。
- ユーザ向けコマンドが /usr/bin
などのディレクトリに置かれているのに対して、 管理者向けコマンドは
/usr/sbin などに置かれている。
- ただしこれらのコマンドは、一般ユーザも起動できるものが多い(自分のシェルの
PATH変数をご確認ください)。が、たとえば vipw
コマンドが編集対象としている ファイル /etc/passwd は 一般ユーザに write
パーミッションが付与されておらず
編集(ができたとしても書き込み)はできない。
セクション6は、ゲームのセクション。ただし antix には初期状態では
(麻雀パイを使った古くからのGUIゲーム1つを除いて)インストールされていない
(その結果としてマニュアルファイルもない)。
コマンドの形ではなく、プログラム(C言語で書かれることを前提として)から
呼び出される形で提供されている機能(APIなどとも呼ばれる)については、
セクション2にシステムコール、セクション3にライブラリ関数などが
解説されている。
- 前者は、OSの機能を直接呼び出す(いわば低レベルの)APIで、
ここに用意されたAPIをみることによりOSが提供する機能を俯瞰的に見ることができるだろう。
- ライブラリ関数は、間接的にシステムコールを呼び出すものが多い。たとえば、
printf
(Cで広く使われる書き込みのための呼び出し)は、バッファリングなどの
処理を経て、必要に応じて write システムコールを呼び出している。