[운영 체제] zsh와 ~/.zshrc의 역할

Hyunjun Kim·2025년 3월 15일
0

Computer_Science

목록 보기
1/19

Mac의 Shell 실행 과정과 ~/.zshrc의 역할

Mac에서는 터미널을 실행하면 기본적으로 zsh(Z Shell)이 실행됩니다. 이때 특정 설정 파일(~/.zshrc)이 로드되면서 사용자 환경을 설정합니다. 이를 이해하기 위해 다음과 같은 개념들을 정리해 보겠습니다.


1. Shell과 터미널의 개념

1.1 터미널(Terminal)

  • 사용자가 명령어를 입력하여 컴퓨터와 상호작용하는 인터페이스
  • macOS에서는 기본적으로 "터미널.app"이나 "iTerm2" 같은 프로그램이 터미널 역할을 함
  • 터미널은 자체적으로 명령을 처리하지 않고 셸(Shell)을 실행함

1.2 셸(Shell)

  • 명령어를 해석하고 실행하는 프로그램
  • macOS의 기본 셸은 zsh(/bin/zsh에 위치)이며, 다른 셸도 존재 (예: bash, fish, sh)
  • echo $SHELL 명령으로 현재 사용 중인 셸 확인 가능
  • chsh -s /bin/bash와 같은 명령으로 기본 셸 변경 가능

2. zsh와 ~/.zshrc의 역할

2.1 zsh (/bin/zsh)의 실행 과정

Mac에서 터미널을 열면 로그인 셸(Login Shell)이 실행됨
1. 로그인 셸이 실행될 때 읽는 파일

  • /etc/zshenv → 시스템 전역 환경 설정
  • /etc/zprofile → 로그인 시 실행됨
  • ~/.zprofile → 사용자별 로그인 설정
  1. 인터랙티브 셸이 실행될 때 읽는 파일

    • /etc/zshrc → 시스템 전역 설정
    • ~/.zshrc → 사용자별 환경 설정
  2. 셸이 종료될 때 실행되는 파일

    • /etc/zlogout, ~/.zlogout

즉, Mac에서 터미널을 열면 zsh가 실행되며, ~/.zshrc에 있는 설정들이 적용됨.

2.2 ~/.zshrc의 역할

  • 사용자 셸 환경을 설정하는 파일
  • 환경 변수 설정 (예: export PATH=$PATH:/usr/local/bin)
  • alias(단축 명령어) 설정 (예: alias ll='ls -la')
  • 프롬프트 스타일 변경 (예: export PS1="%n@%m %~ %# ")
  • source ~/.zshrc 명령을 실행하면 .zshrc를 다시 로드하여 변경 사항을 즉시 적용 가능

3. source 명령어의 역할

3.1 source란?

  • 현재 셸에서 스크립트 파일을 실행하는 명령어
  • 새 프로세스를 생성하지 않고 현재 셸 환경에서 실행

3.2 source ~/.zshrc가 하는 일

  • .zshrc 파일의 내용을 다시 읽어와 현재 셸에 적용
  • 변경된 환경 변수나 alias 등을 적용할 때 사용

3.3 sourcebash 실행 차이

명령어실행 방식새 프로세스 생성 여부환경 변수 적용 범위
source ~/.zshrc현재 셸에서 실행❌ (새 프로세스 없음)현재 셸에 즉시 적용
bash ~/.zshrc새로운 bash 프로세스에서 실행✅ (새 프로세스 생성)실행된 프로세스에만 적용

4. 추가적으로 알아야 할 개념

4.1 환경 변수와 export

  • export VAR=value를 사용하면 환경 변수를 설정하여 하위 프로세스에서도 사용 가능
  • echo $PATH → 현재 PATH 변수 값 확인
  • export PATH="$PATH:/custom/path" → 새로운 경로 추가

4.2 Alias(단축 명령어)

  • alias ll='ls -la'll 입력 시 ls -la 실행
  • unalias llll alias 삭제

4.3 셸 프로파일과 설정 파일 비교

파일실행 시점설명
/etc/zshenv모든 zsh 실행 시시스템 전역 환경 변수 설정
/etc/zprofile로그인 시로그인 셸에서 실행
~/.zprofile로그인 시사용자별 로그인 설정
/etc/zshrc모든 인터랙티브 셸 실행 시시스템 전역 설정
~/.zshrc인터랙티브 셸 실행 시사용자별 환경 설정
~/.zlogout로그아웃 시셸 종료 시 실행

5. Mac에서 터미널 실행 시 동작 과정 정리

  1. 사용자가 터미널을 실행
  2. /bin/zsh(Z Shell)이 실행됨
  3. 로그인 셸이라면 /etc/zprofile, ~/.zprofile 실행
  4. 인터랙티브 셸이라면 /etc/zshrc, ~/.zshrc 실행
  5. 사용자가 명령어 입력 및 실행
profile
Data Analytics Engineer 가 되

0개의 댓글