bash ターミナルを起動しても .profile が実行されない

bash ターミナルを起動しても .profile が実行されない

bash ターミナルを起動しても、.profile が実行されません。~/.bash_profile も ~/.bash_login もないので、.profile が実行されるはずですよね? 他に何が問題なのでしょうか?

答え1

ログインシェルではありません。

シェルがログインシェルの場合、.bash_profileが存在する場合はそれを探し、次に.profileを探します。他のシェルは.bashrcを探します。

したがって、すべてのシェル インスタンスで必要なものを .bashrc に配置し、.profile に .bashrc を参照する参照を含めることができます。

つまり: .bashrc:

stuff you want

.profile の終了:

[ -n "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc

答え2

代わりに使用してみてください~/.bashrc

答え3

グラフィカルデスクトップを使用している場合、.profile はデスクトップマネージャーによって取得される必要があります。Lightdmする少なくとも Ubuntu では、.profile をソースします。参照:https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/794315

kdm と Kubuntu-12.04 では、/etc/kde4/kdm/Xsession ファイルがソースとなり、.profile がインクルードされます。Kubuntu-12.10 ではおそらく lightdm が使用されます。Ubuntu 12.04 では lightdm が使用されるため、/usr/sbin/lightdm-session が .profile をソースします。

最善の方法は、(1) ~/.profile で環境設定を設定/エクスポートし、(2) .profile を .bash_profile でソース化することだと思います。

[[ -f ~/.profile ]] && . ~/.profile

(.bashrc が .profile または .bash_profile によってソース化されていないこと)。

参照:

関連情報