[Linux] .bashrc와 .bash_profile 설정 차이 이해하기

리눅스에서 환경 변수를 설정하거나 별도의 명령어를 자동 실행하려 할 때, .bashrc.bash_profile 중 어디에 써야 할지 헷갈리는 경우가 많습니다.
두 파일 모두 Bash 셸과 관련된 설정을 담고 있지만, 실행되는 시점과 역할이 다릅니다.

.bashrc와 .bash_profile의 차이를 명확하게 정리하고, 각각을 어떻게 설정하면 좋을지 알려드리겠습니다.

 


.bashrc란?

.bashrc인터랙티브 셸(터미널 창)을 열 때마다 실행되는 설정 파일입니다.
예를 들어, 터미널을 열 때마다 자동으로 환경 변수를 세팅하거나, 별칭(alias)을 등록하는 데 자주 사용됩니다.

# ~/.bashrc 예시

export EDITOR=vim
alias ll='ls -alF'
alias gs='git status'

보통은 GUI 환경에서 터미널을 열거나, bash 명령어로 새로운 셸을 시작할 때 실행됩니다.

 

.bash_profile이란?

.bash_profile로그인 셸(사용자가 로그인할 때 실행되는 셸)에서 실행되는 설정 파일입니다.
예를 들어, 터미널이 아닌 SSH 접속처럼 로그인을 동반하는 환경에서 사용됩니다.

# ~/.bash_profile 예시

export PATH=$PATH:$HOME/bin
export JAVA_HOME=/usr/lib/jvm/java-17

# .bashrc를 함께 실행하도록 설정
if [ -f ~/.bashrc ]; then
  source ~/.bashrc
fi

.bashrc를 함께 실행하도록 위처럼 설정해두면 로그인 시에도 별칭(alias)이나 프롬프트 설정이 적용됩니다.

 

언제 어떤 파일을 써야 하나요?

상황 실행되는 파일
터미널 앱을 실행할 때 (GUI) .bashrc
SSH로 서버 접속할 때 .bash_profile
시스템에 로그인할 때 (텍스트 기반 로그인) .bash_profile
bash 명령어로 새 셸 실행 .bashrc

 

실전 팁: .bashrc를 .bash_profile에서 불러오기

가장 좋은 방식은 .bashrc에 대부분의 설정을 넣고,
.bash_profile에서 .bashrc를 불러오도록 설정하는 것입니다.

# ~/.bash_profile
if [ -f ~/.bashrc ]; then
  source ~/.bashrc
fi

이렇게 하면 로그인 셸이든, 인터랙티브 셸이든 동일한 설정을 사용할 수 있어 관리가 편리합니다.

 

셸 설정 파일의 흐름을 이해하기

.bashrc.bash_profile은 Bash 환경을 구성하는 데 중요한 역할을 합니다.
초보자일수록 이 둘의 차이를 이해하면 다양한 환경에서 스크립트와 설정을 보다 유연하게 관리할 수 있어요.

기억하세요:

  • .bashrc는 터미널 실행 시
  • .bash_profile은 로그인할 때

실행됩니다.