로그인할 때마다 특정 환경 변수 설정

로그인할 때마다 특정 환경 변수 설정

이것은 간단한 작업처럼 들리지만 지금까지는 이를 달성하지 못했습니다.

Debian 11에서 (그래픽) 로그인이 발생할 때마다 조건부로(예: $XDG_DEBUG == 1이면...) 이 사용자에 대한 특정 환경 변수를 설정하고 싶습니다. 환경 변수는 나중에 사용자가 호출하는 모든 터미널(예: 및 )에 설정 bash되어야 zsh합니다 .Gnome DesktopMate Desktop

중요한: 환경 변수는 로그인할 때마다 설정해야 하므로 로그인, 로그아웃, 재로그인 순서에 대해서는 두 번 설정됩니다. 재부팅이 필요하지 않습니다.

이 목표를 달성하는 방법은 무엇입니까?

답변1

홈 디렉터리의 파일에 이러한 변수를 추가합니다 .bashrc. 이러한 파일( 다른 파일 하나)은 .zshrc쉘이 시작될 때마다 자동으로 로드됩니다 .bashzsh

좀 더 전역적인 설정을 원한다면 자신만의 이름 .my_envvar(또는 원하는 이름)을 만들고 *rc두 파일 모두에 다음과 같은 코드를 추가하세요.

if [ -e $HOME/.my_envar ] ; then
   source $HOME/.my_envar
fi

자신뿐만 아니라 모든 사용자에 대해 이러한 변수를 설정하려면 으로 이동하여 /etc해당 디렉토리가 있는지 확인하십시오 /etc/profile.d. 변수가 포함된 파일을 추가합니다. 이 파일은 여기에서 로드됩니다 /etc/profile(그 안에 특수 루프가 있습니다).

또는 운영 체제가 충분히 똑똑하지 않은 경우 /etc/profile특수 변수를 직접 추가할 수 있습니다. 아니면 자신만의 /etc/profile.d.

그런데 이와 같은 변수 XDG_DEBUG(또는 디버깅 변수)의 경우 디버깅하려는 응용 프로그램을 실행할 특수 셸 스크립트에서 설정하는 것이 가장 좋습니다. 전역적으로 설정하지 마십시오. 그렇지 않으면 여러 응용 프로그램의 디버깅 정보에 빠져들게 됩니다.

관련 정보