.profile 并非源自 Debian Wheezy LXDE

.profile 并非源自 Debian Wheezy LXDE

我添加$HOME/bin$PATHfrom ~/.profile.但是,它似乎不是在登录期间获取的。我使用登录管理器 -lxdm我认为,而不是startx。我知道这对于执行哪些脚本很重要。

为了说明这一点,请参阅在我显式 source 后如何$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

但它不应该是在图形登录期间获取的吗?

关于某些图形登录采取不寻常立场的问题存在一个小争论......

我将 $HOME/bin 从 ~/.profile 添加到 $PATH。但是,它似乎不是在登录期间获取的。我认为我使用登录管理器 - lxdm

正确的。大多数 DM~/.profile在您登录时都会进行读取。但是,他们必须明确执行此操作,因为~/.profile传统上的来源是登录外壳DM(GUI 登录)不是 shell!

这是我从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 是您的登录 shell,那么它将按此顺序尝试~/.bash_profile,~/.bash_login和。~/.profile然而它会停止在它找到的第一个时。

如果您的~/.profile没有来源,则意味着您的目录中有其他两个之一(可能两个)HOME。您应该检查哪一个,然后将新PATH语句放在第一个语句中。

答案4

当 Bash 作为交互式登录 shell 或带有选项的非交互式 shell 被调用时--login,它首先从文件中读取并执行命令/etc/profile(如果该文件存在)。读取该文件后,它会按顺序查找~/.bash_profile~/.bash_login、 和~/.profile,并从第一个存在且可读的文件中读取并执行命令。

因此,当~/.bash_profile存在时,~/.profile永远不会被读取。

相关内容