## 셸 변수와 환경 변수
셸이 사용하는 변수에는 셸 변수와 환경 변수가 있다.
셸 변수는 현재 셸에서만 사용 가능하고, 서브 셸로는 전달되지 않지만,
환경 변수는 현재 셸뿐만 아니라 서브 셸로도 전달된다.
셸 변수는 해당 셸의 지역 변수이고, 환경 변수는 현재 셸과 서브 셸에서 공통적으로 사용할 수 있는 전역 변수라고 볼 수 있다.
일반적으로 환경 변수의 이름에는 대문자를 사용한다. 소문자로 지정해도 문제 없지만 관례적으로 그렇다.
* 자주 사용하는 환경 변수
- HISTSIZE : 히스토리 저장 크기
- HOME : 사용자 홈 디렉토리의 절대 경로
- LANG : 사용하는 언어
- LOGNAME : 사용자 계정 이름
- PATH : 명령을 탐색할 경로
- PWD : 작업 디렉토리의 절대 경로
- SHELL : 로그인 셸
## 셸 변수와 환경 변수 출력
셸의 변수를 출력하는 명령은 set과 env 이다.
set 은 셸 변수와 환경 변수를 모두 출력하고, env 는 환경 변수만 출력한다.
set 은 변수 뿐만 아니라 함수로 정의된 것들도 출력한다.
- 특정 변수 출력하기 : echo
전체 변수를 한 번에 출력하지 않고 개별 변수의 값을 출력할 수 있다.
echo 명령을 사용하며, 변수의 값을 출력할 때는 변수명 앞에 특수문자 $를 붙여야 한다.
ex) echo $SHELL (SHELL 변수를 출력)
## 셸 변수와 환경 변수 설정
변수명과 문자열 사이에 공백이 있으면 안된다.
* 변수명=문자열 (공백이 있으면 안됨)
ex) SOME=test
[user1@localhost ~]$ SOME=test
[user1@localhost ~]$ echo $SOME
test
set 명령과 env 명령으로 각각 확인해 보면, env 명령으로는 SOME 변수를 확인할 수 없다.
SOME 이 아직 환경 변수로 설정되지 않았기 때문이다.
ex) [user1@localhost ~]$ set | grep SOME
SOME=test
[user1@localhost ~]$ env | grep SOME (아무것도 출력되지 않는다.)
* 환경 변수 설정하기 : export
환경 변수를 설정하려면 먼저 셸 변수를 정의하고, export 명령을 사용하여 이를 환경 변수로 바꾼다.
export는 셸 내장 명령이다.
- 기능 : 지정한 셸 변수를 환경 변수로 바꾼다.
- 형식 : export [옵션] [셸 변수]
- 옵션 : -n (환경 변수를 셸 변수로 변경한다.)
- 사용 예
export
export SOME (SOME 변수를 환경 변수로 바꿈)
export SOME=test (SOME 변수를 환경 변수로 만들면서 정의함)
- 환경 변수를 다시 셸 변수로 변경하기 : export -n
환경 변수로 전환한 셸 변수를 다시 셸 변수로 변경
ex) [user1@localhost ~]$ export -n SOME
[user1@localhost ~]$ env | grep SOME (아무 것도 나타나지 않는다)
## 변수 해제
지정한 변수를 해제할 때는 unset 명령을 사용
- 기능 : 지정한 변수를 해제
- 형식 : unset [변수]
- 사용 예 : unset SOME
ex) [user1@localhost ~]$ unset SOME
[user1@localhost ~]$ echo SOME (아무 것도 나타나지 않는다)
'컴퓨터 세상 > LiNuX' 카테고리의 다른 글
히스토리 (0) | 2022.02.16 |
---|---|
앨리어스 (alias) (0) | 2022.02.16 |
파일의 종류 (0) | 2022.02.03 |
리눅스 기본 - 기초 명령어 (0) | 2022.02.02 |
리눅스 기본 - 프롬프트, 홈 디렉토리, 명령의 구조와 사용 (0) | 2022.02.02 |