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

印刷ビューの終了

更新: 2016年12月6日
 
 

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) のどちらかで選択されたサマリーを表示します。マニュアルページが見つからない場合、man はエラーメッセージを出力します。

ソース形式

リファレンスマニュアルのページは、nroff (groff(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 は要求に応じてページを再フォーマットし、表示処理中、フォーマットされたテキストを一時ファイルに収納します。

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

クエリー文字列

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

用語は、すべての英字、数字、および下線 {a-z,A-Z,_} を含む有効な文字セットの文字シーケンスです。これはフルテキスト処理の有用なセマンティック単位です。ただし、すべての有効な用語で、ストップワード (または用語) はインデックス付けも検索もされません。

ストップワードには頻繁に使用される短い関数用語があります。たとえば the、is、at which などです。場合によっては、ストップ用語が原因で (特にそれらを含むクエリーが検索されたときに) 問題が発生する可能性があります。たとえば、"The zfs system"、"take that" などです。このため、インデックス作成やクエリー検索を実行する際は必ず、man(1) のパフォーマンスを向上させるためストップワードは削除されます。

句は、非インデックス文字 (通常はスペース文字) で連結された複数の用語で構成されます。端末でユーザーが句を検索する際、通常は二重引用符で囲みます。

クエリー拡張は、フルテキストドメインにおける有用な手法です。これは、空の検索結果が返されないように、ユーザーが入力した元のクエリー文字列のリファクタリング、および追加されたクエリー用語の再評価を実行するために使用され、man(1) フルテキスト検索のパフォーマンスを向上させます。

用語クエリー拡張は、ユーザーが入力の不完全な用語を自動的に補足し、正しい形式を指定できるようにすることを目的としています。

頭字語クエリー拡張は、ユーザーのクエリーにいくつかの頭字語が含まれる場合に、ユーザーが頭字語の拡張を実行するために使用されます。対応するフルネームの文字列をユーザーのクエリーに自動的に追加します。

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

部分一致では、ユーザーは各マニュアルページの検索範囲を制限するために、クエリー文字列でセクション名を指定できます。セクション名は、マニュアルページのレイアウトや構造を定義するのに役立つ各マニュアルページのセクションタイトルを指します。たとえば、"NAME"、"SYNOPSIS"、"DESCRIPTION" などです。

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

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

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

オプション

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

–a

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

–d

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

–f file ...

man は、指定されたいずれかのファイルに関連するマニュアルページを見つけようとします。結果のベース名または名前を含むサマリーを出力します。これは実質的に whatis(1) と同じです。

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

–F

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

–k query ...

指定したクエリーをインデックスファイルから検索し、サマリーを出力します。NAME セクションのみが検索されます。これは実質的に apropos(1) と同じです。

インデックスファイルの生成方法については、–K オプションを参照してください。

–K query ...

指定したクエリーをインデックスファイルから検索し、サマリーを出力します。デフォルトでは、すべてのセクションが検索されます。

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

–f–k、および –K によって使用される /usr/share/man および /usr/gnu/share/man 内のインデックスファイルは、これらのディレクトリ内のマニュアルページがインストールまたは更新され、これらを配布するパッケージが、pkg(5) で指定されるようにファイルに 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/man を検索して name を探します。–f–k または –K オプションとともに使用する場合は、–M オプションを最初に記述する必要があります。path 内の各ディレクトリは、セクションごとに 1 つの man* または sman* という形式のサブディレクトリを含んでいると見なされます。このオプションは、MANPATH 環境変数より優先されます。

–r

マニュアルページを再フォーマットするだけで、結果の表示は行いません。この指定は、man –t name と同等です。

–s section ...

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

–t

man は標準出力に PostScript を出力します。–t の両オプションがともに指定された場合、man は指定された各 nametroff バージョンを (必要であれば) 更新しますが、結果の出力は行いません。

–T macro-package

標準の –mandoc マクロではなく、macro-package を使用してマニュアルページをフォーマットします。「–m」で始まっている場合は、マクロパッケージが groff のオプションで指定されるものとして処理されます。「–r」オプションを続けて追加して、マクロのオプションを指定できます。これらのオプションについては、groff(1) および groff_man(5) を参照してください。「/」で始まっている場合は、マクロパッケージが直接指定されるものとして処理されます。/usr/share/lib/tmac にあるマクロはこれによって指定できます。例 5 を参照してください。

オペランド

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

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/xpg4/bin などのディレクトリの独自の特性に対応するために、特別なプロビジョニングが追加されています。ファイル引数に / 文字が含まれる場合は、検索パスを作成するために PATH 要素の代わりに引数の dirname 部分が使用されます。

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

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

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

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

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

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

MANSECTS=section[,section]... 

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

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

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

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

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

'\" X

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

e

geqn(1)

r

grefer(1)

t

gtbl(1)

v

vgrind(1)

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

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

.so man*/sourcefile
.so sourcefile

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

2 行目以降の行が .so で始まっている場合、man はそれを無視します。関連する roff は、通常の方法でその要求を処理します。

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 の出力を対話モードで画面に送るために使用するプログラム。設定されていない場合は、「less -ins」が使用されます。

TCAT

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

TROFF

–t オプションが指定された場合に用いるフォーマッタの名前。

使用例 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"
使用例 5 デフォルトのマクロパッケージの変更

次の例では、行の幅を 67 カラムに設定し、長い 1 ページではなく複数のページに出力します。これにより、man(5) マクロで生成される出力に似たルックアンドフィールを実現できます。

% man -T '-mandoc -rLL=67n -rcR=0' zfs

次の例では、デフォルトの mandoc マクロの代わりに、実際の man(5) マクロを使用します。

% man -T /usr/share/lib/tmac/an zfs

終了ステータス

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

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/groff/<version>/tmac/mandoc.tmac

デフォルトで使用される標準 -mandoc マクロパッケージ

/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), geqn(1), less(1), groff(1), grefer(1), gtbl(1), gtroff(1), vgrind(1), whatis(1), catman(1M), attributes(5), environ(5), man(5), sgml(5), standards(5)

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

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

man コマンドは CSI に対応しています。ただし、man コマンドによって呼び出される一部のユーティリティーは、CSI に対応していることが検証されていません。このため、–t オプションを指定した man コマンドは、ASCII 以外のデータを処理できません。また、geqngrefergtbl、または vgrind による特殊な処理が必要なマニュアルページを man コマンドを使用して表示することも、CSI に対応した操作にはなりません。デフォルトの PAGER プログラム less は、UTF-8 以外の複数バイト文字を処理できません。使用している環境が UTF-8 ロケールでない場合は、PAGER を「/usr/xpg4/bin/more」に設定するようにしてください。

SGML フォーマットのマニュアルページは Oracle Solaris の将来のリリースではサポートされなくなります。

バグ

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