Go to main content

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

印刷ビューの終了

更新: 2018年8月8日
 
 

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 でマークアップされています。man コマンドはそのマークアップの種類を認識して、適宜にファイルを処理します。マークアップの種類によって分けられたディレクトリに、個々のソースファイルが置かれています。詳細は、groff(1) のマニュアルページを参照してください。

マニュアルページの位置

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

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

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

クエリー文字列

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

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

ストップワードとは、「the」、「is」、「at」、「which」など、使用頻度の非常に高い、いくつかの短い機能語のことです。場合によっては、ストップ用語が原因で (特にそれらを含むクエリーが検索されたときに) 問題が発生する可能性があります。たとえば、「the ZFS system」や「take that」などです。したがって、インデックス作成やクエリー検索の実行時には必ず、man コマンドのパフォーマンス向上のため、ストップワードが除去されます。

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

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

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

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

英語の場合、たとえば cat という語幹でステミングを実行すると、cats、catlike、catty などの文字列が検索されます。文字列 stemmer、stemming、および stemmed は、語幹 stem に基づいて識別できます。ステミングのアルゴリズムによって、fishing、fished、fish、および fisher という単語が fish という語幹に変換されます。

セクション一致では、ユーザーは各マニュアルページ内の検索範囲を限定するためのセクション名を、クエリー文字列に指定できます。セクション名は、名前、形式、機能説明といった、マニュアルページのレイアウトや構造の定義に役立つ各マニュアルページ内のセクションタイトルを指します。

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

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

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

オプション

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

–a

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

–d

デバッグします。セクション指定子の評価結果、検索に使用された方法、および man コマンドが検索を行なったパスを表示します。

–f file ...

man コマンドは、指定されたいずれかのファイルに関連するマニュアルページを見つけようとします。結果のベース名または名前を含むサマリーを出力します。同じアクションが whatis コマンドによって実行されます。

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

–F

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

–k query ...

指定されたクエリーをインデックスファイルから検索し、サマリーを出力します。「名前」セクションのみが検索されます。同じアクションが apropos コマンドによって実行されます。

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

–K query ...

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

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

–f、–k、および –K によって使用される /usr/share/man と /usr/gnu/share/man 内のインデックスファイルは、これらのディレクトリ内のマニュアルページがインストールまたは更新され、それを提供しているパッケージがこれらのファイルに restart_fmri=svc:/application/man-index:default のタグを付けたときに自動的に生成されます。またこれらは、svcadm restart application/man-index を手動で実行するか、–w オプションを指定して catman コマンドを実行することによっても生成できます。

–l

指定された name に一致する、検索パス内で見つかったすべてのマニュアルページを一覧表示します。

–M path

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

–r

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

–s section ...

man で検索するマニュアルページのセクションを指定します。name の検索に使用されるディレクトリが、section で指定されたものに限定されます。section には 1 桁の数字を指定できますが、「3lib」のように、マニュアルの目的のセクションに一致させるための文字が数字のあとに 1 つ以上続くこともあります。また section には、local、new、old、public などの単語を指定することもできますし、1 つの文字を指定することもできます。複数のセクションを指定するには、各セクションをコンマで区切ります。このオプションは、MANPATH 環境変数や man.cf ファイルより優先されます。man コマンドでの検索方法の説明については、後述の「検索パス」を参照してください。

主セクション名 (たとえば、「9」) は、その名前のサブセクション (「9e」、「9f」、「9s」など) の省略名として機能できます。詳細は、後述の「マニュアルページのセクション」を参照してください。

Oracle Solaris 11.4 では一部のセクション名が変更され、これらのセクションのサブセクションも変更されました。

Solaris 2 through 11.3	  	Solaris 11.4
----------------------		  ------------
1m                      ->        8
4                       ->        5
5                       ->        7
7                       ->        4

指定されたセクション名にマニュアルページが見つからず、Solaris 2 から 11 までで使用されたセクション名が指定された場合、man コマンドはさらに SunOS 5.12 で使用されるセクション名の中を検索します。たとえば、マニュアルページ ip(4P) は、次のどの方法を使っても見つけることができます。

