# 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`를 로드하자.