ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 환경 변수 PATH
    Technique/LPIC 2019. 4. 26. 14:09
    반응형

    프롬프트가 표시되어 있는 상태에 커맨드를 입력하면 셸에는 그 커맨드가 실행된다. 커맨드에는 내부 커맨드와 외부 커맨드 2종류가 있다

    • 내부 커맨드 : 셸 자체에 들어가 있는 것
    • 외부 커맨드 : 독립된 프로그램으로서 존재하는 것

    외부 커맨드의 경우 셸은 그 커맨드가 어디에 위치하고 있는가를 환경 변수 PATH에 지정된 디렉터리를 차례대로 조사하여 찾아낸다. 커맨드가 위치되어 있는 디렉터리를 환경 변수 PATH에 추가하는 것을 [패스가 통한다]라고 말한다. 패스가 통과하지 않은 경우엔 놓여 있는 커맨드 나 프로그램을 실행하는 경우에는 절대 패스 ( 풀 패스 ) 또는 상대 패스를 지정할 필요가 있다. 절대 패스는 최상위 디렉터리 ( / )로부터 표기하는 방법으로 시스템 내 파일의  위치를 단번에 표시한다. 반면에 /로부터 시작하지 않는 디렉터리 표기를 상대 패스 표기라고 말하며, 현재 디렉터리 (. )을 기점으로 한 상대 위치로 나타낸다.

    예를 들어 일반 유저가 /sbin/ifconfig 커맨드를 실행하려고 해도 일반 유저의 환경 변수 PATH에는 /sbin이 기재되어 있지 않기 때문에 커맨드를 찾을 수 없어 에러가 된다.

    PATH 변수에 포함하지 않은 디렉터리에 있는 커맨드에 절대 패스를 지정한다면 실행할 수가 있다. ( 커맨드를 실행하는 권한이 필요하다 )

    환경 변수 PATH에 패스를 추가하기 위해서는 ~/.bash_profile 등의 환경설정 파일의 PAHT 설정을 수정하던가 하면 된다.

    다음의 커맨드를 사용한다.

    PATH=$PATH:추가하고자 하는 디렉터리명

    다음에는 /opt/bin 디렉터리를 환경 변수 PATH의 끝에 추가하고 있다.

    PATH=$PATH:/opt/bin

    셸은 환경 변수 PATH의 선두에서부터 순서대로 디렉터리를 검색하고 있다. 혹시 동명의 프로그램이 있을 경우에는 환경 변수 PATH의 선두에 가까운 것의 디렉터리에 놓여 있는 프로그램이 실행된다.

    다음의 예는 환경 변수 PATH에 추가하고 싶은 패스만을 지정하고 있다

    PATH=/opt/bin

    이렇게 설정하면 패스가 통과하고 있는 디렉터리는 /opt/bin뿐만 설정되어버려 외부 커맨드가 사용되지 않게 된다. ( 이 경우에도 절대 패스를 지정하면 사용하는 것이 가능하다 )

    보통, 보안상의 이유로부터 환경 변수 PATH에는 현재 디렉터리를 포함하고 있지 않는다. 그래서 현재 디렉터리에 있는 프로그램을 실행하기 위해서는 현재 디렉터리를 의미하는 [./ ]을 명시한다. 다음의 예에는 현재 디렉터리에 있는 프로그램을 실행한다.

    반응형

    'Technique > LPIC' 카테고리의 다른 글

    매뉴얼 참조  (0) 2019.05.07
    커맨드의 실행  (0) 2019.05.07
    셸의 변수와 환경 변수  (0) 2019.04.26
    셸의 기본 조작과 설정  (0) 2019.04.23
      (0) 2019.04.23

    댓글

Designed by Tistory.