[linux] whereisコマンドの使い方 – コマンドが存在するディレクトリの検索

whereisコマンドは、指定したコマンドやプログラムのバイナリ、ソースコード、マニュアルページの場所を検索するために使用されます。

基本的な使い方は whereis <コマンド名> です。

例えば、whereis ls と入力すると、lsコマンドのバイナリファイル、ソースコード、マニュアルページのパスが表示されます。

-bオプションでバイナリのみ、-mオプションでマニュアルページのみを検索することも可能です。

この記事でわかること
  • whereisコマンドの基本的な使い方
  • 各オプションの具体的な機能
  • 検索結果の解釈方法
  • トラブルシューティングの手法
  • コマンドの応用例と活用法

目次から探す

whereisコマンドとは

whereisコマンドは、LinuxやUnix系のオペレーティングシステムで使用されるコマンドの一つで、指定したコマンドやプログラムがどこにインストールされているかを検索するために使います。

主に、バイナリファイル、マニュアルページ、ソースコードの位置を特定するのに役立ちます。

これにより、システム内のファイルの場所を簡単に把握することができます。

whereisコマンドの概要

whereisコマンドは、以下の情報を提供します:

  • バイナリファイルのパス
  • マニュアルページのパス
  • ソースコードのパス

このコマンドを使用することで、特定のプログラムやコマンドがどこに存在するのかを迅速に確認できます。

他のコマンドとの違い(which, find, locateとの比較)

スクロールできます
コマンド名機能特徴
whereisコマンドの場所を検索バイナリ、マニュアル、ソースを一度に検索
whichコマンドのパスを表示実行可能なファイルのパスのみを表示
findファイルを検索指定した条件に基づいてファイルを検索
locateファイル名を検索データベースを使用して高速に検索
  • whereisは、特定のコマンドに関連する複数の情報を一度に取得できるのが特徴です。
  • whichは、実行可能なファイルのパスのみを表示します。
  • findは、ファイル名や属性に基づいてファイルを検索するため、より詳細な検索が可能です。
  • locateは、事前に作成されたデータベースを使用しているため、検索が非常に高速です。

whereisコマンドの基本的な使い方

whereisコマンドの基本的な構文は以下の通りです。

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

例えば、lsコマンドの場所を調べる場合は、次のように入力します。

whereis ls

このコマンドを実行すると、lsコマンドに関連するバイナリファイル、マニュアルページ、ソースコードのパスが表示されます。

出力例は以下の通りです。

ls: /bin/ls /usr/share/man/man1/ls.1.gz

このように、whereisコマンドを使うことで、特定のコマンドがどこに存在するのかを簡単に確認することができます。

whereisコマンドの基本的なオプション

whereisコマンドには、さまざまなオプションが用意されており、特定の情報を効率的に取得することができます。

以下に主要なオプションを説明します。

-bオプション:バイナリファイルの検索

-bオプションを使用すると、指定したコマンドのバイナリファイルのみを検索します。

これにより、他の情報(マニュアルやソースコード)を無視して、バイナリファイルの位置を特定できます。

whereis -b ls
ls: /bin/ls

-mオプション:マニュアルページの検索

-mオプションを使うと、指定したコマンドのマニュアルページの位置を検索します。

これにより、コマンドの使い方やオプションを確認するためのマニュアルを簡単に見つけることができます。

whereis -m ls
ls: /usr/share/man/man1/ls.1.gz

-sオプション:ソースコードの検索

-sオプションを指定すると、コマンドのソースコードの位置を検索します。

ソースコードがインストールされている場合に、そのパスを表示します。

whereis -s ls
ls: /usr/src/ls.c

-uオプション:未登録ファイルの検索

-uオプションを使用すると、whereisコマンドが通常の検索で見つけられない未登録のファイルを表示します。

これにより、システム内の隠れたファイルを見つけることができます。

whereis -u ls
ls: /usr/local/bin/ls-custom

-Bオプション:検索するバイナリディレクトリの指定

-Bオプションを使うと、検索するバイナリディレクトリを指定できます。

これにより、特定のディレクトリ内でのみバイナリファイルを検索することが可能です。

whereis -B /usr/local/bin ls
ls: /usr/local/bin/ls

