$PATH를 echo하면 다음과 같은 메시지가 표시됩니다 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 변수와 다릅니까?
답변1
/etc/paths
$PATH
쉘 프로세스의 일부를 설정하는 데 사용됩니다 . 새 터미널 창을 열면 시작되고 bash
여러 시작 스크립트가 실행됩니다. /etc/profile
AND ~/.bash_profile
OR 존재하지 않는 경우 ~/.bash_login
OR 존재하지 않는 경우 ~/.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:"에서 at로 많은 항목을 추가하는 것 같습니다 . 시작 부분 $PATH
(이 디렉토리가 먼저 검색됨을 의미함) 및 ":/Users/mac/Library/Android/sdk" /platform-tools:/platform-tools"가 끝에 추가됩니다. 무엇을 해야 할지 정확히 알고 싶다면 추가하려면 시작 스크립트를 살펴봐야 합니다.
그런데 이 설정 프로세스는 $PATH
bash "로그인" 셸에서만 작동합니다. bash 쉘에 의해 실행되는 모든 것은 bash 쉘 $PATH
에서 상속되므로 본질적으로 동일한 내용을 가질 수 있습니다. bash 비로그인 셸은 약간 다른 설정 프로세스를 따릅니다. 다른 쉘과 쉘에서 전혀 시작되지 않는 것(크론 작업 등)은 완전히 다른 $PATHs
.
답변2
수정 사항을 확인하는 첫 번째 장소는
~/.profile
~/.bashrc
~/.bash_profile
Bash를 사용하지 않는 경우 구성 파일에서 PATH가 언급되어 있는지 확인하세요.