리눅스 환경변수 설정하는 방법 (export, profile, bashrc)

리눅스는 환경변수(environment variable)를 지정해줘야 애플리케이션이 문제없이 실행 모듈을 로드할 수 있습니다. 환경변수가 설정되어 있어야 파일이 있는 경로를 찾아갈 수 있기 때문입니다.

환경변수

환경변수란 시스템 내에 저장된 키=값 세트입니다. 쉘 또는 서브쉘(쉘 스크립트에 의해 시작된 하위 프로세스)에서 실행되는 애플리케이션이 사용합니다.

 

[구문]

KEY=value
KEY="공백이 있는 값"
KEY=value1:value2:...
  • 변수 이름은 대소문자를 구분합니다.
  • 등호(=) 주위에는 공백을 두지 않습니다.
  • 따옴표(””)는 공백이 있는 값을 지정할 때 사용합니다.
  • 변수에 여러 값을 할 당할 때는 콜론(:)으로 구분합니다.

1. 환경변수 확인 방법

등록된 환경변수를 확인하기 위해서는 printenv 명령어를 사용합니다. 단독으로 사용 시 모든 환경변수 목록을 출력하고, 변수명을 붙여서 입력하면 해당 변수명의 환경변수 경로만 표시합니다.

 

[구문]

$ printenv [변수명]

[예시]

$ printenv HOME
/home/linux

변수는 쉘 변수와 환경변수로 구분할 수 있습니다. 둘 모두 키에 값을 저장하는 건 동일하지만, 쉘 변수는 현재 쉘에만 적용되는 변수입니다. 반면 환경변수는 시스템 전체에서 사용 가능한 변수이며 자식 쉘에게도 상속됩니다. 그러니 실제 사용되는 건 대부분 환경변수입니다. 

2. 쉘 변수 설정 방법

[예시]

$ Test="this is test"
$ set|grep Test
Test='this is test'
$ printenv Test

설정한 쉘 변수(Test)가 set 명령어를 통해 확인됩니다. 그러나 printenv 명령어로는 아무것도 출력이되지 않습니다. 환경변수에는 등록되지 않았다는 의미입니다.

3. 환경변수 설정 방법

시스템 전체에서 사용할 환경변수를 등록할 땐 export 명령어를 사용합니다.

 

[예시]

$ export Test
$ printenv Test
this is test

위 예시에서 쉘 변수로 등록한 Test를 export를 통해 환경변수에 등록했습니다. 이제 printenv를 통해 환경변수가 확인됩니다.

3-1. 영구 환경변수 설정 방법

환경변수는 특정 쉘 스크립트에서 등록할 수도 있지만 그런 경우 세션이 끝나면 환경변수도 사라집니다. 물론 startup.sh처럼 특정 애플리케이션 실행 쉘에 필요한 환경변수를 등록해주면 문제가 없긴 합니다만, 영구적으로 환경변수에 등록하는 방법도 알아보겠습니다.

  • /etc/profile : 이 파일에 설정한 변수는 bash 로그인 쉘에 진입할 때 로드됩니다.

[예시]

export JAVA_HOME="/path/to/java/home"
export PATH=$PATH:$JAVA_HOME/bin
  • ~/.bashrc : 사용자별 쉘 구성 파일입니다. ~를 붙이면 현재 사용자 경로가 붙기 때문에 현재 사용자 대상 bashrc입니다.
export PATH="$HOME/bin:$PATH"

bashrc에 저장한 경우 새 환경변수를 현재 쉘 세션에 로드하기 위해 source 명령어를 수행해야 합니다.

$ source ~/.bashrc

4. 환경 변수 설정을 해제하는 방법.

$ unset [변수명]
반응형

댓글

Designed by JB FACTORY