셸은 셸의 환경을 설정하기 위한 값을 저장할 수 있도록 변수를 제공한다.
변수에는 사용자 정보, 명령을 찾아오는 경로, 각 사용자의 프롬프트 모양 등 다양한 정보가 저장되어 있다.
셸 변수 : 서브 셸로는 전달되지 않고 현재 셸에서만 사용가능. 해당 셸의 지역 변수
환경 변수 : 현재 셸뿐만 아니라 서브 셸로도 전달됨. 전역 변수

관습적으로 환경 변수는 대문자를 사용함
| 환경 변수 | 의미 | 환경 변수 | 의미 |
|---|---|---|---|
| HISTSIZE | 히스토리 저장 크기 | PATH | 명령을 탐색할 경로 |
| HOME | 사용자 홈 디렉터리의 절대 경로 | PWD | 작업 디렉터리의 절대 경로 |
| LANG | 사용하는 언어 | SHELL | 로그인 셸 |
| LOGNAME | 사용자 계정 이름 |
전체 변수 출력하기 : set, env
set는 셸 변수와 환경 변수 모두 출력하고 env는 환경 변수만 출력한다.
set는 변수 뿐만 아니라 함수로 정의된 것들도 출력함.

set으로 출력되는 내용이 훨씬 많다.

특정 변수 출력하기 : echo
전체 변수를 한번에 출력하는 것이 아닌 개별 변수의 값을 출력할 수도 있다.

셸 변수 정의


SOME을 아직 환경 변수로 설정되지 않았기 때문에 env명령으로 SOME 변수를 확인할 수 없다.
환경 변수 설정하기 : export (셸 내장 명령)

셸 변수 SOME을 환경 변수로 변경

export 명령과 함께 변수를 정의하면 한 번에 환경 변수로 설정 가능
환경 변수를 다시 셸 변수로 변경하기 : export -n

SOME1을 다시 셸 변수로 바꿔서 이제 환경 변수는 SOME만 남았다.
unset

변수 설정이 해제되었므로 아무 값도 출력되지 않는다.
실은 앨리어스와 히스토리라는 편리한 기능을 제공한다.