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
1626
Help us understand the problem. What is going on with this article?
@soarflat

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とは?

お知らせ

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

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

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

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

1626
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=4529C0281A7F389FD0AF

Comments

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