Catalina에서 PATH 환경 변수를 수정하는 방법은 무엇입니까?

Catalina에서 PATH 환경 변수를 수정하는 방법은 무엇입니까?

일부 애플리케이션에서는 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_helperPATH

사용자의 상황에 따라 수정하는 방법은 다음과 같습니다 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.

  1. 명명 규칙에 따라 파일을 생성합니다: Priority-appname(예: '20200418-vscode', 우선 순위를 고유하게 만들기 위해 날짜를 사용했습니다). 그런 다음 추가하려는 경로를 저장합니다 PATH.

  2. 파일을 /etc/paths.d/완료로 이동합니다.

참고 1:을 보려면 새 터미널 세션을 생성해야 합니다 echo $PATH.

참고 2: 이 방법만 해당추가당신의 길 PATH.

관련 정보