
$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
run 입니다 . 그러나 이것은 단지 시작점일 뿐입니다. 자신만의 시작 스크립트(존재하는 경우)에 추가 , 편집, 완전히 교체 등을 수행 할 수 있습니다./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"가 끝에 추가됩니다. 무엇이 추가되는지 정확히 알고 싶다면 시작 스크립트를 살펴봐야 합니다.
그런데 이 설정 프로세스는 $PATH
bash "로그인" 셸에만 적용됩니다. bash 쉘로 실행되는 모든 것은 bash 쉘 $PATH
에서 상속되므로 본질적으로 동일할 것입니다. bash 비로그인 쉘은 다소 다른 설정 프로세스를 따릅니다. 다른 쉘과 쉘에서 전혀 시작되지 않은 것(예: cron 작업)은 완전히 다른 $PATHs
.
답변2
수정 사항을 확인하려는 첫 번째 장소는 다음과 같습니다.
~/.profile
~/.bashrc
~/.bash_profile
Bash가 아닌 것을 사용하는 경우 해당 구성 파일에서 PATH에 대한 언급이 있는지 확인하세요.