환경 변수는 운영체제 (OS)가 컴퓨터 내의 어떤 경로에서든 OS 상에서 동작하는 프로그램을 참조하기 위한 설정값이라 보면 된다. 경로를 참조한다던지, 특정 값 등을 참조한다.
나는 이렇게 이해했는데,
사과를 1번상자에서 1개를 꺼내서 출력하는 프로그램이 있다고 가정해보자.
내 컴퓨터 환경에서 1번상자는 A라는 디렉토리에 존재하고, 프로그램에서도 A 디렉토리를 기본값으로 참조한다.
하지만 이 프로그램을 친구가 빌려갔는데 친구의 컴퓨터에는 1번상자가 B디렉토리에 있다.따라서 프로그램을 그냥 실행하면 경로를 찾을 수 없다고 뜰 것이다.
이때 친구 컴퓨터의 환경 변수값으로 B 디렉토리를 지정해 줌으로써 친구는 드디어 사과를 출력할 수 있게된다.
(내맘대로 이해한 것이라 틀릴수도 있다..)
1번상자가 OS상에 어느 경로(Path)에 존재하는지 알려 줌으로써, 출력을 위해 1번 상자가 있는 디렉토리로 이동 하지 않고도 설정된 환경변수를 참조해서 바로 상자가 있는곳을 찾을 수 있다. 왠지 포인터를 공부했을때와 비슷한 감각이다.
리눅스 에서의 환경변수
리눅스에서의 환경 변수는 윈도우와는 조금 다른데 임시적인 환경변수랑 영구적인 환경변수 두가지가 존재한다.
임시적 지역 환경변수는
>> thisis = env_variable ( 변수이름 = 변수값 )
임시적 전역 환경 변수는 (export)
>> export applebox="these are apple boxes"
환경 변수값이 잘 적용 되었는지 확인하려면 echo ${환경변수명} 을 쓴다.
>> echo $thisis (값: env_variable) / echo $applebox (값: there are apple boxes)
영구적인 지역 환경 변수는
>> .zshrc(맥) or .bashrc 를 편집기로 연다
>> 맨 아래로 이동 후 환경변수 작성 및 저장
>> source .bashrc를 입력해 확인한다.
영구적인 전역 환경 변수는
>> root 내의 etc 디렉토리 안 profile 파일의 권한 변경한다 (기본값 r--r--r--)
>> 편집기로 profile 파일을 연다
>> 맨 아래로 이동 후 환경변수 작성 및 저장
>> source /etc/profile 입력해 확인한다.
터미널에 export 를 입력하면 생성된 환경변수와 export 키워드를 통해 설정한 환경 변수들의 목록이 나온다.