12-LPIC「level1」

LPIC|level 1【manコマンド】

目標

  • 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 コマンドはマニュアルページを less や more などのページャーで表示します。

man -p

→ 出力例: less -is(現在使用されているページャーの情報)

ページャーは環境変数 PAGERMANPAGER を使って変更することができます。

このオプションを使うことで、「man が実際にどのページャーを使っているのか(どのコマンドを実行しているのか)」を確認できます。表示されるのはコマンドそのもので、実際に man ページは表示されません。

-M:

マニュアルの検索パスを一時的に変更します。例えば、man -M /path/to/man のように使うと、指定したディレクトリ内のマニュアルを検索します。

-l:

ローカルファイルに保存されたマニュアルページを直接表示します。

例: man -l ./manfile.1 とすることで、現在のディレクトリにある manfile.1 を表示できます。

セクションを指定する時の具体例

man コマンドでは、コマンドがどのセクションにあるかを指定することができます。例えば、ls コマンドはセクション1(ユーザーコマンド)にありますが、もし他のセクションにあるマニュアルを表示したい場合、セクション番号を指定することができます。

下の例では「man 2 ls」と入力していますが、ls はセクション2(システムコール)には 通常存在しません。この場合は、何も表示がされないことになります。

man 1 ls # セクション1のls(ユーザーコマンド)
man 2 ls # セクション2(システムコール)のls(実際には何も表示されない)

man のページナビゲーション

man コマンドで表示されるマニュアルページは、ページャー(通常は less)で表示されるため、以下のようにナビゲートできます。

  • Enter: 1行スクロール
  • Space: 1ページスクロール
  • b: 1ページ戻る
  • q: man の表示を終了
  • /: 検索(例:/options で “options” を検索)

man コマンドの実用例

  1. man ls:
    • ls コマンドの詳細なマニュアルを表示します。
  2. man -k network:
    • “network” に関連するすべてのマニュアルページを検索します。
  3. man -f passwd:
    • passwd コマンドがセクション1にあることを確認します。
  4. man -a ls:
    • ls コマンドに関連する全てのマニュアルを順番に表示します。
  5. man 3 printf:
    • printf 関数のセクション3(ライブラリ関数)のマニュアルを表示します。

manコマンドのまとめ

  • man コマンドは、Linux や UNIX 系システムでコマンドや関数、システム設定に関する詳細なドキュメントを表示するために使用します。
  • man コマンドの引数にコマンド名や関数名を指定することで、そのコマンドや関数に関する情報を表示します。
  • マニュアルページは通常、NAME、SYNOPSIS、DESCRIPTION、OPTIONS、SEE ALSO などのセクションで構成されています。
  • man コマンドにはいくつかのオプションがあり、検索やセクションの指定、表示方法のカスタマイズが可能です。

今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

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

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
12-LPIC「level1」

LPIC|level 1【パーティションとファイルシステム】

2025年6月1日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site