サーチ…


構文

  • パスを追加: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)をリロードします。


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow