【コマンド詳細】whichコマンドの使い方とオプションまとめ

  • URLをコピーしました!
目次

which コマンドとは?

which コマンドは、Linux システムにおいて、指定されたコマンドが実行されるときに、
その実行ファイルのパスを検索して表示するコマンドです。

which はシステム管理の場面で、コマンドが正しいパスにあるかを確認したり、
システムパスの問題解決に役立ちます。

基本構文

which [オプション] コマンド名
  • コマンド名: 検索するコマンド名を指定。
  • オプション: 操作を変更するための設定を提供。

注意:which コマンドは、パス シェルに設定された環境変数 $PATH に基づいて検索を行います。

主なオプション一覧

オプション説明
--versionwhich のバージョン情報を表示します。
--helpwhich の使用方法のヘルプを表示します。
-a$PATH 内で見つかった全ての実行パスを表示します。

各オプションの実行例と結果

1. 基本的な使用

which ls
  • 結果
    • ls コマンドの実行パスが表示されます。
/bin/ls

2. $PATH 内の全ての実行パスを表示 (オプション -a)

which -a python
  • 結果
    • python コマンドが検索され、使用可能な全てのパスが表示されます。
/usr/bin/python
/usr/local/bin/python

3. which コマンドのバージョン表示 (オプション --version)

which --version
  • 結果
    • which コマンドのバージョン情報が表示されます。
which (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.

4. which コマンドの使用方法を表示 (オプション --help)

which --help
  • 結果
    • which コマンドの使用方法とオプション一覧が表示されます。
Usage: which [options] [--] COMMAND [...]
Options:
  --version        Print version and exit
  --help           Print this help and exit
  -a               Print all matching pathnames of each COMMAND

実用例

1. コマンドが正しく設定されているかを確認

コマンドが実行可能なパスにあるかを検証します。

which java
結果例:
/usr/bin/java

これにより、指定したコマンドが正しいパスに存在することが確認できます。

2. 複数バージョンのパスを検診

複数のバージョンがある場合、使用されているパスを確認します。

which -a python
結果例:
/usr/bin/python
/usr/local/bin/python

3. システム構成の問題解決

コマンドが正しいパスを参照しているかを検証し、システム問題を解決するために which を使用します。

locate, which, whereis コマンドの違い

コマンド主な機能と用途
locateシステム全体のファイルデータベースを高速に検索します。 /var/lib/mlocate/mlocate.db に依存します。
which$PATH に基づいてコマンドの実行ファイルのパスを検索します。
whereisコマンドの実行ファイルだけでなく、ソースコードやマニュアルページの場所も検索します。

使い分け

  • locate
    システム全体からファイルを素早く検索したいときに使用します。ただし、updatedb を定期的に実行してデータベースを最新化する必要があります。
  • which
    コマンドの実行パスを確認し、$PATH の設定が正しいかをチェックしたいときに使用します。
  • whereis
    コマンドの実行ファイルだけでなく、関連するリソース(ソースコードやマニュアル)も探したい場合に適しています。

注意点

  • which は $PATH の設定に定位して検索を行うため、$PATH の設定が誤っていると正しい結果が得られません。
  • $PATH にリンクされていないファイルは検索されません。
  • command -v も使用できるため、こちらも検証に利用可能です。

まとめ

which コマンドは、パスの検診やシステム構成の問題解決に実用的なツールです。
コマンドの実行パスを確認したり、複数のバージョンを検証するのに役立ちます。
正しく使いこなすことで、管理作業の効率を上げましょう。

    目次