【Linux】PATHについて

https://qiita.com/ryouya3948/items/8edbd5d744c83dd41141

【Linux】PATHについて
ターミナルのコマンドである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を追加して通してみる
.bashrc
export PATH=$PATH:追加したいコマンド検索パス
.bash_profile
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/2c49ea50602ea80bf

Linux、Netatalk、Samba、NFSを使用したファイルサーバーについて研究・運用しています。

fsをフォローする
コマンド参考リンク

コメント