manコマンドには「-f」オプションや「-k」オプションがあり、それぞれwhatisデータベースの中から
語句を検索することが出来るオプションだ。
man -f man とすれば、「man」がどのセクションに存在しているかが分る。
$ man -f man man (1) - format and display the on-line manual pages man (1p) - display system documentation man (7) - macros to format man pages man (rpm) - A set of documentation tools: man, apropos and whatis. man-pages (rpm) - Man (manual) pages from the Linux Documentation Project. man.config [man] (5) - configuration data for man $
man -k manとすれば、whatisデータベースの説明に「man」が含まれるものをリストする。
「man」を含むものはとても多いので、今回は「apache」で検証する。
$ man -k apache CGI::Apache (3pm) - Backward compatibility module for CGI.pm DBI::ProfileDumper::Apache (3pm) - capture DBI profiling data from Apache/mod_perl ab (1) - Apache HTTP server benchmarking tool apachectl (8) - Apache HTTP Server Control Interface apr (rpm) - Apache Portable Runtime library apr-util (rpm) - Apache Portable Runtime Utility library apxs (8) - APache eXtenSion tool httpd (8) - Apache Hypertext Transfer Protocol Server httpd (rpm) - Apache HTTP Server httpd-devel (rpm) - Development interfaces for the Apache HTTP server logresolve (1) - Resolve IP-addresses to hostnames in Apache log files mod_bw (rpm) - Bandwidth Limiter For Apache mod_ssl (rpm) - SSL/TLS module for the Apache HTTP Server mod_suphp (rpm) - Apache module that enables running PHP scripts under different users rotatelogs (8) - Piped logging program to rotate Apache logs vzdummy-apache (rpm) - Dummy package to tune apache MaxClients $
これらのオプションは、 whatisデータベース があるから使える。
もし、whatisデータベースが作成されていない場合には、以下のエラーになる。
$man -f man
man: nothing appropriate
$
この場合には、「makewhatis」コマンドを用いてデータベースを作成してあげましょう。
意外と処理に時間がかかるので、画面に変化がおきず「あれ?」と思うこともあると思いますので、
「-v」オプションをつけると安心して待てると思います。
# makewhatis -v
makewhatisデータベースは自動で更新することが出来ます。
毎日実行される実行可能スクリプトが収められたディレクトリ、/etc/cron.daily/
毎週実行される実行可能スクリプトが収められたディレクトリ、/etc/cron.weekly/
上記2ディレクトリの下に「makewhatis.cron」というファイルがあるはず。
もし、無ければ作成しよう。
もし、あるけれども実行権限が付与されていない場合には、以下コマンドで実行権限を付与しよう。
# chmod +x /etc/cron.*/makewhatis.cron
最後に、該当ファイルが無い人のために以下ファイルの内容を記載します。
/etc/cron.daily/makewhatis.cron
#!/bin/bash LOCKFILE=/var/lock/makewhatis.lock # the lockfile is not meant to be perfect, it's just in case the # two makewhatis cron scripts get run close to each other to keep # them from stepping on each other's toes. The worst that will # happen is that they will temporarily corrupt the database... [ -f $LOCKFILE ] && exit 0 trap "{ rm -f $LOCKFILE ; exit 255; }" EXIT touch $LOCKFILE makewhatis -u -w exit 0
/etc/cron.weekly/makewhatis.cron
#!/bin/bash LOCKFILE=/var/lock/makewhatis.lock # the lockfile is not meant to be perfect, it's just in case the # two makewhatis cron scripts get run close to each other to keep # them from stepping on each other's toes. The worst that will # happen is that they will temporarily corrupt the database... [ -f $LOCKFILE ] && exit 0 trap "{ rm -f $LOCKFILE; exit 255; }" EXIT touch $LOCKFILE makewhatis -w exit 0
コメント