-Mオプション:検索するマニュアルディレクトリの指定

-Mオプションを使用すると、検索するマニュアルディレクトリを指定できます。

これにより、特定のディレクトリ内でのみマニュアルページを検索することができます。

whereis -M /usr/share/man ls
ls: /usr/share/man/man1/ls.1.gz

-Sオプション:検索するソースディレクトリの指定

-Sオプションを使うと、検索するソースディレクトリを指定できます。

これにより、特定のディレクトリ内でのみソースコードを検索することが可能です。

whereis -S /usr/src ls
ls: /usr/src/ls.c

これらのオプションを活用することで、whereisコマンドをより効果的に使用し、必要な情報を迅速に取得することができます。

whereisコマンドの実行例

whereisコマンドを使用することで、さまざまな情報を簡単に取得できます。

以下に具体的な実行例を示します。

バイナリファイルの検索例

-bオプションを使用して、特定のコマンドのバイナリファイルを検索します。

例えば、grepコマンドのバイナリファイルを探す場合は次のようにします。

whereis -b grep
grep: /bin/grep

この結果から、grepコマンドのバイナリファイルが/bin/grepに存在することがわかります。

マニュアルページの検索例

-mオプションを使用して、findコマンドのマニュアルページを検索します。

以下のように入力します。

whereis -m find
find: /usr/share/man/man1/find.1.gz

この結果から、findコマンドのマニュアルページが/usr/share/man/man1/find.1.gzにあることが確認できます。

ソースコードの検索例

-sオプションを使用して、curlコマンドのソースコードを検索します。

次のように実行します。

whereis -s curl
curl: /usr/src/curl.c

この結果から、curlコマンドのソースコードが/usr/src/curl.cに存在することがわかります。

複数のオプションを組み合わせた検索例

複数のオプションを組み合わせて、pythonコマンドのバイナリファイル、マニュアルページ、ソースコードを同時に検索することもできます。

以下のように入力します。

whereis -b -m -s python
python: /usr/bin/python /usr/share/man/man1/python.1.gz /usr/src/python.c

この結果から、pythonコマンドのバイナリファイルが/usr/bin/pythonに、マニュアルページが/usr/share/man/man1/python.1.gzに、ソースコードが/usr/src/python.cに存在することが確認できます。

これらの実行例を参考にすることで、whereisコマンドを効果的に活用し、必要な情報を迅速に取得することができます。

whereisコマンドの応用

whereisコマンドは、さまざまな応用が可能です。

以下に、特定のシナリオでの活用方法を紹介します。

特定のディレクトリに限定して検索する方法

特定のディレクトリ内でのみコマンドを検索したい場合、-Bオプションを使用してバイナリディレクトリを指定できます。

例えば、/usr/local/binディレクトリ内でpythonコマンドを検索する場合は、次のように入力します。

whereis -B /usr/local/bin python
python: /usr/local/bin/python

このように、指定したディレクトリ内でのみ検索を行うことができます。

複数のコマンドを一度に検索する方法

whereisコマンドは、複数のコマンドを一度に検索することも可能です。

コマンド名をスペースで区切って指定します。

例えば、lsgrepの両方を同時に検索する場合は、次のように実行します。

whereis ls grep
ls: /bin/ls
grep: /bin/grep

この結果から、lsgrepの両方のバイナリファイルの位置を一度に確認できます。

スクリプト内でwhereisコマンドを活用する方法

whereisコマンドは、シェルスクリプト内でも活用できます。

例えば、特定のコマンドが存在するかどうかを確認し、存在する場合はそのパスを表示するスクリプトを作成することができます。

以下はその例です。

#!/bin/bash
command_name="curl"
result=$(whereis $command_name)
if [[ -n $result ]]; then
    echo "$command_nameのパス: $result"
else
    echo "$command_nameは見つかりませんでした。"
fi

このスクリプトを実行すると、curlコマンドのパスが表示されます。

もしcurlがインストールされていなければ、その旨が表示されます。

このように、whereisコマンドをスクリプト内で活用することで、システム管理や自動化のタスクを効率的に行うことができます。

whereisコマンドのトラブルシューティング

whereisコマンドを使用していると、時には期待通りの結果が得られないことがあります。

