本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「man」コマンドの応用的な使い方を紹介します。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コマンドのレファレンスマニュアルを表示する「man」コマンドの応用的な使い方として、マニュアル内を全文検索する方法を紹介します。
「man」は、コマンドの“レファレンスマニュアル”を表示するためのコマンドです。「man コマンド名」で、コマンドラインで使用するほとんどのコマンドのマニュアルを参照することができます。
manコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-C | --config-file=設定ファイル | 設定ファイルを指定する |
-M | --manpath=パス | manファイルの検索パスを指定する |
-d | --debug | デバッグメッセージを表示する |
-D | --default | 全てのオプションを初期値にする |
-u | --update | キャッシュを更新する |
短いオプション | 長いオプション | 意味 |
---|---|---|
-a | --all | 一致した全てのマニュアルページを表示する |
-S/-s | --sections=リスト | 表示対象とするセクションのリストを指定する(リストは「:」で区切る) |
--regex | 正規表現に一致した全てのマニュアルページを表示する | |
--wildcard | ワイルドカードに一致した全てのマニュアルページを表示する | |
--names-only | 「--regex」と「--wildcard」による指定対象を、コマンドの名前部分のみにする | |
-K | --global-apropos | キーワードを全文検索し、該当する全てのマニュアルページを表示する |
-f | --whatis | 該当するコマンドを一覧表示する(概要部分から検索。「whatis」コマンド相当) |
-k | --apropos | 該当するコマンドを一覧表示する(単語の一部だけでも可能。「apropos」コマンド相当) |
-i | --ignore-case | 大文字小文字を区別しないで検索する(デフォルト) |
-I | --match-case | 大文字小文字を区別して検索する |
-w | --where/--path/--location | マニュアルファイルがどこにあるかを表示する |
-W | --where-cat/--location-cat | 整形済みのマニュアルファイルがどこにあるかを表示する |
-l | --local-file | コマンド名ではなく、表示するファイルを指定する(ファイル名として「-」を指定すると標準入力から読み込む) |
##短いオプション | 長いオプション | 意味 |
---|---|---|
-P | --pager=コマンド | 出力を表示するコマンドを使用する(デフォルトは「less」コマンド) |
-r | --prompt=文字列 | lessコマンド(デフォルトの表示コマンド)のプロンプト |
-E | --encoding=ENCODING | 出力時のエンコーディング |
--no-hyphenation/--nh | ハイフンによる行末処理を無効にする | |
--no-justification/--nj | 均等割り付けを無効にする | |
-t | --troff | ページ整形に「groff」を使用する |
-H | --html[=ブラウザ] | Webブラウザで表示する(無指定時は「elinks」コマンドを使用する) |
「man -K キーワード」を実行すると、manコマンドで表示されるマニュアルの全文から指定したキーワードを検索し、順次表示します。
デフォルトでは大小文字を区別しません。「-I」オプションを付けると、大小文字を区別して検索します。区別しないことを明示したい場合は、「-i」オプションを使います。また、正規表現を使いたい場合は、「--regex」オプションを使用します。
man -K /etc/passwd
(マニュアル内で「/etc/passwd」が使われているコマンドを順番に表示する)
man -K 1 /etc/passwd
(第1章(一般コマンド)のマニュアル内で「/etc/passwd」が使われているコマンドを順番に表示する)
man -KI --regex "\bPASSWORD\b"
(大文字の「PASSWORD」という単語が使われているコマンドを順番に表示する)
該当するコマンドがあると、まず、最初に見つけたマニュアルの本文が表示されます(画面1)。ここで「q」キーを押してマニュアルの表示を終了すると、次のコマンドを表示するかどうかを確認するメッセージが表示されます(画面2)。
「whatis」コマンドや「apropos」コマンドでは、該当するコマンドが一覧表示されますが、manコマンドの「-K」オプションの場合は、該当するコマンドのマニュアルが順次表示されるため、リストをざっと眺めることができません。
そこで「-w」オプションを使うと、疑似的にではありますが、コマンドのリストを表示することができます。「-w」オプションは“マニュアルのファイルがどこにあるかを表示する”というオプションですが、manコマンドのファイル名は「コマンド名.章番号」または「コマンド名.章番号.gz」なので、ファイル名からコマンド名が分かります。
man -Kw /etc/passwd
(指定したキーワードが含まれるコマンドのリストを表示する)(画面3)
manコマンドで表示されるマニュアルの本体は、gzip形式で圧縮されたテキストファイルなので、gzipファイルに対応した「grep」コマンドである「zgrep」コマンドでキーワード検索することができます。
例えば、manファイルが「/usr/share/man/章番号/」にある場合、「zgrep キーワード /usr/share/man/*/*」のように指定します。なお、日本語ファイルが「/usr/share/man/ja/」下にまとまっている場合は、別途指定してください(コマンド実行例参照※)
【※】※zgrepコマンドが「-r」オプションに対応している場合は「zgrep -r キーワード /usr/share/man/」のように指定することもできます。
zgrep /etc/passwd /usr/share/man/ja/*/*
(日本語版のmanファイルから「/etc/passwd」というキーワードを検索する)
zgrep /etc/passwd /usr/share/man/*/* /usr/share/man/ja/*/*
(英語版と日本語版のmanファイルから「/etc/passwd」というキーワードを検索する)(画面4)
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.