bash 환경 변수

bash 환경 변수 메모

image

환경 변수

파일별 구분

FilenameRemarks
/etc/environment모든 프로세스에 대해 기본 환경을 지정하는 변수를 정의. 로그인 시. profile이라는 로그인 프로파일을 읽기 전에 시스템은 /etc/environment 파일에서 환경 변수를 설정
/etc/profile, /etc/bashrc전체 사용자에게 적용
~/.bashrc, ~/.profile, ~/.bash_profile해당 사용자에게만 적용
/etc/profile, .profileshell이 bash가 아니라도 로그인하면 로드되어 적용되고. bashrc 와. bash_login, .bash_profile은 bash shell로 로그인 되었을 경우만 적용
~/.bash_logout로그인 shell이 로그아웃할 때 수행

대화/비대화식 구분

FilenameInteractive loginInteractive non-loginScript
/etc/profileA
/etc/bash.bashrcA
~/.bashrcB
~/.bash_profileB1
~/.bash_loginB2
~/.profileB3
BASH_ENVA
~/.bash_logoutC

실행 순서

bash 대화형 세션의 경우 다음 순서로 시작 파일을 검색

OrderFilename
1/etc/profile.d/xxx.sh
2/etc/profile
3/etc/bashrc
4~/.bashrc
5~/.bash_profile

$BASH_ENV

비대화식 쉘 스크립트가 실행하기 전에 구문 분석하는 파일의 경로 이름으로 설정

FilenameVariables
crontab (최상단)BASH_ENV="$HOME/.bashrc_non_interactive"
~/.profileBASH_ENV="$HOME/.profile", “$HOME/scripts/myscript.sh”
~/.bashrcBASH_ENV="$HOME/.bashrc"

$PATH

RHEL9

echo $PATH
/home/dev/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin
echo $PATH
PATH=/root/.local/bin:/root/bin:/usr/bin:/bin

Troubleshooting