[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로 삼다수를 출력할 수 있습니다. 뿐만 아니라 경로도 동적으로 할당할 수 있다는 것에 주목해주세요.
정말 블로그 타이틀처럼 초등학생도 이해하기 쉽게 써놓으셨네요 감사합니다.
답글삭제말씀 감사해요. ㅎㅎ 힘이 나네요.
삭제블로그 관리자가 댓글을 삭제했습니다.
삭제감사합니다!! 잘봤어요~
답글삭제감사합니다! 많은 도움이 되었습니다!
답글삭제깔끔한 설명 감사드립니다 개념 이해하는데 많은 도움이 됐어요!
답글삭제감사합니다 ㅎㅎ
삭제오 설명 너무 감사합니다. 그런데 export가 쉘변수를 환경변수로 지정할때 쓰는거라면 굳이 사용할 이유가 있나요? 어차피 쉘을 나가면 지정된게 사라지는데 그럼 일반변수를 지정한거랑 차이가 없는거같아서요
답글삭제ㅇㅇㅇ
답글삭제bash echo $SHELL 이 아니라,
답글삭제echo $SHELL 아닌가요?
와우 재료공부하는 대학원생인데 컴알못인데 ab initio 계산하는데 많이 도움됐습니다
답글삭제