Login vs Non-Login Shell (/etc/profile, .bashrc)

앙금빵·2021년 8월 21일
0

리눅스

목록 보기
12/13
post-thumbnail

Login Shell vs Non-Login Shell

Login Shell

리눅스 시스템에 로그인하면 bash 쉘은 Login Shell로 실행된다.

예를 들면,
① 터미널을 통해 SSH를 통해 리눅스 시스템에 접근
② "su -" 명령어를 통해 user를 바꿀 때 이다.

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가 수행될 때, 실행되는 함수를 제어하는 지역적 시스템 설정과 관련된 파일

Non Login Shell

Non Login Shell은 login shell로부터 파생된 Shell 이다.

예를 들면,

① ssh로 리눅스 시스템에 접근 후, bash를 실행하는 경우

② GUI 세션에서 터미널을 띄우는 경우 이다.

새로운 환경변수를 설정할 때 non-login shell 경우 .bashrc 파일을 이용해야 한다.

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)

참조

/etc/profile, ~/.bash_profile, ~/.bashrc, /etc/bashrc
https://linuxism.ustd.ip.or.kr/522
Linux Environment 환경변수
https://seulcode.tistory.com/546
Bash: .profile, .bash_profile, .bashrc
http://dogfeet.github.io/articles/2012/bash-profile.html
[Linux] 환경 변수 & Java,Tomcat 환경 변수 설정 이유
https://it-serial.tistory.com/38

What is the difference between Login and Non-Login Shell
https://tecadmin.net/difference-between-login-and-non-login-shell/
Configuration file overview
https://sanbo0404.tistory.com/entry/etcbashbashrc-rootbashprofile-의-차이

profile
Cloud 관련 개인 공부 지식들을 기록하는 공간입니다.

0개의 댓글