.profile并非来自Debian Wheezy LXDE


11

我从添加$HOME/bin到。但是,它似乎不是在登录期间获取的。我使用登录管理器- 我认为不是。我知道这与执行哪些脚本有关。$PATH~/.profilelxdmstartx

为了说明这一点,请参阅$HOME/bin在我明确获得source之后如何添加~/.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:~$ 

您是否尝试过将其添加到/ etc / profile?
MariusMatutiae 2014年

3
我不希望它对所有用户都是全局的,而只是对单个用户而言。
sashoalm 2014年

Answers:


13

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

关于一些图形登录采取不同寻常的立场的争论很少...

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

正确。~/.profile登录时,大多数DM都会读取。但是,它们必须显式地执行此操作,因为~/.profile传统上它是由登录Shell生成的,而DM(GUI登录)不是Shell!

我从lightdm人们那里看到了~/.profile明确采购的理由-因为DM不是外壳。

您可以~/.profile从以下位置获取资源~/.xsession- 参见此处


2
撰写此答案时,~/.profile从Sourcing采购~/.xsession可能有效,但似乎不再有效。我通过采购来使它工作~/.xsessionrc
Filip S.

2

如果bash是您的登录shell,则它将尝试~/.bash_profile~/.bash_login并且~/.profile按此顺序进行。但是它将在找到的第一个停止

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


3
尽管这是一个可能的原因,但是这些文件在我的系统中不存在(甚至在询问之前就已经检查过)。
sashoalm 2014年

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

1

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

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


4
是的,但在我的情况下不存在。
sashoalm 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.