シンプルなもの
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
。PATH
is ~/.profile
(または~/.bash_profile
bash以外のシェルを気にしない場合)などの環境変数を定義する適切な場所。参照してください彼らと私は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シェルの場合)には当てはまりませんでしたが、最近ではそのような古いシェルに遭遇する可能性は非常に低いです。