본문 바로가기
Linux

환경변수는 뭘까?

by suychoi 2022. 2. 26.

셸과 환경변수

여기

위 글에서 언급 했듯이 셸에서 프로그래밍이 가능하다. 


셸변수 선언

프로그래밍에서 변수를 사용하듯, 리눅스의 shell 프로그래밍에서는

'변수명=값'
'VAR=test'

의 문법을 이용해서 shell 변수를 생성한다.

  •  type 은 String 취급한다.
  • 띄어쓰기가 존재하면 안된다.

셸변수 출력

echo $VAR

변수 출력은 echo 명령어로 변수명 앞에 '$' 기호를 붙여서 한다. 

echo 자체는 원래 문자열을 출력하는 명령어로 사용된다.

 

셸변수 해제

unset VAR

unset 명령어를 이용해서 변수를 해제한다. 


셸 환경변수

 

환경변수는 프롬프트 변경, PATH 병경 등과 같이 shell 의 환경을 정의하는 중요한 역할을 하는 변수를 의미한다. 

 

셸을 활용하는데 중요한 개념 중 하나로, 미리 예약된 변수명을 사용하며

사용자가 임의로 원하는 값을 저장할 수 있다.

대부분의 환경변수는 일반 사용자 환경변수와 구별하기 위해 대문자만을 사용한다. 

메모리에 데이터를 저장해서 shell에서 실행중인 모든 프로그램이나 스크립트에 쉽게 사용할 수 있다. 


bash shell 은 두 가지 유형의 환경 변수가 있다. 

  • 전역 변수
    • 전역 환경변수는 쉘 세션 및 파생된 자식 서브쉘에서 볼 수 있다.
  • 지역 변수
    • 지역 변수는 이를 만든 쉘에서만 사용할 수 있다. 

부모 쉘의 정보가 필요한 자식 서브쉘을 만드는 APP에서는

전역 환경변수가 유용하다. 

bash shell 에서 주요 환경변수

 

변수명 내용
HOME 현재 사용자의 홈 디렉토리
LANG 기본 지원 언어
TERM 로그인 터미널 타입
USER 사용자의 이름
COLUMNS 현재 터미널의 컬럼 수
PS1 1차 명령프롬프트 변수
PS2 2차 프롬프트 변수
BASH BASH 셸의 경로
HISTFILE 히스토리 파일의 절대경로
HISTFILESIZE 히스토리 파일의 크기
MAIL 도착 메일이 저장되는 경로
TMOUT 사용자가 로그인 한 후 일정 시간동안 작업을 하지 않을 때 로그아웃 시키는 시간으로 단위(초)
UID 사용자의 UID
PATH 실행 파일을 찾는 디렉토리 경로
/usr/bin/df 와 같이 명령어(파일)가 어느 디렉토리에 있는지 알 수 없는 경우, 
PATH 환경변수 설정을 통해 df 명령어를 어디서 찾을 수 있는지 미리 정의해놓는 것!!


PWD 사용자의 현재 작업 디렉토리
SHELL 사용자의 로그인 셸
DISPLAY X윈도에서 프로그램 실행 시 출력되는 창(?)
LINES 현재 터미널 라인 수
BASH_VERSION BASH 버전
HISTSIZE 히스토리 파일에 저장되는 명령어줄의 수
HOSTNAME 시스템의 호스트명
LOGNAME 로그인 이름
OSTYPE 운영체제 타입

PS1, PS2 프롬프트 변수

 

프롬프트는 컴퓨터가 입력을 받아들이는 창을 의미합니다.

 

리눅스에는 PS1 과 PS2의 두가지 프롬프트가 있습니다.

보통 사용자가 작업하는 터미널은 PS1 프롬프트인데, 명령어가 완전히 입력되지 않으면 '>'가 뜹니다. 

 

명령어가 완전히 입력되지 않은 상태가 PS2 입니다.. 

echo $PS1하면 프롬프트 1의 포맷정보를 출력해줍니다. 


PATH 환경변수 추가하기

PATH=$PATH:/home/christine/Scripts
PATH=$PATH:[경로]

 


env

[ env ] 명령어를 사용하면 전체 환경변수의 설정된 값을 보여줍니다. 

 


참고

링크1 링크2

'Linux' 카테고리의 다른 글

리눅스에서 shell 이 뭘까??  (0) 2022.02.26
curl  (0) 2022.02.24
[Centos7] java 설치 및 환경변수 설정까지  (0) 2022.02.23
[Centos7]리눅스 사용자 관리  (0) 2022.02.22