マニュアルページセク ション 1: ユーザーコマンド

印刷ビューの終了

更新: 2014 年 7 月
 
 

man(1)

名前

man - マニュアルページの表示

形式

man [-] [-adFlrt] [
-M path] [-T 
macro-package] [-s section] 
name...
man [-M path] [
-s section] -k 
query...
man [-M path] 
-f file...
man [-M path] [
-s section] -K 
query...

説明

man コマンドは、リファレンスマニュアルから得た情報を表示します。name で選択した完全なマニュアルページ、query (–k または –K) あるいは関連付けられたファイルの名前 (–f) のどちらかで選択された 1 行のサマリーを表示します。マニュアルページが見つからない場合、man はエラーメッセージを出力します。

ソース形式

リファレンスマニュアルのページは、nroff (nroff(1) を参照) または SGML (Standard Generalized Markup Language) タグ (sgml(5) を参照) のどちらかでマークアップされています。man コマンドはそのマークアップの種類を認識して、適宜にファイルを処理します。マークアップの種類によって分けられたディレクトリに、個々のソースファイルが置かれています。

マニュアルページの位置

オンラインのリファレンスマニュアルのページのディレクトリは、通常 /usr/share/man ディレクトリにあります。nroff のソースは、/usr/share/man/man* ディレクトリにあります。SGML のソースは、/usr/share/man/sman* ディレクトリにあります。各ディレクトリは、マニュアルのセクションごとに対応しています。これらのディレクトリは必須ではないため、ホスト上にインストールされているとは限りません。存在していなければ、ほかのホストから /usr/share/man をマウントしてください。

事前整形された最新バージョンが、対応する cat* または fmt* ディレクトリ内に存在する場合、man は単にそれらのバージョンを表示または出力します。バージョンが古かったり存在しない場合には、man は再フォーマット処理を行なってから出力し、cat* または fmt* が書き込み可の場合に事前整形されたバージョンを格納します。インデックスファイルは更新されません。catman(1M) を参照してください。事前整形されたバージョン用のディレクトリが提供されていない場合、man は要求に応じてページを再フォーマットし、表示処理中、フォーマットされたテキストを一時ファイルに収納します。

標準出力が端末でない場合、または「」フラグが指定されている場合、man は、その出力を cat(1) を通してパイプします。それ以外の場合、man は、画面でのページングや下線付けを処理するために、その出力を more(1) を通してパイプします。

クエリー文字列

–k または –K オプションを使用して、マニュアルページで、query (1 つ以上の語または語句) を検索できます。インデックスファイルベースの全文テキスト検索、ステミング、および部分一致がサポートされています。インデックスファイルの生成方法については、catman(1M) および man(5) を参照してください。

英語の場合、たとえば cat という語幹でステミングを実行すると、catscatlikecatty などの文字列が検索されます。stem でステミングを実行すると、stemmerstemming、および stemmed が検索されます。ステミングのアルゴリズムによって、fishingfishedfish、および fisher という単語が fish という語幹に変換されます。

マッチングでは、大文字と小文字が区別されます。ステミングは、英語のマニュアルページでのみ使用できます。

一致したマニュアルページは、クエリーの一致のスコアを基準として昇順にソートされて表示されます。

Oracle Solaris のマニュアルページは、「名前」、「形式」、「機能説明」などのセクションに分かれています。ユーザーは、–K オプションで詳しく説明しているように、検索範囲を 1 つのセクションに限定できます。

オプション

サポートしているオプションは、次のとおりです。

–a

MANPATH 検索パス中で name に一致したすべてのマニュアルページを出力します。複数個あるときは、見つかった順序で出力します。

–d

デバッグします。セクションを示す引数に対応する値、検索に用いた方法、および man が検索を行なったパスを表示します。

–f file ...

man は、指定されたいずれかの file に関連するマニュアルページを見つけようとします。各 file から先頭のパス名部分を取り除き、結果となるベース名または名前を含む 1 行のサマリーを出力します。

このオプションは、インデックスファイルを使用します。 インデックスファイルの生成方法の詳細は、catman(1M) および man(5) を参照してください。

–F

インデックス照合ファイルを使う代わりに、MANPATH で指定した全ディレクトリまたは man.cf ファイルを使って検索を行うよう man に指示します。 このオプションは、インデックスファイルの内容が最新状態にない場合に便利な指定で、man コマンドのデフォルトの動作です。そのため、通常はこのオプションを起動する必要はありません。参考のためにここに記述しています。

–k query ...

インデックスファイルから 1 行のサマリーを出力します。

インデックスファイルの生成方法については、–K オプションを参照してください。インデックスファイルがない場合、マニュアルページファイルが直接照合されるため、インデックスファイルが存在する場合に比べて応答時間が遅くなります。

–K query ...

