マニュアルコマンドman、infoや関連コマンドについて整理する
概要
1. manコマンド
1-1. マニュアル
1-2. 操作方法
1-3. 実行オプション
1-4. セクション
2. キーワード検索
3. infoコマンド
4. helpメッセージ
5. manpage検索
6. その他コマンド(apropos, whatis, makewhatis, whereis, which)
1. manコマンド
1.1 マニュアル
manコマンドはオンラインマニュアルを表示するためのコマンドです。
man command
manコマンド自身にもオンラインマニュアルがあるので、まず実行してみます。
$ man man man(1) man(1) NAME man - format and display the on-line manual pages SYNOPSIS man [-acdfFhkKtwW] [--path] [-m system] [-p string] [-C config_file] [-M pathlist] [-P pager] [-B browser] [-H htmlpager] [-S sec- tion_list] [section] name ... DESCRIPTION man formats and displays the on-line manual pages. If you specify section, man only looks in that section of the manual. name is normally the name of the manual page, which is typically the name of a command, function, or file. However, if name contains a slash (/) then man interprets it as a file specification, so that you can do man ./foo.5 or even man /cd/foo/bar.1.gz. See below for a description of where man looks for the manual page files. MANUAL SECTIONS The standard sections of the manual include: 1 User Commands 2 System Calls 3 C Library Functions 4 Devices and Special Files :
マニュアルの内容はおよそ次の見出し順で表示されます。
見出し | 日本語見出し | 内容 |
---|---|---|
NAME | 名前 | コマンド名と簡単な説明 |
SYNOPSIS | 書式 | コマンドの書式 |
DESCRIPTION | 説明 | コマンドの説明 |
OPTIONS | オプション | コマンドオプション |
FILES | 関連ファイル | その項目が関連しているファイル |
SEE ALSO | 関連項目 | 関連する他の項目 |
BUGS | バグ | バグ情報。使用制限など |
HISTORY | 歴史 | コマンドの実装履歴など |
表示される内容は、OS・ディストリビューションやバージョンなどの環境によって異なる場合があります。
1-2. 操作方法
manコマンドには、コンテンツの閲覧操作を行う機能は含まれておらず、ページャと呼ばれる別のプログラムを利用する仕組みになっています。
デフォルトページャは環境によって異なります(lessが定番です)。
多くの環境でデフォルトページャとして使われているmoreやlessは、以下の操作を覚えておけば十分です。
SPACE | 1ページ分進む |
q | ページャを終了する |
h | ページャのヘルプを表示する |
1-3. 実行オプション
・ページャ
使用するページャを指定できます。
ページャを指定するには環境変数PAGERに使用するページャを設定します。
% setenv PAGER more % setenv PAGER less
sh・bash
$ export PAGER=more $ export PAGER=less
・言語
標準ではmanは英語で記述されています。
日本語版のマニュアルを表示したい場合、まずはマニュアルが存在するか確認しましょう。
$ whereis man man: /usr/bin/man /etc/man.config /usr/share/man /usr/share/man/man1/man.1.gz $ ls -al /usr/share/man | grep ja drwxr-xr-x. 5 root root 4096 Jan 16 2014 ja
jaフォルダがあれば存在しています。
マニュアルが存在しなければインストールします。
$ sudo apt-get install manpages-ja
$ sudo yum install man-pages-ja
% setenv LANG ja_JP.UTF-8
sh・bash
$ export LANG=ja_JP.UTF-8
・検索パス
アプリケーションがOSの標準パス(/usrなど)にインストールされている場合、manも標準の検索パスに含まれているので特に気にする必要はありません。あるアプリケーションを標準パスとは異なるパスにインストールした場合、付属するmanも標準の検索パスとは異なる場所にインストールされるため、manコマンドを実行してもエラーになります。
新たに検索パスを追加するには、環境変数MANPATHを設定します。
例. アプリケーションtarget_applicationの検索パスを追加する場合
csh・tcsh
% setenv MANPATH /usr/local/share/man:/home/target_application/share/man
sh・bash
$ export MANPATH=/usr/local/share/man:/home/target_application/share/man
あるいは
% man -M /usr/local/share/man:/home/target_application/share/man target_command
複数のパスを設定する場合は、コロン(:)で連結します。
1-4. セクション
manのコンテンツは、その種別によってセクションに分けて管理されています。
セクション番号 | 内容 |
---|---|
1 | 一般コマンド |
2 | システムコール |
3 | ライブラリ関数 |
4 | デバイスファイルとデバイスドライバ |
5 | ファイル形式とその使用法 |
6 | ゲームとスクリーンセーバー |
7 | その他 |
8 | システム管理コマンドとデーモンなど |
9 | カーネル関係 |
オンラインマニュアルの中では、同じ項目が複数のセクションに出てくる時、次のように表現する慣例があります。
printf(1)
printf(3)
このような表記で括弧内に書かれているのがセクション番号になります。
printf(1) → セクション番号1にあるprintf
printf(3) → セクション番号3にあるprintf
例. セクション番号1のprintfのマニュアルを表示する場合
$ man 1 printf $ man -s 1 printf
manコマンドの第2引数でセクション番号を指定する場合と、sオプションで指定する場合があります。
manの末尾近くにSEE ALSO/関連項目があり、参照した項目に関連する他のマニュアルがセクション名付きでリストされています。別のセクションにも同名のマニュアルが存在する場合に参考になります。
2. キーワード検索
マニュアルを参照したいけど、対象の名前が分からない場合はmanコマンドのkオプションを使用することでキーワード検索を行うことができます。
man -k keyword
例.
$ man -k passwd chpasswd (8) - update passwords in batch mode gpasswd (1) - administer /etc/group and /etc/gshadow htpasswd (1) - Manage user files for basic authentication lpasswd (1) - Change group or user password pam_localuser (8) - require users to be listed in /etc/passwd passwd (1) - update user's authentication tokens passwd [sslpasswd] (1ssl) - compute password hashes saslpasswd2 (8) - set a user's sasl password
検索範囲は、マニュアルコンテンツのNAME/名前に記載されている部分のみです。
3. infoコマンド
infoコマンドはmanコマンドと同様にオンラインマニュアルを表示するコマンドです。
info info command
例.
$ info grep File: *manpages*, Node: grep, Up: (dir) GREP(1) BSD General Commands Manual GREP(1) NAME grep, egrep, fgrep, zgrep, zegrep, zfgrep -- file pattern searcher SYNOPSIS grep [-abcdDEFGHhIiJLlmnOopqRSsUVvwxZ] [-A num] [-B num] [-C[num]] [-e pattern] [-f file] [--binary-files=value] [--color[=when]] [--colour[=when]] [--context[=num]] [--label] [--line-buffered] [--null] [pattern] [file ...] DESCRIPTION The grep utility searches any given input files, selecting lines that match one or more patterns. By default, a pattern matches an input line if the regular expression (RE) in the pattern matches the input line without its trailing newline. An empty expression matches every line. Each input line that matches at least one of the patterns is written to the standard output. grep is used for simple patterns and basic regular expressions (BREs); egrep can handle extended regular expressions (EREs). See re_format(7) for more information on regular expressions. fgrep is quicker than both grep and egrep, but can only handle fixed patterns (i.e. it does not interpret regular expressions). Patterns may consist of one or more lines, allowing any of the pattern lines to match a portion of the input. zgrep, zegrep, and zfgrep act like grep, egrep, and fgrep, respectively, -----Info: (*manpages*)grep, 303 行 --Top------------------ Info バージョン 4.8 にようこそ。? で使い方、m でメニュー項目を呼び出せます。
infoコマンドの特徴は以下になります。
・多層構造のコンテンツ
manはコンテンツが一括で出力されるのに対し、infoはコンテンツが章立てされた多層構造になっていることが多いです。
・Emacs風の操作
操作キー | 意味 |
---|---|
カーソル移動 | |
←,↑,↓,→ | カーソル移動 |
M-< | ページの先頭に移動 |
M-> | ページの末尾に移動 |
SPACE | 1画面進む |
TAB | 次のノードへカーソルを移動 |
ページ移動 | |
n | 次のページへ移動 |
p | 前のページへ移動 |
u | 上のページへ移動 |
mコマンド | 指定したコマンドのページへ移動 |
d | コマンド一覧ページへ移動 |
t | 現在のドキュメントのトップへ移動 |
検索 | |
C-s | 表示しているページ中で順方向に文字列検索 |
C-r | 表示しているページ中で逆方向に文字列検索 |
その他 | |
C-g | コマンドの中止 |
q | 終了 |
? | infoのキー操作一覧 |
*Linuxコマンド逆引き大全 - 【 コマンドのマニュアルを表示する 】:ITproを参考
・GUIでの操作
GUIモードで起動したEmacsからinfoを呼び出した場合などで可能です。
4. helpメッセージ
オンラインマニュアルが付属していない場合は、コマンド類であればhelpメッセージを参照することで、最低限の使い方を確認できる場合があります。
command --help
例.
$ cat --help Usage: cat [OPTION]... [FILE]... Concatenate FILE(s), or standard input, to standard output. -A, --show-all equivalent to -vET -b, --number-nonblank number nonempty output lines -e equivalent to -vE -E, --show-ends display $ at end of each line -n, --number number all output lines -s, --squeeze-blank suppress repeated empty output lines -t equivalent to -vT -T, --show-tabs display TAB characters as ^I -u (ignored) -v, --show-nonprinting use ^ and M- notation, except for LFD and TAB --help display this help and exit --version output version information and exit With no FILE, or when FILE is -, read standard input. Examples: cat f - g Output f's contents, then standard input, then g's contents. cat Copy standard input to standard output. Report cat bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> For complete documentation, run: info coreutils 'cat invocation'
5. manpage検索
「manpage コマンド名」で検索すると、インターネット上でマニュアルページを見ることもできます。
6. その他のコマンド(apropos, whatis, makewhatis, whereis, which)
・apropos: キーワード検索
apropos keyword
例.
$ apropos passwd chpasswd (8) - update passwords in batch mode gpasswd (1) - administer /etc/group and /etc/gshadow htpasswd (1) - Manage user files for basic authentication lpasswd (1) - Change group or user password pam_localuser (8) - require users to be listed in /etc/passwd passwd (1) - update user's authentication tokens passwd [sslpasswd] (1ssl) - compute password hashes saslpasswd2 (8) - set a user's sasl password
・whatis: コマンドの説明を表示する
whatis keyword
*man -f keywordでも可能
例.
$ whatis passwd passwd (1) - update user's authentication tokens passwd [sslpasswd] (1ssl) - compute password hashes
・makewhatis: whatisデータベースを設定する
makewhatis
aproposコマンドやwhatisコマンドは、マニュアルのNAME/見出し部分を抜き出して作成されたwhatisデータベースを検索して表示しています。whatisデータベースはLinuxをインストールした時点では作成されていない場合がありますが、スーパーユーザ(root)になってmakewhatisコマンドを実行することでwhatisデータベースを手動で更新することができます。
・whereis: コマンドの置かれている場所を調べる
whereis [option] command
例.
$ whereis -b cat cat: /bin/cat $ whereis -m cat cat: /usr/share/man/man1/cat.1.gz $ whereis cat cat: /bin/cat /usr/share/man/man1/cat.1.gz
・type,which: コマンドのタイプを調べる
type [option] command which command
例.
$ type less less is /usr/bin/less $ type -t less file $ type -path less /usr/bin/less $ which less /usr/bin/less
参考にして頂ければと思います。
以上になります。
参考: