LinuxMintを使用しています。ログインシェル(cat /etc/passwd | grep myUserName
)はbashです。
グラフィカルデスクトップ環境を起動し、そこからターミナルエミュレーターを実行すると、.bash_profile
が表示されます。 ソースではありません(export
である環境変数 その中のedは設定されていません)。しかし、テキストコンソール( ctrl )からログインした場合 + alt + F1 )または手動でbash -l
を実行します ターミナルエミュレータから、.bash_profile
正常に動作します。
.bash_profile
だと思うのは間違っていますか? Xが起動し、すべてのexport
が起動するときにソースを指定する必要があります ‘ed varsは、Xから実行されているターミナルで利用可能である必要がありますか?
P.S.すべてを.bashrc
に配置します .bash_profile
から調達します 良いアイデアではありません(https://stackoverflow.com/questions/902946/):環境関連のものは一度だけ調達する必要があります。
承認された回答:
ファイル~/.bash_profile
ログインシェルの場合、bashによって読み取られます。これは、テキストモードでログインしたときに得られるものです。
Xでログインすると、起動スクリプトは/bin/sh
によって実行されます。 。 UbuntuとMintでは、/bin/sh
ダッシュであり、bashではありません。 Dashとbashはどちらも同じコア機能を備えていますが、ダッシュは高速で小型にするためにこれらのコア機能に固執しますが、bashはより多くのリソースを必要とするという犠牲を払って多くの機能を追加します。追加の機能を必要としないスクリプトにはdashを使用し、インタラクティブに使用するにはbashを使用するのが一般的です(ただし、zshにはより優れた機能がたくさんあります)。
ディスプレイマネージャ(ユーザー名とパスワードを入力するプログラム)とデスクトップ環境のほとんどの組み合わせは、~/.profile
を読み取ります。 /etc/X11/Xsession
のログインスクリプトから 、/usr/bin/lightdm-session
、/etc/gdm/Xsession
または該当する方。したがって、環境変数の定義を~/.profile
に配置します 。 dashがサポートする構文のみを使用するようにしてください。
では、何をどこに置くべきですか?
-
良い
.bash_profile
.profile
をロードします 、および.bashrc
をロードします シェルがインタラクティブな場合。. ~/.profile if [[ $- == *i* ]]; then . ~/.bashrc; fi
-
.profile
内 、環境変数の定義、およびulimit
などの他のセッション設定を配置します 。 -
.bashrc
内 、エイリアス、関数、補完、キーバインディング(.inputrc
にはない)などのbashインタラクティブ設定を配置します )、…