/엔지니어/OS / 시스템/환경변수 완전 가이드 — .bashrc · .zsh
OS / 시스템초급UbuntuDebianCentOSmacOS환경변수bashrczshrc

환경변수 완전 가이드 — .bashrc · .zshrc · export · env

환경변수 설정·조회·해제, 영구 적용 방법(.bashrc/.zshrc/.profile), 프로세스에 변수 전달, .env 파일 관리까지 정리합니다.

기본 조작

Bash
# 설정 (현재 세션만)
export MY_VAR="hello"
export PORT=3000

# 조회
echo $MY_VAR
printenv MY_VAR

# 모든 환경변수 조회
env
printenv
export -p

# 해제
unset MY_VAR

# 변수가 없으면 기본값
echo ${MY_VAR:-"default"}

# 변수 존재 여부 확인
[[ -z "$MY_VAR" ]] && echo "없음" || echo "있음"

영구 적용 — 파일 위치

파일적용 범위언제 실행
/etc/environment시스템 전체로그인 시
/etc/profile시스템 전체로그인 셸
/etc/profile.d/*.sh시스템 전체로그인 셸
~/.profile현재 사용자로그인 셸
~/.bashrc현재 사용자인터랙티브 bash
~/.zshrc현재 사용자인터랙티브 zsh
Bash
# ~/.bashrc 또는 ~/.zshrc에 추가
export PATH="$HOME/.local/bin:$PATH"
export JAVA_HOME="/usr/lib/jvm/java-21-openjdk-amd64"
export EDITOR="vim"

# 적용
source ~/.bashrc
# 또는
. ~/.zshrc

PATH 관리

Bash
# PATH에 디렉터리 추가
export PATH="$HOME/bin:$PATH"        # 앞에 추가 (우선순위 높음)
export PATH="$PATH:/opt/custom/bin"  # 뒤에 추가

# 현재 PATH 확인
echo $PATH | tr ':' '\n'

# 명령어 위치 확인
which python3
type -a python3    # 모든 위치 표시

특정 명령에만 변수 전달

Bash
# 앞에 붙이면 해당 명령에만 적용
NODE_ENV=production PORT=8080 node server.js

# env 명령으로 정리
env NODE_ENV=production PORT=8080 node server.js

# 변수를 제거한 환경에서 실행
env -i PATH=$PATH node server.js

.env 파일 관리

Bash
# .env 파일 예시
DB_HOST=localhost
DB_PORT=5432
DB_USER=app
DB_PASS=secret
NODE_ENV=development

# .env 파일 로드 (bash)
set -a; source .env; set +a

# 특정 변수만 로드
export $(grep -v '^#' .env | xargs)

# .env를 현재 세션에 적용
while IFS= read -r line; do
  [[ "$line" =~ ^[^#] ]] && export "$line"
done < .env

주의: .env 파일은 반드시 .gitignore에 추가하세요.


시스템 서비스에서 환경변수 (systemd)

INI
# /etc/systemd/system/myapp.service
[Service]
Environment=NODE_ENV=production
Environment=PORT=3000
EnvironmentFile=/etc/myapp/.env   # 파일에서 로드
Bash
systemctl daemon-reload
systemctl restart myapp
# 확인
systemctl show myapp --property=Environment
#환경변수#bashrc#zshrc#export#env#linux
편집 안내 · Editorial Note

이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.

관련 공식 문서GNU/Linux man 페이지

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.