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
디렉토리에 다른 두 개(아마도 두 개) 중 하나가 있다는 의미입니다 HOME
. 어느 것을 확인하고 PATH
첫 번째 문에 새 문을 넣어야 할까요?
답변4
Bash가 대화형 로그인 셸 또는 options 가 포함된 비대화형 셸로 호출되면
--login
먼저 파일/etc/profile
(파일이 존재하는 경우)에서 명령을 읽고 실행합니다. 파일을 읽은 후~/.bash_profile
,~/.bash_login
, 를 순서대로 찾아 존재~/.profile
하고 읽을 수 있는 첫 번째 파일부터 명령을 읽고 실행합니다.
따라서 ~/.bash_profile
존재 하는 경우에는 ~/.profile
읽혀지지 않습니다.