Help us understand the problem. What is going on with this article?

PATHを通すとは? (Mac OS X)

PATHの通し方が記されている記事はよく見かけますが
「そもそもPATHを通すってどういうこと?」状態だったのでそれに関しての備忘録です。

PATHを通すとは?

コマンド検索パス(コマンドサーチパス)を追加すること。
※色々な言葉で説明されていましたが、自分はこれが理解しやすかったです。

コマンド検索パスとは?

シェルがコマンド実行ファイルを探しに行くパスのこと。

たとえば、lsというコマンドの実行ファイルは/binディレクトリに格納されており(自分の環境では)
/bin/lsと入力すると実行される。しかし、パスを指定せずにlsだけ入力しても/bin/lsと同じ実行がされる。

コマンド
# どちらのコマンドでも同じ結果が出力される。
/bin/ls
ls

これは、コマンドがパスの指定なしで入力された時、シェルがそのコマンドに対応する実行ファイルを
/bin/usr/binなどのディレクトリへ探しに行き、同じ名前の実行ファイルがあれば、それを実行してくれるからである。
今回、lsを入力された時に探しに行った/binディレクトリに同じ名前の実行ファイルが存在したため、それが実行された。

このように、コマンド入力時にシェルが実行ファイルを探しに行くパスをコマンド検索パスと言う。

コマンド検索パスの確認方法

コマンド検索パスは環境変数$PATHに設定されており、echo $PATHで確認できる。
自分の環境でecho $PATHを入力してみると、以下が出力される。

コマンド
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin #実行結果

パスは:で区切られており、今回の例では下記のパスがコマンド検索パスとして設定されている。

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/sbin

コマンド実行ファイルの格納場所の確認方法

whichを利用すれば指定したコマンドの実行ファイルがどこに格納されているのか確認できる。
lsコマンドの実行ファイルが/binディレクトリに格納されている場合、以下が出力される。

コマンド
which ls
/bin/ls #実行結果

同じ名前のコマンド実行ファイルが複数のコマンド検索パスに存在する場合

コマンド検索パスには優先度があり、echo $PATHで出力された左が優先される。
先ほどの例だと/usr/local/binが一番優先される。
そのため、/usr/local/bin/ls/usr/bin/lsのような同じ名前の実行ファイルが
存在する場合、/usr/local/bin/lsが実行される。
コマンドは実行されるが、意図通りの実行がされない場合、パスの優先度が原因かもしれない。

PATHを通す意味がわかったら

PATHを通しましたが、PATHを通すうえでよくわからないことがあったので投稿しました。

以上

認識が間違っていたらご指摘ください。

お知らせ

KDP(Kindle ダイレクト・パブリッシング)を利用して、技術書を出版しました。

どちらも500円(Kindle Unlimited だったら無料)です。

書籍の詳細は商品ページからご覧いただけます。

興味を持ってくださった方はご購入いただけると大変嬉しいです。よろしくお願いいたします。

soarflat
フロントエンドエンジニア🐶
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした