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


12

그래서 저는 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 파일이없는 방법은 무엇입니까?


질문의 일부에 대한 답변 은 unix.stackexchange.com/questions/45684/… 도 참조하십시오 . 또한, unix.stackexchange.com/questions/67940/… 는 이러한 다양한 파일이 아직 다루지 않은 것보다 고급 기능에 혼란을 야기 할 수있는 이유 중 하나를 보여줍니다.
msw

답변:


13

.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설치에 필요한 시스템 고유의 내용이있을 수 있기 때문에 이미 작업을 수행 했으므로.


감사! 나는 지금 그것을 조금 더 잘 이해하고 있다고 생각합니다.
Emiroe

그중 많은 것이 당신이 정말로 알 필요가없는 역사적 쓰레기입니다. 내 대답의 마지막 단락에 집중하십시오. 또한 당신이 여기 새로 왔기 때문에, 여기 에서 가장 감사하는 형태 인 답을 찬성 하고 받아 들일 수 있습니다.
msw

예, 이미 답변을 수락했습니다. 나는 누군가가 그렇게 많은 노력을 기울이기를 기대하지 않았으므로 매우 감사합니다. 귀하의 답변을 수락했지만 15 개의 평판이 필요하고 8 개 밖에 없기 때문에이를 표명 할 수 없습니다. 죄송합니다.
Emiroe

나는 15 개의 한도를 잊었다. 바로 당신입니다.
msw

4
역사 보너스 # 1 : 진정한 Bourne 쉘은 마침내 포로에서 벗어났습니다. minnie.tuhs.org 에는 V7의 전체 소스 코드 (Bourne 쉘이있는 최초의 유닉스 릴리스)가 있으며 heirloom.sourceforge.net 에는 실제로 사용할 수있는 약간 더 최신 버전의 Bourne 쉘이 있습니다. 역사 보너스 # 2 : aliasPOSIX에 필요하므로 sh모르는 사람이 많지 않습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.