우분투 실전 명령어 | 환경변수 관리(export, ~/.bashrc, /etc/environment)
언제 쓰는가
개발 도구 경로를 잡거나, 앱 실행에 필요한 키 값을 쉘에서 바로 쓰고 싶을 때 환경변수를 만집니다. 한 번만 임시로 넣을 건지, 로그인할 때마다 유지할 건지를 먼저 나눠서 보면 헷갈림이 줄어듭니다. 서버 운영에서는 사용자별 설정(~/.bashrc)과 시스템 전역 설정(/etc/environment)을 구분해서 쓰는 게 안전합니다.
바로 쓰는 명령어
# 1) 현재 셸에서만 임시 적용
export APP_ENV=production
export PATH="$HOME/.local/bin:$PATH"
# 확인
echo "$APP_ENV"
which python3
# 2) 사용자 계정에 영구 적용
echo 'export APP_ENV=production' >> ~/.bashrc
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
# 현재 세션에 즉시 반영
source ~/.bashrc
# 반영 확인
printenv APP_ENV
echo "$PATH" | tr ':' '\n' | head -5
# 3) 시스템 전역 적용(/etc/environment) - sudo 필요
sudo cp /etc/environment /etc/environment.bak.$(date +%F-%H%M)
echo 'APP_ENV=production' | sudo tee -a /etc/environment >/dev/null
# 새 로그인 세션에서 확인
printenv APP_ENV
핵심 옵션/패턴
export VAR=value: 현재 셸 + 자식 프로세스에 전달됩니다.source ~/.bashrc(또는. ~/.bashrc): 파일 내용을 현재 셸에 즉시 적용합니다.printenv VAR: 변수 확인할 때echo보다 명확합니다.PATH추가는 보통 앞쪽 prepend(new:$PATH)로 넣어 우선순위를 제어합니다.
자주 하는 실수
~/.bashrc에 추가만 하고 새 터미널을 안 열거나source를 안 해서 “적용 안 됨”으로 착각.PATH="$PATH:/new/bin"만 반복해서 추가해 중복 PATH가 비대해짐./etc/environment에export를 붙여서 문법 오류 발생 (export없이KEY=value만).- 따옴표 처리를 잘못해 공백 포함 값이 잘리는 문제 (
KEY="a b"형태로 처리 필요).
검증 방법
# 변수 값 검증
printenv APP_ENV
# 셸 설정 파일에 중복 라인 있는지 확인
grep -n 'APP_ENV\|\.local/bin' ~/.bashrc
# PATH 우선순위 확인
command -v python3
실행 결과 예시
$ export APP_ENV=production
$ echo "$APP_ENV"
production
$ source ~/.bashrc
$ printenv APP_ENV
production
$ echo "$PATH" | tr ':' '\n' | head -3
/Users/ubuntu/.local/bin
/usr/local/bin
/usr/bin
$ grep -n 'APP_ENV\|\.local/bin' ~/.bashrc
121:export APP_ENV=production
122:export PATH="$HOME/.local/bin:$PATH"
$ command -v python3
/usr/bin/python3
출처
- Ubuntu Documentation
- GNU Bash Manual
- systemd environment.d 문서