왜 이렇게 많아?
zsh 는 시작 시 최대 4 개 설정 파일을 읽어. 각자 용도 다름. 잘못된 파일에 쓰는 게 'env 가 안 잡혀' 최다 원인.
zsh 의 네 파일
~/.zshenv— 모든 zsh invocation, 비인터랙티브 스크립트 포함. 신중하게.~/.zprofile— login shell 만 (세션 첫 shell).$PATH는 여기. Homebrew shellenv 도 여기.~/.zshrc— 인터랙티브. alias / prompt / plugin / completion. 대부분 설정은 여기.~/.zlogin— login, .zshrc 다음. 거의 안 씀.
bash 대응
~/.bash_profile— login.~/.bashrc— 인터랙티브 non-login.- 옛 hack: 둘 사이를 source 해서 .bashrc 한 군데만 수정.
Login vs 인터랙티브 (미리보기)
Login shell = 세션 첫 shell (Terminal 열기, ssh, su -). 인터랙티브 = 프롬프트에 타이핑 가능. macOS Terminal 세션은 보통 둘 다. ssh 도. 서브셸 (zsh 안에서 bash) 은 인터랙티브지만 login 아님. 다음 레슨 참조.
뭐를 어디에
- PATH 와 locale → .zprofile (launchd 비인터랙티브 스크립트도 인식).
- alias / function / prompt → .zshrc.
- 모든 스크립트가 봐야 하는 변수 → .zshenv (드묾).
편집 후 reload
source ~/.zshrc 또는 exec zsh 가 reload. 후자가 더 깔끔 — 현재 shell 을 새 거로 교체, 터미널 창은 유지.