일부 애플리케이션에서는 PATH 환경 변수에 무언가를 추가하라고 지시합니다. 한 가지 방법은 에 파일을 생성하는 것이지만 변수가 저장된 파일이 어디에 있는지 ~/.zshrc
알고 싶습니다 .PATH=...
내가 입력하면 echo $PATH
다음과 같은 결과가 나타납니다.
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Xamarin Workbooks.app/Contents/SharedSupport/path-bin
/etc/paths
내가 얻는 파일에서 :
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
그렇다면 추가 경로가 추가된 파일은 무엇입니까?
댓글에 답장:
나는 다음을 얻습니다: (내 사용자 이름을 로 변경한 것을 용서해 주십시오 alice
)
grep: /Users/alice/.profile: No such file or directory
grep: /etc/environment: No such file or directory
grep: /etc/zsh/zprofile: No such file or directory
grep: /Users/alice/.zshrc: No such file or directory
grep: /Users/alice/.profile: No such file or directory
답변1
당신이 말했듯이당신 자신의 대답PATH
, 변수가 처음에 어디에 채워졌는지 알 필요가 없습니다 .
PATH
끝이나 시작 부분에 쉽게 새 경로를 추가할 수 있으며, zsh
중복된 경로도 편리하게 제거할 수 있습니다.
먼저 다음을 사용하여 PATH
변수 및 관련 배열을 고유하게 만들 수 있습니다.path
typeset -U -g PATH path
그러면 변수는머무르다이 순서로 인해 고유합니다.
몇 가지 경로를 추가하려면:
path=( /new/path1 /new/path2 $path )
여러 경로를 추가하려면:
path=( $path /new/path1 /new/path2 )
또는,
path+=( /new/path1 /new/path2 )
그에 따라 변수 값이 PATH
업데이트됩니다.
$ZDOTDIR/.zprofile
로그인 셸에서 자동으로 선택되는 파일에서 이 작업을 수행할 수 있습니다 . 파일 소스가 다음과 같으므로 zsh
파일에서 이 작업을 수행할 필요가 없습니다.$ZDOTDIR/.zshenv
어떤 유형호출합니다 zsh
(필요한 경우 매우 짧게 유지해야 합니다. ZDOTDIR=$HOME/.zsh
예를 들어 그냥 거기에 설정하고 있습니다).
이미 PATH
환경 변수이므로 다시 내보낼 필요가 없습니다.
답변2
이 파일은 기본값을 설정하는 /etc/zprofile
데 사용되며 이에 대한 소스 코드가 없습니다./usr/libexec/path_helper
PATH
사용자의 상황에 따라 수정하는 방법은 다음과 같습니다 PATH
.
~/.zprofile
다음을 생성/편집 하고 추가합니다.
# append to PATH
export PATH="$PATH:.../to/target/bin"
# prepend to PATH
export PATH=".../to/target/bin:$PATH"
# remove duplicate in PATH
typeset -U PATH
답변3
다음 단계에서는 시스템을 수정하는 방법을 보여줍니다 PATH
.
명명 규칙에 따라 파일을 생성합니다: Priority-appname(예: '20200418-vscode', 우선 순위를 고유하게 만들기 위해 날짜를 사용했습니다). 그런 다음 추가하려는 경로를 저장합니다
PATH
.파일을
/etc/paths.d/
완료로 이동합니다.
참고 1:을 보려면 새 터미널 세션을 생성해야 합니다 echo $PATH
.
참고 2: 이 방법만 해당추가당신의 길 PATH
.