指定したクエリーをインデックスファイルから検索します。インデックスファイルがない場合、マニュアルページに対して直接検索が実行されるため、検索速度が非常に遅くなります。

クエリーオプション引数で左から 1 番目のテキストとしてセクション名を追加し、その最後にコロン (:) を付けて「セクション名: クエリー」のようにすると、そのクエリー文字列の検索は指定したセクションに対してのみ実行されます。指定したセクション名が存在しない場合は、ユーザーでサポートされているセクション名がすべてリストされます。

–f–k、および –K によって使用される /usr/share/man および /usr/gnu/share/man 内のインデックスファイルは、これらのディレクトリ内のマニュアルページがインストールまたは更新され、これらを配布するパッケージが、Oracle Solaris 11.2 での Image Packaging System を使用したソフトウェアのパッケージ化と配布 の第 2 章IPS を使用したソフトウェアのパッケージ化で指定されるようにファイルに restart_fmri=svc:/application/man-index:default のタグを付けたときに自動的に生成されます。これらは svcadm restart application/man-index を手動で実行するか、catman(1M)–w を付けて実行しても生成できます。

–l

検索パス内にある、name に一致するマニュアルページをすべて一覧表示します。

–M path

マニュアルページ用の代替検索パスを指定します。path は、マニュアルページのディレクトリサブツリーを含むディレクトリのコロンで区切られたリストです。たとえば、path/usr/share/man:/usr/local/man である場合、man は最初に標準の場所で、次に /usr/local/manname を検索します。–f–k または –K オプションとともに使用する場合は、–M オプションを最初に記述する必要があります。path 内の各ディレクトリは、セクションごとに 1 つの man* または sman* という形式のサブディレクトリを含んでいると見なされます。このオプションは、MANPATH 環境変数より優先されます。

–r

マニュアルページを再フォーマットするだけで、結果の表示は行いません。これにより、man –t name の組み合わせが置き換えられます。

–s section ...

man で検索するマニュアルのセクションを指定します。section 引数に対応するディレクトリだけを検索して name を探します。section の値は 1 桁の数字で、検索対象のセクション名を伴う場合もあります (たとえば、"3lib")。section は、localnewoldpublic などの単語にすることもできます。また、section が 1 文字である場合もあります。複数のセクションを指定するには、各セクションをコンマで区切ります。このオプションは、MANPATH 環境変数や man.cf ファイルより優先されます。man での検索の実行方法については、下記の「検索パス」を参照してください。

–t

man は、指定されたマニュアルページが troff で処理されて適切なラスター出力デバイスになるように調整します (troff(1) を参照)。 フラグと –t フラグの両方が指定されている場合、man は、指定された各 nametroff 処理されたバージョンを (必要に応じて) 更新しますが、表示は行いません。

–T macro-package

/usr/share/lib/tmac/ で定義されている標準の –man マクロではなく、macro-package を使用してマニュアルページをフォーマットします。デフォルトの検索パスの順序に関する詳しい説明については、後述の「使用法」の「検索パス」を参照してください。

オペランド

次のオペランドを指定できます。

name

標準ユーティリティーまたはキーワードの名前。

使用法

man の使用方法は次のとおりです。

マニュアルページのセクション

リファレンスマニュアルのエントリは、セクションに編成されています。セクションの名前は、通常 1 桁の主セクション名と、そのあとに必要に応じて続く通常 1 つ以上の文字であるサブセクション名から成ります。装飾のない主セクション名 (たとえば、「9」) は、「9e」、「9f」、「9s」などの、その名前のサブセクションの省略名としては機能しません。つまり、各サブセクションは、man –s で個別に検索する必要があります。各セクションに属するマニュアルページ群は、共通のカテゴリに属しており、その中でさらに細かく分類するためにサブセクションがあります。このリリースで使用されている分類の説明については、intro のマニュアルページを参照してください。

次に、マニュアルページの各セクションと、そこに含まれている情報について簡単について説明します。

  • セクション 1 では、このオペレーティングシステムで使用できるコマンドをアルファベット順に説明しています。

  • セクション 1M では、主にシステムの保守や管理に使用するコマンドを、アルファベット順に説明しています。

  • セクション 2 では、すべてのシステムコールについて説明しています。これらのコールのほとんどに、1 つ以上のエラーの戻り値があります。エラー状態は、ほかの場合には返されない戻り値によって示されます。

  • セクション 3 では、さまざまなライブラリにある関数のうち、セクション 2 で説明されている、UNIX システムのプリミティブを直接呼び出す関数以外について説明しています。

  • セクション 4 では、さまざまなファイルの形式の概要について説明しています。C 言語の構造体によるファイル形式の宣言も適宜示します。

  • セクション 5 には、文字セット表などのその他のドキュメントが含まれています。

  • セクション 7 では、特定のハードウェア周辺装置やデバイスドライバを参照するさまざまな特殊ファイルについて説明しています。また、STREAMS ソフトウェアのドライバやモジュール、STREAMS で一般的な一連のシステムコールについても説明しています。

  • セクション 9E では、開発者がデバイスドライバに含めることのできる DDI (デバイスドライバインタフェース)/DKI (ドライバ/カーネルインタフェース)、DDI のみ、および DKI のみのエントリポイントルーチンについて説明しています。

  • このセクションでは、デバイスドライバで使用可能なカーネル関数について説明します。

  • セクション 9S では、ドライバとカーネルの間で情報を共有するためにドライバによって使用されるデータ構造について説明しています。

