from$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:~$
答え1
しかし、グラフィックログイン中に獲得することはできませんか?
いくつかのグラフィックログインが取る珍しい立場について小さな議論があります。
~/.profile の $HOME/bin を $PATH に追加しました。しかし、ログイン中にはインポートされないようです。ログインマネージャを使用しているようです - lxdm
正しい。ほとんどのDMは~/.profile
ログイン時に読み取られます。しかし、~/.profile
伝統的にソースは次のようなので、これを明示的に実行する必要があります。ログインシェルDM(GUIログイン)はシェルではありません!
これが私が始めたものです。lightdm
人々のためいいえ明示的なソーシング~/.profile
- DMはシェルではないからです。
~/.profile
次から~/.xsession
始めることができます。ねえ。
答え2
ほとんど@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
答え3
bashがログインシェルの場合は、次の順序で試行されます~/.bash_profile
。しかしそれは~/.bash_login
~/.profile
止める初めて発見したことから。
ソースがない場合は、~/.profile
ディレクトリに他の2つ(おそらく2つ)のいずれかがあることを意味しますHOME
。どちらを確認し、PATH
最初のドアに新しいドアを置く必要がありますか?
答え4
Bashが対話型ログインシェルまたはoptionsを含む非対話型シェルとして呼び出されると、まず
--login
ファイル/etc/profile
(ファイルが存在する場合)からコマンドを読み取り、実行します。ファイルを読み込んだ後~/.bash_profile
、~/.bash_login
、 を順に探して存在~/.profile
し、読み取れる最初のファイルからコマンドを読み込み実行します。
したがって、~/.bash_profile
存在する場合は~/.profile
読み込まれません。