このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:コマンドの使い方を調べる方法:manコマンド
コマンドの使い方を調べる方法:manコマンド
Linuxシステムでコマンドの使い方を調べる際、非常に有用なツールとしてman
コマンドがあります。man
は、指定したコマンドや設定ファイル、ライブラリ関数などのオンラインマニュアルを表示するためのコマンドです。ここでオンラインマニュアルとは、電子化されたマニュアルという意味であり、インターネット上のマニュアルをウェブブラウザで閲覧するものではありません。
man
はLinuxを使う上で最も基本的なマニュアルであり、その歴史も古く、ほとんどのコマンドに対応するman
ページ(マニュアル)が用意されています。--help
オプションによる簡易的なヘルプよりも詳しい解説が記載されており、コマンドの深い理解や応用的な使い方を知る際に非常に役立ちます。また、man
はコマンドのマニュアルだけでなく、Linuxの設定ファイルやライブラリ関数などのマニュアルも含まれています。
man
コマンドの基本的な使い方
【書式】 man <調べたいコマンド名>
例:cat
コマンドのマニュアルを表示
これまでに何度か使用してきたcat
コマンドのman
ページを見てみましょう。
user01@ubuntu:~$ man cat
以下のようなマニュアルが表示されます。
CAT(1) User Commands CAT(1)
NAME
cat - concatenate files and print on the standard output
SYNOPSIS
cat [OPTION]... [FILE]...
DESCRIPTION
Concatenate FILE(s) to standard output.
With no FILE, or when FILE is -, read standard input.
-A, --show-all
equivalent to -vET
-b, --number-nonblank
number nonempty output lines, overrides -n
...(以下省略)...
man
を起動すると、less
コマンドを使ってマニュアルが表示されます。操作方法は通常のless
コマンドと同じで、スペースキーで下にスクロールし、q
キーで終了します。
cat
コマンドの--help
オプションで表示される内容と比較して、man
ページではより詳細な説明が記載されていることがわかります。
man
ページの構成
man
ページの内容はコマンドによって異なりますが、おおよそ以下の項目で構成されています。
項目 | 内容 |
---|---|
名前 | コマンド名と簡単な説明 |
書式 | オプションや引数の指定方法(コマンドの使用方法) |
説明 | コマンドの詳細な説明 |
オプション | 利用可能なオプション一覧とその使用方法 |
例 | 実際的な使い方の例 |
環境変数 | コマンドが利用する環境変数について |
ファイル | 関連する設定ファイルやデータファイルについて |
関連項目 | 関連する他のコマンドやマニュアルへの参照 |
バグ | 既知の不具合や問題点について |
man
ページの構成man
コマンド自身のマニュアルを表示
man
コマンドも一つのコマンドであり、マニュアルが用意されています。次のコマンドでman
のマニュアルを見てみましょう。
user01@ubuntu:~$ man man
以下のようなマニュアルが表示されます。
MAN(1) マニュアルページユーティリティー MAN(1)
名前
man - システムリファレンスマニュアルのインターフェース
書式
man [マンオプション] [[セクション] ページ名 ...] ...
man -k [apropos オプション] 正規表現 ...
man -K [マンオプション] [セクション] 用語 ...
man -f [whatis オプション] ページ名 ...
man -l [マンオプション] ファイル ...
man -w|-W [マンオプション] ページ名 ...
説明
man はシステムのマニュアルページャーです。man に与えられた各ページ引数は、通常プログラム、ユーティリティ、または関数の名前です。これらの引数に関連付けられたマニュアルページが検索され、表示されます。セクションが指定されている場合、man はそのセクション内のみを検索します。デフォルトの動作は、事前定義された順序(DEFAULTS を参照)に従って利用可能なすべてのセクションを検索し、最初に見つかったページのみを表示します。たとえ複数のセクションに同じ名前のページが存在していても同様です。
...(以下省略)...
このように、man
コマンドについても詳細な説明が記載されています。
注意:man
コマンドの出力内容は、Linuxディストリビューションやバージョンによってコマンドの仕様やオプションが異なる場合があります。
キーワードからマニュアルを探す
コマンド名がわからない場合でも、man
コマンドを使ってキーワードから関連するマニュアルを検索することができます。その際に便利なのが、-k
オプションです。
【書式】man -k <キーワード>
例:directory
というキーワードで検索
user01@ubuntu:~$ man -k directory
実行結果
alphasort (3) - ディレクトリ内のエントリをソートする
basename (1) - パス名からディレクトリとサフィックスを削除する
bindtextdomain (3) - メッセージカタログを含むディレクトリを設定する
chacl (1) - ファイルまたはディレクトリのアクセス制御リストを変更する
chdir (2) - 作業ディレクトリを変更する
chroot (2) - ルートディレクトリを変更する
...(以下省略)...
この中から、目的のマニュアルをman
コマンドで表示すればよいわけです。なお、マニュアル名称の後ろにカッコ付きの数字が付いているのは、後述するセクション番号を表しています。
セクション
man
ページは、その内容に応じてセクションと呼ばれるカテゴリに分類されています。先ほどcat
コマンドのman
ページの冒頭にCAT(1)
と表記されていました。このカッコ内の数字がセクション番号です。セクションは以下のように1から9に分かれています。
セクション番号 | 内容 |
---|---|
1 | ユーザーコマンド |
2 | システムコール |
3 | ライブラリ関数 |
4 | 特殊ファイル(デバイスファイルなど) |
5 | ファイルフォーマットと規約 |
6 | ゲームとスクリーンセーバー |
7 | その他(マクロパッケージなど) |
8 | システム管理コマンド(rootユーザー向け) |
9 | カーネルルーチン(Linuxカーネル関連) |
上記のうち、セクション9の「カーネルルーチン」は比較的最近追加されたもので、ディストリビューションによってはセクション8までしかない場合もあります。
同名のマニュアルが存在する場合
マニュアルはセクションごとに分かれていますが、異なるセクションに同じ名前のマニュアルが存在することがあります。例えば、crontab
のマニュアルはcrontab(1)
とcrontab(5)
の2つのセクションに存在しています。この場合、名前だけでなくセクション番号まで指定しないと、望みのマニュアルを正しく表示できません。
crontab
は、定期的にコマンドやスクリプトを自動実行するためのスケジュール管理ツールです。
セクション番号を指定してマニュアルを表示
【書式】man <セクション番号> <名前>
例:crontab
のマニュアルをセクション番号で指定
セクション1(ユーザーコマンド)のcrontab
マニュアルを表示
user01@ubuntu:~$ man 1 crontab
実行結果
CRONTAB(1) General Commands Manual CRONTAB(1)
NAME
crontab - maintain crontab files for individual users (Vixie
Cron)
SYNOPSIS
crontab [ -h]
crontab [ -u user ] [-n] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
...(以下省略)...
セクション5(ファイルフォーマット)のcrontab
マニュアルを表示
user01@ubuntu:~$ man 5 crontab
実行結果
CRONTAB(5) File Formats Manual CRONTAB(5)
NAME
crontab - tables for driving cron
DESCRIPTION
A crontab file contains instructions to the cron(8) daemon
of the general form: ``run this command at this time on this
date''. Each user has their own crontab, and commands in
any given crontab will be executed as the user who owns the
crontab. Uucp and News will usually have their own
crontabs, eliminating the need for explicitly running su(1)
as part of a cron command.
...(以下省略)...
セクション番号を省略した場合
user01@ubuntu:~$ man crontab
実行結果
CRONTAB(1) General Commands Manual CRONTAB(1)
NAME
crontab - maintain crontab files for individual users (Vixie
Cron)
SYNOPSIS
crontab [ -h]
crontab [ -u user ] [-n] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
...(以下省略)...
最も若いセクション番号(この場合はセクション1)のマニュアルが表示されます。
マニュアルがどのセクションにあるかを確認
特定のマニュアルページがどのセクションに含まれているかは、man
コマンドに-wa
オプションを指定することで確認できます。
user01@ubuntu:~$ man -wa crontab
/usr/share/man/man1/crontab.1.gz
/usr/share/man/man5/crontab.5.gz
表示されたマニュアルページのファイルパスの末尾にある数字がセクション番号を示しています。
まとめ
man
コマンドは、指定したコマンドや設定ファイルなどの詳細なオンラインマニュアルを表示するためのコマンドです。man
ページの構成:名前、書式、説明、オプション、例、環境変数、ファイル、関連項目、バグなどのセクションで構成されています。- キーワード検索:
man -k <キーワード>
で、キーワードに関連するマニュアルを検索できます。 - セクション番号:
man
ページは内容に応じてセクションに分かれており、同名のマニュアルが異なるセクションに存在する場合があります。セクション番号を指定して正しいマニュアルを表示しましょう。 - 最新の情報を確認:Linuxディストリビューションやバージョンによってコマンドの仕様が異なる場合があるため、システムにインストールされている
man
ページを参照することが重要です。
Linuxシステムを効果的に利用するためには、man
コマンドを活用してコマンドの使い方や詳細を調べる習慣を身につけましょう。