로그인 셸인 Z 셸에 있는지 확인하세요.

로그인 셸인 Z 셸에 있는지 확인하세요.

~에 따르면문서

.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

zshenvsettings 가 아니며 $PATH, zprofile로그인 시 환경을 설정하는 역할을 합니다. 환경 변수를 설정한다는 것은 세션 내에서 zshenv간단한 zsh서브셸이나 스크립트를 실행할 zsh때 해당 변수가 삭제된다는 것을 의미합니다.

답변2

로그인 셸인 Z 셸에 있는지 확인하세요.

.zshenv컴퓨터에 SSH로 접속할 때 실행되어야 합니다. 실행되지 않는 경우

  • 다음 명령을 사용하여 시스템에 SSH로 접속할 때 Z 쉘에 있는지 확인하세요.echo $SHELL
  • Z 셸에 있지 않은 경우 zsh이를 실행하여 Z 셸을 명시적으로 시작하고 .zshenv작업을 확인합니다. 그렇다면 실행하여 exitZ 쉘을 종료하십시오.
  • 파일이 유효하면 로그인 쉘을 변경하십시오.
    • SSH를 통해 로그인할 때
    • 이를 실행하면 command -v zshZ 쉘이 어디에 있는지 알 수 있습니다. 아무것도 반환되지 않으면 Z 쉘을 설치해야 합니다.
    • 그런 다음 실행 chsh하고 Z 쉘에 대한 경로를 제공하십시오.
    • 로그아웃했다가 ssh를 사용하여 다시 로그인하세요.

관련 정보