.profile과 .bash_profile의 차이점은 무엇이며 시스템에 .profile 파일이없는 이유는 무엇입니까? Linux :

그래서 저는 Linux를 처음 접했고 최근에 넷북에 Fedora 19를 설치했습니다. 저는 Linux와 CLI에 대해 더 깊이 이해하고 싶기 때문에 Learn Linux : The Hard Way를 읽고 있습니다.

연습 3에서 저자는 다음 명령을 제공합니다.

  • LS-알
  • 고양이 .profile

이 지침을 따르려고하지만 아무 소용이 없습니다. ls -al에서 볼 수 있듯이 사용자 이름 디렉토리에는 .profile 파일이 없습니다. 내가 배운 것에서 .bash_profile과 .profile 파일은 실제로 동일합니다. 내가 연구에서 결론을 얻은 유일한 차이점은 .bash_profile이 먼저 확인된다는 것입니다.

내가 이해하지 못하는 것은 Linux에 동일한 기능을 위해 여러 개의 파일이있는 이유는 무엇입니까, Author가 .bash_profile이 아닌 .profile을 사용하는 이유는 무엇입니까? 시스템에 .profile 파일이없는 방법은 무엇입니까?



답변

.profile알려진 원래 Bourne 쉘 의 날짜 sh. GNU 쉘 bash은 옵션에 따라 Bourne 쉘의 상위 세트이므로 두 쉘 모두 동일한 시작 파일을 사용할 수 있습니다. 즉, sh명령 만 입력하면.profile

예를 들어, alias유효한 기본 제공 명령 bash이지만로 알 수 없습니다 sh. 따라서 .profile홈 디렉토리에 만 있고 alias명령문을 넣으면 sh불평 할 것입니다. 따라서 쉘 초기화 명령이있는 bash 특정 파일이 있습니다 .profile. 이 파일은 존재 하지 않을 때만 bash가 읽습니다 .

실제로 이것은 일부 설치에서 약간 단순화 된 것으로 Fedora에 익숙하지 않습니다. bash /etc/profile에서 홈 디렉토리의 파일보다 먼저 쉘이 읽습니다. 시스템 전체의 초기화 스크립트가 있으면 종종 다음과 같이 말합니다.

if there is a $HOME/.profile:
   source it
elseif bash is my shell and there is a $HOME/.bash_profile:
   source that

왜 그런가요? 수십 년에 걸친 쉘 방언에 대한 호환성 시도. 튜토리얼이 왜 그런 식으로 쓰여 집니까? Bourne 쉘은 더 이상 자주 사용되지 않으며 일부 사람들은 Bash와 다른 Bourne과 같은 쉘이 있다는 것을조차 알지 못합니다. 플랫폼 간 호환성을 높이기 위해 (제한된) Bourne 구문을 사용하더라도 dashPOSIX 호환 모드에서 종종 실행 되거나 bash 가 실행 됩니다. 실제로, 실제 Bourne 쉘 소스는 아마도 지금은 Novell의 자산 인 것처럼 보이는 Unix System V의 저작권 구성 요소 일 것입니다.

처음 사용자, 사용 중 $HOME/.profile또는 $HOME/.bash_profile하지만 모두 당신은 괜찮을거야 없습니다. .bash_profile설치에 필요한 시스템 고유의 내용이있을 수 있기 때문에 이미 작업을 수행 했으므로.


답변