.bash_profile에서 .profile을 로드하거나 bash_profile을 전혀 사용하지 않습니까? [복사]

.bash_profile에서 .profile을 로드하거나 bash_profile을 전혀 사용하지 않습니까? [복사]

저는 Yosemite를 실행하는 MAC을 사용하고 있습니다.

최근까지는 PATH에 디렉터리를 추가하는 .profile만 있었습니다.

이제 내 경험과 이후의 온라인 읽기를 통해 터미널 창을 열 때 .profile이 무시되는 .bash_profile이 있습니다.

좀 읽은 후에 .pofile과 .bash_profile이 어떻게 다른지 이해했습니다. .bash_profile은 쉘을 시작할 때만 호출된다는 것을 알고 있습니다.

그러나 기본 사용자에게 다음 중 어떤 단점이 있는지는 아직 잘 모르겠습니다.

  • .bash_profile에서 .profile을 호출합니다.
  • 아니면 .bash_profile을 무시하고 .profile 파일의 셸에서 직접 필요할 수 있는 모든 환경 변수를 설정하세요.

예를 들어, 나는 읽었습니다.여기.bash_profile이 존재할 때 .profile은 무시되므로 추가할 수 있습니다.

. ~/.profile 

내 bash_profile에서 .profile을 호출하세요.

또는 .bash_profile을 사용하면 bash 외부에서 필요하지 않은 변수를 설정할 수 있다는 것을 알고 있지만 여전히할 수 있는필요한 모든 것이 .profile에 설정되어 있지만 .bash_profile을 사용하면 어떤 결과가 나오는지 알 수 없습니다.

답변1

~/.profile전통적인 sh는 시작 시 이 파일을 읽습니다.로그인 쉘.

Bash는 sh와 이전 버전과 호환되지만 .bash_profile존재하지 않는 경우 대안을 읽고 시도하는 추가 기능을 제공합니다 .profile. 이를 통해 로그인 쉘이 bash 일 때 .profile일반 sh를 사용하고 .bash_profilebash의 추가 기능을 활용할 수 있습니다.

.bashrc대화형으로 호출되면 Bash는 다른 파일도 읽습니다. 여기에 프롬프트, 별칭, 완성 설정 등을 입력합니다. 그러나 대화형 로그인 셸에서는 파일을 읽지 않습니다. 따라서 쉘이 대화형으로 실행되는 동안 소스 코드를 가져와야 .bash_profile합니다 . 그렇지 않으면 별도의 파일을 유지해야 합니다..bashrc

다음에서 벗어날 이유가 거의 없습니다 .bash_profile.

. ~/.profile
case $- in *i*) . ~/.bashrc;; esac

로그인 콘텐츠(예: 환경 변수 정의) .profile와 대화형 셸 콘텐츠를 .bashrc.

로그인 셸로 bash만 사용하는 경우에는 아마도 그런 것이 없고 .profile로그인에 직접 항목을 추가하고 .bash_profile대화식으로 로드하려는 행을 추가할 수 있습니다..bashrc

1 도 이전에 이것을 시도했지만 별로 유용하지 않았습니다..bash_login.profile

관련 정보