리눅스 환경 변수
IT 위키
(환경 변수에서 넘어옴)
- 셸과 그 셸에서 실행되는 프로그램이 공유하는 설정값. 이름과 값의 쌍으로 관리된다.
| 구분 | 범위 | 만드는 법 | 확인 |
|---|---|---|---|
| 셸 변수 | 현재 셸 안에서만 유효. 자식 프로세스에 전달되지 않는다 | NAME=value
|
set
|
| 환경 변수 | 현재 셸과 자식 프로세스까지 전달된다 | export NAME=value
|
env, printenv
|
셸 변수를 export 하면 환경 변수가 된다.
| 변수 | 내용 |
|---|---|
PATH
|
명령어를 찾을 디렉터리 목록. 콜론(:)으로 구분한다
|
HOME
|
사용자의 홈 디렉터리 |
USER, LOGNAME
|
로그인한 사용자 이름 |
SHELL
|
로그인 셸의 경로 |
PWD, OLDPWD
|
현재 디렉터리, 직전 디렉터리 |
MAIL
|
사용자에게 도착하는 메일 파일의 경로. 보통 /var/spool/mail/사용자명
|
MAILCHECK
|
메일 도착을 확인하는 주기(초) |
TERM
|
터미널 종류 |
LANG, LC_ALL
|
로캘(언어·문자셋) 설정 |
PS1, PS2
|
셸 프롬프트 모양 |
HISTSIZE, HISTFILE
|
명령 이력 개수와 저장 파일 |
TMOUT
|
입력이 없을 때 자동 로그아웃되는 시간(초) |
$ echo $HOME /home/ihduser $ echo $MAIL /var/spool/mail/ihduser $ env | grep PATH $ printenv SHELL
작은따옴표 안에서는 변수가 확장되지 않는다. 큰따옴표 안에서는 확장된다.
$ echo "$SHELL" /bin/bash $ echo '$SHELL' $SHELL $ echo \$SHELL $SHELL
$ NAME=value # 셸 변수 $ export NAME=value # 환경 변수 $ export PATH=$PATH:/usr/local/bin $ unset NAME # 삭제
로그인할 때 읽히는 순서가 정해져 있다.
- 전역 :
/etc/profile→/etc/profile.d/*.sh→/etc/bashrc - 사용자별 :
~/.bash_profile→~/.bashrc - 로그아웃 시
~/.bash_logout
모든 사용자에게 적용할 변수는 /etc/profile 에, 개인 설정은 ~/.bash_profile 에 둔다.
파일을 고친 뒤 즉시 반영하려면 source ~/.bashrc 또는 . ~/.bashrc 를 실행한다.
