리눅스 환경 변수

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 를 실행한다.

같이 보기

[편집 | 원본 편집]