쉘 변수와 환경 변수

자주 필요한 정보를 저장하여 사용자가 사용하기 편리하게 해주는 것, 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임이다.

기본적 사용법

$ echo $TERM
xterm-256color

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/jsh/shell

echo 명령어를 통해 환경변수들을 출력해볼 수 있다.

$ printenv
SHELL=/bin/bash
TERM=xterm-256color
USER=root
 ...

printenv 명령어를 통해 현재 설정되어있는 환경변수들을 출력해볼 수 있다.

$ export TEST='testing'
$ echo $TEST
testing

export 명령어를 통해 환경변수를 설정할 수 있다.

$ unset TEST
$ echo TEST

unset 명령어를 통해 환경변수를 해제할 수 있다.

부모와 자식 관계

환경변수의 값을 바꾸는 쉘 스크립트를 작성해보면 환경변수가 절대 변하지 않는다는 것을 알 수 있다. Unix 시스템은 자식이 절대 부모의 값을 바꿀 수 없다. 반대로 부모는 자신의 값을 바꾸고 자식에게 물려줄 수 있다.

미리 정의된 환경변수들

환경변수 이름
PATH 명령어 검색 경로, 보통 쉘 설정 파일들 중 하나에 설정된다.
EDITOR 자주 이용하는 편집기
PRINTER 기본 프린터(설정이 되어있으면 lpr에게 알려주지 않아도 됨)
PWD 현재 디렉토리의 절대경로명
HOME 사용자 홈 디렉토리
SHELL 로그인 쉘의 절대경로명
USER 사용자 이름
TERM 터미널 종류의 이름
TERMCAP 터미널 종류에 대한 termcap 데이터베이스 항목 로드

PATH 환경변수

PATH 환경변수는 콜론(:)으로 구분된 디렉토리들의 목록이다. 쉘은 명령어를 찾을 때 마다 이 디렉토리들을 순서대로 검사한다.

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

만약에 특정 경로를 PATH에 추가하고 싶다면 ~/.profile 에 다음과 같은 내용을 추가한다.

$ vi ~/.profile

export PATH=$PATH:/path/to/add

쉘 변수

쉘 변수는 환경 변수의 일반적인 유형, 사용자 또는 사용자의 쉘이 이용하기 위한 정보를 모아두는 곳이다. 환경변수는 전역변수이고 쉘 변수는 지역변수라고 생각할 수 있다. 환경변수와는 다르게 쉘 변수는 소문자로 작성해준다.

쉘 변수를 설정하려면 쉘에 따라 다음과 같이 명령어를 입력해주면 된다.

# C shell
$ set test="testing"

# Bourn shell
$ test="testing"

삭제는 아래와 같이 입력해주면 된다.

# C shell 과 Bourn shell 동일하다.
$ unset test
through.kim's profile image

through.kim

2016-12-22 16:02

Read more posts by this author