[Linux] 리눅스 환경설정 파일, 실행 순서 정리

hwwwa·2023년 2월 7일
0
  • man bash 명령어를 이용하여 관련 내용이 담긴 메뉴얼을 확인할 수 있다.

환경설정 파일의 종류

/etc/profile

  • 시스템 전역 shell 변수 정의
  • login shell 일 때 수행됨
  • user가 shell에 로그인하게 되면 가장 먼저 /etc/profile 파일을 읽음
  • USER, LOGNAME, HOSTNAME 등의 shell 변수들이 선언되어 있음
  • 해당 파일을 통해 시스템 전역 shell 변수 초기화 가능

/etc/bashrc

  • shell 함수, alias 시스템 전역 변수 정의

~/.bash_profile

  • 시스템 전역에 적용되는 환경설정이 아닌, 유저 개개인의 환경 변수를 설정
  • login shell 일 때 수행됨

~/.bashrc

  • 유저 개개인의 명령어 alias, 환경변수를 설정
  • non-login shell 일 때 수행됨
  • /etc/bashrc 로드 후에 해당 파일이 로드됨

~/.bash_logout

  • 로그아웃 설정파일
  • 각 유저 자신에 대한 로그아웃 절차를 포함
  • 로그아웃 시 실행할 절차를 선언 가능

환경 설정 파일 인식 순서

/etc/profile ➡️ ~/.bash_profile ➡️ ~/.bashrc ➡️ /etc/bashrc


source 명령어

  • 리눅스 환경 설정 파일들을 수정하기만 한다고 바로 내용이 적용되는 것은 아님
  • 리부팅이나 쉘에 재 로그인하여야 해당 내용이 적용됨
  • 현재 쉘에서 새로운 환경 설정 내용을 적용하기 위해서는 source 명령어를 사용
source 파일명

login shell과 non-login shell의 차이

login shell

  • 계정과 암호를 입력하여 shell을 실행하는 것
  • ssh로 접속하거나 로컬에서 GUI를 통해 Shell을 실행하는 경우가 이에 해당
  • Login 시 .profile.bash_profile 두 파일을 로드하게 됨
    • .profile은 bash가 아니더라도 Login 시 로드됨. ex) PATH
    • .bash_profile은 bash로 Login 시에만 로드됨

non-login shell

  • Login 없이 실행하는 Shell
  • ssh로 접속하고 나서 다시 bash를 실행하는 경우나, GUI 세션에서 터미널을 띄우는 경우가 이에 해당
  • .bashrc 파일이 로드됨
    • sudo bashsu로 root 권한을 얻으려 bash를 실행할 때에도 해당 파일이 로드됨

  • 참고) Mac OS X에서는 로그인 여부와 관계 없이 모든 터미널 창을 Login Shell로 실행됨 👉 .bash_profile이 로드됨

0개의 댓글