web-dev-qa-db-ja.com

.profileはDebian Wheezy LXDEで提供されていません

$HOME/bin$PATHから~/.profileに追加します。ただし、ログイン時に提供されていないようです。ログインマネージャーを使用しています-lxdmではなくstartxだと思います。これは、実行されるスクリプトに関して重要であることを知っています。

例として、$HOME/binを明示的にソースした後で~/.profileがどのように追加されるかを確認します。しかし、それはグラフィカルログイン中に供給されるべきではありませんか?

sashoalm@aspire:~$ echo $PATH 
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
sashoalm@aspire:~$ source ~/.profile 
sashoalm@aspire:~$ echo $PATH 
/home/sashoalm/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
sashoalm@aspire:~$ 
11
sashoalm

しかし、それはグラフィカルログイン中に供給されるべきではありませんか?

いくつかのグラフィカルログインが異常なスタンスをとるということについて、小さな議論があります...

$ HOME/binを〜/ .profileから$ PATHに追加します。ただし、ログイン時に提供されていないようです。ログインマネージャーを使用しています-lxdm

正しい。ほとんどのDMは~/.profileはログイン時に使用します。ただし、~/.profileは伝統的にloginシェルから供給され、DM(GUIログイン)はシェルではありません!

これは私がlightdmの人々から見たではない調達の正当化です~/.profile明示的に-DMはシェルではないため。

~/.profile自分から~/.xsession- ここを参照

13
goldilocks

@goldilocksに最も同意します。スクリプトをソースに追加したいだけです~/.profile~/.xsessionrc、 の代わりに ~/.xsession

ここに根拠があります:

qxu@debian:/etc/X11/Xsession.d$ cat 40x11-common_xsessionrc
# This file is sourced by Xsession(5), not executed.

#Source user defined xsessionrc (locales and other environment variables)
if [ -r "$USERXSESSIONRC" ]; then
  . "$USERXSESSIONRC"
fi

qxu@debian:/etc/X11$ grep USERXSESSIONRC Xsession
USERXSESSIONRC=$HOME/.xsessionrc
2
Qiang Xu

Bashがログインシェルの場合、~/.bash_profile~/.bash_loginおよび~/.profileこの順序で。ただし、最初に見つかったものはstopになります。

もしあなたの ~/.profileが提供されていない場合、HOMEディレクトリに他の2つのうちのいずれか(おそらく両方)があることを意味します。どちらをチェックするか、最初のステートメントに新しいPATHステートメントを配置する必要があります。

2
MariusMatutiae

Bashが対話型ログインシェルとして、または--loginオプションを使用して非対話型シェルとして呼び出されると、ファイル/etc/profileが存在する場合、そのファイルからコマンドを読み取り、実行します。そのファイルを読み取った後、~/.bash_profile~/.bash_login、および~/.profileをこの順序で検索し、存在し、読み取り可能な最初のコマンドからコマンドを読み取って実行します。

したがって、~/.bash_profileが存在する場合、~/.profileは読み込まれません。

1
chaos