Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1154
Help us understand the problem. What is going on with this article?
@soarflat

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を通すうえでよくわからないことがあったので投稿しました。

以上

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

お知らせ

Udemy で webpack の講座を公開したり、Kindle で技術書を出版しています。

Udemy:
webpack 最速入門10,800 円 -> 2,400 円

Kindle(Kindle Unlimited だったら無料):
React 実践入門(500 円)
React Hooks 入門(500 円)

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

1154
Help us understand the problem. What is going on with this article?
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
soarflat
フロントエンドエンジニア。Udemy で webpack の講座を公開しています。https://www.udemy.com/course/practical-webpack/?couponCode=E09894A14502565499BA

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1154
Help us understand the problem. What is going on with this article?