man -s 4p ip
man -s 4 ip
man -s 7p ip
man -s 7 ip
–t

man コマンドは、標準出力に PostScript を出力します。– フラグと –t フラグの両方が指定された場合、man コマンドは、指定された各 name の troff 処理されたバージョンを (必要に応じて) 更新しますが、表示は行いません。

–T macro-package

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

オペランド

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

name

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

使用法

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

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

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

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

  • セクション 1 では、オペレーティングシステムで利用可能なコマンドについて説明します。

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

  • セクション 2D では、DTrace プロバイダについて説明します。

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

  • セクション 3* では、関連ライブラリのコレクションについて説明します。

  • セクション 4 では、システムで使用可能なさまざまなデバイスやネットワークインタフェースについて説明します。

  • セクション 4D では、特定のハードウェア周辺装置やデバイスドライバを参照する特殊ファイルについて説明しています。STREAMS デバイスドライバについても説明します。

  • セクション 4FS では、Oracle Solaris でサポートされるいくつかのファイルシステムのプログラム的なインタフェースについて説明します。

  • セクション 4I では、ドライバまたはサブシステムの 1 つのクラスに適用される ioctl 要求について説明します。

  • セクション 4M では、STREAMS モジュールについて説明します。

  • セクション 4P では、Oracle Solaris で使用可能なさまざまなネットワークプロトコルについて説明します。

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

  • セクション 6 では、ゲームやスクリーンセーバーについて説明します。

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

  • セクション 8 では、主にシステムの保守や管理のために使用されるコマンドについて説明しています。

  • セクション 8S では、SMF サービスについて説明します。

  • セクション 9 では、Oracle Solaris オペレーティング環境向けのデバイスドライバを記述する際に必要となるリファレンス情報について説明します。

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

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

  • セクション 9P では、ドライバのプロパティーについて説明します。

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

検索パス

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

MANPATH が存在しない場合、man コマンドは基本的に PATH 要素の最後のコンポーネントを man で置き換えることによって、PATH 環境変数に基づく検索パスを作成します。/sbin、/usr/xpg4/bin などのディレクトリの独自の特性に対応するために、特別なプロビジョニングが追加されています。file 引数が絶対パスである場合は、検索パスを構築するために PATH 要素の代わりに引数の dirname 部分が使用されます。

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

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

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

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

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

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

MANSECTS=section[,section]... 

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

階層型のマニュアルページ名

man コマンドは、1 つ以上のスラッシュを含む階層的なマニュアルページ名をサポートしています。smf(7) のコマンドに対して FMRI を指定する場合と同様に、マニュアルページ名の末尾部分を指定することによって <name を省略できます。

たとえば、system/name-service/switch.8s は、/usr/share/man/man8s/system/name-service/switch.8s のマニュアルページを表示します。次の例は、同じ結果を示しています。

man system/name-service/switch
man name-service/switch
man -s 8s switch
man -s 8 switch
man switch.8s

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

マニュアルページは groff コマンドでマークアップされます。nroff マニュアルページは、groff で –mandoc マクロパッケージを使って処理されます。マクロの使用方法については、groff(1) のマニュアルページを参照してください。

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

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

'\" X

ここで、X は「"」と 1 つのスペースで区切られており、次のリストに含まれる文字の任意の組み合わせから構成されます。続いて man コマンドは、対応するプリプロセッサ経由で 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 が要求を通常どおりに処理します。

環境変数

man コマンドの実行に影響を与える LANG_LC_ALL_CTYPE、LC_MESSAGES、および NLSPATH 環境変数については、environ(7) のマニュアルページを参照してください。

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(7) マクロで生成される出力に似たルック & フィールが得られます。

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

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

% 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/cat?/*

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

/usr/share/man/fmt?/*

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

/usr/share/groff/<version>/tmac/mandoc.tmac

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

man.cf

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

属性

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

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

–s オプションでのマッピング動作 (Oracle Solaris 11 のセクション番号から) は「不確実」です。

関連項目

apropos(1), cat(1), col(1), groff(1), gtbl(1), less(1), vgrind(1), whatis(1), attributes(7), environ(7), standards(7), catman(8)

注

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

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

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

バグ

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