以下に、一般的なトラブルシューティングの方法を紹介します。

コマンドが見つからない場合の対処法

whereisコマンドを実行しても、指定したコマンドが見つからない場合、以下の点を確認してください。

  1. コマンドがインストールされているか確認する:
  • 指定したコマンドがシステムにインストールされていない可能性があります。

aptyumなどのパッケージマネージャを使用して、コマンドがインストールされているか確認します。

  • 例:apt list --installed | grep <コマンド名>
  1. パスが通っているか確認する:
  • コマンドがインストールされていても、環境変数PATHにそのディレクトリが含まれていない場合、whereisコマンドは見つけられません。

echo $PATHで確認し、必要に応じてパスを追加します。

  1. コマンド名のスペルを確認する:
  • コマンド名のスペルミスが原因で見つからないこともあります。

正しいコマンド名を再確認してください。

検索結果が正しく表示されない場合の原因と解決策

whereisコマンドの検索結果が期待通りでない場合、以下の原因と解決策を考慮してください。

  1. キャッシュの問題:
  • whereisコマンドは、システムのキャッシュを使用して検索を行います。

キャッシュが古くなっている場合、正しい結果が得られないことがあります。

updatedbコマンドを実行して、データベースを更新してみてください。

  • 例:sudo updatedb
  1. オプションの誤使用:
  • 使用しているオプションが適切でない場合、期待する情報が表示されないことがあります。

必要な情報を得るために、適切なオプションを確認し、再度実行してください。

  1. ファイルの権限:
  • 検索対象のファイルやディレクトリに対する権限が不足している場合、whereisコマンドは正しい結果を表示できません。

必要に応じて、権限を確認し、適切な権限を設定します。

  • 例:ls -l <ファイル名>で権限を確認する。

これらの対処法を試すことで、whereisコマンドのトラブルを解決し、正しい情報を得ることができるでしょう。

よくある質問

whereisコマンドとwhichコマンドの違いは?

whereisコマンドとwhichコマンドは、どちらもコマンドの位置を特定するために使用されますが、以下の点で異なります。

  • 検索対象:
    • whereisは、バイナリファイル、マニュアルページ、ソースコードの位置を一度に検索します。
    • whichは、実行可能なファイルのパスのみを表示します。
  • 出力内容:
    • whereisは、複数の情報をまとめて表示するため、より多くの情報を提供します。
    • whichは、指定したコマンドの実行可能ファイルのパスだけを返します。

whereisコマンドでソースコードが見つからないのはなぜ?

whereisコマンドでソースコードが見つからない場合、以下の理由が考えられます。

  • ソースコードがインストールされていない:
  • 一部のコマンドは、バイナリファイルのみがインストールされ、ソースコードは含まれていないことがあります。

この場合、whereisコマンドはソースコードを見つけることができません。

  • ソースコードのパスが設定されていない:
  • whereisコマンドは、デフォルトのソースコードディレクトリを検索しますが、ソースコードが異なる場所にインストールされている場合、見つけられないことがあります。

-Sオプションを使って、特定のディレクトリを指定して検索することができます。

whereisコマンドで検索結果が複数表示されるのはなぜ?

whereisコマンドで検索結果が複数表示される理由は、以下の通りです。

  • 複数のインストールパス:
  • 同じコマンドが異なる場所にインストールされている場合、whereisコマンドはすべてのパスを表示します。

例えば、ユーザーがカスタムバージョンのコマンドをインストールした場合、システムのデフォルトのバージョンとともに表示されることがあります。

  • マニュアルやソースコードの存在:
  • whereisコマンドは、バイナリファイル、マニュアルページ、ソースコードのすべてを検索します。

そのため、同じコマンドに関連する複数の情報が表示されることがあります。

これらの理由から、whereisコマンドの出力には複数の結果が含まれることがあります。

まとめ

この記事では、whereisコマンドの基本的な使い方やオプション、実行例、応用方法、トラブルシューティングについて詳しく解説しました。

これにより、LinuxやUnix系システムでのコマンドの位置を効率的に特定する方法を理解できるでしょう。

今後は、実際にwhereisコマンドを活用して、システム内のファイルやコマンドの管理をよりスムーズに行ってみてください。

  • URLをコピーしました!
目次から探す