본문 바로가기

Linux

리눅스 환경변수

리눅스 시스템은 로그인 프로세스 중에 특정 위치에 있는 파일을 자동으로 읽는다.

각 파일은 특정 목적과 적용 범위를 가지고 있으며, 시스템 시작 시, 사용자 로그인 시, 새 shell 시작 시 등의 상황에 따라 로드된다.

리눅스 시스템에서 환경변수와 설정을 읽어들이는 일반적인 파일

  • /etc/environment
    • 시스템 전체에 적용되는 환경변수
    • PAM 모듈을 통해 시스템의 모든 사용자에게 영향을 미치는 변수를 설정한다.
  • /etc/profile
    • 모든 사용자의 모든 로그인 shell 세션에 적용되는 글로벌 설정
    • 시스템 전체의 기본 환경, 로그인 쉘 시작 스크립트 및 기타 system-wide 환경 설정을 포함한다.
  • ~/.bash_profile, ~/.profile, ~/.bash_login
    • 사용자의 홈 디렉터리에 위치한다.
    • 사용자가 로그인 shell 세션을 시작할 때 실행된다.
    • bash shell의 경우, 이 파일들 중 하나만 읽히고 여러개가 존재하면 ~/.bash_profile 가 우선적으로 읽힌다.
  • ~/.bashrc
    • 비로그인 shell 세션 (새로운 터미널을 열 때)에 대한 사용자별 설정을 담고 있다.
      • 로그인 쉘:
        • 사용자가 시스템에 처음 로그인할 때 시작되는 쉘이다.
        • 시스템에 물리적으로 로그인하고나 SSH와 같은 원격 접속 도구를 통해 로그인할 때 발생한다.
        • 위에서 기술한 ~/.bash_profile, ~/.profile, ~/.bash_login 과 같은 파일을 읽어 사용자 환경설정을 한다.
      • 비로그인 쉘:
        • 사용자가 이미 시스템에 로그인한 후 새로운 터미널 창을 열거나 새로운 쉘 세션을 시작할 때 생성된다.
        • 이미 로그인한 상태에서 GUI 터미널 emulator를 열거나, bash 명령을 실행해 새 쉘을 시작하는 경우이다.
  • /etc/bash.bashrc
    • 일부 리눅스 시스템에서는 이 파일을 통해 모든 bash 사용자에게 적용되는 글로벌 설정을 수행한다.
  • ~/bash_logout
    • 사용자가 로그인 쉘을 종료할 때 실행되는 스크립트를 포함한다.

export 명령어를 통한 환경변수 설정

  • 해당 쉘과 그 쉘에서 생성되는 모든 하위 프로세스에 대해서만 설정된다.
  • 세션이 종료시 소멸된다.
    • 현재 쉘 세션의 PATH 환경변수에 /opt/newapp/bin 경로를 추가한다.
  • export PATH=$PATH:/opt/newapp/bin

'Linux' 카테고리의 다른 글

systemd  (0) 2023.12.12