본문 바로가기
운영체제(OS)/Linux

.bash_profile 과 .profile

by JLearn 2026. 3. 17.
반응형

Ubuntu 24.04 LTS를 포함한 리눅스 환경에서 .bash_profile과 .profile은 모두 로그인 시 환경 변수를 설정하는 스크립트이지만, 어떤 쉘(Shell)이 실행되느냐파일의 존재 우선순위에 따라 동작이 달라집니다.


1. 핵심 차이점

구분 .bash_profile .profile
대상 쉘 Bash 전용 모든 POSIX 준수 쉘 (sh, ksh, zsh, bash 등)
실행 시점 로그인 쉘(Login Shell)일 때만 실행 로그인 쉘일 때 실행
우선순위 높음 (존재하면 .profile 무시) 낮음 (.bash_profile이 없을 때만 실행)
용도 Bash 전용 설정 및 경로 추가 시스템 전반적인 환경 변수 설정

2. 상세 동작 원리

① 우선순위 (The Search Order)

Bash가 로그인 쉘로 시작될 때, 다음 순서로 파일을 찾고 가장 먼저 발견되는 하나만 실행합니다.

 

  1. /etc/profile (시스템 전체 설정)
  2. ~/.bash_profile (사용자 설정 1순위)
  3. ~/.bash_login (사용자 설정 2순위 - 거의 안 쓰임)
  4. ~/.profile (사용자 설정 3순위)

중요: 만약 홈 디렉토리에 .bash_profile이 존재한다면, Bash는 .profile 파일이 있어도 이를 완전히 무시하고 읽지 않습니다.

② 하위 호환성

많은 리눅스 배포판(Ubuntu 등)은 기본적으로 .bash_profile을 생성하지 않고 .profile만 제공합니다. 이는 사용자가 Bash가 아닌 다른 쉘(예: Dash)을 사용하더라도 환경 변수가 적용되게 하기 위함입니다.

만약 사용자가 직접 .bash_profile을 만들었다면, 보통 그 파일 안에서 .profile을 불러오도록 코드를 작성하는 것이 관례입니다.

# .bash_profile 예시 내용
if [ -f ~/.profile ]; then
    . ~/.profile
fi
③ 로그인 쉘 vs 비로그인 쉘
  • 로그인 쉘 (.profile / .bash_profile): SSH 접속이나 GUI 로그인 시 최초 1회 실행됩니다. PATH 같은 환경 변수를 여기서 설정합니다.
  • 비로그인 쉘 (.bashrc): 이미 로그인된 상태에서 터미널 창을 새로 열 때마다 실행됩니다. 별칭(alias)이나 터미널 프롬프트 설정을 여기서 합니다.

3. Ubuntu 24.04에서의 권장 사항

우분투를 사용 중이라면 가급적 .profile을 수정하는 것이 좋습니다. * 이유: 우분투의 기본 .profile은 이미 내부적으로 ~/.bashrc를 불러오도록 설정되어 있습니다. 따라서 .profile에 경로를 추가하면 로그인 시 한 번만 설정이 적용되어 시스템 효율이 좋아집니다.

주의: 만약 특정 소프트웨어 설치 가이드에서 .bash_profile을 만들라고 해서 만들었다면, 기존 .profile에 적어둔 설정들이 무시될 수 있으니 주의해야 합니다.

4. 어떤 파일을 써야 하는가?

  1. Bash 전용 명령어나 복잡한 스크립트가 필요하다면? → ~/.bash_profile
  2. Go, Java 경로 추가 등 일반적인 환경 변수 설정이라면? → ~/.profile
  3. 터미널을 열 때마다 적용되어야 하는 설정(alias 등)이라면? → ~/.bashrc
반응형

'운영체제(OS) > Linux' 카테고리의 다른 글

VI 단축키  (0) 2026.03.24
.bash_profile 과 .bashrc  (0) 2026.03.17
우분투 서버 키보드 레이아웃 변경  (0) 2026.03.11
2. 우분투 22.04 LTS 설치  (0) 2023.02.27
1. 우분투 22.04 LTS 가상머신 생성 (VirtualBox)  (0) 2023.02.03

댓글