~/.bash_profileが機能しないのはなぜですか?

~/.bash_profileが機能しないのはなぜですか?

私はLinux Mintを使用しています。私のログインシェル(cat /etc/passwd | grep myUserName)はbashです。

.bash_profileグラフィックスデスクトップ環境を起動してターミナルエミュレータを実行した後、ソースがないことがわかります(編集された環境変数がexport設定されていない場所)。ただし、ctrlテキストコンソール(++)からログインするか、ターミナルエミュレータで手動で実行するとalt正常に動作します。F1bash -l.bash_profile

.bash_profileXが起動したときにインポートする必要があり、すべてのexport変数が端末で利用可能でXで実行されるべきだと思うのは間違っていますか?

PSはすべてを入れて.bashrcソースを提供します。.bash_profile これは良い考えではありません。:環境用品は一度だけ購入してください。

ベストアンサー1

bashがログインシェルの場合、~/.bash_profilebashはこのファイルを読み取ります。テキストモードでログインすると表示される内容です。

Xからログインすると、起動スクリプトは/bin/sh.UbuntuとMintで構成さ/bin/shれます。スプリント、強く打つ代わりに。 Dashとbashは両方とも同じコア機能を持っていますが、dashは高速で小さいためコア機能に固執しますが、bashはより多くのリソースを必要とする代わりに多くの機能を追加します。一般的に、ダッシュはアドインを必要としないスクリプトに使用され、bashは対話型の使用に使用されます(もちろん扱いにくい より良い機能がたくさんあります。)。

ディスプレイマネージャ(ユーザー名とパスワードを入力するプログラム)とデスクトップ環境のほとんどの組み合わせは~/.profile、または該当する場合のログインスクリプトから読み込みます。したがって、環境変数定義をに入れます。ダッシュサポート構文のみを使用してください。/etc/X11/Xsession/usr/bin/lightdm-session/etc/gdm/Xsession~/.profile

それでは、どこに何を入れるべきですか?

  • ロードが良好で、シェルが対話.bash_profile型の場合に.profileロードされます。.bashrc

    . ~/.profile
    if [[ $- == *i* ]]; then . ~/.bashrc; fi
    
  • .profile環境変数の定義やその他のセッション設定(例)を配置しますulimit

  • では、エイリアス、関数、完成、キーバインディング(にはなし).bashrcなどのbashインタラクション設定を配置します。.inputrc

また、見ることができますログインシェルと非ログインシェルの違いは何ですか?そして.bashrcの代替

おすすめ記事