man コマンド:使い方とオプション、セクション番号と man -k 検索
Linux サーバーでコマンドや設定ファイルの使い方を確認するときは man コマンドでマニュアルページを開き、名前がわからないときは man -k で短い説明を検索します。AlmaLinux 9 と Debian 12 のサーバーで passwd のページを調べたところ、Debian 12 にはセクション 1 のコマンドのページとセクション 5 のファイル形式のページが両方ありましたが、AlmaLinux 9 にはセクション 5 のページがありませんでした。
以下の出力は AlmaLinux 9.8 サーバーの root アカウントと Debian 12 サーバーの一般アカウントで実行した結果です。シミュレーターのホスト名と接続アドレスは例の値です。
1️⃣ man コマンドの基本的な使い方
man の後ろにコマンド名を書くと、そのコマンドのマニュアルページが開きます。man はページをページャー プログラムに渡して 1 画面ずつ出力するため、実行してもすぐにはプロンプトに戻りません。ページャーは環境変数 MANPAGER または PAGER で決まり、どちらも空なら less を使います。
出力をパイプに渡すと、ページャーなしで文字だけが出ます。[man ls] の先頭 12 行を head で受け取ると、1 行目に LS(1) があり、NAME、SYNOPSIS、DESCRIPTION の節が順に続きました。
man ls | head -n 12LS(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 speci-
fied.1 行目の LS(1) の括弧内の数字 1 は、このページが入っているセクション番号です。
ページの中では [Space] で次の画面に進み、[/語] と Enter で語を検索します。[n] は同じ語が出てくる次の位置に移動し、[q] は man を終了します。
存在しない名前を書くと [No manual entry for] エラーが出て、終了コードは 16 でした。
man no-such-cmd9No manual entry for no-such-cmd9echo $?16man ページの EXIT STATUS の節は、16 をページ、ファイル、語のうち 1 つ以上が見つからなかったときの値と説明しています。使い方の誤りは 1 なので、スクリプトで 2 つの場合を分けて処理できます。
2️⃣ man のセクション番号
同じ名前のページが複数のセクションにあると、man は決まったセクションの順に探し、最初に見つかったページを 1 つだけ開きます。セクションは 1 から 9 まであり、サーバー作業でよく開くのはセクション 1 のコマンド、セクション 5 のファイル形式、セクション 8 の管理コマンドです。
| セクション | 収めるページ | AlmaLinux 9.8 サーバーで見た例 |
|---|---|---|
| 1 | 実行プログラムとシェル コマンド | ls, passwd, crontab, man |
| 2 | システム コール(カーネルが提供する関数) | |
| 3 | ライブラリ関数 | |
| 4 | 特殊ファイル(主に /dev の下) | |
| 5 | ファイル形式と規約、例:/etc/passwd | crontab |
| 6 | ゲーム | |
| 7 | その他(マクロ パッケージと規約) | |
| 8 | システム管理コマンド、主に root 用 | useradd, mandb |
| 9 | カーネル ルーチン(非標準) |
crontab はコマンドと設定ファイル形式が同じ名前のため、2 つのセクションにページがあります。[man -f crontab] で確認すると、セクション 1 と 5 の行が一緒に出ました。
man -f crontabcrontab (1) - maintains crontab files for individual users
crontab (5) - files used to schedule the execution of programsセクション番号なしで [man crontab] を実行すると、セクション 1 の crontab コマンドのページが開きます。ジョブ予約ファイルの形式を見るには、名前の前に 5 を書きます。
man 5 crontab | head -n 4CRONTAB(5) File Formats CRONTAB(5)
NAME
crontab - files used to schedule the execution of programs1 行目が CRONTAB(5) と File Formats に変わり、NAME の行にもコマンドの説明ではなくジョブ予約ファイルの説明が出ました。
指定したセクションにその名前のページがないと、エラーになります。AlmaLinux 9.8 サーバーで /etc/passwd のファイル形式を見ようと [man 5 passwd] を実行すると、セクション 5 にページがないというエラーが出ました。
man 5 passwdNo manual entry for passwd in section 5Debian 12 サーバーでは [man -f passwd] にセクション 5 の passwd の行も出ました。どのセクションにページがあるかはサーバーにインストールされたマニュアルによって違うので、セクション番号を付ける前に [man -f] で先に確認します。
man -f passwdpasswd (1) - change user password
passwd (1ssl) - OpenSSL application commands
passwd (5) - the password fileセクション 8 には、アカウントを作る useradd のように、主に root アカウントが実行する管理コマンドが入っています。
man -f useradduseradd (8) - create a new user or update default new user information3️⃣ man コマンドのオプションと -k、-f 検索
[man -f] は同じ名前のページの 1 行の説明を出力し、whatis と同じ動作です。AlmaLinux 9.8 サーバーで [man -f passwd] と [whatis passwd] を実行すると、同じ 2 行が出ました。
man -f passwdpasswd (1) - update user's authentication tokens
passwd (1ossl) - OpenSSL application commands1ossl の行は、passwd という名前を共有する OpenSSL コマンドのページです。
名前がわからないときは [man -k] でページ名と短い説明を検索します。apropos と同じ動作で、語は正規表現として読まれます。
man -k '^passwd'passwd (1) - update user's authentication tokens
passwd (1ossl) - OpenSSL application commands^ は行の先頭を意味するため、passwd で始まる行だけが出ました。説明に含まれる語でも探せて、[man -k 'directory contents'] は ls と一緒に dir、vdir のページを見つけました。
man -k 'directory contents'dir (1) - list directory contents
ls (1) - list directory contents
vdir (1) - list directory contents[man -k] は NAME の節の短い説明だけを検索するため、オプション名や本文の語ではページを見つけられません。本文まで探す [man -K] は、すべてのページを順に読むので時間がかかります。
探す語がないと [nothing appropriate] が出て、終了コードは 16 でした。
man -k no-such-word9no-such-word9: nothing appropriate.echo $?16[man -w] はページを開かず、元のファイルの場所だけを出力します。
man -w ls/usr/share/man/man1/ls.1.gzman -w 5 crontab/usr/share/man/man5/crontab.5.gz2 つのファイルは /usr/share/man の下の man1 と man5 フォルダーにあり、フォルダー名の数字がセクション番号と同じでした。[man -w 1ossl passwd] で見つけた 1ossl のページ ファイルも、セクション 1 と同じ man1 フォルダーにありました。
オプションは下の 2 つのタブにまとめました。
| オプション | コピー | 説明 |
|---|---|---|
| -f, --whatis | 同じ名前のページの 1 行の説明を出力。whatis と同じ動作 | |
| -k, --apropos | ページ名と短い説明を検索。apropos と同じ動作 | |
| -w, --where, --path, --location | ページを開かず、元のファイルの場所だけを出力 | |
| -a, --all | 名前が一致するページを順にすべて出力 |
| オプション | コピー | 説明 |
|---|---|---|
| -K, --global-apropos | すべてのページの本文から語を検索。時間がかかる | |
| -S, -s, --sectionsリスト | 検索するセクションと順序を、カンマまたはコロンで区切ったリストで指定 | |
| -P, --pagerページャー | ページを出力するページャーを指定。既定値は less | |
| -M, --manpathパス | ページを探すマニュアル パスを指定 | |
| -L, --localelocale | 今回の実行で使う locale を指定 | |
| -l, --local-file | システムのマニュアルを検索せず、指定したファイルをページとして出力 | |
| -u, --update | インストール済みページの索引キャッシュを更新 | |
| -V, --version | バージョン情報を出力 |
🔲 man コマンド シミュレーター
下のシミュレーターでは、[man ls] でページを開き、[Space]、[/list]、[n]、[q] のチップで画面を送ってみることができます。同じ仮想サーバーで、[man 5 crontab] のようにセクション番号を付けたり、[man -f]、[man -k]、[man -w] を入力したりできます。
4️⃣ man ページの構成
man ページは、大文字の見出しが付いた節に分かれています。見出しだけを grep で取り出して比べると、ls のページはオプションの説明が DESCRIPTION の中にあり、crontab のページには OPTIONS の節が別にありました。
man ls | grep -E '^[A-Z]+( [A-Z]+)*$'NAME
SYNOPSIS
DESCRIPTION
AUTHOR
REPORTING BUGS
COPYRIGHT
SEE ALSOman crontab | grep -E '^[A-Z]+( [A-Z]+)*$'NAME
SYNOPSIS
DESCRIPTION
OPTIONS
CAVEATS
SEE ALSO
FILES
STANDARDS
DIAGNOSTICS
AUTHOR節の名前はページごとに少しずつ違い、よく出てくる節は次のとおりです。
| 節 | 書かれている内容 |
|---|---|
| NAME | 名前と 1 行の説明(man -f と man -k が出力する行) |
| SYNOPSIS | コマンドの書き方 |
| DESCRIPTION | 動作の説明(ls のページはオプションの説明もこの節に) |
| OPTIONS | オプションごとに 1 段落 |
| EXIT STATUS | 終了コードの意味 |
| FILES | コマンドが読み書きするファイル |
| SEE ALSO | あわせて見るページ |
SYNOPSIS の記号は、man ページが定めた規則に従います。角括弧の中は省略できます。縦線(|)で区切られたオプションは一緒に使えず、点 3 つ(...)が付いた引数は何度も書けます。
ls の SYNOPSIS は ls [OPTION]... [FILE]... なので、 コマンド オプションとファイル名などのコマンドライン引数は、すべて省略することも複数書くこともできます。
[--help] はプログラムが自分で出力する使い方の要約なので、ページャーなしでターミナルにそのまま出ます。[ls --help] の 1 行目の Usage は SYNOPSIS と同じ形で、全体の長さは 121 行と、[man ls] の 245 行より短くなりました。
ls --help | head -n 3Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.man ページには、[--help] にはない AUTHOR、SEE ALSO などの節がさらにあります。オプションを 1 つだけ手早く見るときは [--help] を、設定ファイルの形式や終了コードのように節に分かれた説明が必要なときは man を開きます。
🔢 FAQ & おすすめコンテンツ
ℹ️ 提携について
当サイトのコンテンツにはアフィリエイトリンクが含まれています。訪問者がこのリンクを通じて商品やサービスを購入すると、当サイトは販売元から手数料を受け取ります。この過程において、購入者が支払う金額(イベント割引適用で金額が下がります↓)は上昇しません。掲載されている価格・割引・在庫情報は作成時点のものであり、実際とは異なる場合がありますので、ご購入前に販売元にて最終確認をお願いいたします。商品の選定および評価は独自の基準に基づいて行われており、手数料の支払いの有無は紹介順や評価内容に影響を与えません。