目標
- manコマンドについて理解する
manコマンド
man コマンドは、Linux や UNIX 系のシステムで マニュアルページ を表示するためのコマンドです。システム内にインストールされているコマンド、関数、設定ファイル、システム管理ツールなどに関する情報を閲覧するために使用します。
man コマンドの基本的な使い方
man コマンドの最も基本的な使い方は次の通りです。
man <コマンド名>
例えば、ls コマンドのマニュアルを表示するには次のように実行します。
man ls
これで、ls コマンドに関する詳細な情報が表示されます。
マニュアルページ
man コマンドには、マニュアルページのセクションという概念があり、これにより同じ名前のコマンドや関数が異なる種類の情報源に関連付けられます。例えば、システムコマンドのマニュアルページ、ライブラリ関数、システムコールなどは、それぞれ異なるセクションに分類されます。
マニュアルページのセクション
man コマンドで表示されるマニュアルページは、通常、以下のセクションに分かれています。セクション番号(例えば、man 1 ls)を指定することで、どのセクションのマニュアルを表示するかを選ぶことができます。
セクション番号 | 内容 |
---|---|
1 | ユーザーコマンド: システムで実行可能なコマンドやプログラムに関する情報(例: ls , cp , rm など) |
2 | システムコール: カーネルによって提供されるシステムサービスやインターフェース(例: open , read , write など) |
3 | ライブラリ関数: プログラムが使用する標準ライブラリ関数やAPI(例: printf , malloc , strlen など) |
4 | デバイスファイル: システム内のデバイスファイル(例えば、/dev/sda , /dev/null など)に関する情報 |
5 | ファイル形式: 設定ファイルやデータファイルのフォーマットに関する情報(例: /etc/passwd , /etc/fstab など) |
6 | ゲーム: ゲームや遊びに関連するコマンド |
7 | その他: それ以外のさまざまな種類の情報(例: 文法ガイド、標準、規約) |
8 | システム管理コマンド: システム管理者向けのコマンド(例: shutdown , reboot , ifconfig など) |
具体的なセクション番号とその役割
セクション 1: ユーザーコマンド
内容: システムで実行可能なコマンドやプログラムが対象です。これには、ユーザーが日常的に使用するコマンドが含まれます。
#利用例
man 1 ls # → ls コマンドの使用方法
man 1 cp # → cp コマンドの使用方法
セクション 2: システムコール
内容: オペレーティングシステムのカーネルが提供するインターフェースで、プログラムがシステムリソース(ファイル、ネットワーク、メモリなど)にアクセスするための関数や命令です。
#利用例
man 2 open # → open システムコールの詳細
man 2 read # → read システムコールの詳細
セクション 3: ライブラリ関数
内容: 標準ライブラリや外部ライブラリに含まれる関数に関する情報。プログラムを書く際に使用する、事前に定義された関数が多く含まれます。
#利用例
man 3 printf # → printf 関数の使用方法(C言語の標準ライブラリ)
man 3 malloc # → malloc 関数の詳細(メモリ管理関数)
セクション 4: デバイスファイル
内容: システム内のデバイスファイル(例えば、ハードディスク、仮想デバイスなど)に関する情報が含まれます。これには、デバイスドライバや入出力操作に関する詳細が記載されます。
#利用例
man 4 tty # → tty デバイスに関する情報(端末デバイスの管理)
man 4 null # → /dev/null デバイスに関する情報
セクション 5: ファイル形式
内容: システム上で使用される各種ファイルのフォーマットや設定ファイルに関する情報です。これには、設定ファイルやログファイルの構造が含まれます。
#利用例
man 5 passwd # → /etc/passwd ファイルのフォーマットと説明
man 5 fstab # → /etc/fstab ファイルのフォーマットと説明
セクション 6: ゲーム
内容: ゲーム関連のコマンドやプログラムです。このセクションには、システムで利用できる簡単なゲームが含まれます。
#利用例
man 6 nethack # → nethack ゲームのマニュアル
セクション 7: その他
内容: システムの標準や規格、その他の情報(一般的なガイドや規約など)に関するマニュアルです。例えば、文書化されたプロトコルやファイル形式がここに含まれます。
#利用例
man 7 man # → man コマンドに関する情報
man 7 regex # → 正規表現(regex)に関する情報
セクション 8: システム管理コマンド
内容: システム管理者(rootユーザー)向けのコマンドです。これには、システムの設定や管理に関連するコマンドが含まれます。
#利用例
man 8 shutdown # → shutdown コマンドの使い方
man 8 reboot # → reboot コマンドの使い方
セクションの指定方法
セクション番号を指定することで、特定のカテゴリのマニュアルを表示することができます。例えば、ls コマンドがセクション 1 と 3 に存在する場合、次のように指定できます:
#利用例
man 1 ls # → ユーザーコマンドの ls
man 3 ls # → ライブラリ関数の ls
また、特定のセクション番号を知らなくても、man は自動的に最適なセクションを選択するため、通常はコマンド名だけで十分です。ただし、同じ名前のエントリが複数のセクションに存在する場合には、セクション番号を指定することで意図したマニュアルを表示できます。
マニュアルページの構造
man コマンドが表示するマニュアルページの構造は、通常、以下のセクションに分かれています。ただし、全てのマニュアルページにすべてのセクションが含まれているわけではなく、コマンドや関数の種類によっては一部のセクションが省略されることもあります。
マニュアルページの構造のセクション
NAME (名前)
コマンドや関数の名前と、その簡単な説明が記載されています。
例: ls コマンドでは、「List directory contents(ディレクトリの内容を表示)」のように記載されています。
SYNOPSIS (概要・構文)
コマンドの使い方(コマンドの構文)を示します。どのようにコマンドを実行するか、どのオプションを指定できるかなどがここに記載されます。
例: ls [OPTION]… [FILE]…
DESCRIPTION (詳細説明)
コマンドや関数の具体的な動作や挙動について説明します。オプションや引数がどのように影響を与えるのか、実行結果がどうなるのか、という詳細な内容が含まれます。
OPTIONS (オプション)
コマンドで使用可能なオプションや引数がリストとして紹介されます。オプションごとに、その意味と使用方法が説明されます。
例: -l は詳細リスト表示、-a は隠しファイルも表示 など。
SEE ALSO (関連情報)
関連するコマンドやリソース、さらに詳細なドキュメントへのリンクが提供されます。例えば、関連するコマンドやファイル、インターネット上のリソースなどがリストアップされます。
EXAMPLES (使用例)
コマンドの使用例が示されるセクションです。これにより、具体的な使い方がわかりやすくなります。このセクションがない場合もあります。
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
OPTIONS
-a, --all
do not ignore entries starting with .
-l use a long listing format
EXAMPLES
ls -l
Displays files in long format.
SEE ALSO
mkdir(1), rmdir(1), rm(1)
このように、man コマンドで表示されるマニュアルページは、一般的に上記のセクションを含み、コマンドの使い方、詳細、オプション、例などを確認できます。
man コマンドのオプション
man コマンドにはいくつかのオプションがあり、マニュアルページの表示方法をカスタマイズできます。
-k:
キーワードに基づいてマニュアルページを検索します。
例: man -k ls とすると、ls に関連する全てのマニュアルページがリスト表示されます。
-f:
指定したコマンドに関連するマニュアルページを表示します。これにより、どのセクションに属しているかもわかります。
例: man -f ls とすると、ls がセクション1にあることがわかります(ls (1))。
-a:
指定したコマンドに関連する全てのマニュアルページを表示します。例えば、man -a ls では、ls コマンドに関連する全てのセクションのマニュアルが順番に表示されます。
-p:
man の検索パスを変更します。通常、man は標準のディレクトリ(/usr/share/man/ など)を検索しますが、-p オプションを使うと他のディレクトリを指定できます。
-M:
マニュアルの検索パスを一時的に変更します。例えば、man -M /path/to/man のように使うと、指定したディレクトリ内のマニュアルを検索します。
-l:
ローカルファイルに保存されたマニュアルページを直接表示します。
例: man -l ./manfile.1 とすることで、現在のディレクトリにある manfile.1 を表示できます。
セクションを指定する時の具体例
man コマンドでは、コマンドがどのセクションにあるかを指定することができます。例えば、ls コマンドはセクション1(ユーザーコマンド)にありますが、もし他のセクションにあるマニュアルを表示したい場合、セクション番号を指定することができます。
man 1 ls # セクション1のls(ユーザーコマンド)
man 2 ls # セクション2(システムコール)のls
man のページナビゲーション
man コマンドで表示されるマニュアルページは、ページャー(通常は less)で表示されるため、以下のようにナビゲートできます。
- Enter: 1行スクロール
- Space: 1ページスクロール
- b: 1ページ戻る
- q: man の表示を終了
- /: 検索(例:/options で “options” を検索)
man コマンドの実用例
- man ls:
- ls コマンドの詳細なマニュアルを表示します。
- man -k network:
- “network” に関連するすべてのマニュアルページを検索します。
- man -f passwd:
- passwd コマンドがセクション1にあることを確認します。
- man -a ls:
- ls コマンドに関連する全てのマニュアルを順番に表示します。
- man 3 printf:
- printf 関数のセクション3(ライブラリ関数)のマニュアルを表示します。
manコマンドのまとめ
- man コマンドは、Linux や UNIX 系システムでコマンドや関数、システム設定に関する詳細なドキュメントを表示するために使用します。
- man コマンドの引数にコマンド名や関数名を指定することで、そのコマンドや関数に関する情報を表示します。
- マニュアルページは通常、NAME、SYNOPSIS、DESCRIPTION、OPTIONS、SEE ALSO などのセクションで構成されています。
- man コマンドにはいくつかのオプションがあり、検索やセクションの指定、表示方法のカスタマイズが可能です。
今回は以上になります。

ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

