728x90
☑️ bash_profile, bashrc 설명
- .bash_profile : "시스템에 처음 로그인할 때" 실행
- SSH 로그인
- 콘솔 로그인
- GUI 로그인 화면에서 로그인
- bashrc: "이미 로그인된 상태에서 새로운 셸을 시작할 때" 실행
- 이미 로그인된 상태에서 터미널 애플리케이션 실행
- 이미 로그인된 상태에서
bash명령어 실행 - 스크립트에서 새로운 셸 시작
☑️ 이해하기
위 내용으로는 이해하기 힘든 사람들도 있을 것이다.
그래서 내 친구에게 설명한 그대로 예시를 들어보겠다.
(1) .bashrc 에 넣어야 할 것을 .bash_profile에 넣은 경우
# ~/.bash_profile
export PATH=$PATH:/opt/special/bin
export JAVA_HOME=/usr/lib/jvm/java-11
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
# .bashrc 불러오기
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# 로그인시 1번만 실행할 명령어
echo "$(hostname)에 로그인했습니다. 현재 시간: $(date)"
# ~/.bashrc
alias ll='ls -la'
alias k='kubectl'
PS1='\u@\h:\w\$ '
$ ssh user@server
$ k get pods # 정상 작동
$ bash # 새로운 새션 시작
$ k get pods # 오류: command not found: k
발생하는 문제
- 새로운 터미널을 열었기 때문에
bash_profile은 실행하지 않는다. - 로그아웃했다가 다시 로그인해야만 설정이 적용됨
(2) .bash_profile에 넣어야 할 것을 .bashrc 에 넣은 경우
# ~/.bashrc
export PATH=$PATH:/opt/special/bin:/opt/another/bin
echo "서버에 로그인했습니다! 현재 시간: $(date)"
$ ssh user@server
서버에 로그인했습니다! 현재 시간: 12:00:00
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/opt/special/bin:/opt/another/bin
$ bash # 새 bash 세션
서버에 로그인했습니다! 현재 시간: 12:00:01
$ echo $PATH # PATH가 중복됨
/usr/local/bin:/usr/bin:/bin:/opt/special/bin:/opt/another/bin:/opt/special/bin:/opt/another/bin
발생하는 문제
- PATH 환경 변수가 터미널을 열 때마다 중복 추가되어 길어짐
- 로그인 메시지가 새 터미널을 열 때마다 반복해서 표시됨
- 시스템 자원 낭비 (불필요한 명령어 반복 실행)
☑️ 패턴
사용자 로그인 → .bash_profile 실행 (1번만)
↓
새 터미널 열기 → .bashrc 실행
↓
또 다른 터미널 열기 → .bashrc 실행 (터미널마다)728x90
'Linux' 카테고리의 다른 글
| HTTPS 인증 오류 트러블슈팅: 불특정 다수에게 발생한 SSL 인증서 문제 해결기 (0) | 2025.10.14 |
|---|---|
| [NGINX] 프록시 헤더 설정 (도메인에 포트가 빠지는 증상) (1) | 2025.08.28 |
| All available gssapi mechanisms failed 에러가 나는 이유 (0) | 2025.04.16 |
| pam_tally2 실패 횟수 자동 증가 증상 (0) | 2025.04.16 |
| SFTP 특정 디렉토리만 접근 가능하도록 하는 방법 (sftp chroot) (2) | 2024.10.29 |