~에 따르면문서
.zshenv
-f 옵션이 설정되지 않은 경우, 쉘에 대한 모든 호출에서 이 정보를 얻습니다. 여기에는 명령 검색 경로를 설정하는 명령과 기타 중요한 환경 변수가 포함되어야 합니다..zshenv
출력을 생성하거나 쉘이 tty에 연결되어 있다고 가정하는 명령을 포함해서는 안 됩니다.
좋아요, 좋습니다. ssh를 통해 로그인하는 것은 zsh를 호출하는 것으로 간주된다고 가정하겠습니다. 하지만 그렇지 않을 수도 있을까요?
wayne@arglefraster ~
⚘ echo $PATH 10:01:17
/usr/local/heroku/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
wayne@arglefraster ~
⚘ zsh 10:01:20
e%
wayne@arglefraster ~
⚘ echo $PATH 10:01:24
/usr/local/heroku/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/wayne/.rvm/bin:/home/wayne/.bin:/home/wayne/.local/bin
이러한 추가 경로 비트가 내 파일에 추가됩니다 .zshenv
.
이게 정상인가요, 아니면 제게 이상한 일이 일어나고 있나요? PATH 수정 사항을 다른 곳으로 옮겨야 합니까?
답변1
zshenv
실제로는 쉘의 모든 인스턴스에서 읽혀지지만첫 번째,첫 번째. ( 또는 , ...) $PATH
에서 재설정할 수 있습니다 .zprofile
~/.zprofile
/etc/zprofile
zshenv
settings 가 아니며 $PATH
, zprofile
로그인 시 환경을 설정하는 역할을 합니다. 환경 변수를 설정한다는 것은 세션 내에서 zshenv
간단한 zsh
서브셸이나 스크립트를 실행할 zsh
때 해당 변수가 삭제된다는 것을 의미합니다.
답변2
로그인 셸인 Z 셸에 있는지 확인하세요.
.zshenv
컴퓨터에 SSH로 접속할 때 실행되어야 합니다. 실행되지 않는 경우
- 다음 명령을 사용하여 시스템에 SSH로 접속할 때 Z 쉘에 있는지 확인하세요.
echo $SHELL
- Z 셸에 있지 않은 경우
zsh
이를 실행하여 Z 셸을 명시적으로 시작하고.zshenv
작업을 확인합니다. 그렇다면 실행하여exit
Z 쉘을 종료하십시오. - 파일이 유효하면 로그인 쉘을 변경하십시오.
- SSH를 통해 로그인할 때
- 이를 실행하면
command -v zsh
Z 쉘이 어디에 있는지 알 수 있습니다. 아무것도 반환되지 않으면 Z 쉘을 설치해야 합니다. - 그런 다음 실행
chsh
하고 Z 쉘에 대한 경로를 제공하십시오. - 로그아웃했다가 ssh를 사용하여 다시 로그인하세요.