본문 바로가기
카테고리 없음

[Linux] 환경 변수 & Java,Tomcat 환경 변수 설정 이유

by 떵해이 2020. 11. 16.
300x250

환경변수를 배우기 이전에 쉘에 관해 공부를 하여야 이해에 도움이 됩니다.

 

○ 환경 변수란 ?

    ▷ 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임

 

    ▷ 그 값들이 쉘에서 정의되고, 실행하는 동안 프로그램에 필요한 변수를 나타내줌

 

    ▷ 현재 사용하고 있는 쉘의 실행파일에 대한 위치를 저장하는 변수이다.

 

    ▷ 쉽게 말해 언제 어디서든 실행파일을 사용하고 싶은 경우에 대게 설정을 한다.

        (실행파일 경로를 설정하기 위해 환경 변수를 설정한다고 해도 과언이 아닙니다.)

        (예로 java나 tomcat을 사용할 때 환경변수를 설정한다.)

 

    ▷ 여러가지 문자를 다 쓰기 싫어서 줄여서 쓰고 싶을 때 설정을 한다.

 

    ▷ 그 설정을 쉘이라는 것에 따라 모두가 사용할 수 있고, 특정 사용자만 사용할 수 있다.

 

 

이해가 안가신다면 아래 추가 설명을 참고하시면 됩니다.

이해를 돕기 위한 설명입니다. 나중에 아래에서는 실행파일 경로에 대한 예시도 들어보겠습니다.

 

'$' 문자는 유닉스 시스템의 쉘 스크립트에서 변수를 불러오는 중요한 문자입니다.

                쉽게 말해 참조하라는 뜻

 

# export etcp="/etc/profile" 이렇게 환경 변수를 등록해줍니다.

# export [변수명]=[환경 변수] : 환경 변수 설정

(이 때 변수명과 데이터값 사이에 있는 = 과 띄워쓰면 오류가 납니다.)

 

 

# echo $etcp 명령어로 환경 변수가 설정되어 있는 것을 확인합니다.

# echo [$변수명] : 환경 변수 출력

 

 

/etc/profile에 들어가서 시스템 전체 환경 변수를 등록하고 싶을 때

# vi $etcp 명령어로 내가 설정해놓은 것 처럼 쉽게 사용할 수 있음

 

 

● 환경 변수 3가지

 

▷ 로컬 환경 변수

 

    - 현재 세션에만 동작하는 환경 변수

 

    - 그 자리에서 export 명령어로 지정 가능

 

▷ 사용자 환경 변수

 

    - 특정 사용자만 사용할 수 있게 만든 환경 변수

  

    - .bash_profile 이라는 특정 사용자의 홈 디렉토리에 존재하는 파일에 환경 변수 설정

 

▷ 시스템 전체 환경 변수

 

    - 모든 사용자가 사용할 수 있게 만든 환경 변수

 

    - /etc/profile 이라는 파일에 환경 변수 설정

 

 

※ 참고로 설정하는 위 파일들은 여러개가 존재합니다. 대표적인것만 적었습니다.

 

.bash_profile 은 특정 사용자가 원격 로그인 세션이 이루어질 시에 파일 호출

/etc/profile 은 모든 사용자가 로그인 세션이 이루어질 때 파일 호출

 

환경 변수 조회

 

# env 글로벌 환경 변수 조회 (모든 사용자 적용 되는 것)

 

# set 로컬 환경 변수 조회 (특정 사용자 적용되는 것) + 쉘 환경을 설정할 수 있음(옵션 사용)

 

 

● 환경 변수 자주 사용하는 용어

 

# echo [$변수명] 명령어로 한번 검색해보면 감이 옵니다.

 

$HOME : 사용자 홈 디렉토리

 

$PATH : 실행 파일을 찾는 경로

 

$USER : 사용자 이름

 

$LANG : 프로그램 사용시 기본으로 지원되는 언어

 

$PWD : 사용자가 위치하고 있는 디렉토리

 

$PPID : 부모 프로세스ID

 

$UID : 사용자 UID

 

 

○ 환경 변수 경로(PATH) 설정

    ▷ 명령어로도 경로를 지정할 수 있습니다.

 

    ▷ 필자는 위에 기재한 파일 경로로 들어가서 직접 기입하는 것을 추천 (실수도 없고 확인도 편리)

 

    ▷ 설정의 이유는 현재 위치가 어디에 있든지 원하는 프로세스를 실행 가능

    (기존의 리눅스 명령어들도 기본적으로 등록이 되어있어서 사용 가능한 것입니다.)

 

    ▷ export PATH=$PATH:[경로] 를 써주시거나

        export PATH=[경로]:$PATH 를 써주시면 됩니다. 형식이 이렇습니다.

        (이렇게 사용하는 이유는 기존에 사용하는 기존의 환경변수를 불러들이기 위해서 입니다.)

        ($PATH: 이것을 사용하는 이유는 그 전에 기본적으로 환경변수 설정이 되어있는 것들도

         불러와서 계속 사용하기 위해 꼭 입력을 해주어야 합니다. 우리가 흔히 사용하는 ls, pwd 등

         명령어들이 다 기존의 환경변수에 다 등록되어 있기 때문입니다.)

 

        여러 경로를 적고 싶으시다면 콜론(:)으로 구분하고 뒤에 추가로 계속 적을 수 있습니다.

 

    ▷ 위와 같은 형식으로 /etc/profile 같은 파일안에 기입해주시면 됩니다.

 

    ▷ 설정을 마치면 # source /etc/profile 명령어로 적용시켜 줍니다.

                               # source [설정 파일]

 

 

○ Java, Tomcat 환경 변수 설정 이유

    ▷ Java에서 PATH를 잡는 이유 ?

 

    - javac 명령어를 어디서든 사용하기 위함입니다. (javac는 컴파일 기능을 합니다.)

 

    - bin 디렉토리 안에 모든 자바 전용 툴을 사용하기 위함입니다.

 

    ▷ JVM에 의해 java는 다른 폴더에서도 실행되지만, java를 컴파일할떄 필요한 javac는 path를
        잡지않으면 실행할 수 없습니다.

 

    ▷ Tomcat에서 CLASSPATH를 잡는 이유?

 

    - Java에서 path를 사용한다. Java에서는 class라는 것을 사용한다.

 

    - PATH와 비슷한 개념이지만, 자바의 class 파일들을 위한 환경 변수라고 생각하면 된다.

 

    - Java환경에서 컴파일 할 때 필요하다.

 

    - *.class가 모여있는 곳을 가르쳐준다.

       쉽게 말해 라이브러리(class파일)을 Java에게 위치를 알려주는 역할을 한다.

 

    - JDK가 제공하는 라이브러리를 사용할 수 있도록 하기 위한 설정이다.

 

 

예시) CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar 이렇게 만약 경로를 지정했다면

이 뜻은 너가 필요한 파일을

          .(현재 폴더) 랑

          $JAVA_HOME경로 참조해서 그 안에 lib디렉토리로 가서 tool.jar 랑

          $CATALINA_HOME경로 참조하여 그 안에 lib디렉토리로 가서 jsp-api.jar 랑

          $CATALINA_HOME경로 참조하여 그 안에 lib디렉토리로 가서 servlet-api.jar 중에 사용해라

반응형

댓글