Learn

환경 변수

Terminal

$PATH, $HOME, export, 그리고 셸이 명령어 사이에서 기억을 유지하는 방법.

환경 변수는 셸의 메모장이에요 : 설치된 프로그램의 경로, 사용자 이름, 홈 폴더, 그리고 개발 도구들이 여기 저장하는 모든 설정(API 키, 포트 등)을 읽어요.

변수 읽기

shell
echo HOMEechoHOME
echo HOMEechoUSER
echo $PATH

이름 앞의 $는 셸에게 변수를 그 값으로 대체하라고 알려줘요. $ 없이 쓰면 그냥 리터럴 텍스트예요.

  • $HOME : 내 홈 폴더(/Users/vicente 또는 /c/Users/bloki).
  • $USER : 사용자 이름.
  • $PATH : 셸이 실행 파일을 찾는 폴더 목록. :으로 구분돼요.

변수 설정하고 내보내기

shell
MY_VAR="안녕"
echo MYVARexportMYPORT=4000echoMY_VAR
  export MY_PORT=4000
  echo MY_PORT

export 없이 설정하면 현재 셸에만 존재하고 하위 프로세스로 전달되지 않아요. export를 사용하면 해당 셸에서 실행되는 명령어들이 이 변수를 상속받아요.

모든 변수 보기

shell
env
printenv HOME

env는 내보내진(export된) 모든 환경 변수를 나열해요. printenv <변수>는 특정 변수 하나의 값을 출력해요.

세션 간 변수 유지하기

export로 설정한 변수는 터미널을 닫으면 사라져요. 새 터미널을 열 때마다 자동으로 설정되게 하려면 셸 설정 파일에 추가해요 :

shell
bash용 (~/.bashrc 또는 ~/.bash_profile)echo 'export MY_PORT=4000' >> ~/.bashrc
source ~/.bashrczsh용 (macOS 기본)echo 'export MY_PORT=4000' >> ~/.zshrc
source ~/.zshrc

source는 터미널을 다시 열지 않고 파일을 다시 불러와요.

PATH 자세히 보기

shell
echo $PATH
which node
which python

$PATH에는 /usr/local/bin:/usr/bin:/bin 같은 내용이 들어 있어요. node를 입력하면 셸이 이 폴더들을 순서대로 찾아 node 실행 파일을 찾아요. which는 어느 폴더에서 찾았는지 알려줘요.

PATH에 폴더를 추가하려면 :

shell
export PATH="HOME/.local/bin:HOME/.local/bin:HOME/.local/bin:PATH"

프로젝트별 .env 파일

개발할 때 프로젝트 루트에 .env 파일을 두고 설정 변수(API 키, 데이터베이스 URL 등)를 저장하는 경우가 많아요. 이 파일은 셸이 자동으로 불러오지 않아요 : 코드에서 라이브러리(Node.js의 dotenv, Python의 python-dotenv 등)가 직접 읽어요.

Bash 변수 (GNU Bash 매뉴얼)

Concepts-ponts

다음 단계를 열려면 단계를 체크하세요

코스로 돌아가기