유닉스 PATH 변수는 무엇이며 어떻게 추가합니까?


11

많은 프로그래밍 튜토리얼은 사용자에게 무언가를 추가하라고 요구 PATH하지만 그것이 무엇인지 설명하지는 않습니다. PATH명령 줄을 처음 사용하는 사용자에게 설명하는 기존 리소스 는 그리 좋지 않습니다.

  • 유닉스 PATH변수 는 무엇입니까 ?

  • 방금 프로그램을 다운로드 한 다음 터미널에서 명령을 실행하려고 시도했습니다 command not found. 이것은 무엇과 관련이 PATH있습니까?

  • PATH이 명령으로 무언가를 추가하고 작동했습니다.

    export PATH=/path/to/some/bin:$PATH
    

    ...하지만 다음에 command not found컴퓨터를 시작할 때 다시 얻었 습니다. PATH터미널을 열 때마다 어떻게 유지할 수 있습니까?

  • Git과 같은 프로그램 gcc이 이미 컴퓨터에로드 되어 있는지 확인하는 가장 좋은 방법은 무엇입니까 ?


3
나는 SO에 대한 많은 답변을 읽었으며 초보자가 이해할 수있는 방식으로 이러한 모든 질문에 대답하는 답변을 찾지 못했습니다. 새로운 명령 줄 사용자를 연결할 수있는 것이 필요합니다. 이것을 커뮤니티 위키로 추가하고 상당한 현상금을 첨부하는 것이 나의 희망이었습니다.
케빈 버크

4
이 질문에 대해 Google을 검색하면 50 개의 조회수를 찾을 수 있습니다. 왜 안돼?
trojanfoe

2
여기 에 해당되는 질문에 대해 해당 링크 SO를 가리키는 링크 가 없는 경우 여기에 추가해야합니다. 우리는 구글이 프로그래밍 질문을하는 곳이 되기를 원한다 .

이 질문을하는 Kevin의 동기에 대해서는 이 MSO 게시물 을 참조하십시오 . 그는 이 정보가 어떻게 도움이되는지 명확히하기 위해 편집 할 것입니다.
jmort253

1
@ jmort253 : 글쎄, 그는 빨리 그것을 시작해야합니다. 4/5 마감 투표. 나는 질문을 편집하고 싶어하기 때문에 닫히지 않을 것이지만 그는 더 빨리 질문하는 것이 좋습니다.
Madara의 유령

답변:


17

UNIX 경로는 실행하려는 프로그램을 찾을 디렉토리 목록 인 환경 변수입니다. /bin/ls예를 들어 /bin경로 에 넣는 등의 실행에 완전한 경로 이름을 사용하지 않아도됩니다 .

예를 들어, 경로는 다음으로 구성 될 수 있습니다.

/bin:/usr/bin:/usr/sbin

즉, 명령을 입력 xyzzy하면 현재 목록에서 찾은 첫 번째 파일을 실행하려고 시도합니다.

/bin/xyzzy
/usr/bin/xyzzy
/usr/sbin/xyzzy

( 실행 가능하지 않은 파일은 영리한 경우 건너 뛸 수 있습니다 ).

다음과 같은 명령을 사용하여 경로에 항목을 추가 할 수 있습니다.

set PATH=/directory/to/add:$PATH:/low/priority/path

어떤 장소 /directory/to/add의 경로 검색 목록의 시작과 /low/priority/path끝.

그러나 이것은 일반적으로 현재 쉘 에서만 변경됩니다 . 당신은 모든 쉘의 변화를 확인하려면, 당신은 당신의 시작 파일 중 하나에이 줄을 추가 좋아한다 $HOME/.profile/etc/profile. 사용할 올바른 파일은 셸 자체와 시작 파일을 설정 한 방법에 따라 다릅니다. 어디로 가야하는지 항상 쉽게 알 수는 없지만 일반적으로 사용하는 쉘에 대한 맨 페이지에 규칙이 설명되어 있습니다.

