일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Android
- ssh
- mean
- 안드로이드
- git
- node.js
- HTML
- node
- express
- rest
- JSP
- gmaps
- 인공지능
- 저장소
- Retrofit
- angularJs
- Q-Map
- cordova
- AWS
- ubuntu
- commit
- Ionic
- Linux
- java
- IT 도서
- EC2
- SSH Key
- 자바
- 깃
- Repository
- Today
- Total
UroA 개발 블로그
[Linux & Unix] .bashrc 와 .bash_profile 의 차이 본문
.bashrc 와 .bash_profile 의 차이
사용하는 노트북은 Mac이고, 회사에서 일할 때도 주로 원격서버에서 터미널을 자주 이용하다 보니 bash와 vi 설정에 대해 궁금하게 됐습니다.
처음 회사에 들어왔을때는 사수분께서 직접 .dotfile 을 주셔서 설정을 했었는데, 이번기회에 bash와 vi 설정에 대해 공부 하면서 저만의 .dotfile을 만들어보고자 합니다.
먼저 헷갈렸던 .bashrc 와 .bash_profile 의 차이에 대해서 정리하기전에 Login Shell 과 Non-Login Shell 의 차이에 대해서 알아보겠습니다.
Login Shell 과 Non-Login Shell
Login Shell
로그인은 계정과 암호를 입력해서 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'같은 것도 해당합니다.
* 단, Mac OS X에서는 로그인 여부에 관계 없이 모든 터미널 창을 Login Shell로 실행합니다. (따라서 .bash_profile이 로드됩니다.)
.bashrc 와 .bash_profile(profile)
.bashrc
이미 로그인 한 상태에서 새 터미널 창을 열 때마다 실행된다. (non-login shell에서 실행된다)
.bash_profile
시스템에 로그인할 때마다 실행된다. (login shell 에서 실행된다.) 현재 nvm(Node Version Manager)을 사용중인데 이와 관련된 설정들이 여기에 들어가야 하는것 같다.
.profile
로그인할 때 로드된다. PATH처럼 로그인할 때 로드해야 하는데 bash와 관계없는 것들을 여기에 넣는다.
* 만약 Mac에서 새 터미널 창을 열 때마다 .bashrc를 로드하고 싶다면 .bash_profile 에서 .bashrc를 로드하면 됩니다.
--참고--
'Programming > Linux & Unix' 카테고리의 다른 글
[Linux & Unix] 나만의 dotfiles 만들기 (0) | 2016.12.19 |
---|---|
[Linux & Unix] 쉘 프롬프트 정보 & 색상 변경하기 (2) | 2016.12.14 |
[Linux & Unix] ls 결과 색상 변경하기 (0) | 2016.12.13 |
[Linux & Unix] Screen 사용하기 (0) | 2016.11.22 |