bashrc (1)

💻 Programming/Linux

.bashrc 와 .bash_profile의 차이점

.bashrc는 bash이 실행될 때마다 수행되고, .bash_profile은 bash이 login shell로 쓰일 때(즉 처음 login할 때)에 수행됩니다.

 

출처 : https://kldp.org/node/38265

Login Shell vs Non-login Shell

먼저 'Login Shell'과 'Non-login Shell’ 을 구분해야 하는데, 로그인은 계정과 암호를 입력해서 Shell을 실행하는 것이다. ssh로 접속하거나 로컬에서 GUI에서 로그인한다는 의미다.

‘.profile’, ‘.bash_profile'이 Login할 때 로드되는(source) 파일이다. ’.profile'은 꼭 bash가 아니더라도 로그인하면 로드되고 ‘.bash_profile'은 꼭 Bash로 Login할 때 로드된다.

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

‘.bashrc'는 로그인 없이 Bash가 실행될 때 로드된다. 'sudo bash'나 'su'로 root 권한을 얻으려 bash를 실행할 때도 이 파일이 로드된다.

정리:

  • ’.profile' - 로그인할 때 로드된다. PATH처럼 로그인할 때 로드해야 하는데 bash와 상관없는 것들을 여기에 넣는다.
  • ‘.bash_profile’ - 로그인할 때 로드된다. ‘bash completion'이나 'nvm'같이 로그인할 때 로드해야 하는데 Bash와 관련된 것이면 여기에 넣는다.
  • ’.bashrc' - 로그인하지 않고 Bash가 실행될 때마다 로드된다.

 

출처 : http://dogfeet.github.io/articles/2012/bash-profile.html