/ etc / profile 대 ~ / .profile


13

우분투 12.04.1 LTS를 실행합니다. 그리고 프로필 파일을로드하는 순서 / 우선 순위가 무엇인지 알 수 없습니다. 시스템을 시작하고 GUI를 사용하여 로그인하면 어떤 파일이로드됩니까? 그리고 왜? login-shell을 실행하면 어떻게 되나요? 동일합니까? 실제로 지금은 ~/.profile시스템이 시작될 때 왜 로드되지 않는 이유를 알 수 없습니다 .

https://help.ubuntu.com/community/EnvironmentVariables


~ / .profile이로드되었는지 어떻게 테스트합니까?
Andrea Corbellini

환경 변수는 ~ / .profile에 업데이트됩니다있다
sunprophit

답변:


3

모든 파일에서 변수를 정의 할 수 있습니다.

ORDER=${ORDER}+"/etc/profile"

각기

ORDER=${ORDER}+"~/.profile"

그리고 수행

echo ${ORDER}

무엇을 포함하고 어떤 순서로 볼 수 있습니다. 당신이 놓친 다른 스크립트가 있다면 물론 그것은 당신에게 말하지 않을 것입니다.

따라서 하나의 소스가 언급 된 경우 해당 스크립트를 읽고 하나의 스크립트가 다른 스크립트를 제공하는지 여부를 확인하십시오.

/etc/bash.bashrc와 ~ / .bashrc와 ~ / .bash_login뿐만 아니라 / etc / default의 것들도 떠 오릅니다.


흠, $ ORDER가 비어 있습니다.
sunprophit

구문 오류로 인해 $ ORDER이 (가) 왜 비어 있는지 잘 모르겠습니다. 나는 대시와 bash의 차이점에 대해 많이 모른다. 문제의 위치를 ​​파악하는 데 도움이되었으므로 올바른 답변으로 표시하겠습니다.
sunprophit

7

그것은 모두 로그인하려는 사용자에 따라 다릅니다. 전역 /etc/profile파일은 모든 사용자에 대해 로드 되고 반면에는 사용자~/.profile대해서만로드됩니다.

~현재 사용자의 홈 디렉토리를 가리 킵니다. 따라서 파일을 넣고로 /home/user-a/.profile로그인 user-a하면 전역 파일과 사용자 별 파일이 순서대로로드되지만 파일 user-b없이 로그인 .profile하면 전역 파일 만로드됩니다.


현재 사용자의 프로필 (~ / .profile)에는 환경 변수를 업데이트해야하는 부분이 있습니다. 나는 그것이 다른 프로파일에 없다는 것을 의미합니다. 이 사용자의 프로필입니다. 그러나 @user_unknown 솔루션을 사용하여 프로파일로드를 테스트했지만로드되지 않은 것 같습니다.
sunprophit

0

둘 다로드되고 ~ / .profile이 마지막에로드되어야합니다 (즉, 우선 순위가 있음).


그런 다음 무슨 일이 일어나고 있는지 잘 모르겠습니다. 터미널에서 명시 적으로 실행하면로드됩니다. 로그인 중에 문제가 발생하여 ~ / .profile이로드되지 않지만 터미널에는 이러한 문제가 없습니다. 시스템이로드를 시도했는지 확인할 수 있습니까?
sunprophit

0

그것은 내 잘못이야. 내 ~ / .profile에 [[some_test]]가 있고 bash에서 제대로 실행되지만 dash는 세션 시작시 pre_session_creation / post_session_creation 명령을 실행하고 대시는 [[키워드를 알지 못합니다. 그래서 모든 것이로드되었지만 오류가 발생했을 때 중지되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.