はじめに

こんにちは!今回はmanコマンドについて解説します。

manはLinuxコマンドのマニュアルを表示するコマンド。「わかんない〜」ってなった時の頼りになる相棒です。

Linuxで自力学習するなら、manコマンドは必須スキル。このコマンドなしでは、わからないことが解決できません。

manコマンドとは

manは"Manual"の略で、Linuxコマンドやライブラリ関数、設定ファイルなどの詳細なマニュアルを表示する外部コマンドです。

ビルトインコマンド、外部コマンド、システムコール、C言語のライブラリ関数、設定ファイルなど、あらゆるもののマニュアルが格納されています。わからないことがあったら、まずmanコマンドで調べるのがLinuxの鉄則です。

基本構文

1
man [セクション番号] コマンド名

セクション番号を省略した場合は、最初にマッチしたセクションが表示されます。

マニュアルセクション一覧

セクション 説明
1 実行可能プログラムやシェルコマンド
2 システムコール
3 C言語ライブラリ関数
4 特別なファイル(/dev/)など
5 ファイルフォーマットと設定ファイル
6 ゲームなど
7 マクロパッケージとメモ
8 システム管理コマンド(rootユーザー向け)

主なオプション

オプション 説明
-k キーワード検索(全マニュアルから検索)
-K ファイル内容から全文検索
-w マニュアルファイルのパスを表示
-f whatisと同じ(簡潔な説明表示)
-a 全セクションのマニュアルを表示
-N 最新のマニュアルのみ表示
-M マニュアルディレクトリを指定

使用例

例1: コマンドのマニュアルを表示

1
man ls

実行結果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
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).  Sort entries alphabetically if none of -cftuvSUX
       nor --sort is specified.
...

lsコマンドのマニュアルが表示されます。スペースキーで次ページへ、qキーで終了します。

例2: 特定のセクションのマニュアルを表示

1
man 5 passwd

実行結果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
PASSWD(5)                File Formats and Conversions          PASSWD(5)

NAME
       passwd - the password file

DESCRIPTION
       /etc/passwd contains one line for each user account, with the
       following information:

       login name:encrypted password:numeric user id:numeric group
       id:user name or comment field:user home directory:optional
...

passwdファイルフォーマットのマニュアル(セクション5)を表示。同じ名前でも異なるセクションのマニュアルがある場合に使用。

例3: キーワード検索

1
man -k password

実行結果:

1
2
3
4
5
6
7
chage (1)            - change user password expiry information
chpasswd (8)         - update passwords in batch mode
getpass (3)          - get a password
gpasswd (1)          - administer /etc/group and /etc/gshadow
passwd (1)           - change user password
passwd (5)           - the password file
shadow (5)           - shadowed password file

“password"キーワードを含むすべてのマニュアルを表示。探しているコマンドが不明な時に便利。

例4: マニュアルファイルのパスを表示

1
man -w ls

実行結果:

1
/usr/share/man/man1/ls.1.gz

マニュアルファイルの実際のパスを表示。マニュアルのキャッシュ更新や確認に使用。

例5: コマンドの簡潔な説明を表示

1
man -f ls

実行結果:

1
ls (1)               - list directory contents

whatisコマンドと同じ。マニュアルの一行説明だけを表示。

例6: すべてのセクションのマニュアルを表示

1
man -a passwd

実行結果:

1
2
3
4
(セクション1のpasswdマニュアルが表示される)
--More--(スペースで次へ)

(セクション5のpasswdマニュアルが表示される)

同じ名前のマニュアルが複数セクションに存在する場合、全て表示します。

例7: システム管理コマンドのマニュアル

1
man 8 sudoedit

実行結果:

1
2
3
4
5
6
7
8
SUDOEDIT(8)          System Administrator Commands         SUDOEDIT(8)

NAME
       sudoedit - edit files as another user

SYNOPSIS
       sudoedit [-imnS] [-C num ] [-D directory ] [-O var=value ]
...

セクション8はroot向けのシステムコマンドのマニュアル。sudo関連のコマンド確認に便利。

例8: C言語ライブラリ関数のマニュアル

1
man 3 printf

実行結果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
PRINTF(3)                  C Library Functions                 PRINTF(3)

NAME
       printf, fprintf, sprintf, snprintf, vprintf, vfprintf,
       vsprintf, vsnprintf - formatted output conversion

SYNOPSIS
       #include <stdio.h>

       int printf(const char *format, ...);
...

C言語のprintf()関数のマニュアル。プログラミングに必須。

例9: 設定ファイルのマニュアル

1
man 5 sudoers

実行結果:

1
2
3
4
5
6
7
8
9
SUDOERS(5)              File Formats and Conversions          SUDOERS(5)

NAME
       sudoers - default sudo security policy plugin

DESCRIPTION
       The sudoers policy plugin is the default sudo security
       policy plugin. It is responsible for parsing user input
...

/etc/sudoersファイルフォーマットの詳細なマニュアル。設定ファイルの理解に必須。

例10: 全文検索で関連マニュアルを探す

1
man -K "file permissions"

実行結果:

1
...(複数のマニュアルから該当箇所が表示される)

すべてのマニュアルから指定キーワードを検索。ただし時間がかかります。

Tips・注意点

マニュアル内での移動

マニュアル表示中のキーボード操作:

1
2
3
4
5
6
7
8
スペース      : 次ページへ
b              : 前ページへ
g              : 最初へ
G              : 最後へ
/キーワード   : キーワード検索
n              : 次の検索結果へ
N              : 前の検索結果へ
q              : 終了

同じ名前で複数セクションのマニュアルがある場合

1
2
3
4
5
# passwd コマンド(セクション1)
man 1 passwd

# passwd ファイルフォーマット(セクション5)
man 5 passwd

同じ「passwd」でも、セクション1はコマンド、セクション5はファイルフォーマット。目的に応じて指定。

マニュアルが日本語化されていない場合

1
LANG=C man ls

英語のマニュアルを表示したい場合、環境変数を指定します。

manページがない場合は–helpを試す

1
2
# manがない場合
ls --help

古いコマンドや特定の環境では、--helpオプションで簡潔な使用方法が表示されることがあります。

実践的な使い方

例1: 知らないコマンドを見つけたら即manで調査

1
2
man grep
# grepの詳細をじっくり読んで理解する

新しいコマンドに出会ったら、まずmanで使い方を学ぶ。公式の正確な情報が手に入ります。

例2: grep以下のマニュアルセクションを探す

1
man -k "^grep"

特定の言葉で始まるマニュアルを検索。類似コマンドを見つけるのに便利。

例3: オプションの詳細確認

1
man sed | grep -A 5 "^\s*-n"

特定のオプションの説明を検索。複雑なオプションの理解に有効。

例4: シスアドの必読

1
2
3
man sudoers
man 5 fstab
man 5 crontab

システム管理を学ぶなら、これらのマニュアルは必読。設定ファイルの完全な理解に必須。

まとめ

manコマンドのポイント:

  • Linuxマニュアルを表示する基本コマンド
  • 基本形: man コマンド名
  • セクション指定: man セクション番号 コマンド名
  • キーワード検索: man -k キーワード
  • 簡潔説明: man -f コマンド名
  • 全文検索: man -K キーワード
  • マニュアル内検索: /キーワード でページ内検索
  • 同じ名前でもセクションで異なる内容がある

manコマンドはLinuxの最強の学習ツール。困ったらmanを引く癖をつけると、どんどん実力がつきますよ!