본문 바로가기
서버/Linux

[Linux] 쉘 환경 변수

by 느링 2017. 9. 28.

쉘 환경 변수

1. 쉘 변수       (지역 환경 변수)

2. 환경 변수    (전역 환경 변수)

 

1. 쉘 변수 (지역 환경 변수)

- 현재 사용하는 쉘에서만 적용되는 변수

 

① 변수 선언 및 초기화

#변수명=값    

 

주의 사항

변수명 = 값(공백X)

ex) A = 10 (저런 공백이 있으면 안됨) / A=10 (O)

 

<예제 1> TEST라는 변수에 Haneul을 선언 및 초기화해주었습니다.

 

변수라는 것을 알려주기 위해 항상 '$'를 변수 앞에 입력해줍니다.

 

<예제 2> 경로도 변수로 사용할 수 있습니다.

 

② 변수 해제

#unset 변수명    //unset A

 

③ 변수 선언 확인

#set

<예제 1-1>

set을 입력하면 이미 변수로 지정된 내용들이 많이 나오므로

 

<예제 1-2>

전에 배운 파이프를 이용하여 변수 TEST를 찾도록 합니다.

 

<예제 2>

# /bin/bash

쉘 위에 또 다른 쉘을 생성하면 로그인 쉘이 아닌 서브 쉘을 생성합니다.

서브 쉘에서 로그인 쉘에서 만들었던 변수를 "TEST"를 입력하면 아무것도 나오지 않습니다.

※ # exit : 서브 쉘에서 나가기

서브 쉘에서 나온 후 로그인 쉘에서 "TEST"변수를 입력 후 내용을 확인해줍니다.

 

2. 환경 변수 (전역 환경 변수)

- 로그인 서브쉘에서 사용할 수 있는 변수

 

① 변수 선언 및 초기화

#export 변수명=값

<예제 1>

 

② 변수 해제

#unset 변수명

<예제 1>

 

③ 변수 선언 확인

#env

<예제 1>

 

<예제 2>

/bin/bash

쉘 변수(지역 환경 변수)와는 다르게 로그인 쉘과 서브 쉘 두 곳에서 변수를 사용 할 수 있습니다.

 

시스템에 미리 선언(예약)되어 있는 환경 변수의 종류

(일단 알아둬야 할 변수만)

$PATH 실행 파일을 찾을 경로

$HOME 현재 로그인한 사용자의 홈 디렉토리 경로

$LANG 쉘에서 사용하는 언어

$SHELL 로그인 시 사용하는 쉘 실행 파일 경로

$PS1 프롬프트 구조 정보\

$HISTSIZE 히스토리 파일에 저장되는 명령어의 수

$HISTFILE 히스토리 파일의 경로

$TMOUT 세션 유지 시간  (보안상 설정해두는 것이 좋음)

ex) TMOUT=[숫자] (초 단위)

 

그 외에 미리 선언(예약) 되어 있는 변수

1) HOME : 사용자의 홈디렉토리
2) PATH : 실행파일을 찾는 경로
3) LANG : 프로그램 사용시 기본 지원되는 언어
4) PWD : 사용자의 현재 작업하는 디렉토리
5) TERM : 로긴 터미널 타입
6) SHELL : 로그인해서 사용하는 쉘
7) USER : 사용자의 이름
8) DISPLAY : X 디스플레이 이름
9) VISUAL : visual 편집기의 이름
10) EDITOR : 기본 편집기의 이름
11) COLUMNS : 현재 터미널이나 윈도우 터미널의 컬럼수
12) PS1 : 명령프롬프트변수
13) PS2 : 2차 명령프롬프트이다. 명령행에서 \를 사용하여 명령행을 연장했을 때 나타난다.
14) BASH : 사용하는 bash 쉘의 경로
15) BASH_VERSION : bash의 버전
16) HISTFILE : history 파일의 경로
17) HISTFILESIZE : history 파일의 크기
18) HISTSIZE : history에 저장되는 갯수
19) HISTCONTROL : 중복되어지는 명령에 대한 기록 유무를 지정하는 변수이다.
20) HOSTNAME : 호스트의 이름
21) LINES : 터미널의 라인 수
22) LOGNAME :로그인이름
23) LS_COLORS : ls 명령의 색상관련 옵션
24) MAIL : 메일을 보관하는 경로
25) MAILCHECK : 메일확인시간
26) OSTYPE : 운영체제 타입
27) SHLVL :쉘의 레벨
28) TERM :터미널종류
29) UID : 사용자의 UID
30) USERNAME : 사용자이름