컴퓨터 세상/LiNuX

배시셸 환경설정

Jimin Daddy 2022. 2. 16. 11:59

## 셸 변수와 환경 변수
셸이 사용하는 변수에는 셸 변수와 환경 변수가 있다.
셸 변수는 현재 셸에서만 사용 가능하고, 서브 셸로는 전달되지 않지만,
환경 변수는 현재 셸뿐만 아니라 서브 셸로도 전달된다.
셸 변수는 해당 셸의 지역 변수이고, 환경 변수는 현재 셸과 서브 셸에서 공통적으로 사용할 수 있는 전역 변수라고 볼 수 있다.
일반적으로 환경 변수의 이름에는 대문자를 사용한다. 소문자로 지정해도 문제 없지만 관례적으로 그렇다.
* 자주 사용하는 환경 변수
  - 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