もう迷わない!Mac、Linuxでパスを通すための環境変数の設定について

ある程度プログラミングや開発環境の整備などを経験された方は、「パスを通す」という作業をしたことがあるのではないでしょうか?

例えば次のようなコマンド

export PATH="$PATH:/Users/hogehoge/mogumogu"

これで PATH が設定されます。

今回はこれが一体なにを行なっているものなのか、まとめます。

「パスを通す」とは

パスを通すとは 環境変数である$PATH の記述を変えて、コマンド検索パスを追加することです。

環境変数 はローカル PC のなかで使える特別な変数です。 env というコマンドで覗き見ることができます。

PATH は実行したいコマンドのパスを指定する環境変数で、代入されている値はコマンドの実行ファイルが置かれているディレクトリに繋がっています。 PATH にパスを追加すれば、その追加したパスも検索対象となるわけです。

環境変数について

環境変数は export コマンドで一時的に定義することができ、例えば次のようにすると、 TEST_ENV_VAR という環境変数が使えるようになります。

export TEST_ENV_VAR="This is a test environment variable."

コンソールで直接打ち込んだ環境変数は一時的なものなので、再度 ssh しなおすと消えて無くなります。恒久的に利用したい場合は ~/.bashrc~/.bash_profile などに記入する必要があります。

PATH の通し方

PATH の確認

現在の PATH を確認します。

printenv PATH

PATH の設定

下記のようなコードを ~/.bashrc~/.bash_profile などの最終行に追記し、 source コマンドで設定を反映させます。

# ~/.bashrcや~/.bash_profileに追記
# A_PATH_WHAT_YOU_WANT_TO_ADDを追加したいパスに置き換えます。
export PATH="$PATH:/A_PATH_WHAT_YOU_WANT_TO_ADD"
# 設定を反映させる
source ~/.bashrc

PATH の設定その 2

PATH はデフォルトで /usr/local/bin などのパスがすでにセットされているので、コマンドの実行ファイルをそのディレクトリに置くことで、PATH を通すのと同じ効果が得られます。 ~/.bashrc を追記するのが面倒な場合などは適当なデフォルトのパスに置いてあげると良いでしょう。

PATH の修正

PATH をリセット

unset コマンドで対象の環境変数を空っぽにできます。リセットするとコマンドを実行できなくなりますが、再度 PATH を設定し直す、またはコンソールを再起動することで初期状態に戻ります。

# $はいらない
unset PATH

PATH の修正

Vim などのエディタで ~/.bashrc~/.bash_profile へ記入したコードを削除、またはコメントアウトします。

# vimで開いて該当のコードを削除
vim ~/.bashrc

ターミナルを再起動するか source コマンドでプロファイルを再読みすれば OK です。

source ~/.bashrc

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

コマンド検索パスには優先度があり、設定された$PATHの冒頭から優先されます。追加するコマンド検索パスの優先度を高くしたい場合は、以下のように$PATH の冒頭にパスを通します。

export PATH=A_PATH_WHAT_YOU_WANT_TO_ADD:$PATH

まとめ

PATH の通し方と環境設定についてまとめました。やったね!