반응형
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가 로그인 쉘로 시작될 때, 다음 순서로 파일을 찾고 가장 먼저 발견되는 하나만 실행합니다.
- /etc/profile (시스템 전체 설정)
- ~/.bash_profile (사용자 설정 1순위)
- ~/.bash_login (사용자 설정 2순위 - 거의 안 쓰임)
- ~/.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. 어떤 파일을 써야 하는가?
- Bash 전용 명령어나 복잡한 스크립트가 필요하다면? → ~/.bash_profile
- Go, Java 경로 추가 등 일반적인 환경 변수 설정이라면? → ~/.profile
- 터미널을 열 때마다 적용되어야 하는 설정(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 |
댓글