Linux

profile, bashrc 설정 파일

코딩공부 2022. 3. 17. 02:46

 

/etc/profile

~/.bash_profile

 

/etc/bashrc

~/.bashrc

 

모두 장치 관리 및 사용자 환경을 위한 설정 파일

 

실행되는 순서 및 언제 로드 되느냐가 다름.

 

먼저 Login Shell과 Non-Login Shell을 알아야 함.

 

  •  login shell 
    처음 리눅스를 부팅하고 터미널을 켰을 경우
    특정 shell로 계정, 암호를 입력하여 실행하는 경우
    ssh로 접속하는 경우
    로컬에서 GUI를 통한 shell 실행하는 경우
    su 명령어로 다른 계정에 접속하는 경우

 

  •  non-login shell
    로그인 없이 Shell을 실행하는 경우
    터미널을 켰을 때 특정 shell로 들어가지 않고 직접 sh 등의 명령어로 특정 shell에 접속하는 경우 
    ssh로 접속하고 나서 다시 bash를 실행 하는 경우


 

Login Shell(profile) 은 다음과 같은 순서로 명령을 실행한다.

  1. Login Shell은 /etc/profile 을 실행
  2. /etc/profile  /etc/profile.d 안에 있는 스크립트들을 실행
  3. $HOME/ .bash_profile 실행 (or ~/.bash_login or ~/.profile)
  4. $HOME/ .bash_profile  $HOME/ .bashrc 파일 실행
  5. $HOME/ .bashrc  /etc/bashrc 파일을 실행

즉, /etc/profile  /etc/profile.d  $HOME/.bash_profile  $HOME/.bashrc  /etc/bashrc 순으로 읽으며 root 로 로그인 시 /etc/profile 을 먼저 읽고 이후 홈 디렉토리의 실행파일들을 읽는다.

 

 

/etc/profile

  • 시스템 전역 (모든 user)에 대한 환경설정 파일이다. (= Global Configuration Script)
  • bash 쉘의 주요 기본 시작 파일이다.
  • 시스템에 로그인 할 때마다 bash는 /etc/profile 시동 파일에 있는 명령을 실행한다.

$HOME/.bash_profile

  • 개인 사용자에 대한 환경설정 파일이다. (= User Personal Startup File)
  • HOME 디렉토리에 있으며, 사용자 환경에 맞게 환경변수를 설정한다.
  • /etc/profile에서 설정한 전역 변수들을 덮어 사용할 경우도 있다.

$HOME/.bashrc

  • Alias 와 Bash가 수행될 때 실행되는 함수를 제어하는 지역적 시스템 설정과 관련된 파일

/etc/bashrc

  • 시스템 전역 (모든 user)에 대한 환경설정 파일이다. (= Global Configuration Script)

Non Login Shell(rc file) 은 다음과 같은 순서로 명령을 실행한다.

 

  1. Non Login Shell은 ~/.bashrc 를 실행시킨다.
  2. ~/.bashrc /etc/bashrc 를 실행시킨다.
  3. /etc/bashrc  /etc/profile.d 내 스크립트를 실행한다.

즉, ~/.bashrc  /etc/bashrc  /etc/profile.d 순으로 읽어나간다.

 

/etc/bashrc

  • 시스템 전역 (모든 user)에 대한 환경설정 파일이다. (= Global Configuration Script)

~/.bashrc

  • 개인 사용자에 대한 환경설정 파일이다. (= User Personal Startup File)

.rc 파일의 유래
1965 년 MIT Compatible Time-Sharing System (CTSS) 에는 하나의 파일에 여러 명령을 넣어놓고 실행하는 기능이 있었는데 'run commands' 를 뜻하는 의미로 'runcom' 이라 불렀다고 합니다. 여기서 앞 글자를 따서 .rc 파일 이라고 합니다.

 

 

profile - 환경 변수 명시

bashrc - alias 명시

 

'Linux' 카테고리의 다른 글

[Nginx] nginx.conf, default.conf  (0) 2022.10.26
[CentOS 7] Nginx 설치  (0) 2022.10.26
Ubuntu20.04 Mysql 외부접속 허용  (0) 2021.11.25
Linux에서 service 등록 하는 이유  (0) 2021.09.30
init.d, systemd 비교  (0) 2021.09.30