superkind
6/29/2018 - 2:46 AM

bash 프로파일 설정 파일 차이

#shell

bash 프로파일 설정파일 차이

Login Shell 과 Non-Login Shell

Login Shell

Login은 ID와 패스워드를 입력해서 Shell을 실행하는 것을 말한다. 따라서 ssh로 접속하거나 로컬에서 GUI를 통해 Shell을 실행하는 것은 Login Shell이다.

.profile, .bash_profile 이 두 파일은 Login할 때 로드되는 파일이다. .profile은 꼭 bash가 아니더라도 로그인하면 로드되며, .bash_profile은 꼭 bash로 로그인 할 때만 실행된다.

Non-Login Shell

Non-Login Shell은 로그인 없이 실행하는 Shell을 말한다. ssh로 접속하고 나서 다시 bash를 실행하는 경우나, GUI 세션에서 터미널을 띄우는 것도 여기 해당된다. ‘sudo bash’나 ‘su’같은 것도 해당된다.

.bashrc.bash_profile 의 차이

.bashrc

이미 로그인 한 상태에서 새 터미널 창을 열 때마다 로드. (Non-Login Shell에서 실행)

.bash_profile

시스템에 로그인할 때마다 로드. (Login Shell에서 실행) 대부분 개별 사용자에 대한 설정에 대한 코드들이 들어감. 예를 들면 nvm(Node Version Manager)은 기본적으로 nvm을 사용하지 않고 Node를 설치할 때와는 다르게 각 사용자의 경로에 설치되게 되는데, 이럴때 nvm의 PATH를 .bash_profile 파일에 작성함.

.profile

로그인할 때 로드됨. 개별 사용자에 대한 설정 코드들 중 bash와는 관계없는 부분을 기재하자.

참고

만약 Mac에서 새 터미널 창을 열 때마다 .bashrc를 로드하고 싶다면 .bash_profile에서 .bashrc를 로드하자.