🟢 bash와 zsh 설정 파일 로딩 비교
| 상황 | bash 실행 파일 | zsh 실행 파일 | 설명 |
|---|---|---|---|
| 로그인 + 인터랙티브 (예: iTerm/Terminal 첫 실행, SSH 접속) |
/etc/profile → ~/.bash_profile(또는 ~/.bash_login, ~/.profile) → 필요 시 그 안에서 ~/.bashrc 실행 |
/etc/zshenv → ~/.zshenv → /etc/zprofile → ~/.zprofile → /etc/zlogin → ~/.zlogin → ~/.zshrc |
로그인 환경 + 사용자 인터랙션 준비. iTerm 기본이 이 모드라서 .zprofile + .zshrc 둘 다 실행됨 |
| 로그인 + 비인터랙티브 (예: ssh host "command") |
/etc/profile → ~/.bash_profile |
/etc/zshenv → ~/.zshenv → /etc/zprofile → ~/.zprofile → /etc/zlogin → ~/.zlogin |
프롬프트 없이 명령만 실행. .bashrc / .zshrc는 실행되지 않음 |
| 비로그인 + 인터랙티브 (예: 터미널 안에서 bash 또는 zsh 입력) |
~/.bashrc |
/etc/zshenv → ~/.zshenv → ~/.zshrc |
대화형 셸만 실행됨. 로그인 초기화는 안 하고 .bashrc / .zshrc만 실행 |
| 비로그인 + 비인터랙티브 (예: bash script.sh, zsh script.zsh) |
아무 것도 안 읽음 (단, --rcfile 옵션 주면 읽음) |
/etc/zshenv → ~/.zshenv |
스크립트 실행용. 프롬프트 관련 설정은 전혀 적용 안 됨 |
📌 요약
- bash:
.bash_profile(로그인),.bashrc(인터랙티브) → 둘을 연결해야 실사용에 편함 - zsh:
.zprofile(로그인),.zshrc(인터랙티브) → 로그인 + 인터랙티브일 땐 둘 다 실행됨