설명: ZSH 시작/종료 파일

설명: ZSH 시작/종료 파일

방금 macOS Catalina로 업그레이드했고 새 셸은 ZSH입니다. 그래서 새로운 시작인 만큼 bash에서 했던 것처럼 별칭, 함수 등으로 쉘 환경을 설정해보려고 합니다. 무엇이 어디로 가는지 알아내려고 노력 중인데,선적 서류 비치

그런 다음 에서 명령을 읽습니다 $ZDOTDIR/.zshenv. 쉘이 로그인 쉘인 경우 /etc/zprofile및 에서 명령을 읽습니다 $ZDOTDIR/.zprofile. 그런 다음 셸이 대화형이면 /etc/zshrc및 에서 명령을 읽습니다 $ZDOTDIR/.zshrc. 마지막으로 쉘이 로그인 쉘인 경우 /etc/zlogin이를 $ZDOTDIR/.zlogin읽습니다.

혼란스러운 부분들...

  • 로그인 셸인 경우 읽은 /etc/zprofile다음$ZDOTDIR/.zprofile
  • 마지막으로 쉘이 로그인 쉘인 경우 /etc/zlogin이를 $ZDOTDIR/.zlogin읽습니다.

Mac에 SSH로 연결하면 로그인 셸이 됩니다. 그러면 이를 구성해야 하므로 어떤 파일을 수정해야 합니까(또는 수정해야 합니까)? 나는 그 질문에 대답하는 데 도움이 될 것이라고 생각합니다. .zprofile와 사이의 차이점을 이해하는 데 도움이 될 것입니다 .zlogin. 따라서 여기에 있는 지침은 훌륭할 것입니다.

답변1

파일 *profile*login파일은 동일한 조건에서 읽혀집니다. 즉, 쉘이 로그인 쉘인 경우에만 해당됩니다(그리고 와 같은 옵션으로 호출되지 않음 no_rcs). 매뉴얼에는 *rc파일과 관련하여 다른 순서로 호출되기 때문에 별도로 나열됩니다.

이름 은 *profile에서 유래되었습니다 sh.본 쉘(ksh, bash, dash 등은 대부분 추가 ​​기능을 사용하여 재구현되었습니다). 이름은 *login다음에서 유래합니다.csh. Zsh는 sh와 비슷하지만 두 가지 기능을 모두 갖추고 있으므로 두 이름을 모두 지원하는 것 같습니다.

*profile또는 를 사용하는지 여부는 중요하지 않은 경우가 많습니다 *login. 그러나 *profile파일은 이전에 읽혀진다는 이점이 있으므로 의 설정에 따라 달라지는 콘텐츠가 *rc있는 경우 (예를 들어 에 추가하는 디렉토리에 있는 프로그램을 호출하는 경우) 및 를 사용해야 합니다 .*rc*profile.zshrc.zprofile$PATH*profile*login

따라서 로그인 시간 구성(보통 대부분 환경 변수)을 에 넣고 ~/.profile대화형 구성(프롬프트, 완성, 키 바인딩, 별칭 등)을 에 넣습니다 ~/.zshrc. 다른 시작 파일은 거의 필요하지 않습니다.

관련 정보