이렇게 하면 echo $PATH
다음과 같은 결과를 얻습니다.
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/local/share/npm/bin:/usr/local/share/python:/opt/X11/bin :/Users/kh/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin
이것은 내 ~/.zshrc 파일에 있습니다.
내보내기 경로=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/local/share/npm/bin:/usr/local/share/python:/opt/ X11/bin:$HOME/.rvm/bin:$PATH
homebrew가 불평하기 때문에 이 파일 앞에 /usr/local/etc...를 수동으로 추가해야 했습니다.
$PATH가 빌드된 위치를 찾기 위해 가능한 모든 파일(내가 알고 있는)을 검색했습니다. 그러나 아무 소용이 없습니다. 이것들은 모두
~/.bash_profile
~/.bashrc
~/.profile
어떤 제안이라도.
답변1
/etc/paths
기본 경로는 macOS에서 정의됩니다. 하위 프로세스가 환경 변수를 상속하고 /usr/bin/
이를 환경 변수에 명시적으로 설정하므로 $PATH
항목이 중복됩니다.
중복 항목을 제거하려면 다음을 사용할 수 있습니다.
typeset -U PATH
위 명령의 결과는 다음과 같습니다.첫 번째값에 지정된 디렉터리 경로의 인스턴스 $PATH
는 유지되며 향후 중복 항목은 자동으로 제거됩니다. 이 효과는 현재 셸 세션 전체에서 지속되므로 새로운 중복 항목이 변수에 추가되는 것을 방지합니다.
답변2
어떤 다른 파일이 귀하의 파일을 설정하고 있는지 모르겠지만 $PATH
중복된 항목은 다음과 같습니다.
/opt/X11/bin
/usr/bin
/usr/local/bin
/usr/sbin
이들 모두는 이미 귀하의 에 설정되어 있으므로 ~/.zshrc
귀하가 해야 할 일은 거기에 설정하지 않는 것뿐입니다. 어쨌든 이는 기본값이어야 하며 $PATH
추가할 필요가 없습니다. 대부분의 시스템에는 $PATH
기본적으로 이러한 디렉터리가 포함되어 있으므로 ~/.zshrc
사용자 파일에 콘텐츠를 추가하면 비표준 디렉터리만 추가할 수 있습니다.
$PATH
진술을 다음으로 변경하십시오 .
내보내기 경로=/usr/local/sbin:/usr/local/share/npm/bin:/usr/local/share/python:$HOME/.rvm/bin:$PATH
답변3
~에 따르면ZSH 매뉴얼 페이지:
파일 시작/닫기
먼저 /etc/zshenv에서 명령을 읽습니다. 이는 재정의될 수 없습니다. 후속 동작은 RCS 및 GLOBAL_RCS 옵션에 의해 수정됩니다. 전자는 모든 시작 파일에 영향을 미치는 반면, 두 번째 동작은 전역 시작 파일에만 영향을 미칩니다(여기에 표시된 경로는 /로 시작함). 언제든지 이러한 옵션 중 하나가 설정되지 않으면 해당 유형의 후속 시작 파일을 읽을 수 없습니다. $ZDOTDIR의 파일은 GLOBAL_RCS를 다시 활성화할 수도 있습니다. RCS와 GLOBAL_RCS는 모두 기본적으로 설정됩니다.
그런 다음 $ZDOTDIR/.zshenv에서 명령을 읽으십시오. 쉘이 로그인 쉘인 경우 /etc/zprofile에서 읽은 다음 $ZDOTDIR/.zprofile에서 명령을 읽습니다. 그런 다음 셸이 대화형이면 먼저 /etc/zshrc에서 명령을 읽은 다음 $ZDOTDIR/.zshrc에서 읽습니다. 마지막으로, 쉘이 로그인 쉘이면 /etc/zlogin 및 $ZDOTDIR/.zlogin을 읽습니다.
따라서 다음 사항을 확인해볼 수 있습니다.
/etc/zshenv
/etc/zshrc
/etc/zlogin
그리고 그들이 우연히 획득한 모든 문서. OS X를 사용하고 있으므로 다음과 같은 내용을 찾을 수 있습니다.
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
그 중에 따르면path_helper 매뉴얼 페이지, 다음 사항도 살펴보겠습니다.
/etc/paths
/etc/paths.d/*
답변4
다음 구문을 사용하여 PATH에 추가 경로를 설정할 수 있습니다.
PATH=$PATH:/additonally_location
그래서 PATH는 중복되지 않는다고 생각합니다.