[Linux, Unix] export, echo 명령어 알아보기

[Linux, Unix] export, echo 명령어 알아보기

export 그리고 echo 명령어

유닉스 환경에서 개발을 하다보면 export와 echo라는 명령어를 종종 사용하게 됩니다. 간단하게 정리하려고 합니다. 유닉스를 사용한다면 Bash, ZSH라는 이름을 많이 들어보셨을 텐데요. Bash와 Zsh는 쉘 스크립트 언어를 말합니다. 터미널을 키면 그 터미널이 동작하는 방식을 결정하는 것이 쉘 스크립트 언어입니다.

변수와 echo

우리가 알아볼 것은 운영체제 변수와 쉘 변수 입니다. 운영체제 변수는 우리 프로그램이 돌아가는 운영체제의 변수를 말하는 것이 쉘 변수는 터미널 내에서 변수를 말하는 것입니다.

water="삼다수"

명령어를 터미널에서 입력한다면 water라는 쉘 변수를 만드는 것이 됩니다. echo 명령어는 변수를 출력하는 프린트 함수인데요. 다음과 같이 입력하면 water에 저장된 값을 터미널에 출력합니다. 만약 $를 빼고 출력한다면 문자열을 출력하는 것으로 받아들여 water를 그대로 출력하게 됩니다.

echo $water
unset water

unset 명령어는 변수를 삭제하는 역할을 하지요. 내 컴퓨터가 어떤 쉘 스크립트 언어를 사용하는지 궁금하면 bash echo $SHELL 명령어를 통해서 어떤 쉘 스크립트 언어를 사용하고 있는지 알 수 있습니다.
지금까지의 변수들은 쉘 변수들을 다루어 보았구요. 이제 운영체제 변수에 대해서 알아보도록 할게요.

env

위의 명령어를 입력하게 되면 운영체제 변수들을 출력하게 됩니다. 모든 프로그램은 운영체제위에서 돌아가기 때문에 운영체제 변수를 다른 말로 환경변수라고도 합니다.

export

export 명령어를 통해서 쉘 변수를 환경변수로 저장할 수 있는데요.

export water

터미널에 위 명령어를 입력하고 env라고 입력하면 환경변수 목록에 water가 추가되었음을 확인할 수 있습니다. 하지만 이 환경변수는 터미널이 꺼지면 사라지게 됩니다.
매번 쉘을 실행할 때마다 쉘 변수를 환경변수로 자동으로 설정하고 싶다면 .bashrc 파일에 변수를 저장할 수 있습니다. bashrc 경로는 99퍼센트 확률로 홈 디렉토리에 있을 겁니다. 찾아가 보자면.

vi ~/.bashrc

에 들어가면 환경변수를 설정할 수 있습니다.

export water="삼다수"
export TEMP_DIR=/tmp
export BASE_DIR=$TEMP_DIR/backup

예를 들어 위와 같이 작성한 후에는 언제 터미널을 실행하더라도 echo $water로 삼다수를 출력할 수 있습니다. 뿐만 아니라 경로도 동적으로 할당할 수 있다는 것에 주목해주세요.

댓글

  1. 정말 블로그 타이틀처럼 초등학생도 이해하기 쉽게 써놓으셨네요 감사합니다.

    답글삭제
    답글
    1. 말씀 감사해요. ㅎㅎ 힘이 나네요.

      삭제
    2. 블로그 관리자가 댓글을 삭제했습니다.

      삭제
  2. 감사합니다! 많은 도움이 되었습니다!

    답글삭제
  3. 깔끔한 설명 감사드립니다 개념 이해하는데 많은 도움이 됐어요!

    답글삭제
  4. 오 설명 너무 감사합니다. 그런데 export가 쉘변수를 환경변수로 지정할때 쓰는거라면 굳이 사용할 이유가 있나요? 어차피 쉘을 나가면 지정된게 사라지는데 그럼 일반변수를 지정한거랑 차이가 없는거같아서요

    답글삭제
  5. bash echo $SHELL 이 아니라,
    echo $SHELL 아닌가요?

    답글삭제
  6. 와우 재료공부하는 대학원생인데 컴알못인데 ab initio 계산하는데 많이 도움됐습니다

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

뼈속 깊이 이해하기 :: 1. 허프만 코딩

IEEE 754 부동 소수점 반올림과 근사