리눅스 환경변수 시스템, 셸, 사용자 변수 정리
리눅스 시스템에서는 환경변수(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. printenv와 env의 차이는?
- 거의 동일하지만,
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등 편집
댓글남기기