Ubuntuで$PATH
にディレクトリを追加して、その変更を永続的にするにはどうすればいいですか?
.bash_profileに設定されたパスは、bashのログインシェル(
bash -l)でのみ設定されます。 .profile
にパスを設定すると、デスクトップセッション全体で利用できるようになります。つまり、metacityもそれを使うということです。
例えば、~/.profile
です。
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
ちなみに、プロセスのPATH変数は、/proc/[pid]/environ
([pid]は、ps axf
の番号に置き換えてください)の環境を見ることで確認できます。例: grep -z "^PATH" /proc/[pid]/environ
を使用します。
ログインシェルとしての bash
は、.bash_profile
または .bash_login
のどちらかが存在する場合、.profile
を解析しません。from man bash
:
順番に ~/.bash_profile, ~/.bash_login, ~/.profile を探して、読み込んでいきます。 順番に探して、最初に存在して読めるものからコマンドを読み込んで実行します。
が存在し、読めるものからコマンドを読み込んで実行します。
.pam_environmentについては[以下の回答][1]を参照してください。また、ログインしない対話型シェルの場合は
.bashrcを、
/etc/profile.d/にスクリプトを入れて全ユーザにグローバルに値を設定したり、
/etc/X11/Xsession.d/`を使って表示マネージャのセッションに影響を与えることもできます。