2 분 소요

리눅스 시스템에서는 환경변수(Environment Variables)를 통해 시스템 설정, 사용자 정보, 셸 동작 방식 등을 제어합니다. 이 글에서는 환경변수의 개념부터 주요 변수 설명, 확인 방법까지 초보자도 쉽게 이해할 수 있도록 정리합니다.


1. 환경변수란?

환경변수는 운영체제와 셸이 사용하는 설정 값들을 저장한 변수입니다.

프로그램 실행, 셸 동작, 사용자 세션 등 다양한 요소에 영향을 줍니다.


2. 시스템 정보 관련 환경변수

변수명 설명 예시
HOSTNAME 시스템의 호스트 이름 ubuntu-server
OSTYPE 운영체제 유형 linux-gnu, darwin
DISPLAY X 윈도우 디스플레이 서버 :0.0
PATH 명령어 검색 경로 /usr/bin:/bin:/usr/sbin:/sbin
LANG 시스템 기본 언어 설정 en_US.UTF-8

✅ PATH는 시스템 명령어 실행 시 매우 중요한 변수입니다.


3. 셸(Shell) 관련 환경변수

변수명 설명 예시
PS1 기본 프롬프트 형식 [\\u@\\h \\W]\\$[user@host dir]$
PS2 다중 행 입력 프롬프트 >
SHELL 기본 셸 경로 /bin/bash, /bin/zsh
HISTFILE 히스토리 저장 파일 경로 ~/.bash_history
HISTFILESIZE 히스토리 파일 최대 줄 수 1000
HISTSIZE 히스토리 메모리 내 최대 줄 수 500

✅ PS1은 프롬프트 디자인을 바꿀 때 유용하게 활용됩니다.


4. 사용자 정보 관련 환경변수

변수명 설명 예시
UID 사용자 ID 0(root), 1000(일반 사용자)
USER 사용자 계정명 username
HOME 사용자 홈 디렉토리 /home/username
PWD 현재 작업 디렉토리 /home/username/docs

✅ HOME, PWD는 스크립트 자동화 시 자주 사용됩니다.


5. 응용 프로그램 관련 환경변수

변수명 설명 예시
TERM 현재 사용 중인 터미널 종류 xterm, vt100, linux
MAIL 수신 메일 저장 위치 /var/mail/username

6. 환경변수 확인 방법

6.1 전체 환경변수 출력

printenv
# 또는
env

6.2 특정 환경변수 확인

echo $변수명
# 예:
echo $PATH
echo $USER

6.3 환경변수 일시 설정 (현재 세션만)

export VAR_NAME=value
# 예:
export LANG=ko_KR.UTF-8

7. 환경변수 영구 설정

파일 설명 적용 대상
~/.bashrc 로그인 후 쉘 세션 설정 사용자별, bash 전용
~/.profile, ~/.bash_profile 로그인 시 설정 사용자별
/etc/profile 시스템 전체 환경설정 모든 사용자

✅ 영구 적용 시에는 source ~/.bashrc 또는 재로그인이 필요합니다.


질문 정리

Q1. PATH를 수정하려면 어떻게 하나요?

export PATH=$PATH:/my/custom/path

→ 현재 PATH에 새로운 경로 추가


Q2. 환경변수는 프로그램 실행에 어떤 영향을 주나요?

  • 예: JAVA_HOME, PYTHONPATH, LANG 등은 프로그램 실행 시 필수 환경 설정 값으로 사용됩니다.

Q3. printenvenv의 차이는?

  • 거의 동일하지만, env는 명령어 앞에 붙여 일시적인 환경변수 설정도 가능
env LANG=fr_FR.UTF-8 date

Q4. 환경변수와 셸 변수의 차이는?

  • 셸 변수: 해당 셸 내에서만 유효 (VAR=value)
  • 환경변수: 하위 프로세스에도 전달 (export VAR=value)

Q5. 시스템 전체에 공통 환경변수를 설정하려면?

  • /etc/environment, /etc/profile 파일을 편집

정리

  • 환경변수는 리눅스에서 사용자, 셸, 프로그램 실행의 핵심 설정 도구
  • PATH, LANG, USER, HOME, PS1 등은 반드시 숙지해야 할 기본 변수
  • 확인은 echo $변수, 전체 출력은 env 또는 printenv 명령어 사용
  • 설정 변경 시 export, 영구 변경은 ~/.bashrc, /etc/profile 등 편집

카테고리:

업데이트:

댓글남기기