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

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

저는 Linux를 처음 접했고 최근에 넷북에 Fedora 19를 설치했습니다. Linux와 CLI에 대해 자세히 알아보고 싶어서 지금 읽고 있습니다.Linux 학습: 어려운 길.

연습 3에서 저자는 다음 명령을 내립니다.

  • ls-알
  • 고양이.프로필

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

내가 이해하지 못하는 것은 Linux에 동일한 기능에 대한 여러 파일이 있는 이유와 작성자가 .bash_profile 대신 .profile을 사용한 이유입니다(제대로 이해했다면 시스템이 .bash_profile을 먼저 찾으면 .profile을 읽을 수 없습니다). 내 시스템에 .profile 파일이 없는 이유는 무엇입니까?

답변1

GNU 쉘 (옵션에 따라 다름) 은 .profileBourne 쉘의 상위 집합이므로 두 쉘 모두 동일한 시작 파일을 사용할 수 있습니다. 즉, 명령을 입력 하면 됩니다.shbashsh.profile

예를 들어 alias유효한 내장 명령이 있지만 bash알 수 없습니다 sh. 따라서 .profile홈 디렉토리에만 a가 있고 alias거기에 명령문을 추가하면 sh불평이 발생합니다. 따라서 bash는 파일이 존재하지 않는 경우에만 읽는 쉘 초기화 명령을 포함하는 bash 관련 파일이 있습니다 .profile.

실제로 이것은 일부 설치에서는 약간 지나치게 단순화되었으며 저는 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 쉘 소스 코드는 Unix System V의 저작권 보호 구성 요소일 수 있습니다.이제 Novell의 소유가 된 것 같습니다.하지만 그들이 그걸로 무엇을 하고 있는지는 모르겠습니다.

초보자의 경우 둘 $HOME/.profile중 하나만 사용 $HOME/.bash_profile하고 둘 다 사용하지는 마십시오. 이미 사용했기 때문에 .bash_profile설치에 필요한 시스템별 항목이 포함될 수 있습니다.

관련 정보