一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • 「manコマンド」について その①

■構文
man [ [ [ -c ] [ -t ] [ section ] ] | [ -k | -f ] ] [ -F ] [ -m ] [ -Mpath ] [ -r ] [ -a ] title …

■説明
man コマンドは、コマンド、サブルーチン、ファイルなどのトピックに関する情報を提供する。
man コマンドは、名前で指定したコマンドの説明を 1 行で表示する。
また、man コマンドは、説明にユーザー指定キーワードのセットを含むすべてのコマンドの情報も表示する。

man コマンドは、指定されたマニュアル・ページ・セットをフォーマットする。
section パラメーターでセクションを指定すると、man コマンドは、マニュアル・ページのそのセクション内で、
title パラメーターで指定されたタイトルを検索する。
section パラメーターの値は、1 から 8 までのアラビア数字か、1 文字。

セクションは、次のとおり。

【項目】:【説明】
C : コマンド (システム管理コマンドを含む) を指定
F : ファイル・タイプのマニュアル・ページを指定
L : ライブラリー関数を指定
n : 新規を指定
l : ローカルを指定
o : 旧を指定
p : 共用を指定
1 : ユーザー・コマンドとデーモンを示す
2 : システム・コールとカーネル・サービスを示す
3 : サブルーチンを示す
4 : スペシャル・ファイル、デバイス・ドライバー、ハードウェアを示す
5 : 構成ファイルを示す
6 : ゲームを示す
7 : その他のコマンドを示す
8 : 管理コマンド及びデーモンを示す

 

section パラメーターが指定されないと、man コマンドはマニュアルのすべてのセクションを検索する。

man コマンドで使用する検索パスは、マニュアル・サブディレクトリーが入っている各ディレクトリーを
: (コロン) で区切ったリスト。

man コマンドは、マニュアル・ページを次のように表示。

1.
man コマンドは、 /usr/share/man ディレクトリーの下の nroff ディレクトリー (man?) を検索する。

2.
man コマンドは、 /usr/share/man ディレクトリーの下のフォーマット済みバージョン・ディレクトリー (cat?) を検索する。

フォーマット済みバージョンが使用可能であり、 その変更時間が nroff コマンド・ソースよりも新しい場合、
man コマンドはフォーマット済みバージョンを表示する。
それ以外の場合、マニュアル・ページは nroff コマンドによってフォーマットされ、表示される。

ユーザーが許可を持っていれば、以後 man コマンドを呼び出すときにページを再びフォーマットしなくてもすむように、
フォーマット済みのマニュアル・ページが適切な場所に置かれる。

3.
man コマンドが /usr/share/man/man ディレクトリーまたは /usr/share/man/cat ディレクトリーで
マニュアル・ページを検出しない場合、man コマンドは、-M オプションまたは MANPATH 環境変数を
介して指定されたパスを検索して、nroff ディレクトリー (man?) およびフォーマット済み
バージョン・ディレクトリー (cat?) を調べる。

4.
man コマンドが /usr/share/man/man ディレクトリーまたは /usr/share/man/cat ディレクトリーあるいは
ユーザー指定の man/cat ディレクトリーでマニュアル・ページを検出しない場合、man コマンドは
ハイパーテキスト情報ベースから読み取る。

ハイパーテキスト情報ベースは、/usr/share/man/info ディレクトリー構造にあり、
オペレーティング・システム文書が入っている。

ハイパーテキスト・データベースから読み取る場合、man コマンドは、/usr/share/man/cat ディレクトリー構造に
マニュアル・ページを入れない。

man コマンドは、ディスプレイにフィットするように、HTML ファイルを定形式テキスト・ファイルに変換し、
PAGER 環境変数で記述されているコマンドを使用してマニュアル・ページを表示する。

5.
man コマンドは、/usr/share/man/info ディレクトリー構造にあるハイパーテキスト情報ベースで
マニュアル・ページが見つからない場合、(-M または MANPATH を通じて) ユーザー指定の
ハイパーテキスト情報ベースを検索する。
ユーザー定義のハイパーテキスト情報ベースは、次のディレクトリー構造に従う必要がある。

BasePath[/%{ L | l }]/DocLibraryname/Section/command_or_routine_or_filename.htm

ここで、
・%L は、LC_MESSAGES を使用して指定された ISO 言語表記を表し、 %l は、LC_MESSAGES を使用して
指定された ISO 言語表記の最初の 2 文字を表す。

例えば、LC_MESSAGES=en_US である場合、 ドキュメントは Path/en_US または Path/en に入れることができる。

・DocLibraryname は文書ライブラリーの名前を表す。
・Section はセクション名を表し、次のいずれかでなければならない。
・cmds : コマンド・セクションを表す
・libs : ライブラリー・セクションを表す
・files : ファイル・セクションを表す

 

HTML データベースにアクセスする場合、 man は他の LPP ライブラリーに進む前に、
オペレーティング・システム・ライブラリーを探す。
これらのライブラリーの中では、次の順序で情報が処理される。

【項目】:【説明】
cmds : コマンド・リファレンス
libs : サブルーチン、システム・コール
files : ファイル・リファレンス

標準出力が tty である場合、man コマンドは、 -s および -v フラグを指定した more コマンドを使用して、
その出力をパイピングする。

-s フラグにより、複数のブランク行は削除され、ページごとに画面上で停止する。
-v フラグにより、非印刷文字の画面への表示が抑制される。

スクロールを続けるには、スペース・バーを押す。
出力が停止したときさらに 11 行スクロールするには、Ctrl-D キー・シーケンスを押す。

PAGER 環境変数は、任意のページ編集に設定できる。
デフォルト値は more コマンド。
デフォルトのページ編集を変更するには、次のように入力する。

PAGER=Somepager
export PAGER

例えば、逆改行または部分改行を使用してフォーマットされたカスタマイズ・マニュアル・ページがある場合に、
PAGER 環境変数を /usr/bin/pg に設定して、 改行が制御文字として出力されないようにすることができる。
この手順は、マニュアル・ページには必要ない。

man コマンドがハイパーテキスト・データベースを使用すると、複数の項目を取り出すことがある。
例えば、「man open」と入力すると、複数の項目が表示される。
SIGINT (Ctrl-C) を使用すると、man コマンドが完全に終了する。

一方、「man open close」と入力した場合も複数の項目が表示されますが、SIGINT (Ctrl-C) を使用すると、
man は終了しないで close コマンド情報が表示される。
再度 SIGINT (Ctrl-C) を使用すると、man コマンドを完全に終了させることができる。

名前に $ (ドル記号) が入っているネットワーク・コンピューティング・システムのライブラリー・ルーチンを
1 つ指定するには、 $ の前に \ (円記号) を入力する。

 

The following two tabs change content below.

久米 大輔

最新記事 by 久米 大輔 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア