この Linux チュートリアルでは、3 つの「W」コマンドについて説明します。 3 つの「W」は、whatis、whereis、および which コマンドです。
find コマンドを使用してファイルを効率的に検索する方法は既にご存じでしょう。
さて、これら 3 つの W コマンドは、Linux コマンド ラインからより多くのものを見つけるのに役立ちます。
I. Linux whatis コマンド
Whatis コマンドは、Linux のコマンドや機能に関する簡単な情報を取得するのに役立ちます。 Whatis コマンドは、コマンド ライン引数として whatis コマンドに渡された文字列と一致するコマンドのマニュアル ページの 1 行の説明を表示します。 Whatis コマンドは、mandb プログラムによって維持されるインデックス データベースで文字列を検索します。 Whatis コマンドは、whatis コマンドに与えられた入力に一致するコマンドのマニュアル ページの NAME セクションの短い説明を選択します。
Whatis は、ユーザーがニーズや関心に応じて特定の Linux コマンドの簡単な情報を取得できるように、いくつかのコマンド ライン オプションを提供します。
構文:
$ whatis [-options]
たとえば、これは whatis コマンドをオプションなしで実行した場合の出力です。
$ whatis write write (1) - send a message to another user write (2) - write to a file descriptor
man ページからの「書き込み」に関する簡単な情報が表示されます。
1. -s オプションを使用して、man ページの特定のセクションから情報を取得します
マニュアル ページの特定のセクションから Linux コマンド情報を取得する場合は、「-s または —sections または –section」オプションを使用してセクション リストを提供できます。 whatis コマンドを制限して、指定されたマニュアル ページ セクションの簡単な情報のみを表示します。
$ whatis -s "1","2" open open (1) - start a program on a new virtual terminal (VT). open (2) - open and possibly create a file or device
これは、man ページのセクション 1 と 2 からオープン コマンドと関数の概要情報を表示します。
$ whatis -s "2" open open (2) - open and possibly create a file or device
これは、man ページのセクション 2 からオープン関数の概要情報を表示します。
2. -w オプションを使用してワイルドカードで情報を検索
ワイルドカードを使用して Linux コマンドまたは関数情報を検索する場合、whatis コマンドは「-w または –wildcard」オプションを提供します。これにより、ユーザーのニーズに応じて検索が具体化されます。
$ whatis -w 'ab*' abort (3) - cause abnormal process termination abs (3) - compute the absolute value of an integer
「ab」で始まる Linux コマンドまたは関数の簡単な情報が表示されます。
$ whatis -w 'ab?' abs (3) - compute the absolute value of an integer
「ab」で始まり、その後に任意の 1 文字が続く Linux コマンドまたは関数の簡単な情報が表示されます。
3. -r オプションを使用して正規表現で情報を検索
正規表現を使用して Linux コマンドまたは関数情報を検索する場合、whatis コマンドは「-r または –regex」オプションを提供します。 Linux システム全体で Linux コマンドや機能の検索を柔軟にカスタマイズできます。
$ whatis -r '^ab' abort (3) - cause abnormal process termination abs (3) - compute the absolute value of an integer
「ab」で始まる Linux コマンドまたは関数の簡単な情報が表示されます。
$ whatis -r 'ab$' anacrontab (5) - configuration file for anacron baobab (1) - A graphical tool to analyse disk usage crontab (1) - maintain crontab files for individual users (Vixie Cron) crontab (5) - tables for driving cron fstab (5) - static information about the filesystems inittab (5) - init daemon configuration swab (3) - swap adjacent bytes tc-stab (8) - Generic size table manipulations
「ab」で終わる Linux コマンドまたは機能の簡単な情報が表示されます。
4. -l オプションを使用してトリミングされた出力を無効にする
一般に、whatis コマンドは、Linux コマンドまたは機能情報の長い出力をトリミングして、画面を超えて端末に「良くない」出力が表示されるのを回避します。 whatis コマンドが完全な出力を画面に表示できるようにするには、「-l または –long」オプションを使用できます。
$ whatis ssh-import-id ssh-import-id (1) - retrieve one or more public keys from a public keyserver (Launchpad.net by default) and append them to the current user's authorized_keys file (or some other specifie...
Linux コマンドの簡単な情報のトリミングされた出力を表示します。
$ whatis -l ssh-import-id ssh-import-id (1) - retrieve one or more public keys from a public keyserver (Launchpad.net by default) and append them to the current user's authorized_keys file (or some other specified file)
Linux コマンドの簡単な情報の完全な出力を表示します。
5. -M オプションを使用して指定したパスまで検索を制限
デフォルトでは、whatis コマンドは $MANPATH 環境変数を使用します。しかし、whatis は「-M または –manpath」オプションを提供して、指定されたマニュアル ページのパスまで検索を制限します。
$ whatis -M /usr/share/man hexdump hexdump (1) - ASCII, decimal, hexadecimal, octal dump
パス /usr/share/man で利用可能なマニュアル ページから、Linux hexdump コマンドの簡単な情報を表示します。
$ whatis -M /usr/man hexdump hexdump: nothing appropriate.
指定されたパス /usr/man から Linux hexdump コマンドの簡単な情報が見つかりませんでした。
II. Linux whereis コマンド
Whereis コマンドは、Linux システム内のコマンドのバイナリ、ソース、およびマニュアル ページを見つけるのに役立ちます。これは非常にシンプルなユーティリティであり、以下に例を示したいくつかのオプションを提供します。
構文:
$ whereis [-options]
たとえば、whereis コマンドはオプションなしで実行されます。
$ whereis open open: /bin/open /usr/share/man/man1/open.1.gz /usr/share/man/man2/open.2.gz
これは、「open」コマンドのバイナリ、ソース、およびマニュアル ページを見つけます。ここでは、open コマンドのバイナリ、マニュアル ページがシステムで利用可能なパスを表示します。
6. -b オプションを使用してバイナリを検索
Linux コマンドのバイナリを見つけたい場合は、「-b」オプションを使用します。
$ whereis -b whereis whereis: /usr/bin/whereis /usr/bin/X11/whereis
「whereis」コマンドのバイナリを見つけ、コマンドのバイナリがシステム内で利用可能なパスを表示します。
7. -m オプションを使用してコマンドのマニュアル ページを見つける
Linux コマンドの man ページを見つけたい場合は、「-m」オプションを使用してください。
$ whereis -m whereis whereis: /usr/share/man/man1/whereis.1.gz
「whereis」コマンドのマニュアル ページを検索し、コマンドのマニュアル ページがシステム内で利用可能なパスを表示します。
8. -s オプションを使用してコマンドのソースを見つける
Linux コマンドのソースを見つけたい場合は、「-s」オプションを使用してください。
$ whereis -s whereis whereis:
「whereis」コマンドのソースを見つけますが、「whereis」コマンドのソースがシステムに存在しないため、システム内のコマンドのソースのパスを表示しませんでした。
9. -u オプションを使用して異常なエントリを見つけます
このオプションは、通常とは異なるエントリを検索するものです。これらのエントリは、「-u」とともに指定されたオプション「[-bms]」に従って、ソース、バイナリ、またはマニュアル ページがシステムに存在しないコマンドです。
$ whereis -m -u wcgrep wcgrep:
指定されたコマンド (wcgrep など) のマニュアル ページがシステムに存在しないかどうかを確認します。オプション「-m および -u」を指定した Whereis コマンドは、man ページが存在しないシステム内のコマンドを検索します。
$ whereis -m -u grep $
ここでは、man ページがシステムに存在する「grep」コマンドに同じオプションの whereis コマンドを適用しているため、whereis は何も返さずに正常に終了します。
10. -B オプションを使用して、指定したパスでバイナリを見つけます
ユーザーがバイナリを検索したい場合、および whereis コマンドの検索範囲を指定されたパスに制限したい場合は、「-B」オプションを使用します。
$ whereis -B /bin -f for_loop for_loop: /bin/for_loop
パス「/bin」から「for_loop」ユーザー プログラムのバイナリを見つけます。
$ whereis -B /usr -f open open: /usr/share/man/man1/open.1.gz /usr/share/man/man2/open.2.gz
open コマンドのバイナリが指定されたパスで見つからない場合、それは表示されませんが、whereis コマンドはデフォルトで、指定されたコマンド (つまり、open) の他のタイプ (つまり、man ページとソース) を検索し、見つかった場合はそれらを表示します。
11. -M オプションを使用して範囲が限定された man ページを見つける
ユーザーが man ページを検索したい場合、および whereis コマンドの検索範囲を指定されたパスに制限したい場合は、「-M」オプションを使用します。
$ whereis -M /usr/share/man/man1 -f open open: /bin/open /usr/share/man/man1/open.1.gz $ whereis -M /usr/share/man/man2 -f open open: /bin/open /usr/share/man/man2/open.2.gz $ whereis -M /usr/share/man/man3 -f open open: /bin/open
ここで、whereis コマンドが、指定されたパスでのみ使用可能な「open」コマンドのマニュアル ページを表示していることがわかります。ただし、デフォルトでは、whereis コマンドは、指定されたコマンド (つまり、オープン) の他のタイプ (つまり、バイナリとソース) を検索し、見つかった場合はそれらを表示します。
III. Linux のコマンド
システム内の実行可能ファイルを見つけるための非常に小さくて単純なコマンドです。これにより、ユーザーはいくつかのコマンド名を引数として渡して、システム内のパスを取得できます。 「which」コマンドは、$PATH 環境変数に設定されたシステム パスで実行可能ファイルのパスを検索します。
構文:
$ which [-option]
たとえば、
$ which ls gdb open grep /bin/ls /usr/bin/gdb /bin/open /bin/grep
「which」コマンドの引数として指定されたコマンド名「ls」、「gdb」、「open」、「grep」を見つけ、システム内に存在する各実行可能ファイルのパスを表示します。
12. -a オプションを使用してすべてのパスを表示
「which」コマンドは、引数に一致する実行可能ファイルのすべてのパスを表示するオプション「-a」を提供します。
$ which echo /usr/sbin/echo
上記は、$PATH 環境変数に設定されたすべてのパスから実行可能ファイル「echo」を検索表示し、echo 実行可能ファイルが見つかった最初のパスを表示します。 $PATH 環境変数の他のパスにも実行可能ファイルが配置されている場合があります。システム内で実行可能ファイルが存在するすべてのパスを取得するには、「-a」オプションを使用できます。
$ which -a echo /usr/sbin/echo /bin/echo