Linux

【Linux】whichコマンドを使用してコマンドの絶対パスを表示する【オプションなども併せて解説】

MACでブログを書く

こんにちは、フルスタックエンジニアのryuです。

今回の記事では、コマンドの絶対パスを表示するwhichコマンドの使い方について解説します。whichコマンドは指定したコマンドの絶対パスを表示します。whichコマンドは環境変数のPATHを順に調べて、コマンドの絶対パスを返します。コマンドのパスを調べるときにwhichコマンドを使用しましょう。

関連【おすすめ】コマンドを打ちながらLinuxが学べるサイトInfraAcademy

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

whichコマンドを使用してコマンドの絶対パスを表示する

whichコマンドはどうやって使うの?

今回の記事では、whichコマンドの使い方を解説します。whichコマンドは指定したコマンドの絶対パスを返します。コマンドのパスを調べたいときに使用しましょう。

今回の記事の内容は以下の通りです。

  • whichコマンドの使い方
  • whiciコマンドのオプション
  • 関連のコマンド

詳しく解説します。

whichコマンドの使い方

では早速whichコマンドの使い方について解説します。コマンドは以下の通りです。

which touch
→/usr/bin/touch

コマンドを実行すると、touchコマンドの絶対パスを返します。whichコマンドの書式はこちらです。

which [コマンド]

whichコマンドは環境変数のPATHを検索するため、一般ユーザーで管理者用のコマンドを検索できません。ifconfigコマンドやaptコマンドは一般ユーザで検索できないので注意しましょう。

・関連記事:【Linux】sudoコマンドの使い方を解説!管理者権限でコマンドを実行してみよう

whichコマンドのオプション

whichコマンドのオプションには、以下のようなものがあります。

-a環境変数のPATHにある全ての実行ファイルを表示する
-iエイリアスも併せて検索

例えば、”-a”オプションを付けてコマンドを実行すると、複数のパスが表示されます。

which -a touch
→/usr/bin/touch
→/bin/touch

環境変数のPATHの中にあるコマンドが全て表示されます。

whichコマンドの実行結果

whichコマンド以外でコマンドのパスを表示する方法

次にwhichコマンド以外でコマンドのパスを表示するコマンドも紹介します。それは、whereisコマンドです。whereisコマンドはwhichコマンド同様に検索したいコマンドを指定するだけです。

whereis touch
→touch: /usr/bin/touch /usr/share/man/man1/touch.1.gz

whereisコマンドでは指定されたコマンドのバイナリファイル、ソースコード、マニュアルファイルのおかれている場所を表示します。

whichコマンドとwhereisコマンドのどちらとも覚えておきましょう!

whichコマンドはどのようなときに使うのか

ここまで、whichコマンドの使い方について解説しました。whichコマンドはどのようなときに使えば良いのでしょうか?以下のパターンが考えられます。

  • コマンドの場所を知りたいとき
  • スクリプト内でコマンドがあるかを調査したいとき
  • Linux学習のため

コマンドの場所を知りたいとき

whichコマンドは、指定したコマンドのパスを表示させるコマンドです。なので、コマンドの場所を知りたいときに使います。これは一般的な使い方です。

スクリプト内でコマンドがあるかを調査したいとき

whichコマンドは、スクリプト内でコマンドがあるかを調査したいときに便利です。

さまざまな環境で使用するスクリプトを作成する際、スクリプト内でコマンドを実行する直前にwhichコマンドを使って、コマンドが存在するかどうかのチェックをするときに便利です。if文など組み合わせて使うことで、柔軟なスクリプトを作成することができます。

Linux学習のためにwhichコマンドを使う

whichコマンドはファイルシステムの構造を理解するのにも役立ちます。特定のコマンドの起源をたどる際にも使用でき、ファイルがどのように配置されているかを調査できます。

whichコマンド使い方まとめ

今回の記事では、whichコマンドの使い方について解説しました。まとめると以下のようになります。

  • whichコマンドで指定したコマンドのパスを調べる
  • whichコマンド以外にもwhereisコマンドでも調べることができる

スクリプトを作成する際、コマンドの絶対パスを知りたいときにwhichコマンドを使いましょう!

さらにLinuxを学習をしたい人に向けて、InfraAcademyというインフラ学習サービスのご紹介です。

「Linuxの実践的な内容を学習したい」、「コマンドを打ちながらLinuxを学習したい」

そのようなご要望にお応えして、Linuxやネットワークが学習できるサイト「InfraAcademy」をリリースしました!

入門から中級まで初心者でもわかりやすく学習を進めることができます。

↓InfraAcademyの講座の一部です。

上記以外にも、DNSサーバーの構築方法や、Dockerの設定方法などさまざまな講座があります。

インフラエンジニアに必要な知識が学習できます。

InfraAcademyで学習を始める

参考:Linuxのコマンド練習用サイトのInfraAcademyを作成しました。【Linuxのコマンドをブラウザで練習しよう】

ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
InfraAcademyというインフラエンジニア向けの学習サービスを運営しております。 インフラエンジニアからフルスタックエンジニア、PdM サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。
RELATED POST