シンプルなもの
PATH=$PATH:~/opt/bin
または
PATH=~/opt/bin:$PATH
~/opt/bin末尾に追加するか(複数のディレクトリに同じ名前のプログラムがある場合に他のすべてのディレクトリの後に検索する)、先頭に追加する(他のすべてのディレクトリの前に検索する)かによって異なります。
複数のエントリを同時に追加できます。PATH=$PATH:~/opt/bin:~/opt/node/binまたは注文作業のバリエーションは問題ありません。export追加の複雑さがあるため、行の先頭に置かないでください(以下の「bash以外のシェルに関する注意」を参照)。
PATHさまざまなコンポーネントでビルドされている場合、エントリが重複する可能性があります。Unix whichコマンドで検出されるホームディレクトリパスを追加する方法を参照してください。そして、awkコマンドで重複の$ PATHエントリを削除し、重複を追加しないか、それらを削除します。
いくつかのディストリビューション~/binは、PATHが存在する場合、自動的にPATHに入れられます。
どこに置くか
変更する行を入れPATHで~/.profile、またはで~/.bash_profileそれはあなたが持っているものだ場合。
これ~/.bash_rcはどのプログラムによっても読み取られず~/.bashrc、bashの対話型インスタンスの構成ファイルです。で環境変数を定義しないでください~/.bashrc。PATHis ~/.profile(または~/.bash_profilebash以外のシェルを気にしない場合)などの環境変数を定義する適切な場所。参照してください彼らと私は1つを使用する必要があるとの違いは何ですか?
入れてはいけない/etc/environmentか、~/.pam_environmentこれらのファイルをシェルされていない、あなたは次のように置換を使用することはできません$PATHがインチ これらのファイルでは、変数をオーバーライドすることはできますが、追加することはできません。
一部のシステムスクリプトの潜在的な合併症
export変数が既に環境にある場合は必要ありません。変数の値の変更はすべて環境に反映されますPATH。¹はほとんど常に環境にあります。すべてのUNIXシステムは、非常に早い段階で設定します(通常、実際には最初のプロセスで)。
ログイン時に、PATHすでに環境内にあり、すでにいくつかのシステムディレクトリが含まれていることに依存できます。ある種の仮想環境のセットアップ中に早期に実行される可能性のあるスクリプトを作成している場合、それがPATH空でないこととエクスポートされていることを確認する必要があります。PATHまだ設定PATH=$PATH:/some/directoryさPATHれ:/some/directoryていない場合、先頭は現在のディレクトリを意味し.:/some/directoryます(など)。
if [ -z "${PATH-}" ]; then export PATH=/usr/local/bin:/usr/bin:/bin; fi
bash以外のシェルに関する注意
bashの、kshのとzshのでは、export特別な構文で、両方PATH=~/opt/bin:$PATHとexport PATH=~/opt/bin:$PATHも、正しいことを行います。他のBourne / POSIXスタイルのシェル(ダッシュ(/bin/sh多くのシステムにあります)など)ではexport、通常のコマンドとして解析されます。これは、2つの違いを意味します。
そのため、ダッシュのようなシェルでexport PATH=~/opt/bin:$PATHはPATH、リテラル文字列の~/opt/bin/:後PATHに最初のスペースまでの値が続きます。
PATH=~/opt/bin:$PATH(裸の割り当て)は引用符を必要とせず、正しいことを行います。あなたが使用したい場合はexport、ポータブルスクリプトで、次のように記述する必要があるexport PATH="$HOME/opt/bin:$PATH"、またはPATH=~/opt/bin:$PATH; export PATH(あるいはPATH=$HOME/opt/bin:$PATH; export PATH受け入れなかったBourneシェル均等への移植のためexport var=valueとチルダ展開をしませんでしたが)。
¹ これは、Bourneシェル(最新のPOSIXスタイルのシェルではなく、実際のBourneシェルの場合)には当てはまりませんでしたが、最近ではそのような古いシェルに遭遇する可能性は非常に低いです。