모든 command 를 결정하는 목록
$PATH 는 콜론 구분 디렉터리 목록. shell 이 왼쪽부터 걷고 실행파일 찾아. 새로 깔린 게 다 추가돼 — 순서 관리가 여러 Python / Node / brew 가 안 충돌하게 하는 핵심.
Append vs prepend
export PATH="$PATH:/new/dir"— append. 동명 시스템 도구가 없을 때만 새 도구 잡힘.export PATH="/new/dir:$PATH"— prepend. 새 도구가 이김. Homebrew, pyenv, mise 가 원하는 형태.
Apple Silicon Homebrew 의 댄스
Apple Silicon Homebrew 는 /opt/homebrew/bin. ~/.zprofile 에:
eval "$(/opt/homebrew/bin/brew shellenv)"한 줄이 PATH, MANPATH, INFOPATH, 몇 가지 brew 변수까지 atomic 하게 설정. 신선한 Mac 에서 공식 설치 스크립트가 이걸 자동으로 써줘.
Deduplicate
같은 파일 두 번 source 하면 항목이 반복될 수 있음. zsh 의 typeset -U path 선언이 자동 dedupe. 한 번 선언하면 PATH 추가 마다 unique 해.
점검
echo $PATH | tr ':' '\n'
echo $PATH | tr ':' '\n' | sort | uniq -d # 중복?
type python3 # 누가 이김?프로젝트별 PATH override
direnv (다음 다음 레슨) 가 프로젝트 로컬 .envrc 로 그 디렉터리에서만 자기 bin 을 PATH 앞에 끼워넣음. mise (modern-tools) 와 합치면 프로젝트마다 툴체인을 가져가도 글로벌 env 가 안 오염돼.