이것은 간단한 작업처럼 들리지만 지금까지는 이를 달성하지 못했습니다.
Debian 11에서 (그래픽) 로그인이 발생할 때마다 조건부로(예: $XDG_DEBUG == 1이면...) 이 사용자에 대한 특정 환경 변수를 설정하고 싶습니다. 환경 변수는 나중에 사용자가 호출하는 모든 터미널(예: 및 )에 설정 bash
되어야 zsh
합니다 .Gnome Desktop
Mate Desktop
중요한: 환경 변수는 로그인할 때마다 설정해야 하므로 로그인, 로그아웃, 재로그인 순서에 대해서는 두 번 설정됩니다. 재부팅이 필요하지 않습니다.
이 목표를 달성하는 방법은 무엇입니까?
답변1
홈 디렉터리의 파일에 이러한 변수를 추가합니다 .bashrc
. 이러한 파일( 다른 파일 하나)은 .zshrc
쉘이 시작될 때마다 자동으로 로드됩니다 .bash
zsh
좀 더 전역적인 설정을 원한다면 자신만의 이름 .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
(또는 디버깅 변수)의 경우 디버깅하려는 응용 프로그램을 실행할 특수 셸 스크립트에서 설정하는 것이 가장 좋습니다. 전역적으로 설정하지 마십시오. 그렇지 않으면 여러 응용 프로그램의 디버깅 정보에 빠져들게 됩니다.