“echo $ PATH”와 / etc / paths의 차이점은 무엇입니까?


10

$ PATH를 에코하면 다음과 같이 나타납니다 Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/mac/Library/Android/sdk/platform-tools:/platform-tools.

이것에서 일부 경로를 제거하고 싶지만 명령을 사용하여 파일을 열면 vim /etc/paths다음 결과가 나타납니다.

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

/ etc / paths 파일이 $ PATH 변수와 다른가요?


어떤 OS X 버전입니까? 나는 /etc/paths내 안에 없지만, 나는 달리고 10.4.11있고 그때 이후로 상황이 바뀌었을 것입니다.
Fox

1
그러나에 따라 AskDifferent에 대한 답변 , /etc/paths기본 생성하는 데 사용됩니다 $PATH나중에 수정할 수
폭스

기본값입니다. 사용자가 자신의 쉘을 시작하는 시간으로하지만, 그것은 같은 소스를 쉘 다른 파일에 의해 수정 될 수 ~/.bashrc또는~/.profile
세르지 Kolodyazhnyy

답변:


14

/etc/paths$PATH쉘 프로세스 를 설정하는 데 사용되는 것의 일부입니다 . 새 터미널 창을 열면 AND bash시작 (존재하지 않는 경우 ) 또는 ( 존재하지 않는 경우) 여러 시작 스크립트가 실행됩니다 . 이 스크립트는를 포함하여 쉘 환경을 설정합니다 ./etc/profile~/.bash_profile~/.bash_login~/.profile$PATH

작업 중 하나 /etc/profile가 실행됩니다 /usr/libexec/path_helper.이 /etc/paths파일은에서 파일 을 읽고 /etc/paths.d내용을 추가합니다 $PATH. 그러나 이것은 시작에 불과합니다. 자신의 시작 스크립트 (있는 경우)가에 추가 $PATH, 편집, 완전히 교체 등을 할 수 있습니다 .

시작 스크립트 (및 / 또는 실행중인 것)가 기본 세트에 많은 항목을 추가하는 것처럼 보입니다 /etc/paths. "Users / myusername / .node_modules_global / bin : /Users/mac/.node_modules_global/bin :"이 시작 부분에 추가되고 $PATH(해당 디렉토리가 먼저 검색됨을 의미) ": / Users / mac / Library / Android / sdk / platform-tools : / platform-tools "가 끝에 추가됩니다. 무엇이 추가되는지 정확히 알고 싶다면 시작 스크립트를 봐야합니다.

BTW,이 설정 프로세스는 $PATHbash "login"쉘에만 적용됩니다. bash 쉘에 의해 실행되는 것은 $PATH그것으로부터 상속받을 것이므로 아마도 본질적으로 동일한 것입니다. 비 로그인 쉘 bash는 약간 다른 설정 프로세스를 따릅니다. 다른 쉘과 쉘에서 시작되지 않은 것 (예 : 크론 작업)은 완전히 다를 수 있습니다 $PATHs.


비 로그인 쉘의 경우 (예 : 인수 없이 /usr/local/bin/bash설치 한대로 ) 사용 되지 않으며 기본적으로에 포함되지 않습니다 . 스크립트에서 또는 대화식으로 사용하려면 명령은 입니다. brew-l/usr/libexec/path_helper/usr/local/bin$PATHpath_helpereval $(/usr/libexec/path_helper)
Kyle Strand

0

수정 사항을 확인하려는 첫 번째 장소는

~/.profile
~/.bashrc
~/.bash_profile

Bash가 아닌 것을 사용하는 경우 구성 파일에서 PATH에 대한 언급이 있는지 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.