본문 바로가기
Operating System/Linux

[Linux] .bashrc .profile bash_profile /etc/profile 차이 + export 하면 일어나는 일

by 스파이디웹 2021. 5. 17.
728x90

/etc vs ~/  그리고

bashrc vs profile vs bash_profile 에 대해서 정리 해보겠습니다.

 

bashrc, profile파일 둘다 환경변수를 설정하는 데 사용됩니다. 이 둘의 차이점은 실행되는 순서,시점이 다르다는 것입니다.


/etc vs ~/

1) /etc

  • etc라는 것이 전역적이라는 뜻
  • /etc/profile 은 전역적으로 영향을 미치는 profile파일

2) ~/

  • ~/ 라는 것이 지역적이라는 뜻
  • ~/.profile은 지역적으로(해당 사용자에게만) 영향을 미치는 profile 파일

login shell vs non-login shell

1) Login shell

  • ID와 패스워드를 입력해서 Shell을 실행하는 것
  • ssh로 접속하거나 로컬에서 GUI를 통해 Shell을 실행하는 것
  • .profile, .bash_profile 이 두 파일은 Login할 때 로드되는 파일
  • .profile은 꼭 bash가 아니더라도 로그인하면 로드되며, .bash_profile은 꼭 bash로 로그인 할 때 실행

2) non-login shell

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

profile vs bashrc vs brash_profile

  profile bashrc bash_profile
실행 시점 쉘에 로그인할 때 실행,
로그인할 때 로드
이미 로그인 한 상태에서 사용자가 새 셸을 열 때마다 실행되는 셸 스크립트 시스템에 로그인할 때마다 로드됩니다. (Login Shell에서 실행), bash에 로그인할 때만 실행
실행 순서 1 2(전역일경우, /etc/bashrc)
3(지역일경우, ~/.bashrc)
지역적인 경우에 1번으로 실행

리눅스의 /etc/profile, /etc/bashrc ~/.bash_profile의 ~/.profile  ~/.bashrc 실행순서

  1. /etc/profile
  2. /etc/bashrc
  3. ~/.bash_profile OR ~/.profile (.bash_profile 이 없으면 .profile을 실행. .bash_profile 이 1순위이고, 우선순위에 따라 1개만 실행된다.)
  4. ~/.bashrc

export 로 환경 변수를 저장하면?

It goes into the environment for the current shell (stored in the RAM)

현재의 쉘의 환경변수로 저장이 되고 물리적으로는 RAM에 저장이 됩니다.

즉, 로그아웃하게 되면 환경변수 정보를 잃게 되는데, 영구적으로 저장하기 위해서 .profile, .bashrc, .bash_profile에 저장합니다.

참조:

 https://sehoonoverflow.tistory.com/29

728x90

댓글