“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.