내가 보기엔 좋아 보이는데environment.d
~/.config/environment.d/*.conf
더 이상 등에서 환경 변수를 선언하지 않아도 되므로 ~/.bashrc
이제 ~/.profile
환경 변수가 소스로 제공됩니다 . 그 외에 다른 이유가 없다면 이러한 선언은 쉘별 구문으로 작성할 수 있습니다.
이 가정이 맞나요? 쉘에 특정하지 않은 환경 변수를 쉘 rc
파일이나 환경 변수가 있는 시스템에 넣어야 할 이유가 있습니까 ~/.profile
?
답변1
이러한 파일은 다양한 용도로 사용되지만 여전히 보완적입니다.
environment.d
정의시스템 사용자 서비스 변수;.bashrc
, 변수를 정의하는 경우 Bash의 로그인이 아닌 대화형 인스턴스에 대해 변수를 정의합니다..profile
, 변수를 정의하는 경우 Bash(및 기타 쉘)의 대화형 로그인 인스턴스에 대해 정의됩니다.
.bashrc
따라서 변수를 설정하면 .profile
해당 셸 인스턴스에 해당 변수가 설정된다는 것이 보장됩니다. 파일에 변수를 설정하면 environment.d
쉘이 포함되거나 포함되지 않을 수 있는 해당 사용자 서비스 인스턴스에 변수가 설정된다는 것을 보장합니다(다른 중개자가 있을 수 있음, 참고자료 참조 sshd
).
내가 본 또 다른 차이점은 변경 사항이 이후에 실행되는 모든 셸에 적용 .bashrc
된다는 것입니다 .profile
. 변경 사항은 사용자 세션 및 관련 서비스가 다시 로드되거나 다시 시작될 때만 적용됩니다 environment.d
.
~처럼무루environment.d
파일의 기능이 쉘 초기화 스크립트보다 더 제한적이라는 것이 주석에서 언급되었습니다 .