이 내용은 IMB Knowledge Center( 링크 )를 참고했습니다.


로그인 시, 쉘은 사용자가 작성한 초기화 파일들을 읽은 후 사용자의 환경을 정의합니다.

사용자 환경의 특성은 사용자의 환경에 주어진 변수( 환경 변수 )에 의해 정의됩니다.

그리고 시스템을 로그아웃할 때까지 이 환경을 유지합니다.

그렇다면 초기화 파일들에는 어떤 것들이 있을까요?


시스템은 /etc/environment 파일에서 명령을 실행하여 시스템 환경을 설정한 후,

/etc/profile 파일에 있는 명령을 평가합니다


그 후, 시스템은 사용자의 홈 디렉토리에 .profile 파일이 있는지 확인합니다.

.profile 파일이 있으면, 시스템은 이 파일을 실행합니다.


또한 .profile 파일은 환경 파일의 존재 여부를 작성합니다. 

즉 (일반적으로 .env인) 환경 파일이 있으면, 시스템은 이 파일을 실행하고 사용자 환경 변수를 설정합니다.


/etc/environment, /etc/profile 및 .profile 파일은 로그인 시 한 번만 실행되지만,

.env 파일은 사용자가 새로운 쉘이나 창을 열 때마다 실행됩니다.


정리하면, 로그인을 했을 때 위 4개의 파일을 통해 환경 변수를 설정하고, 사용자는 이 환경을 제공 받습니다.





/etc/environment 

모든 프로세스에 대해 기본 환경을 지정하는 변수를 정의합니다.

로그인 시 .profile이라는 로그인 프로파일을 읽기 전에 시스템은 /etc/environment 파일에서 환경 변수를 설정합니다. 



/etc/profile 

/etc/profile 파일은 시스템 관리자만이 수정할 수 있으며, 다음과 같은 시스템 차원의 default 변수를 제어합니다.

- 변수 반출

- 파일 작성 마스크(umask)

- 터미널 유형

- 새로운 메일이 도착했음을 알리는 메일 메시지

스템 관리자는 모든 사용자가 사용하는 환경 변수등을 /etc/profile 파일에 작성합니다.



.profile

사용자 홈 디렉터리에 존재하며 이 파일을 통해 사용자 개인의 작업 환경을 조정 할 수 있습니다.

.profile 파일이 있으면 이 파일의 명령이 실행됩니다.



.env 

.env 파일을 통해 사용자 개인의 작업 환경 변수를 조정할 수 있습니다

사용자는 .env 파일을 수정하여 원하는 사용자 환경 변수를 조정합니다.




이상으로 시스템 시작 시 참조하는 파일들에 대해 알아보았습니다.

/etc/profile 파일이 무엇인지 궁금해서 조사를 하다가 알게 된 내용들을 정리해보았는데, 정확한 개념이 없어서 정리하는 데에만 그친 것 같네요.