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

PATHを通すために環境変数の設定を理解する (Mac OS X)

前回の投稿

PATHを通すには特定のファイルにexport PATH=$PATH:追加したいコマンド検索パスのような記述を追加するみたいですが、記述内容が理解できず「exportって何?何故$PATHを記述しているの?」状態だったのでそれに関しての備忘録です。

PATHの通し方

~/.bashrc~/.bash_profileに以下のコマンドを記述する。(記述はどちらかで良い。)

.bashrc
export PATH=$PATH:追加したいコマンド検索パス
.bash_profile
export PATH=$PATH:追加したいコマンド検索パス

記述後は編集したファイルに対してsourceコマンドを実行しないとPATHが通らない。

コマンド
source ~/.bashrc
source ~/.bash_profile

exportコマンドとは?

以下のことができるコマンド

  • 環境変数を表示する。
  • 環境変数を設定する。

環境変数を表示する

設定されている環境変数を表示する。

コマンド
export -p

#出力結果(一部のみ記載)
declare -x PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
declare -x LANG="ja_JP.UTF-8"
declare -x SHELL="/bin/bash"

環境変数を設定する

たとえば$ULBという環境変数を設定したい場合、以下のように入力をする。

コマンド
export ULB=/usr/local/bin

結果は表示されないが、環境変数$ULBが設定されたのでecho $ULBで確認できる。

コマンド
echo $ULB
/usr/local/bin #出力結果

設定した環境変数を利用してみる。

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

既に存在する環境変数を設定するとどうなるのか?

上書きされる。(再設定される。)

コマンド
echo $ULB
/usr/local/bin #出力結果

export ULB=/u/l/b

echo $ULB
/u/l/b #出力結果

環境変数を削除したい

unsetコマンドで環境変数を削除できる。先ほど設定した$ULBを削除したい場合、以下のように入力する。

コマンド
unset ULB #[$]は入力しなくて良い。

echo $ULB
#何も出力されない。

exportを理解した上で再度PATHを通す記述を確認してみる

環境変数$PATHを上書き(再設定)している記述だった。

export PATH=$PATH:追加したいコマンド検索パス

$PATHを記述しなくても以下のように記述すれば同じ。

#現在$PATHに設定されているコマンド検索パスが以下の場合
#/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin
#どちらの記述でも$PATHに設定されるコマンド検索パスは同じ。
export PATH=$PATH:追加したいコマンド検索パス
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:追加したいコマンド検索パス

追加するコマンド検索パスの優先順位を高くしたい

コマンド検索パスには優先度があり、echo $PATHで出力された左から優先されるため、
追加するコマンド検索パスの優先度を高くしたい場合、以下のように記述する。

export PATH=追加したいコマンド検索パス:$PATH

そもそも.bash_profile、.bashrcとは?

お知らせ

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
ユーザーは見つかりませんでした