home / piにbinディレクトリがあります。 .profileを介してログインすると$ PATHに追加されますが、LXDEに移動してLXTerminalを使用すると、binディレクトリは$ PATHに追加されなくなります。
答え1
ほとんどの設定で~/.profile
ログイン時に読む環境変数を設定する一般的な場所です。残念ながら、ディストリビューション、ディスプレイマネージャ(グラフィックログイン方法)、およびデスクトップ環境のいくつかの組み合わせでは、このファイルはスキップされます。使用しているディスプレイマネージャ(lxdm?)を指定していませんが、~/.profile
Xセッションの開始時に読み取りをスケジュールしないようです。
私はRaspbianがそれをサポートすると信じています~/.pam_environment
。各ログイン方法はpam_env
アンティークではなくこのファイルを読み取ります。ポリアクリルアミド認証またはセッション部分。私はこれがRaspbianの場合だと思います(言及されている行を確認するか/etc/pam.d/common-session
含めてください)。で環境変数を定義できますが、可能性はより制限的です。書き込みのみ可能で、他の変数を使用したり、変数の既存の値に追加したりすることはできません。したがって、inのように書くことはできず、スペルを書く必要があります。/etc/pam.d/lxdm
pam_env.so
~/.pam_environment
~/.profile
VARIABLE=VALUE
PATH=$HOME/bin:$PATH
~/.profile
PATH=/home/pi/bin:/usr/local/bin:/usr/bin:/bin
環境変数を設定しないことをお勧めします。.bashrc
。サブシェルを起動するたびに既存の値が上書きされ、変数は端末でシェルを介して起動されたプログラムでのみ定義されます。GUIから直接起動されたプログラムにはありません。
答え2
からman bash
:
bashを次のように使用するときインタラクティブログインシェル、または--loginオプションを使用して、最初に/ etc / profileファイル(ファイルがある場合)からコマンドを読み込んで実行する非対話型シェルとして使用します。ファイルを読んだ後、~/.bash_profile、~/.bash_login、~/.プロフィール、その順序で存在して読み取ることができる最初のコマンドからコマンドを読み取り、実行します。この動作は、シェルの起動時に --noprofile オプションを使用して無効にできます。
いつログインシェル終了すると、bash は ~/.bash_logout および /etc/bash.bash_logout ファイルがある場合、そのファイルからコマンドを読み取り、実行します。
いつ インタラクティブシェルこれはログインではありませんシェル起動後、bashはコマンドを読み込み、実行します。~/.bashrc、ファイルが存在する場合。
「対話型シェル」は、端末の前景で実行されるシェルですが、必ずしもそうする必要はありません。ログインシェル。
ㅏログインシェルパラメータ0の最初の文字は-または--loginオプションで始まります。
GUI端末はこれを行いません。
そのため、通常、ソースに.profile
必要な内容を含めることができます.bashrc
。.bashrc
みんなシェルと.profile
ログインシェルに過ぎないすべて。場合によっては、(対話型プロンプト)が定義されていることを.profile
確認して、対話型プロンプトのみが含まれるように制限します。 1つの理由は、非対話型(スクリプト実行など)シェルで特定のエイリアスを使用しないためです。$PS1
.bashrc
したがって、$ PATH定義を入れて、それがまたは~/.bashrc
から派生していることを確認してください。~/.profile
~/bash_profile