検索パス

指定された name を検索する前に、man は、候補となるディレクトリとセクションのリストを構築します。man は、MANPATH 環境変数で指定されたディレクトリ内で name を検索します。

MANPATH が存在しない場合、man は最初に PATH 要素の最後のコンポーネントに man を代入することによって、PATH 環境変数に基づいた検索パスを作成します。/sbin/usr/ucb/usr/xpg4/bin などのディレクトリの独自の特性に対応するために、特別なプロビジョニングが追加されています。ファイル引数に / 文字が含まれる場合は、検索パスを作成するために PATH 要素の代わりに引数の dirname 部分が使用されます。

マニュアルページのディレクトリ内において、man は次に示すセクションだけを次の順序で検索します。

  • コマンド行上で –s オプションにより指定されたセクション群

  • MANPATH 環境変数に埋め込まれているセクション

  • MANPATH 環境変数が示す各ディレクトリの man.cf ファイル中に指定されているセクション

前述の指定がいずれも存在しない場合には、man はマニュアルページパス中の各ディレクトリを検索し、最初に見つかったマニュアルページだけを表示します。

man.cf ファイルの形式は次のとおりです。

MANSECTS=section[,section]... 

文字 `#' で始まる行および空行は注釈と見なされ、無視されます。MANPATH が示す各ディレクトリには、そのディレクトリのデフォルトの検索順序を指定するマニュアルページ構成ファイルを含めることができます。

マニュアルページのフォーマット

マニュアルページのフォーマット

マニュアルページは、nroff(1) または sgml(5) でマークアップされます。nroff のマニュアルページは、–man マクロパッケージにより nroff(1) または troff(1) によって処理されます。マクロの使用法については、man(5) を参照してください。SGML タグがついたマニュアルページは、SGML パーサーによって処理され、フォーマッタに引き渡されます。

nroff マニュアルページの前処理

nroff マニュアルページをフォーマットする際、man は、先頭行を検査して特殊な処理が必要かどうかを判断します。先頭行が

'\" X

という形式の文字列 (X は「"」とは 1 つのスペースで区切られています) であり、次のリスト内の文字の任意の組み合わせで構成されている場合、man は、その入力を対応するプリプロセッサを通して troff(1) または nroff(1) にパイプします。

e

eqn(1)、または nroff の場合は neqn

r

refer(1)

t

tbl(1)

v

vgrind(1)

eqn または neqn は、呼び出されると、ファイル /usr/pub/eqnchar を自動的に読み取ります (eqnchar(5) を参照)。nroff(1) が呼び出された場合は、col(1) が自動的に使用されます。

ほかの nroff マニュアルページへの参照

nroff のマニュアルページの先頭行がこれらのパターンで別のマニュアルページを参照している場合:

.so man*/sourcefile
.so sourcefile

man は、現在のファイルの代わりにその参照されているファイルを処理します。シャドウファイルがその参照とは別のサブディレクトリ内に存在する場合は、最初のパターンのように、参照をマニュアルページのディレクトリサブツリーのルートに対する相対的なパス名として表す必要があります。これらが同じセクションのサブディレクトリ (man*) 内に存在する場合は、2 つ目のパターンのように参照を簡潔に表すことができます。

2 行目以降の行が .so で始まっている場合、man はそれを無視します。troff(1) または nroff(1) は、通常の方法でそのリクエストを処理します。

SGML マニュアルページの処理

マニュアルページは、ファイル中に <!DOCTYPE という文字列が存在することによって、SGML でマークアップされていると特定されます。ファイルに SHADOW_PAGE という文字列も含まれている場合、そのファイルは別のマニュアルページの内容を参照します。この参照は、テキストが含まれているマニュアルページへのファイル実体の参照によって行われます。これは、nroff フォーマットのマニュアルページで使用される .so のメカニズムに類似しています。

環境変数

man の実行に影響を与える環境変数 LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、および NLSPATH についての詳細は、environ(5) を参照してください。

MANPATH

コロンで区切られたディレクトリのリスト。各ディレクトリは、コンマで区切られたセクションのリストのあとに続いて指定できます。設定されている場合は、その値によって、デフォルトのディレクトリ検索パスとしての /usr/share/man とデフォルトのセクション検索パスとしての man.cf ファイルがオーバーライドされます。これらの値がさらに、–M および –s フラグによってオーバーライドされます。

PAGER

man の出力を対話モードで画面に送るために使用するプログラム。この環境変数が設定されていない場合は、`more –s' が使用されます。more(1) を参照してください。

