Hello, Freakin world!

[Ubuntu] 쉘 환경 - 환경 변수, 쉘 변수 본문

OS/Ubuntu

[Ubuntu] 쉘 환경 - 환경 변수, 쉘 변수

johnna_endure 2020. 5. 28. 14:40

환경에는 어떤 것들이 저장될까?

bash에서는 구분하기 힘들지만 쉘은 환경에 두 가지 기본적인 형식을 저장합니다. 하나는 환경 변수이고, 다른 하나는 쉘 변수입니다.
쉘 변수는 bash에 의해 저장된 작은 데이터고, 환경 변수는 기본적으로 그 밖의 모든 것입니다. 별칭 그리고 쉘 함수와 같은 프로그램 데이터도 저장합니다.

 

환경 변수 찾아보기

환경에 저장된 것이 무엇인지 보려면 bash에 내장된 set 명령어나 printenv 프로그램을 사용하면 됩니다.
set 명령어는 쉘 변수와 환경 변수 모두를 보여주고, printenv 명령어는 오직 환경 변수만을 보여줍니다.

 

set

$ set | less

위를 프롬프트에서 실행하면 정렬된 환경 변수와 쉘 변수들을 볼 수 있습니다.
결과들을 쭈욱 살펴보면 '대문자=값'으로 된 형태가 환경 변수 그리고 맨 아래 소문자로 시작하는 변수들이 쉘 변수임을 알 수 있습니다.

쉘 변수는 값과 페어링 되어 있는 형태는 아니지만 echo 명령어를 통해 확인해보면 값을 가지고 있네요.

 

printenv

$ printenv | less

실행해보면 정렬되지 않은 환경 변수 리스트를 볼 수 있습니다.

 

흥미로운 환경 변수들

아래의 변수들은 프롬프트 창에서 아래의 명령어로 값을 확인할 수 있습니다.

$ echo $변수명
  • DISPLAY : 그래픽 환경 사용자인 경우 디스플레이명. 보통은 :0인데 X 서버에 의해 생성된 가장 첫 번째 디스플레이라는 것이다.
  • EDITOR : 텍스트 편집에 기본적으로 사용되는 프로그램 이름.
  • SHELL : 사용자의 쉘 프로그램 이름
  • HOME : 홈 디렉토리 경로명
  • LANG : 사용자 언어의 문자셋과 정렬 방식 정의하기
  • OLD_PATH : 이전 작업 디렉토리
  • PAGER : 페이지 출력에 사용되는 프로그램 이름
  • PATH : 실행 프로그램명을 입력할 때, 그 이름을 찾는 디렉토리 목록(콜론으로 구분)
  • PS1 : 프롬프트 문자열
  • PWD : 현재 작업 디렉토리
  • TERM : 사용자 터미널 타입 이름
  • TZ : 타임존(Timezone).사용자의 시간대를 설정
  • USER : 사용자 이름

 

참고 : 리눅스 커맨드라인 완벽 입문서 [윌리엄 E.사츠 주니어 지음/이종우,정영신 옮김] 

Comments