
whichとwhereis? どっちを使えばいいの? コマンドの場所探しはこれで迷わない!
whichコマンドとwhereisコマンド:ファイル検索の使い分け
LinuxやmacOSなどのUnix系OSを使用していると、コマンドの実行ファイルがどこにあるのかを知りたい場合があります。そんな時に役立つのがwhich
コマンドとwhereis
コマンドです。これらはどちらもファイルの場所を特定するコマンドですが、それぞれ異なる特性を持っています。この記事では、which
コマンドとwhereis
コマンドの違いと使い方を分かりやすく解説します。
SEO対策として、which
とwhereis
の違いを明確にし、具体的な使用例を交えながら、読者がそれぞれのコマンドを適切に使いこなせるように説明します。初心者のプログラマーでも理解できるように、専門用語はできるだけ避け、平易な言葉で解説します。
whichコマンド:実行ファイルの場所を特定
which
コマンドは、主に実行可能ファイルの場所を特定するために使用されます。PATH
環境変数を参照して、指定されたコマンドがどのディレクトリに存在するかを調べます。PATH
は、OSがコマンドを探すディレクトリのリストです。
例えば、python
コマンドの場所を知りたい場合は、ターミナルで以下のように入力します。
which python
すると、以下のようにpython
コマンドのパスが表示されます。
/usr/bin/python
もし、指定されたコマンドがPATH
環境変数に登録されているディレクトリに見つからない場合、which
コマンドは何も出力しません。
複数の実行ファイルが存在する場合は、最初に見つかったものが表示されます。
また、which
コマンドは、エイリアスや関数についても、その定義内容を表示することができます。
which ls
lsコマンドに対してwhichコマンドを実行すると、エイリアスが設定されている場合は、そのエイリアスが表示されます。
alias ls='ls -l'
上記のようにエイリアスが設定されている場合、which ls の結果はalias ls='ls -l'
となります。
whereisコマンド:バイナリ、ソース、マニュアルファイルの場所を特定
whereis
コマンドは、実行可能ファイルだけでなく、ソースファイルやマニュアルページの場所も特定できます。which
コマンドよりも広範囲な検索を行うことができます。
whereis
コマンドを使用するには、ターミナルで以下のように入力します。
whereis python
すると、以下のようにpython
コマンドのバイナリファイル、ソースファイル、マニュアルページのパスが表示されます。
python: /usr/bin/python3.9 /usr/share/man/man1/python3.9.1.gz
whereis
コマンドは、デフォルトで標準的なディレクトリ(/bin
, /usr/bin
, /usr/local/bin
など)を検索します。検索対象のディレクトリを-b
, -m
, -s
オプションで指定することも可能です。
例えば、バイナリファイルのみを検索する場合は、-b
オプションを使用します。
whereis -b python
-b
, -m
, -s
オプションはそれぞれ、バイナリファイル、マニュアルファイル、ソースファイルを検索することを意味します。
whichとwhereisコマンドの主な違い
which
コマンドとwhereis
コマンドの主な違いは以下の通りです。
* 検索対象: which
は実行可能ファイルのみを検索しますが、whereis
は実行可能ファイル、ソースファイル、マニュアルページを検索します。
* 検索範囲: which
はPATH
環境変数に登録されているディレクトリのみを検索しますが、whereis
はより広範囲な標準ディレクトリを検索します。
* 出力: which
は最初に見つかった実行可能ファイルのパスのみを出力しますが、whereis
はすべての該当するファイルのパスを出力します。
まとめると、which
はコマンドの実行場所を素早く知りたい場合に、whereis
は関連するファイル(ソースやマニュアル)も含めて包括的に調べたい場合に適しています。
具体的な使用例
例1:Pythonの実行ファイルの場所を特定する
which python
を実行すると、Pythonの実行ファイルのパスが/usr/bin/python
のように表示されます。これにより、どのPythonインタプリタが使用されているかを確認できます。
例2:特定のコマンドが存在するか確認する
which some_command
を実行して何も出力されない場合、そのコマンドはPATH
環境変数に登録されているディレクトリに存在しないことを意味します。これは、コマンドがインストールされていないか、環境変数が正しく設定されていない可能性があります。
例3:manコマンドの関連ファイルを検索する
whereis man
を実行すると、manコマンドの実行ファイル、ソースファイル、マニュアルページの場所がまとめて表示されます。これにより、manコマンドの関連ファイルを一度に確認できます。
例4:オプション-b
を利用してバイナリファイルのみ検索する
whereis -b nginx
上記コマンドを実行するとnginxのバイナリファイルのみ検索できます。 nginx: /usr/sbin/nginxのように表示されます。
参考リンク
まとめ
which
コマンドとwhereis
コマンドは、どちらもファイルの場所を特定する便利なツールですが、それぞれ異なる特性を持っています。which
コマンドは実行可能ファイルの場所を素早く特定するのに適しており、whereis
コマンドはより広範囲なファイルを包括的に検索するのに適しています。これらの違いを理解し、状況に応じて使い分けることで、より効率的にファイル管理を行うことができます。これらのコマンドを使いこなして、快適なコマンドライン生活を送りましょう。