Linuxコマンドwhereisは、特定のファイルがシステムのどこにあるか、そしてそのファイルに関連するバイナリファイル(実行ファイル)、ソースファイル、マニュアルページなどを迅速に見つけるのを助けてくれます。今回はwhereisコマンドの基本的な使い方と、いくつかの便利なオプションについて説明します。
目次
whereisコマンドとは?
whereisコマンドは、主に特定のコマンドの実行ファイル、ソースコード、そしてマニュアル(man)ページを探すために使用されます。このコマンドは、システムにインストールされているプログラムのファイルパスを簡単に見つけることができるため、どのプログラムがどこにインストールされているのかを確認したい場合に非常に役立ちます。例えば、lsコマンドの場所を確認したい場合、whereis lsコマンドを入力すれば、その結果が表示されます。
基本的な使い方
whereis [オプション] [探したいファイル名]ShellScript上記の形式では、[オプション]は省略可能で、[探したいファイル名]には、探したいコマンドやファイル名を入力します。
例
whereis lsShellScriptこのコマンドを実行すると、lsコマンドに関連するバイナリファイル、ソースファイル、マニュアルページのパスが表示されます。以下に示す出力結果は、lsコマンドの実行ファイルが/bin/lsにあり、関連するマニュアルページが/usr/share/man/man1/ls.1.gzにあることを意味します。

whereisコマンドの主要オプション
whereisコマンドは、ユーザーが望む方法でファイルを見つけられるように、さまざまなオプションを提供しています。主要なオプションを見ていきましょう。
-b: バイナリファイルのみを検索
-bオプションは、バイナリファイルのみを検索し、ソースファイルやマニュアルページは除外します。例えば、以下のコマンドは、lsコマンドの実行ファイルの場所のみを表示します。
whereis -b lsShellScript下の図では、実行ファイルのパスだけが表示されていることを確認できます。

-m: マニュアルファイルのみを検索
-mオプションは、マニュアルファイルのみを検索する際に使用します。例えば、以下のコマンドは、lsコマンドに関連するマニュアルファイルの場所のみを表示します。
whereis -m lsShellScript下の図では、マニュアルファイルのパスだけが表示されていることを確認できます。

-s: ソースファイルのみを検索
-sオプションは、ソースファイルのみを検索する際に使用します。例えば、以下のコマンドは、lsコマンドに関連するソースファイルの場所のみを表示します。
whereis -s lsShellScriptソースファイルが見つからない場合は、以下のようにコマンド名だけが表示され、終了します。

-u: 特定のファイルが存在しない場合のみ表示
-uオプションは、バイナリファイル、ソースファイル、マニュアルページのいずれかが存在しない場合にのみ表示します。例えば、特定のプログラムにマニュアルがない場合、このオプションを使用してその事実をすばやく確認することができます。
whereis -u lsShellScript-B, -M, -S: 検索パスの指定
whereisコマンドは、デフォルトでシステムに定められたパスからファイルを検索します。しかし、ユーザーが特定のパスのみからファイルを探したい場合、-B, -M, -Sオプションを使用して検索パスを指定できます。
-B: バイナリファイルを検索するパスの指定-M: マニュアルファイルを検索するパスの指定-S: ソースファイルを検索するパスの指定
例えば、/usr/binディレクトリのみからzshコマンドのバイナリファイルを探したい場合、次のように入力します。
whereis -B /usr/bin -b zshShellScript下の図では、zshのパスが複数あることが分かります。バイナリのパスを /usr/bin に指定すると、そのパス内のバイナリだけが検索されます。

whereisコマンドの活用ヒント
システムトラブルの解決
whereisコマンドは、特定のプログラムが期待された場所にないとき、その確認を素早く行うのに役立ちます。特に、プログラムがインストールされているかどうか確認したり、間違った場所にインストールされた場合のトラブルシューティングに便利です。
マニュアルページの欠如確認
Linuxでは、コマンドのマニュアルページを通じて使い方を簡単に確認できます。whereis -mオプションを使用して、特定のコマンドのマニュアルページが欠如しているかどうかを確認できます。もしマニュアルページがない場合、追加インストールが必要になる可能性があります。
複数ファイルの位置確認
複数のファイルやコマンドの位置を一度に確認したい場合、スペースで区切ってファイル名を列挙します。
whereis ls cp mvShellScriptこのようにすると、ls, cp, mvコマンドそれぞれのファイル位置を、以下の図のように一度に確認できます。

使用時の注意点
- シンボリックリンクに注意: whereisコマンドはシンボリックリンク(特定のファイルを指すリンク)をたどらないため、実際のファイルの位置ではなくリンクの位置を返す場合があります。この点に注意が必要です。
- 環境変数とパス: whereisコマンドは、環境変数
PATHに指定されたパスに基づいて検索を行います。そのため、特定のパスにインストールされたプログラムがPATHに含まれていない場合、whereisコマンドで見つからないことがあります。 - 正確なファイル名の使用: ファイル名を入力するときは正確に入力する必要があります。そうしないと、予想外の結果が得られる可能性があります。
まとめ
Linuxでファイルを探すことは非常に重要な作業であり、その中でもwhereisコマンドは、ファイルの位置を迅速かつ正確に見つけるための便利なツールです。さまざまなオプションを活用して、特定のファイルのみを検索したり、特定のパスからだけファイルを探すなど、さまざまな方法で使用できます。特にシステム管理作業において、プログラムが正しくインストールされているか、マニュアルページがあるかどうかを確認するのに役立ちます。