Bash
PATH環境変数の管理
サーチ…
構文
- パスを追加:PATH = $ PATH:/ new / path
- パスを追加:PATH = / new / path:$ PATH
パラメーター
パラメータ | 詳細 |
---|---|
パス | パス環境変数 |
備考
Bash設定ファイル:
このファイルは、新しい対話型Bashシェルが開始されるたびに取得されます。
GNU / Linuxシステムでは一般的に〜/ .bashrcファイルです。 Macでは〜/ .bash_profileまたは〜/ .profileです
輸出する:
PATH変数は一度エクスポートする必要があります(デフォルトで実行されます)。エクスポートされると、エクスポートされたままになり、変更はすぐに適用されます。
変更を適用:
変更をBash構成ファイルに適用するには、そのファイルを端末( source /path/to/bash_config_file
)でsource /path/to/bash_config_file
する必要があります。
PATH環境変数へのパスを追加する
PATH環境変数は〜/ .bashrcまたは〜/ .bash_profileまたは/ etc / profileまたは〜/ .profileまたは/etc/bash.bashrc(ディストリビューション固有のBash構成ファイル)で一般的に定義されます。
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/jdk1.8.0_92/bin:/usr/lib/jvm/jdk1.8.0_92/db/bin:/usr/lib/jvm/jdk1.8.0_92/jre/bin
PATH変数にパス(例えば、 ~/bin
)を追加したい場合は、次のようにします。
PATH=~/bin:$PATH
# or
PATH=$PATH:~/bin
しかし、これは現在のシェル(およびそのサブシェル)でのみPATHを変更します。シェルを終了すると、この変更はなくなります。
永久にするには、そのビットを〜/ .bashrc(または何でも)ファイルに追加し、ファイルをリロードする必要があります。
以下のコードを(端末で)実行すると~/bin
がPATHに永久に追加されます:
echo 'PATH=~/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
説明:
-
echo 'PATH=~/bin:$PATH' >> ~/.bashrc
は、〜/ .bashrcファイルの最後にPATH=~/bin:$PATH
という行を追加します(テキストエディタで行えます) -
source ~/.bashrc
は〜/ .bashrcファイルをリロードします
これは、パスがすでに含まれているかどうかをチェックし、そうでない場合にのみパスを追加するコードです(端末で実行されます)。
path=~/bin # path to be included
bashrc=~/.bashrc # bash file to be written and reloaded
# run the following code unmodified
echo $PATH | grep -q "\(^\|:\)$path\(:\|/\{0,1\}$\)" || echo "PATH=\$PATH:$path" >> "$bashrc"; source "$bashrc"
PATH環境変数からパスを削除する
PATH環境変数からPATHを削除するには、〜/ .bashrcまたは〜/ .bash_profileまたは/ etc / profileまたは〜/ .profileまたは/etc/bash.bashrc(ディストリビューション固有)ファイルを編集し、その割り当てを削除する必要があります。その特定の経路。
正確な割り当てを見つけるのではなく、最終段階で$PATH
で置換えするだけです。
以下は$PATH
から$PATH
$path
を安全に削除し$path
:
path=~/bin
PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"
永久にするには、bash設定ファイルの最後に追加する必要があります。
あなたは機能的な方法でそれを行うことができます:
rpath(){
for path in "$@";do
PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"
done
echo "$PATH"
}
PATH="$(rpath ~/bin /usr/local/sbin /usr/local/bin)"
PATH="$(rpath /usr/games)"
# etc ...
これにより、複数のパスを扱いやすくなります。
ノート:
- これらのコードをBash設定ファイル(〜/ .bashrcなど)に追加する必要があります。
-
source ~/.bashrc
を実行して、Bash設定ファイル(〜/ .bashrc)をリロードします。