일반적으로 경로에서 다음 중 하나를 사용하여 명령을 찾을 수 있습니다 .

which cmd
whence cmd

cmd실행 파일 을 찾습니다 . 예를 들어, 데비안 시스템에서 다음과 같은 대화 내용이 표시됩니다.

pax> which ls
/bin/ls

pax> which firefox
/usr/bin/firefox

pax> which xyzzy

pax> 

1
이 질문이 stackoverflow에 속합니까?
trojanfoe

@trojanfoe, 쉘 관련 질문만큼이나 그렇습니다. 그렇습니다. 그것은 이다 또한 프로그래밍 언어.

:* nix에서 사용되는 구분 기호 로 사용하도록 답변을 수정했습니다 . Windows는 ;(에 :이미 의미가 있기 때문에 C:)를 사용합니다.
Joachim Sauer

실제로 @Joachim, 유닉스 자체가 아닌 주어진 에 특정 디렉토리 구분 기호가 있지만 머리 꼭대기에서 사용하는 모든 디렉토리 에 적합하다고 말하는 것이 더 정확할 수 있습니다. 해결 주셔서 감사합니다, 건배.

@ paxdiablo : 예, 그것에 대해 생각했지만 사용하지 않는 유닉스 쉘 :(Java에서는 path.separator항상 :* nix에 있음)을 생각할 수 없습니다 .
Joachim Sauer

5

뭐가?

PATH 환경 변수는 명령을 입력 할 때 쉘이 검색하는 콜론으로 구분 된 디렉토리 목록입니다.

어떻게 설정합니까?

PATH=$PATH:/your/directory
export PATH

터미널을 열 때마다 PATH에 어떻게 머물 수 있습니까?

앞의 두 줄을 안에 넣으십시오 ~/.bash_profile( bash터미널에 사용 하는 경우).


3

PATH는 유닉스 계열 시스템의 환경 변수입니다.

경로 설정 :

export PATH=$PATH:<your path>

설정되지 않은 경로 :

unset $PATH

경로를 영구적으로 설정

홈 폴더에서 View-> Show Hidden Files .... pen .bash_profile 파일을 활성화하고 PATH 줄을 내보내기 전에이 줄을 추가하십시오 .....

PATH=$PATH:<yourpath>

로그 아웃 한 후 다시 로그인하십시오. 작동하는지 확인하십시오. 작동해야합니다 .....


1
downvote에 대해 죄송하지만 형식이 잘못 지정되었습니다. 과감하고 과도하게 줄임표 ( "...")를 과도하게 사용하지 말고 문장 전체를 쓰십시오. 앞으로 이러한 다운 보트를 피하는 데 도움이됩니다.
Joachim Sauer

1
@Joachim Sauer 왜 대답을 편집하지 않습니까? 왜 다운 보트를 선호합니까?

1
@ MikroDel : 이미이 질문에 대한 더 나은 고품질의 답변이 있기 때문에 다운 투표는 적은 노력을 기울입니다. 이것이 유일한 대답이라면 아마도 편집했을 것입니다. 또한 : 일반적으로 재미는 없지만 다운 보트는 합법적 인 도구입니다 (예, 각 질문 / 응답 옆에 위쪽 아래쪽 화살표가 있음).
Joachim Sauer

1
이 댓글을 편집하거나 게시하는 데 거의 같은 시간이 걸리지 만 더 나은 편집 기능을 제공하고 Shantanu Banerjee 및 기타 사용자를 도와

@ MikroDel : 따라서 downvote의 추론을 설명하는 것이 사용자에게 도움이되지 않습니까? 나는 나의 추론에 대해 꽤 분명하고 품질 향상에 대한 실질적인 팁을 제공했다고 생각합니다. 당신이 주장하는 유일한 것은 내 downvotes를 설명하려는 의지를 줄입니다 (내 프로필에서 볼 수 있듯이 과도하게 downvote하지 않습니다).
Joachim Sauer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.