コマンドの日本語マニュアルを手軽に使うには
慣れてないLinux環境で作業しているとき、コマンドは知ってるんだけど、オプションどうだっけかなって思うこと、ありませんか?
ブラウザでインターネットを毎回調べてもいいのですが、ちょっとした確認をする場合、というより網羅的に調べたいときには、マニュアルをインストールしておくとささっと調べられて便利です。
各コマンドのhelpオプションも便利です
もっとお手軽には、 --help オプション付けると、ごくごく簡単な使い方を表示してくれるコマンドも多いです。
でも、日本語で表示してくれるという意味では、manコマンドは入れておいた方がよいですよ。
manコマンドのインストール
CentOSであれば、yum で一発です。といっても2つのパッケージをインストールします。
まずは基本パッケージです。
1 |
sudo yum install man |
でインストールしましょう。
日本語マニュアルだけほしいといっても、これをインストールしておかないと、man コマンドのマニュアルがついてきません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
[vagrant@localhost man]$ sudo yum install -y man 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ftp-srv2.kddilabs.jp * epel: mirror.ehost.vn * extras: ftp-srv2.kddilabs.jp * remi-safe: fr2.rpmfind.net * updates: mirror.qoxy.com 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ man-db.x86_64 0:2.6.3-11.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================= Package アーキテクチャー バージョン リポジトリー 容量 ============================================================================================================= インストール中: man-db x86_64 2.6.3-11.el7 base 832 k トランザクションの要約 ============================================================================================================= インストール 1 パッケージ 総ダウンロード容量: 832 k インストール容量: 2.0 M Downloading packages: man-db-2.6.3-11.el7.x86_64.rpm | 832 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : man-db-2.6.3-11.el7.x86_64 1/1 検証中 : man-db-2.6.3-11.el7.x86_64 1/1 インストール: man-db.x86_64 0:2.6.3-11.el7 完了しました! |
また、日本語版のマニュアルをインストールしたいので、
1 |
sudo yum install man-pages-ja |
と、日本語版を指定してインストールします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
[vagrant@localhost ~]$ sudo yum install man-pages-ja 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ftp-srv2.kddilabs.jp * epel: mirror.ps.kz * extras: ftp-srv2.kddilabs.jp * remi-safe: fr2.rpmfind.net * updates: mirror.qoxy.com 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ man-pages-ja.noarch 0:20130615-3.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました =============================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 =============================================================================================== インストール中: man-pages-ja noarch 20130615-3.el7 base 5.4 M トランザクションの要約 =============================================================================================== インストール 1 パッケージ 総ダウンロード容量: 5.4 M インストール容量: 5.2 M Is this ok [y/d/N]: y Downloading packages: man-pages-ja-20130615-3.el7.noarch.rpm | 5.4 MB 00:00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : man-pages-ja-20130615-3.el7.noarch 1/1 検証中 : man-pages-ja-20130615-3.el7.noarch 1/1 インストール: man-pages-ja.noarch 0:20130615-3.el7 完了しました! |
さて、使い方もman man とすればわかりますが、一応説明します。
man man コマンドでmanコマンドのマニュアルを表示
使い方
マニュアルの参照の仕方
基本的には、
1 |
man コマンド名 |
で見ることができます。日本語のマニュアルがあるコマンドは日本語マニュアルが表示され、英語しかなければ、英語版のマニュアルが開きます。
また、マニュアルがない場合は、「マニュアルはありません」と表示されます。
1 2 |
[vagrant@localhost ~]$ man yum yum というマニュアルはありません |
ここであきらめず、コマンドのhelpオプションを試してみますと、結構詳しくオプションなどを知ることができたりします。
例えば、先ほどのyum の
--help オプション表示を下に引用します。
サブコマンドや、オプションの一覧が表示されてます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
[vagrant@localhost ~]$ yum --help 読み込んだプラグイン:fastestmirror Usage: yum [options] COMMAND List of Commands: check rpmdb の問題を確認する check-update 更新に利用できるパッケージを確認する clean キャッシュデータを削除する deplist パッケージの依存性の一覧を表示する distribution-synchronization 最新の利用可能なバージョンへインストール済みパッケージを同期する downgrade パッケージのダウングレード erase システムから削除するパッケージ fs Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts. fssnapshot Creates filesystem snapshots, or lists/deletes current snapshots. groups グループ情報の表示または使用 help 役立つ使い方のメッセージを表示する history トランザクション履歴を表示、使用する info パッケージもしくはパッケージのグループについての詳細を表示する install システムにパッケージをインストールする list パッケージグループの一覧を表示する load-transaction filename から保存済みトランザクションを読み込む makecache メタデータキャッシュを生成する provides 指定値を提供するパッケージを検索する reinstall パッケージの再インストール repo-pkgs Treat a repo. as a group of packages, so we can install/remove all of them repolist ソフトウェアリポジトリーの構成を表示する search 指定した文字列でパッケージの詳細を検索する shell 対話型の yum シェルを実行する swap Simple way to swap packages, instead of using shell update システムのパッケージを更新する update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affectsyour system updateinfo Acts on repository update information upgrade 不要になったパッケージを考慮しながらパッケージを更新する version ホストの利用できるリポジトリーのバージョンを表示する Options: -h, --help このヘルプ メッセージを表示して終了する -t, --tolerant エラーを黙認する -C, --cacheonly キャッシュから完全に実行し、キャッシュを更新しません -c [config file], --config=[config file] 構成ファイルの場所 -R [minutes], --randomwait=[minutes] コマンドの最大待ち時間 -d [debug level], --debuglevel=[debug level] デバッグ情報の出力レベル --showduplicates 一覧/検索コマンドのリポジトリーの重複の表示 -e [error level], --errorlevel=[error level] エラー出力レベル --rpmverbosity=[debug level name] rpm のデバッグ情報の出力レベル -q, --quiet 静かに処理をする -v, --verbose 冗長に処理をする -y, --assumeyes すべての問い合わせに「yes」で答える --assumeno すべての質問にいいえを回答します --version Yum のバージョンを表示して終了する --installroot=[path] インストールのベース ディレクトリーを設定する --enablerepo=[repo] ひとつ以上のリポジトリーを有効にする (ワイルドカード許可) --disablerepo=[repo] ひとつ以上のリポジトリーを無効にする (ワイルドカード許可) -x [package], --exclude=[package] 名前かワイルドカードでパッケージを除外する --disableexcludes=[repo] main、あるリポジトリー、またはすべてからの除外を無効にします。 --disableincludes=[repo] disable includepkgs for a repo or for everything --obsoletes 更新中に不要な処理を有効にします --noplugins Yum プラグインを無効にする --nogpgcheck GPG 署名の確認を無効にする --disableplugin=[plugin] 名前でプラグインを無効にする --enableplugin=[plugin] 名前でプラグインを有効にする --skip-broken 依存性関連に問題があるパッケージを飛ばす --color=COLOR 色を使うかどうか制御する --releasever=RELEASEVER yum 設定と repo ファイルに $releasever の値を設定する --downloadonly don't update, just download --downloaddir=DLDIR specifies an alternate directory to store packages --setopt=SETOPTS 全体設定とリポジトリー オプションの任意に設定する --bugfix Include bugfix relevant packages, in updates --security Include security relevant packages, in updates --advisory=ADVS, --advisories=ADVS Include packages needed to fix the given advisory, in updates --bzs=BZS Include packages needed to fix the given BZ, in updates --cves=CVES Include packages needed to fix the given CVE, in updates --sec-severity=SEVS, --secseverity=SEVS Include security relevant packages matching the severity, in updates プラグインのオプション: |
manコマンドのオプション
man コマンドの形式は、
1 |
man [section] term |
となっており、コマンド名(というか調べたいキーワード)の前に セクションという項目を入れることができます。
[] は、あってもなくてもよい省略可能な引数(指定語句)を示しています。
セクションを指定しない場合は、最初に見つかったマニュアル一つだけ表示します。
セクションは数字で指定するのですが、以下のように1~8まであります。(man man で表示されるマニュアルに表示されています)。
- 実行プログラムまたはシェルコマンド
- システムコール (カーネルが提供する関数)
- ライブラリー呼び出し (プログラムライブラリーに含まれる関数)
- 特殊ファイル (通常 /dev 配下に存在するファイル)
- ファイルの書式と慣習 (例: /etc/passwd)
- ゲーム
- その他いろいろなもの (マクロパッケージや慣習などを含む)。
- システム管理コマンド (通常は root 用)
例えば、「time」 というキーワードは、セクション番号が 1、2、7の3つのセクションで説明があります。
でも、
1 |
man time |
では、そのうち、「1: シェルコマンド」 の説明だけ表示されます。
1 2 3 4 5 6 7 8 9 10 11 |
TIME(1) Linux User's Manual TIME(1) 名前 time - コマンドの時間計測やリソース使用量を表示する 書式 time [options] command [arguments...] 説明 time コマンドは、指定されたプログラム command を渡された引き数で実行する。 command が終了すると、 time はこのプログラムの実行時間の統計情報についてのメッセージを 標準エラー出力に出力する。 |
そこで、
1 |
man 2 time |
とセクション番号を引数に追加してmanコマンドを実行すると、「2:システムコール」の説明が表示されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
TIME(2) Linux Programmer's Manual TIME(2) 名前 time - 秒単位の時間を得る 書式 #include <time.h> time_t time(time_t *t); 説明 time() は、紀元 (Epoch; 1970-01-01 00:00:00 (UTC)) からの秒数で返す。 もし t が NULL でなかったら返り値は t の指しているメモリにも格納される。 |
同様に、
1 |
man 7 time |
としてコマンドを実行すると、セクション 「7:その他いろいろなもの」 の説明が表示されます。これを見ると、linux での時間とタイマについて概略が説明されているようです。
1 2 3 4 5 6 7 8 9 10 |
TIME(7) Linux Programmer's Manual TIME(7) 名前 time - 時間とタイマの概要 説明 実時間 (real time) とプロセス時間 実時間は、特定の時点から計った時間と定義される。 特定の時点とは、過去の標準的な時点 (下記の紀元 (Epoch) とカレンダ時刻の説明を参照) や、 プロセスの一生における何らかの時点 (例えば、開始時) である (経過時間)。 |
-a オプションを付けると、全てのセクションのマニュアルを表示します。
下のログのように、マニュアル説明を q で終了するたび、別セクションの説明を表示するか選択できます。
Enterキーを押していると、すべての説明を表示できます。
1 2 3 |
[vagrant@localhost ~]$ man -a time --Man-- 次は: time(2) [ 閲覧 (return) | スキップ (Ctrl-D) | 終了 (Ctrl-C) ] --Man-- 次は: time(7) [ 閲覧 (return) | スキップ (Ctrl-D) | 終了 (Ctrl-C) ] |
-a しか説明していませんが、とりあえず、それだけでよいと思います。
ちなみに、複数のセクションに説明があるワードは下のログのようになります。
抽出しているコマンドの意味は、またの機会に説明しますね。
ここでは簡単に述べると、manで使う日本語マニュアルのフォルダ内のファイル一覧を取得して、キーワードごとに仕分けして調べ、複数のセクションに説明のあるキーワードだけ、並べ替えして表示してます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
[vagrant@localhost ~]$ ls -R /usr/share/man/ja/ | gawk 'BEGIN { FS = "."} $3=="gz" {ar[$1]=ar[$1] $2 ",";cnt[$1]++} END {for (w in ar) if (cnt[w]>1) print cnt[w]" "w" "ar[w]}' | sort 2 acct 2,5, 2 arp 7,8, 2 autofs 5,8, 2 basename 1,3, 2 chmod 1,2, 2 chown 1,2, 2 chroot 1,2, 2 clock_getres 2,3, 2 clock_gettime 2,3, 2 clock_settime 2,3, 2 crontab 1,5, 2 dirname 1,3, 2 exit 2,3, 2 flock 1,2, 2 free 1,3, 2 fstatvfs 2,3, 2 futex 2,7, 2 getcwd 2,3, 2 gethostid 2,3, 2 getopt 1,3, 2 glob 3,7, 2 groff 1,7, 2 hostname 1,7, 2 hosts_access 3,5, 2 info 1,5, 2 ipc 2,5, 2 kill 1,2, 2 link 1,2, 2 locale 5,7, 2 login 1,3, 2 lp 1,4, 2 man 1,7, 2 manpath 1,5, 2 mkdir 1,2, 2 mkfifo 1,3, 2 mknod 1,2, 2 mktemp 1,3, 2 mount 2,8, 2 mq_notify 2,3, 2 mq_open 2,3, 2 mq_timedreceive 2,3, 2 mq_timedsend 2,3, 2 mq_unlink 2,3, 2 netlink 3,7, 2 nfsd 7,8, 2 nice 1,2, 2 pipe 2,7, 2 pivot_root 2,8, 2 printf 1,3, 2 readdir 2,3, 2 readlink 1,2, 2 realpath 1,3, 2 regex 3,7, 2 rename 1,2, 2 resolver 3,5, 2 rexec 1,3, 2 rmdir 1,2, 2 rpc 3,5, 2 rtnetlink 3,7, 2 sethostid 2,3, 2 signal 2,7, 2 sigqueue 2,3, 2 sleep 1,3, 2 socket 2,7, 2 stat 1,2, 2 statvfs 2,3, 2 stty 1,2, 2 swapoff 2,8, 2 swapon 2,8, 2 sysctl 2,8, 2 syslog 2,3, 2 tee 1,2, 2 truncate 1,2, 2 tty 1,4, 2 umount 2,8, 2 uname 1,2, 2 unlink 1,2, 2 uuencode 1,5, 2 write 1,2, 3 random 3,4,6, 3 sync 1,2,8, 3 time 1,2,7, 8 intro 1,2,3,4,5,6,7,8, |
左側の数字が 説明が書いてあるセクションの個数、右側のカンマ区切りの数字がセクション番号です。
ちなみにの中のちなみにですが、すべてのセクションに intro というキーワードがあるので、
1 |
man -a intro |
とやると、8種類全部見れます。それぞれのセクションの説明がされているようです。
1 2 3 4 5 6 7 8 |
[vagrant@localhost ~]$ man -a intro --Man-- 次は: intro(8) [ 閲覧 (return) | スキップ (Ctrl-D) | 終了 (Ctrl-C) ] --Man-- 次は: intro(2) [ 閲覧 (return) | スキップ (Ctrl-D) | 終了 (Ctrl-C) ] --Man-- 次は: intro(3) [ 閲覧 (return) | スキップ (Ctrl-D) | 終了 (Ctrl-C) ] --Man-- 次は: intro(4) [ 閲覧 (return) | スキップ (Ctrl-D) | 終了 (Ctrl-C) ] --Man-- 次は: intro(5) [ 閲覧 (return) | スキップ (Ctrl-D) | 終了 (Ctrl-C) ] --Man-- 次は: intro(6) [ 閲覧 (return) | スキップ (Ctrl-D) | 終了 (Ctrl-C) ] --Man-- 次は: intro(7) [ 閲覧 (return) | スキップ (Ctrl-D) | 終了 (Ctrl-C) ] |
まとめ
素早くコマンドの使い方を調べられるmanコマンドは便利なので、入れておきましょう。
複数のセクションに説明がある語句があるので注意必要です。
セクションを指定するか、-a オプションを付けておけば網羅できます。
ネットで調べる前に、 man コマンド名 と打ち込んでみましょう。
コメント