manコマンドはマニュアルを表示するコマンドだ。
Linuxには様々な機能やディレクトリの使い方に関するマニュアルがカタログページとして格納されている。
カタログページは、標準では環境変数$MANPATHで指定されている場所に保存されている。
マニュアルのカタログページを見やすい形で表示してくれるのがmanコマンドだ。
manコマンドの基本
コマンドの基本動作
使い方は、次のとおりだ。
$ man 調べる語句
wコマンドのマニュアルを見る場合は、次のコマンドだ。
$ man w
wコマンドのマニュアルが表示された。
標準ではlessコマンドを使って表示している。
表示するものはページャーと呼ばれ、後述するが、less以外のページャーを使用することもできる。
このページの例ではlessで開かれているため、表示は上下キーで移動でき、マニュアルを終了するにはqキーを押す。
manコマンドはLinuxコマンドだけではなく、システムディレクトリを説明するマニュアルも表示できる。
例えばetcディレクトリの説明は、次のコマンドで表示できる。
$ man etc
他にもC言語の関数マニュアルも表示できる。
例えば関数printfの説明は、次のコマンドで表示できる。
$ man 3 printf
このようにLinuxコマンドのマニュアル以外にも、さまざまなマニュアルが存在している。
セクション番号を指定する
マニュアルの種類にはセクション番号が振られており、番号を指定することで、その種類のマニュアルを表示できる。
passwdはLinuxコマンドとユーザー情報が格納されている/etc/passwdの2通りがある。
番号を指定しなければ、一番若い番号のマニュアルを表示する。
番号の詳細は次の通りだ。
1:Linuxコマンド
lsやcatなどの基本的なLinuxコマンド
2:システムコール (カーネル関数)
openや、fork、read、writeなどの入出力に関連する関数など
3:ライブラリコール (システム関数)
printfなどの表示関数や、sinやlogなどの算術関数など
4:スペシャルファイル
デバイスファイルとも呼ばれるデバイスの入出力に関するファイル
ディレクトリ/dev内のhd(ハードディスク)、lp(プリンタ)、null(入力したものをすべて捨て無効にする)などがある。
5:ファイルのフォーマット
ディレクトリ/etc内のhostsやpasswd、groupのような設定ファイルなど
6:ゲームやデモ
Mainsなどプリインストールされているゲームやデモ
7:マクロ
マクロとは、複数のコマンドや命令をまとめてあたかも一つのコマンドを入力するだけで複雑な動きができるようにまとめているもの
boot(起動シーケンス)が代表例だ。
8:システム管理用のコマンド
ifconfigやusermod、shutdownなど管理権限で使うコマンド
9:カーネルルーチン
カーネルルーチン [非標準]
セクションによるマニュアル表示
セクション番号を指定し、マニュアルを表示するには次の書式だ。
$ man マニュアル番号 調べる語句
Linuxコマンドのpasswdの使い方マニュアルは次のコマンドで表示する。
$ man 1 passwd
Linuxコマンドのpasswdの使い方マニュアルを表示した。
ユーザー情報の入っているファイルpasswdの書式がどうなっているかのマニュアルは次のコマンドで表示する。
$ man 5 passwd
ファイルpasswdの書式がどうなっているかのマニュアルを表示した。
manコマンドのオプションたち
オプションの一覧
後から詳細をご紹介するが、まずは一覧で見てみよう。
オプション -a(オプション--all)
対象のマニュアルを次々と表示する
オプション -d(オプション--debug)
デバッグ情報を表示する
オプション -k(オプション--apropos)
マニュアルの検索を行う
オプション -K(オプション--global-apropos)
マニュアルの説明文で検索を行う
オプション -P(オプション--pager=PAGER)
ページャーを指定する
オプション -C(オプション--config-file=FILE)
表示設定用ファイルを指定する
-aオプション(--allオプション): 対象のマニュアルを次々と表示する
-aオプションは、指定したマニュアルが複数存在した場合に次々と表示するオプションで書式は次のとおりだ。
$ man -a 調べる語句
複数マニュアルのあるpasswdのマニュアルを次々と表示するコマンドは次の通りだ。
$ man -a passwd
まず、passwdコマンドの日本語マニュアルが表示された。
この画面はqキーで終了することができる。
次のマニュアルを表示するか選択する。
続行ならEnterキー、終了ならCtrl+Cキーだ。
今回は続行なのでEnterキーを押す。
2つめの表示はpasswdコマンドの英語マニュアルだ。
qキーで終了する。
次のマニュアルを表示するか選択する。
さらに続行なのでEnterキーを押す。
3つめの表示はSSL版passwdコマンドの英語マニュアルだ。
qキーで終了する。
次のマニュアルを表示するか選択する。
さらに続行なのでEnterキーを押す。
4つめの表示はpasswdファイルの日本語マニュアルだ。
PASSWD(5)となっており、ファイルのフォーマットの種類であることがわかる。
qキーで終了する。
次のマニュアルを表示するか選択する。
さらに続行なのでEnterキーを押す。
5つめの表示はpasswdファイルの英語マニュアルだ。
qキーで終了する。
全5種類のマニュアルを表示したので、プロンプト画面に戻っている。
-dオプション(--debugオプション): デバッグ情報を表示する
調べる語句に対するデバッグ情報をマニュアルページではなく、プロンプトに表示する。
一度マニュアルを表示するが、qキーでマニュアルを閉じ、プロンプト画面にデバッグ情報が表示されている。
デバッグ情報はとても大きな情報であるため、特に必要がある場合のみ表示するようにしよう。
書式は次の通りだ。
$ man -d 調べる語句
wコマンドのマニュアルを、デバッグ情報を表示しながら表示する場合は次のコマンドだ。
$ man -d w
wコマンドのマニュアルをqキーで終了すると、端末の画面にデバッグ情報が表示されている。
-kオプション(-- aproposオプション): マニュアルの検索を行う
マニュアルを検索し、検索結果を一覧で表示する。
書式は次の通りだ。
$ man -k 検索語句
justというキーワードでマニュアルを検索するには次のコマンドだ。
$ man -k just
justというキーワードで検索されたマニュアルが一覧で表示された。
-Kオプション(-- global-aproposオプション): マニュアルの説明文で検索を行う
-kオプションはマニュアルのタイトルやインデックス文章で検索する。
マニュアルの全文で検索する場合は-Kオプションを使う。
書式は次の通りだ。
$ man -K 検索語句
PDP11というキーワードでマニュアルを検索するには次のコマンドだ。
$ man -K PDP11
PDP11というキーワードで、マニュアル全文で検索されたマニュアルが見つかった順に表示される。
すべてqキーでマニュアル画面を閉じる。
結果、PDP11というキーワードが入ったマニュアルはas(1)、cc(1)、gcc-4.4(1)、gcc(1)、i686-linux-gnu-gcc-4.4(1)、i686-linux-gnu-gcc(1)の6つであった。
-Pオプション(--pager=PAGERオプション): ページャーを指定する
ページャーを指定するオプションで書式は次の通りだ。
$ man -P ページャー名 検索語句
ページャーにheadコマンドを指定してwコマンドのマニュアルを表示するには次のコマンドだ。
$ man -P head w
headコマンドを使ってwコマンドを表示できた。
-Cオプション(--config-file=FILEオプション):表示設定用ファイルを指定する
表示設定用ファイルを指定するオプションで書式は次の通りだ。
$ man -C 表示設定用ファイル 検索語句
まとめ
このページでは、manコマンドを使ったマニュアルの表示方法を解説した。
Linuxの魅力は各種設定を自分の思った通りにカスタマイズできることだが、その設定ファイルがどこに入っていてどのように変更すればよいか調べるには専門書やWebサイトが役に立つ。
しかし、本当にオリジナルの設定をしたい場合などは、コンピュータにインストールされているLinuxのファイル構造を把握しておかなければならない。
ディストリビューションやバージョンによっても多少の違いがあるので、インストール時にLinuxにインストールされているマニュアル情報が一番信頼できる。
マニュアルは知りたいことがあるたびに見るだけではなく、積極的にどんな機能があるのか調べることもスキルアップには有効な手段なので活用してほしい。
マニュアル番号ではなくセクション番号。セクション 9 は未使用ではないです。非標準なだけで、マニュアルは存在します。
詳細は man(5) をどうぞ。
「他にもC言語の命令文のマニュアルも表示できる。例えば命令printfの説明は、次のコマンドで表示できる。」と書いておいて printf(3) でなく printf(1) の表示例を挙げているのは適切ではないと思います。あと、命令→関数。
おっしゃる通りですね。諸々修正させていただきます。ご指摘ありがとうございます。