ターミナルのコマンドであるPATH
について記載していきます。
#PATHとは
コマンド検索パス
を追加するコマンドです。
コマンド検索パス
とは、コマンドの実行ファイルを探しにいくようなパスのことです。
$ ls
/bin/ls
例えば上記のようにフォルダとファイルを参照する$ ls
を実行したときに、/bin
ディレクトリの下にls
という同名の実行ファイルがあるとします。
$ ls
はパスを指定せずにコマンドを実行しているので、シェルが各ディレクトリからコマンドに対応している実行ファイルを探しだします。
この探しだすパスをコマンド検索パス
といい、PATH
コマンドでこのパスを追加することができます。
##コマンド検索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
の6つが探索コマンドパス
として設定されています。
##コマンド実行ファイルの格納場所の確認方法
$ which ls
で確認できます。実行結果は下記になります。
$ which ls
#実行結果
/bin/ls
##同名の実行ファイルが複数の探索コマンドパスにあるとき
この場合は優先度があり、$ echo $PATH
で出力された左のものから実行されます。
例えば下記のような場合だと
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin
/usr/local/bin
から実行されます。
優先度としては/usr/local/bin
> /usr/bin
> /bin
> /usr/sbin
> /sbin
> /usr/local/sbin
となります。
#PATHの追加
PATHを追加するには.bashrc
か.bash_profile
ファイルにexport PATH=$PATH:追加したいコマンド検索パス
形式で記載すると追加されます。
##実際にPATHを追加して通してみる
export PATH=$PATH:追加したいコマンド検索パス
export PATH=$PATH:追加したいコマンド検索パス
PATHを記載するファイルは.bashrc
と.bash_profile
のどちらでも問題ありません。
$ source ~/.bashrc
$ source ~/.bash_profile
それぞれ記述したファイルをsourceコマンドで実行しないとパスが通りません。
##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
$ echo $ULB
/usr/local/bin #出力結果
$ echo $ULB
で設定されていることを確認していています。
ls /usr/local/bin
ls $ULB
どちらのコマンドでも同様の結果になります。
###環境変数の上書き
$ echo $ULB
/usr/local/bin #出力結果
$ export ULB=/u/l/b
$ echo $ULB
/u/l/b #出力結果
上記のように環境変数の上書きを行うこともできます。
###環境変数の削除
unset
コマンドで削除することができます。
$ unset ULB #[$]は入力しなくて良い。
$ echo $ULB
#何も出力されない。
###追加するコマンド探索パスの優先度を高くする
$ export PATH=追加したいコマンド検索パス:$PATH
コマンド探索パスは左から優先度が高くなっているので、このように記載する。
#参考URL
Linux入門 ~「パスを通す」とは~
https://qiita.com/Naggi-Goishi/items/2c49ea50602ea80bf015