방금 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
. 다른 시작 파일은 거의 필요하지 않습니다.