happyso
study with happyso
happyso
전체 방문자
오늘
어제
  • 분류 전체보기 (300)
    • GIT (3)
    • 컴퓨터 기본 개념 (29)
    • 알고리즘 (125)
      • 알고리즘 문제 (115)
      • 알고리즘 개념 (10)
    • Go (2)
    • 클라우드 (53)
      • DevOps (3)
      • Kubernetes(쿠버네티스) (33)
      • AWS (6)
      • CKA (8)
    • 리눅스(Linux) (18)
      • 컨테이너(Container) (8)
    • Front (22)
      • JavaScript (2)
      • React (20)
    • Python (21)
      • Python 웹 크롤링 (11)
      • Django (7)
      • MachineLearning (3)
    • 데이터베이스 (6)
      • MariaDB (2)
      • MongoDB (4)
    • C언어 (5)
    • Trouble Shooting (2)
    • 네트워크 (8)
      • CCNA (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • kubernetes
  • apply
  • replace
  • 18
  • Patch
  • 15
  • edit

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
happyso

study with happyso

리눅스(Linux)

[Linux] 로그인쉘과 비로그인쉘

2023. 7. 29. 00:17

shopt login_shell 명령어로 로그인쉘 여부를 확인할 수 있다.

로그인쉘과 비로그인쉘의 차이점은 환경설정 파일을 적용하는 데 있다.

로그인쉘의 경우 /etc/profile, ~/.bash_profile 의 환경설정 파일에 영향을 받지만 비로그인쉘의 경우 영향을 받지 않는다.

로그인 쉘

Linux는 사용자가 자신의 계정에 로그인할 때 로그인쉘을 시작한다. 로그인쉘은 로그인할 때 수행되는 기본 쉘이다. logout 명령으로 로그아웃하여 쉘을 종료할 수 있다.

  1. 터미널을 통해 SSH를 통해 리눅스 시스템에 접근할 때
  2. “su -” 명령어를 통해 user를 바꿀 때

다음과 같은 순서로 명령을 실행한다.

  1. /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

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

$HOME/.bash_profile

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

$HOME/.bashrc

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

비로그인 쉘

로그인 쉘로부터 파생되는 쉘로써 로그인이 아닌 다른 방식으로 떠있는 쉘이다. logout 명령을 사용할 수 없으며 exit 명령어를 통해 나갈 수 있다.

  1. SSH로 리눅스 시스템에 접근 후, bash shell을 실행한 경우
  2. GUI 세션에서 터미널을 띄우는 경우

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

다음과 같은 순서로 명령을 실행한다.

  1. ~/.bashrc를 실행
  2. ~/.bashrc는 /etc/bashrc를 실행
  3. /etc/bashrc는 /etc/profile.d 내 스크립트 실행

/etc/bashrc

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

~/.bashrc

  • 개인 사용자에 대한 환경설정 파일이다.
저작자표시 비영리 (새창열림)

'리눅스(Linux)' 카테고리의 다른 글

[Linux] chmod  (0) 2023.07.29
[Linux] 리눅스 능력 (getcaps)  (0) 2023.07.29
[Linux] 리눅스 setuid, setgid  (0) 2023.07.28
우분투 네트워크간 접속, 포트포워딩  (0) 2020.10.07
[리눅스] 사용자 및 그룹관리 & 파일 소유권 & 프로세스 & 패키지 관리 & 쉘스크립트  (0) 2020.09.08
    '리눅스(Linux)' 카테고리의 다른 글
    • [Linux] chmod
    • [Linux] 리눅스 능력 (getcaps)
    • [Linux] 리눅스 setuid, setgid
    • 우분투 네트워크간 접속, 포트포워딩
    happyso
    happyso

    티스토리툴바