.bash_profile과 .bashrc의 차이점
bash를 쓰다보면 환경변수를 지정하면 편할 때가 종종 있는데 .bash_profile
에 써야할 지.bashrc
파일에 써야할 지 자주 헷갈립니다.. 저와 비슷한 경험을 하실 분들을 위해서 여기 간단히 정리해 둡니다. .bash_profile
은 처음 로그인할 때 실행되고 그 이후에는 인터렉티브 bash를 실행하면 .bashrc
가 실행됩니다.
근데 이 로그인이라는 표현도 헷갈립니다. 이는 예를 들어 보는 것이 편합니다.
- console에 로그인 하거나
- ssh를 통해서 로그인하거나
- Mac OSX이나 Linux에서 터미널 프로그램을 실행하거나 탭을 늘이거나
이들 각각이 모두 로그인으로 간주 됩니다. 그래픽 세션 로그인과 좀 의미가 다릅니다.
그 이외의 경우란 아래와 같습니다. - screen이나 tmux 에서 새로운 윈도우를 실행
여기 Mac에서 각각을 확인하기 위해 실행해 본 내용입니다.
.bash_profile
에echo "bash_profile"
,.bashrc
에echo "bashrc"
라고 각각 마지막 줄에 추가해줍니다.- 터미널창이나 탭을 열어 봄
결과:
bash_profile
출력됨 -bash
실행 (인터렉트브)결과:
bashrc
출력됨 -bash -c "pwd"
실행결과: bashrc 실행안됨
.bashrc
에만/usr/local/bin/mysql
을 PATH에 추가함터미널 창을 열고
which mysql
결과: 못찾음
이 상태에서
bash
실행하고 그 안에서which mysql
결과: 찾음
내부
bash
에서 나와서bash -c "which mysql"
결과: 못찾음
내부
bash
에서 나오지 않고bash -c "mysql"
결과: 찾음
로그인 bash는 .bash_profile
만 로드하기 때문에 .bashrc
에 적혀 있는 내용도 실행하도록.bash_profile
내에 아래와 같은 라인으로 .bashrc내용을 가져오는 것이 편합니다. 사실 많은 배포판에서도 기본 그렇게 하고 있지만 OSX 등 기본적으로 그렇게 되어있지 않는 OS나 배포판을 사용하고 있다면 추가해 주는 것도 좋은 방법입니다.
[[ -r ~/.bashrc ]] && . ~/.bashrc
참고: Stackoverflow difference btw profile and rc and environment
출처 : http://www.ryeonho.com/posts/bash_profile-bashrc-difference.html
감사합니다.
문제가 되면 삭제 하겠습니다.
좋은 지식 더 널리 공유 하고자 하는것이니 양해 바랍니다.
'Skills > Unix, Linux' 카테고리의 다른 글
리눅스 환경에서 mysql 연동하기 (0) | 2015.09.23 |
---|---|
How to install tcpreplay on Linux (0) | 2015.03.18 |
[Linux] 아파치를 이용한 리눅스 웹 서버 구축 (0) | 2014.11.26 |
[CentOS] Repair Mode (0) | 2014.10.16 |
Configure Linux Virtual Local Area Network (VLAN) (0) | 2014.07.31 |
댓글