連載
» 2017年03月17日 05時00分 UPDATE

Linux基本コマンドTips(95):whereisコマンド――コマンド本体と関連ファイルを検索する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「whereis」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

連載目次

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コマンド本体と関連ファイル(マニュアルファイルやソースファイル)を検索する「whereis」コマンドです。

whereisコマンドとは?

 「whereis コマンド名」で、コマンド本体およびマニュアルファイル(本連載第86回参照)とソースファイルのパスを表示します。

 似たような機能を持つコマンドとしては、「which」コマンドと「type」コマンドがあります。whichはコマンド本体のパスを表示するコマンドで、typeは「このコマンド名でbashが何を実行するか」を表示するコマンドです。



whereisコマンドの書式

whereis [オプション] コマンド名

※[ ]は省略可能な引数を示しています




whereisコマンドの主なオプション

 whereisコマンドの主なオプションは次の通りです。

オプション 意味
-b バイナリファイル(コマンド本体やライブラリなど)だけを探す
-m マニュアルファイルだけを探す
-s ソースファイルだけを探す
-u 通常とは異なるエントリを探す。検索結果でバイナリファイル、マニュアルファイル、ソースファイルそれぞれが「1つではなかったもの」(0または複数見つかったもの)が表示される
-B ディレクトリ バイナリファイルを探すディレクトリを指定する(フルパスで指定。複数ある場合は空白で区切る)
-M ディレクトリ マニュアルファイルを探すディレクトリを指定する(フルパスで指定。複数ある場合は空白で区切る)
-S ディレクトリ ソースファイルを探すディレクトリを指定する(フルパスで指定。複数ある場合は空白で区切る)
-f 「-B」「-M」「-S」オプションの指定時にディレクトリリストを終了し、この後はファイル名の指定であることを示す(「-B ディレクトリ -f コマンド名」のように使用)
-l 検索しているパスを表示する


コマンド本体と関連ファイルのパスを表示する

 「whereis コマンド名」で、コマンドの本体やライブラリなどのバイナリファイル、マニュアルファイル、ソースファイルのパスが表示されます。

 バイナリファイルだけを検索したい場合は「-b」オプション、マニュアルファイルだけの場合は「-m」オプション、ソースファイルだけの場合は「-s」オプションを指定します。

コマンド実行例

whereis コマンド名

(指定したコマンド本体と関連ファイルのパスを表示する)(画面1


画面1 画面1 「whereis」コマンドで、passwdコマンドの関連ファイル、バイナリファイルだけ、マニュアルだけをそれぞれ検索した結果


検索対象ディレクトリを確認、変更する

 whereisコマンドは、環境変数PATHや環境変数MANPATH、「/etc/man_db.conf」ファイルの設定などに従って動作します。

 whereisコマンドで検索対象となるパスは、「-l」オプションで確認できます。バイナリファイルの検索ディレクトリは「bin:」、マニュアルファイルは「man:」、ソースファイルは「src:」で示されます。なお、基本的な検索対象ディレクトリは、「man whereis」でも確認できます。

コマンド実行例

whereis -l

(検索対象のディレクトリを確認する)(画面2


画面2 画面2 検索対象のパスは、「-l」オプションで確認できる

 他のディレクトリを検索対象にしたい場合は、「-B」「-M」「-S」オプションを使用します。この場合、検索対象を指定する前に「-f」オプションを追加する必要があることに注意してください。

 例えば、「/usr/local/src」からもソースファイルを検索したい場合は、「whereis -S /usr/local/src/* -f コマンド名」のように指定します。

 パスは全て“絶対パス”(「/」から始まるパス)で指定し、複数のディレクトリを指定する場合は“空白”で区切ります。同様に、バイナリファイルの検索パスは「-B パス」、マニュアルの検索パスは「-M パス」で指定します。

 なお、検索結果が多すぎて読みにくい場合は、「tr」コマンド(本連載第52回参照)で空白を「改行(\n)」に置き換えるとよいでしょう。

コマンド実行例

whereis -S /usr/local/src/* -f コマンド名

(ソースファイルの検索パスに「/usr/local/src」を追加する(画面3

whereis -s -S /usr/local/src/* -f コマンド名

(ソースファイルの検索パスに「/usr/local/src」を追加してソースファイルのみ検索する)


画面3 画面3 ソースファイルの検索パスに「/usr/local/src」を追加して検索し、検索結果を「tr」コマンドで整形した結果


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。