TCAT

troff で処理されたマニュアルページを表示するために使用するプログラムの名前。

TROFF

–t オプションが指定された場合に用いるフォーマッタの名前。設定されていない場合は、troff(1) が使用されます。

使用例 1 テキストバージョンのマニュアルページの作成

次の例では、pipe(2) のマニュアルページを ASCII テキストで作成します。

% man pipe.2 | col -x -b > pipe.text

これは、man –t を使用してマニュアルページをデフォルトのプリンタに送信する代わりに、テキストファイルバージョンのマニュアルページを作成します。

使用例 2 1 つ以上の用語に一致するマニュアルページのリストの取得

次の例では、zfs または create という語に一致するマニュアルページのリストを取得します:

% man -K zfs create
使用例 3 1 つ以上の語句に一致するマニュアルページのリストの取得

次の例では、引用符で囲まれた語句「zfs create」または「storage pool」に一致するマニュアルページのリストを取得します。

% man -K 'zfs create' "storage pool"
使用例 4 セクション内で語または語句に一致するマニュアルページのリストの取得

次の例では、「関連項目」セクションに zfs という用語が含まれるマニュアルページのリストを取得します。

% man -K see also: zfs

次の例では、「使用例」セクションに「zfs create」という語句が含まれるマニュアルページのリストを取得します。

% man -K examples: "zfs create"

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

>0

エラーが発生した。

ファイル

/usr/share/man

標準マニュアルページのディレクトリサブツリーのルート

/usr/share/man/man?/*

書式なし nroff のマニュアルのエントリ

/usr/share/man/man_index/*

目次とキーワードのデータべース。

次のファイルが生成されます。

  • /usr/share/man/man-index/term.idx

  • /usr/share/man/man-index/term.dic

  • /usr/share/man/man-index/term.req

  • /usr/share/man/man-index/term.pos

  • /usr/share/man/man-index/term.doc

  • /usr/share/man/man-index/term.exp

/usr/share/man/sman?/*

書式なし SGML のマニュアルのエントリ

/usr/share/man/cat?/*

nroff 処理後のマニュアルのエントリ

/usr/share/man/fmt?/*

troff 処理後のマニュアルのエントリ

/usr/share/lib/tmac/an

標準 –man マクロパッケージ

/usr/share/lib/sgml/locale/C/dtd/*

SGML ドキュメント型定義ファイル

/usr/share/lib/sgml/locale/C/solbook/*

SGML のスタイルシートと実体ファイルの定義ディレクトリ

/usr/share/lib/pub/eqnchar

eqnneqn の標準定義

man.cf

セクションごとのデフォルトの検索順序

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
text/doctools
CSI
有効。「注意事項」を参照。
インタフェースの安定性
確実
標準
standards(5) を参照してください。

関連項目

apropos(1), cat(1), col(1), eqn(1), more(1), nroff(1), refer(1), tbl(1), troff(1), vgrind(1), whatis(1), catman(1M), attributes(5), environ(5), eqnchar(5), man(5), sgml(5), standards(5)

–f–k、および –K オプションは、man(5) で指定された SMF サービスによって作成されるか、または –w オプションを指定した catman(1M) を使用して手動で作成するインデックスファイルを使用します。

windex データベースファイルは使用されなくなりました。windex データベースファイルは、新しいインデックスファイルで置き換えられています。

man コマンドは CSI に対応しています。ただし、man コマンドによって呼び出される一部のユーティリティー、つまり troffeqnneqnrefertbl、および vgrind は、CSI に対応していることが検証されていません。このため、–t オプションを指定した man コマンドは、EUC 以外のデータを処理できません。また、eqnneqnrefertbl、または vgrind による特殊な処理が必要なマニュアルページを man コマンドを使用して表示することも、CSI に対応した操作にはなりません。

バグ

マニュアルは、写真植字機または ASCII 端末のどちらかで再現可能であると想定されています。ただし、端末上では (たとえば、フォントの変更で示される) 一部の情報が失われます。

一部のダム端末は、e (eqn(1) を参照) 前処理フラグによって生成される縦方向の動きを処理できません。これらの端末での歪んだ出力を防ぐには、e を使用するときに t も使用して、col(1) を暗黙的に呼び出してください。この回避方法には、上付きおよび下付きの添字が、それらを表示できる端末でも削除されるという欠点があります。eqn(1) の出力によって正しく動作しなくなった端末は、Control-q でクリアーされます。