はじめに
こんにちは!今回はwhichコマンドについて学んでいきましょう。
whichは、実行可能なコマンドがどこに保存されているのかを調べるコマンドです。「このコマンド、どこにあるんだろう?」って時に超便利です。
whichコマンドとは
whichコマンドは、指定したコマンドが実際にどこに保存されているか、そのフルパスを表示する外部コマンドです。PATH環境変数で設定されているディレクトリから、最初にマッチしたコマンドの場所を表示します。
コマンドが実際に存在するか確認したり、複数のバージョンがある場合にどちらを使ってるか調べたりするのに便利ですね。
基本構文
|
|
複数のコマンドを同時に指定することもできます。
主なオプション
| オプション | 説明 |
|---|---|
-a |
PATH内で見つかったすべてのコマンドを表示 |
-s |
見つからない場合も終了コードを返さない |
使用例
例1: 基本的な使い方(lsコマンドの場所)
|
|
実行結果:
|
|
lsコマンドが/bin/ディレクトリに保存されていることがわかります。
例2: grepコマンドの場所
|
|
実行結果:
|
|
例3: 複数のコマンドを同時に調べる
|
|
実行結果:
|
|
複数のコマンドを指定すると、それぞれの場所が表示されます。
例4: 存在しないコマンドを調べる
|
|
実行結果:
|
|
存在しないコマンドだと何も表示されません。
例5: -aオプションで全バージョンを表示
|
|
実行結果:
|
|
複数のバージョンがある場合、すべて表示されます。これ便利!
例6: 自分で作ったスクリプトを調べる
|
|
実行結果:
|
|
PATHに含まれているディレクトリに置いたスクリプトも調べられます。
例7: whichコマンド自体の場所
|
|
実行結果:
|
|
コマンドの場所を調べるコマンド自体の場所も調べられます。面白い!
例8: typeコマンドとの違い
|
|
実行結果:
|
|
cdは組み込みコマンドなので、whichでは見つかりません。
Tips・注意点
typeコマンドとの違い
- which: 外部コマンドのみ検索(PATH内のみ)
- type: 組み込みコマンドも検索できる
組み込みコマンド(cd、echoなど)を調べたい場合はtypeを使う必要があります。
PATH環境変数
|
|
whichが検索するディレクトリはPATH環境変数で指定されています。この順序でコマンドが検索されます。
コマンドが見つからない場合
|
|
このコマンドが何も表示されない場合、PATHに該当するディレクトリが含まれていない可能性があります。
スクリプトの実行可能権限
|
|
自分で作ったスクリプトをwhichで見つけるには、実行可能権限があり、PATHに含まれている必要があります。
実践的な使い方
Pythonのどのバージョンが使われているか確認
|
|
複数のPythonがインストールされている環境で、どのバージョンが実行されるか確認できます。
エイリアスとコマンドの実在確認
|
|
エイリアスを設定した場合、whichではなくtypeで確認すると便利です。
インストールされたコマンドを一括確認
|
|
複数のコマンドがインストールされているか確認できます。
PATHの確認
|
|
whichで見つからないコマンドがある場合、PATHを確認してみましょう。
まとめ
whichコマンドのポイント:
- コマンドのフルパスを表示する外部コマンド
PATH環境変数内から検索- 複数のコマンドを同時に指定可能
-aオプションで全バージョンを表示- 組み込みコマンドは見つからない(その場合は
typeを使用) - スクリプトやPATHのトラブルシューティングに便利
whichコマンドは、コマンドライン環境を理解する上で欠かせない小さなツール。困った時に使い分けてください!