쉘의 개념, bashrc의 개념

2018. 12. 20. 15:41·Development/Linux
반응형

                                                                                                                                                         

                                                                                                                                                                                                                   

                                                                                                                                                         

                                                                                                                                                                                                              

                                                                                                                                                                                                              

쉘(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을 의미하는 것으로 보인다. 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Development > Linux' 카테고리의 다른 글

GPU sync failed  (0) 2018.12.20
리눅스 터미널로 웹 페이지 다운로드가 필요할 때  (0) 2018.12.20
리눅스 터미널에서 복사/붙여넣기 단축키  (0) 2018.12.20
우분투에서 외장하드 포맷  (0) 2018.12.20
우분투에서 외장하드 접근  (0) 2018.12.20
'Development/Linux' 카테고리의 다른 글
  • GPU sync failed
  • 리눅스 터미널로 웹 페이지 다운로드가 필요할 때
  • 리눅스 터미널에서 복사/붙여넣기 단축키
  • 우분투에서 외장하드 포맷
doh.k
doh.k
  • doh.k
    DOHk's DevLog
    doh.k
  • 전체
    오늘
    어제
    • 분류 전체보기
      • DailyLog
      • TIL
      • Project
        • Development
        • Artificial Intelligence
      • Development
        • Database
        • WEB
        • CSE
        • javascript
        • Algorithms
        • Linux
        • Network
        • Python
        • 라즈베리파이
        • Apple
      • Research
        • 논문
        • 금융,블록체인
        • Time-Series
        • 수학
        • 미적분학
        • 화학
      • Artificial Intelligence
        • Machine Learning
        • Deep Learning
        • TensorFlow
        • ReinforcementLearning
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스프링
    데이터
    JavaScript
    리눅스
    자료구조
    알고리즘
    Network
    데이터베이스
    블록체인
    머신러닝
    ssh
    딥러닝
    Spring
    Algorithms
    자바스크립트
    Machine Learning
    아이패드
    기계학습
    맥북
    gradient
    Mac
    라즈베리파이
    Python
    경사하강법
    가상화폐
    파이썬
    gradient descent
    Linux
    pycharm
    네트워크
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
doh.k
쉘의 개념, bashrc의 개념
상단으로

티스토리툴바