Gnome 터미널 세션에서 환경 변수를 정의하는 방법은 무엇입니까?

Gnome 터미널 세션에서 환경 변수를 정의하는 방법은 무엇입니까?

Centos 7의 사용자 로그인 프로세스를 이해하려고 하는데 Gnome 터미널 세션(Gnome 3.14.4)에 대해 환경 변수가 언제/어떻게 정의되는지 알아내려고 할 때 약간 혼란스럽습니다.

내가 아는 한... Gnome Terminal은 /etc/profile, ~/.profile 또는 ~/.bash_profile 스크립트로 내보낸 경우에만 환경 변수를 정의합니다.

내보내지 않으면 set 또는 printenv 명령의 출력에 표시되지 않습니다. /etc/environment 파일은 예외입니다(그러나 쉘 로그인 스크립트는 아닙니다).

내가 찾은 유일한 것은 이 일을 하는 것 같다/etc/X11/xinit/xinitrc-common파일에서 ~/.profile 로그인 스크립트를 소싱할 때...하지만 이는 단지 로그인 스크립트일 뿐이며 /etc/profile 및 ~!/.bash_profile에서 내보낸 변수가 컬렉션에 표시되는 이유를 설명하지 않습니다.

[ -r $HOME/.profile ] && . $HOME/.profile

이것이 ~/.profile 스크립트의 변수를 읽는다면.../etc/profile 및 ~/.bash_profile의 변수를 어떻게 읽습니까? 중요한 경우... "로그인 스크립트로 명령 실행"을 선택하지 않았습니다.

답변1

저는 Gnome Terminal이 기본적으로 bash를 실행한다고 생각합니다(GNU Bourne Again SHell).

실제로 /etc/passwd에서 귀하의 계정에 지정된 모든 쉘을 실행할 수 있습니다.

시작 시 bash는 ~/.profile 및 ~/.bash_profile을 탐색하므로 이러한 변수가 설정됩니다.

요약하자면, Gnome Terminal을 시작하면 쉘이 시작되고 쉘은 이러한 스크립트를 통해 환경 변수를 설정합니다.

관련 정보