PATH
環境変数に新しいパスを追加する必要があることを知りたいです。たとえば、エディタでこれを行うことができることを知っていますが、これを.bashrc
行う方法は明確ではありません。
この方法:
export PATH=~/opt/bin:$PATH
それともこれ?
export PATH=$PATH:~/opt/bin
ベストアンサー1
何か簡単なもの
PATH=$PATH:~/opt/bin
または
PATH=~/opt/bin:$PATH
~/opt/bin
最後に追加するか(同じ名前のプログラムが複数のディレクトリにある場合は他のすべてのディレクトリの後に検索)、または最初に追加するか(他のすべてのディレクトリの前に検索)によって異なります。
同時に複数の項目を追加できます。PATH=$PATH:~/opt/bin:~/opt/node/bin
あるいは、バリアントを注文するのも良いでしょう。export
複雑さが増すため、行の先頭に置かないでください(下記の「bash以外のシェルに関する注意事項」を参照)。
プロジェクトがさまざまなコンポーネントで構成されている場合、重複した項目が発生する可能性PATH
があります。バラよりどのUnixコマンドで見つかったホームディレクトリパスを追加するには?そしてawkコマンドを使用して重複した$PATHエントリを削除する重複項目を追加または削除しない場合
~/bin
ところで、一部のディストリビューションではそれをPATHに自動的に入れます。
どこに置くか
変更したい行をPATH
、~/.profile
またはまたは~/.bash_profile
に配置します(存在する場合)。 (ログインシェルがbashではなくzshの場合は入れてください~/.zprofile
。)
構成ファイルはログインシェルから読み取られるため、次回のログイン時にのみ適用されます。 (一部のシステムでは、ログインシェルを読み取るように端末を設定します。この場合は新しい端末ウィンドウを起動できますが、設定は適用されます。)端末を介して実行されたプログラムにのみ適用され、PATH
すべてのプログラムを設定する方法はシステムによって異なります。 。 )
~/.bash_rc
どのプログラムもこれを読まないことに注意してください。これは~/.bashrc
bashの対話型インスタンスの設定ファイルです。~/.bashrc
環境変数を定義する正しい場所は定義しないでくださいPATH
(~/.profile
または~/.bash_profile
bash以外のシェルに興味がない場合)。バラよりこれらの違いは何ですか?どちらを使うべきですか?
/etc/environment
またはに入れないでください。これはシェルファイルではないため、代替は使用~/.pam_environment
できません。$PATH
これらのファイルでは変数を上書きすることができ、追加することはできません。
一部のシステムスクリプトの潜在的な複雑さ
変数がすでに環境にある場合は必要ありませんexport
。変数値に対するすべての変更が環境に反映されます。PATH
ほぼ常に環境では、すべてのUNIXシステムはこれを最初に設定します(実際には通常最初のプロセスで)。
PATH
ログイン時にすでに環境にあり、含まれているいくつかのシステムディレクトリを使用できます。ある種の仮想環境を設定するときに事前に実行できるスクリプトを作成する場合は、スクリプトが空でなくエクスポートされていることを確認しPATH
たい場合があります。PATH
まだ設定されていない場合は、次のようになりますPATH=$PATH:/some/directory
。PATH
に設定します:/some/directory
。先頭の空のコンポーネントは現在のディレクトリ( like .:/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スタイルのシェルは通常のコマンドで解析されます。これは2つの違いを意味します。/bin/sh
export
~
割り当てを除いて、単語の先頭でのみ解析されます(参照どのUnixコマンドで見つかったホームディレクトリパスを追加するには?もっと学ぶ);$PATH
外部二重引用符PATH
スペースが含まれている場合は中断または\[*?
。
したがって、ダッシュなどのシェルでは、リテラル文字列と最初のスペースまでの値に
設定されます。 (素手で働く)export PATH=~/opt/bin:$PATH
PATH
~/opt/bin/:
PATH
PATH=~/opt/bin:$PATH
見積もりは必要ありません。そして正しいことをしてください。を作成したり、export
移植可能なスクリプトで使用したい場合(またはチルダ拡張を許可せずに実行するBourneシェルへの移植性のため)が必要です。export PATH="$HOME/opt/bin:$PATH"
PATH=~/opt/bin:$PATH; export PATH
PATH=$HOME/opt/bin:$PATH; export PATH
export var=value
1 Bourneシェルではそうではありませんでしたが(現代のPOSIXスタイルのシェルではなく実際のBourneシェルのように)、最近ではこの古いシェルに遭遇する可能性が低くなります。