방금 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
.so와 .so의 차이점을 이해하는 데 도움이 될 것이라고 생각했습니다. .zlogin
여기에 있는 지침이 도움이 될 것입니다.
답변1
파일 *profile
과 *login
파일은 동일한 조건에서 읽혀집니다. 즉, 쉘이 로그인 쉘인 경우에만 해당됩니다(그리고 와 같은 옵션 없이 호출된 경우 no_rcs
). 호출되는 순서는 파일에 따라 다르므로 매뉴얼에는 별도로 나열되어 있습니다 *rc
.
이름 *profile
은 sh
,본 쉘(대부분 ksh, bash, dash 등은 추가 기능을 추가하여 다시 구현한 것입니다.) 이름은 *login
다음에서 유래합니다.시추. Zsh는 sh와 비슷하지만 두 가지 기능을 모두 갖고 있으므로 두 이름을 모두 지원하는 것 같습니다.
*profile
일반적으로 또는 를 사용하면 문제가 되지 않습니다 *login
. 그러나 *profile
파일의 장점은 이전에 읽혀진다는 것입니다 . 따라서 콘텐츠가 의 설정에 따라 달라지는 *rc
경우 (예를 들어 에 추가한 디렉터리에 있는 프로그램을 호출하는 경우 ) 대신 파일을 사용해야 합니다.*rc
*profile
.zshrc
.zprofile
$PATH
*profile
*login
따라서 로그인 시간 구성(보통 주로 환경 변수)을 에 넣고 ~/.profile
대화형 구성(프롬프트, 완성, 키 바인딩, 별칭 등)을 ~/.zshrc
. 추가 시작 파일이 필요한 경우는 거의 없습니다.