본문 바로가기
Development/Linux

쉘의 개념, bashrc의 개념

by dohk325 2018. 12. 20.
반응형

                                                                                                                                                         

                                                                                                                                                                                                                   

                                                                                                                                                         

                                                                                                                                                                                                              

                                                                                                                                                                                                              

쉘(Shell)

쉘이란, 사용자와 커널 사이의 매개체 역할을 하는 프로그램이다. 사용자가 커널에 직접 명령을 내릴 수 있게하는 프로그램이다. 즉, 쉘은 사용자로부터 명령을 받아서 그것을 프로세싱하기 위해 커널에게 넘겨주는 일을 하는 프로그램이다. 가장 널리 쓰이는 쉘 프로그램은 bash다.

쉘(Shell)에 대하여: https://dohk.tistory.com/186

bashrc

Bash는 Bourne Again Shell의 축약어다. 리눅스에서 가장 널리 사용되는 쉘이다. bash는 다섯 개의 공통된 설정 파일들을 가지고 있다. 모든 리눅스 배포본에서 이들을 찾아볼 수 있지는 않지만, 이 파일들을 만드는 것은 어렵지 않다. 이 설정  파일들은 다음과 같다: (bash는 5개의 설정 파일을 갖는다.)

  • /etc/profile
  • /etc/bashrc
  • ~/.bash_profile
  • ~/.bashrc
  • ~/.bash_logout

일반적으로 전역적인 파일은 /etc 디렉토리에 위치한다. 지역적인 파일은 사용자 개개인을 위한 설정 내용을 담고 있어서 그 파일을 사용하는 특정 사용자에게만 영향을 끼치는 파일들을 뜻한다. 이들은 대개 사용자의 홈 디렉토리에서 찾아 볼 수 있는 숨김 파일이다. 숨김 파일은 ~/.bashrc와 같이 '.' 으로 시작한다.

  • 전역적인 설정인 /etc/profile과 /etc/bashrc
  • 개별 사용자마다 다른 설정을 담는, 지역적 설정인 ~/.bashrc, ~/.bash_profile, ~/.bash_logout

수행순서는 /etc/profile --> /etc/bashrc(추정) --> ~/.bash_profile ( --> ~/.bashrc ;처음 bash로 로그인할 때 자동 참조) [--> ~/.bashrc ;bash가 실행될 때마다 실행됨] 즉 처음에 한 번 수행되는 게 전역파일들, 그 다음엔 매번 지역적인 파일들이 참조된다.

bashrc는 bash에서 작업할 때마다 수행되는 파일로서, 우리가 그냥 python이라고 입력만 해도 python3.x버전으로 연결되어 작업할 수 있게 해준다. 즉 환경변수 개념이라고 생각하면 편하다. 만약 모든 사용자에게 적용되게 하려면 /etc/profile에 설정해주면 된다. 개별 사용자에게 적용되게 하려면 .bash에 설정한다.

/etc/profile

/etc/profile은 환경 변수와 bash가 수행될 때 실행되는 프로그램을 제어하는 전역적인 시스템 설정과 관련된 파일이다. bashrc와 마찬가지로 로그인시 수행되는 시스템 전체 환경 설정 파일이다.

~/.bash_profile

~/.bash_profile은 환경 변수와 bash가 수행될 때 실행되는 프로그램을 제어하는 지역적인 시스템 설정과 관련된 파일이다. 이들 환경 변수들은 오직 해당 사용자에게만 한정되며, 그 이외의 다른 사용자에게는 영향을 미치지 않는다. 즉, 모든 사용자에게 영향을 주는 /etc/profile과는 달리, ~/.bash_profile는 오직 bash를 실행하는 그 사용자에게만 영향을 준다. 이 파일은 전역적인 설정 파일인 /etc/profile이 수행된 다음 곧바로 수행된다.

~/.bashrc

~/.bashrc는 별칭(alias)과 bash가 수행될 때 실행되는 함수를 제어하는 지역적인 시스템 설정과 관련된 파일이다. 이들 별칭과 함수들은 오직 해당 사용자에게만 한정되며, 그 이외의 다른 사용자에게는 영향을 미치지 않는다. 

/etc/bashrc

~/.bashrc가 개인용 환경 설정이라면 /etc/bashrc는 전체용(모든 사용자에게 영향을 끼치는) 환경 설정 파일이다.

~/.bash_logout

~/.bash_logout 은 사용자가 로그 아웃하기 바로 직전에 실행하는 프로그램에 관한 bash의 지역적인 시스템 설정과 관련된 파일이다. 이들 프로그램은 오직 그 프로그램을 실행하는 사용자에게만 영향을 끼치며, 다른 사용자에게는 아무런 영향을 주지 않는다.


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

 


bashrc에서 rc의 뜻은? 

명확하게 정의된 것은 없지만, run command 또는 run configuraion을 의미하는 것으로 보인다. 

반응형