2. 리눅스 실행 흐름 및 환경 변수

박은서's avatar
Apr 09, 2026
2. 리눅스 실행 흐름 및 환경 변수

1. 리눅스 초기 설정 & 환경변수

1️⃣ 전체 실행 흐름

1) 전체 실행 흐름

로그인 쉘 (login shell) → /etc/environment → /etc/profile → ~/.profile (또는 ~/.bash_profile) → ~/.bashrc (profile에서 호출됨) 비로그인 쉘 (터미널) → ~/.bashrc
💡
~/ : 현재 로그인한 사용자의 ‘홈 디렉터리(Home Directory)’

📌 추가 핵심 (⭐ 중요)

  • ~/.bash_profile, ~/.profile, ~/.bash_login하나만 실행됨
  • 우선순위
    • .bash_profile > .bash_login > .profile
  • ⚠️ .bash_profile 있으면 .profile 읽지 않음

2️⃣ profile 계열 (로그인 시)

1) 종류 구분 (추가 핵심)

파일
설명
/etc/profile
모든 사용자 공통
~/.profile
개인 설정
~/.bash_profile
bash 전용 로그인 설정

2) ⭕ 여기에 넣는 것

  • PATH
  • JAVA_HOME 같은 환경변수
  • 로그인 시 1회만 필요한 설정

3) ❌ 넣으면 안 되는 것

  • alias ❌
  • 매번 실행되는 로직 ❌

3️⃣ bashrc (터미널 핵심 파일)

1) ⭕ 여기에 넣는 것

  • alias
  • 함수
  • 프롬프트 (PS1)
  • 개발 편의 설정

📌 추가 핵심 (시험 자주 나옴)

🔹 bashrc는 자동 실행 안 되는 경우 있음
  • ssh(원격 접속) / su(사용자 전환) 상황
➡️ 해결 방법
source ~/.bashrc
🔹 다른 사용자로 전환 차이
su user # bashrc 안 읽을 수도 있음 su - user # 로그인처럼 동작 → profile부터 읽음 (⭐ 중요)
⚠️ su - 는 로그인 쉘

4️⃣ 환경변수

1) 변수의 종류

종류
설명
지역변수
현재 쉘에서만
환경변수
자식 프로세스까지 전달

2) 명령어

  • 변수 생성
    • VAR=hello # 지역변수 export VAR=hello # 환경변수 (⭐ 중요)
      ⚠️ export 해야 다른 프로그램에서도 사용 가능
  • 변수 확인
    • env # 환경변수만 set # 전체 변수 echo $VAR # 특정 변수
  • 변수 삭제
    • unset VAR

5️⃣ PATH

1) PATH 의미

  • 명령어 찾는 경로 목록

2) 동작 방식 (시험 핵심)

PATH=/bin:/usr/bin:/usr/local/bin
  • 실행 순서 : 왼쪽부터 탐색

3) PATH 추가

⭕ 올바른 방법
export PATH=$PATH:/new/path
  • 기존 유지 + 추가
❌ 위험한 방법
PATH=/new/path # 기존 경로 날아감

6️⃣ source vs 실행 (중요 개념 추가)

1) 차이점

방식
설명
./script.sh
새로운 쉘
source script.sh
현재 쉘
⚠️ 환경변수 적용하려면 반드시 source

7️⃣ alias vs function (추가 중요)

1) alias

alias ll='ls -al'
  • 단순 치환

2) function (더 강력)

mycmd() { ls -al }
  • 인자 처리 가능

8️⃣ 로그인 쉘 vs 비로그인 쉘

구분
설명
로그인 쉘
최초 접속
비로그인 쉘
터미널 실행
  • 확인 방법
    • echo $0

9️⃣ /etc 관련 파일 (빠지면 안 되는 핵심)

1) /etc/profile

  • 전체 사용자 적용

2) /etc/bash.bashrc (Ubuntu 계열)

  • 모든 사용자 bashrc
⚠️ 공통 설정은 여기

🔟 그림으로 이해하기

notion image
Share article