Cygwin 셸에서 PATH를 수동으로 업데이트해야 합니까?

Cygwin 셸에서 PATH를 수동으로 업데이트해야 합니까?

저는 Windows 7에서 Cygwin을 사용합니다. 저는 실제로 Windows 사용자가 아니기 때문에 OS와 제가 선택한 셸인 Zsh 사이에 이 추가 계층을 두어야 한다는 것이 이미 약간 불편합니다.

이제 Windows에서 PATH를 자주 변경해야 합니다. 고급 시스템 기본 설정을 통해 변경하는 것입니다. 그러나 이 PATH 변경 사항은 Cygwin에서 Zsh로 전파되지 않는 것으로 나타났습니다.

좋습니다. 을 살펴보니 다음 .zshrc과 같은 내용이 나와 있습니다.

# User configuration

export PATH="/usr/local/bin:/usr/bin:/cygdrive/c/Program Files (x86)/Intel/iCLS Client:/cygdrive/c/Program Files/Intel/iCLS Client:/cygdrive/c/Program Files/Common Files/Microsoft Shared/Windows Live:/cygdrive/c/Program Files (x86)/Common Files/Microsoft Shared/Windows Live:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Program Files (x86)/Windows Live/Shared:/cygdrive/c/Program Files (x86)/Intel/OpenCL SDK/3.0/bin/x86:/cygdrive/c/Program Files (x86)/Intel/OpenCL SDK/3.0/bin/x64:/cygdrive/c/Program Files/Intel/Intel(R) Management Engine Components/DAL:/cygdrive/c/Program Files/Intel/Intel(R) Management Engine Components/IPT:/cygdrive/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/DAL:/cygdrive/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/IPT:/cygdrive/c/Program Files/ffmpeg/bin"
# export MANPATH="/usr/local/man:$MANPATH"

나는 그것을 추가하지 않았습니다(글쎄, 아마도 ffmpeg마지막 부분에 있을 수도 있습니다). 그거 어디서 났어? Cygwin은 Zsh를 설치할 때 처음에 이를 설정합니까? Oh-my-zsh가 어떻게든 알아낼 수 있나요? 어쨌든 그것은 어느 시점에서 내 PATH를 알고 그것을 내 .zshrc.

그만큼시그윈 FAQ말한다,

Cygwin이 시작되면 모든 Windows 환경 변수를 가져옵니다.

그러나 그렇지 않은 것 같습니다. 또는 Cygwin의 export PATH선언이 .zshrc무엇이든 덮어씁니다.

말할 필요도 없이 나는 매우 혼란스럽다. 질문은 다음과 같습니다.

Windows PATH를 편집할 때 Cygwin 셸에 변경되었음을 알리는 권장 방법은 무엇입니까? 항상 쉘 프로필을 수동으로 편집해야 합니까? 아니면 자동으로 생성될 수 있나요?

답변1

install.shoh-my-zsh 스크립트에서 다음을 볼 수 있습니다.

echo "\033[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.\033[0m"
sed -i -e "/export PATH=/ c\\
export PATH=\"$PATH\"
" ~/.zshrc

Cygwin 셸에 있는 PATH(Cygwin을 시작할 때 Windows에서 복사됨)는 설치 중에 .zshrc에 추가되어 효과적으로 잠겼습니다.

Cygwin은 시작 시 이러한 환경 변수를 선택한 다음 .zshrc(및 .zshenv와 같은 기타 파일)가 실행되어 내보낸 모든 환경 변수를 재정의합니다.

.zshrc에서 내보내기 문을 제거한 경우 Zsh는 Windows의 PATH여야 하는 상위 프로세스에서 PATH를 선택합니다.

관련 정보