에 포함되어야 할 것과 포함되어서는 안 될 것에 대한 정보를 찾고 있습니다 zsh
.
나는 이러한 파일의 원본 순서와 원본 조건을 이해하지만 각 파일에 무엇이 있어야 하는지는 여전히 명확하지 않습니다.
답변1
다음은 각 파일에 포함되는 내용을 실행 순서대로 나열한 대략적인 목록입니다.
.zshenv
예언제나원천. 일반적으로 다른 프로그램에서 사용할 수 있는 내보낸 변수가 포함되어 있습니다. 예를 들어,$PATH
,$EDITOR
및$PAGER
는 에 설정되는 경우가 많습니다.zshenv
. 또한 나머지 zsh 구성$ZDOTDIR
에 대해 대체 위치를 지정하도록 설정할 수 있습니다 ..zshenv
.zprofile
로그인 쉘에 사용됩니다. 이전 과 이후.zlogin
에 얻은 점을 제외하면 기본적으로 와 동일합니다 . zsh 문서에 따르면,.zshrc
.zlogin
.zshrc
" ksh 팬을 위한 대안.zprofile
으로 고안되었습니다.zlogin
. 두 가지를 함께 사용하도록 의도된 것은 아니지만 원하는 경우 확실히 사용할 수 있습니다.".zshrc
대화형 쉘에 사용됩니다.setopt
및 명령을 사용하여 대화형 셸에 대한 옵션을 설정할 수 있습니다unsetopt
. 또한 셸 모듈 로드, 기록 옵션 설정, 프롬프트 변경, zle 및 완료 설정 등을 수행할 수 있습니다. 대화형 셸에서만 사용되는 변수를 설정할 수도 있습니다(예$LS_COLORS
: )..zlogin
로그인 쉘에 사용됩니다. 이는 로그인 셸 시작 시 발생하지만 이후에는 발생하지 않습니다(.zshrc
셸도 대화형인 경우). 이 파일은 일반적으로 사용됩니다startx
. 일부 시스템은 부팅 시 X를 시작하므로 이 파일이 항상 유용한 것은 아닙니다..zlogout
때로는 터미널을 지우고 재설정하는 데 사용됩니다. 열릴 때가 아니라 나갈 때 호출됩니다.
당신은 경험해야임의의 Github 사용자 프로필각 파일에 무엇이 포함되어야 하는지 더 잘 알아보세요.
답변2
제 생각에는 각 파일에 포함되어야 할 것과 포함하지 말아야 할 것의 목록은 다음과 같습니다.
.zshenv
[읽을 때마다]
이 파일은 항상 소스로 제공되므로 필요한 환경 변수를 설정해야 합니다.자주 업데이트하세요.길(또는 그에 상응하는길)은 업데이트를 위해 전체 세션을 다시 시작하고 싶지 않기 때문에 좋은 예입니다. 이 파일에 설정하면 터미널 에뮬레이터를 다시 열면 다음을 포함하는 새 Zsh 인스턴스가 시작됩니다.길값이 업데이트되었습니다.
하지만 파일이단일 명령을 실행하기 위해 Zsh를 시작하더라도 읽을 수 있습니다.(그리고-씨옵션) 또는 make
.표준 명령의 기본 동작을 수정하지 않도록 주의하세요.왜냐하면 일부 도구가 손상될 수 있기 때문입니다(예: 별칭 설정으로 인해).
.z 구성 파일
[로그인 상태에서 읽기]
저는 개인적으로 파일을 다음과 같이 취급 .zshenv
하지만 명령과 변수는 한 번만 설정해야 합니다.자주 업데이트할 필요가 없습니다.:
- 도구를 구성하는 데 사용되는 환경 변수(컴파일 플래그, 데이터 폴더 위치 등)
SCONSFLAGS="--jobs=$(( $(nproc) - 1 ))"
실행에는 다소 시간이 걸릴 수 있으므로 구성 명령(예: )을 실행하십시오 .
이 파일을 수정하는 경우 로그인 셸을 실행하여 구성 업데이트를 적용할 수 있습니다.
exec zsh --login
.zshrc
[상호작용하면서 읽기]
여기에 필요한 모든 것을 넣었습니다대화형 사용:
- 빠르게,
- 명령이 완료되었습니다.
- 명령 수정,
- 명령 조언,
- 명령 강조,
- 출력채색,
- 별명,
- 키바인딩,
- 명령 이력 관리,
- 기타 기타 대화형 도구(auto_cd, Manydots-magic)...
.z로그인
[로그인 상태에서 읽기]
이 파일은 유사 .zprofile
하지만 나중에 읽습니다 .zshrc
. .zlogin이 실행될 때 쉘이 완전히 설정된 것으로 간주할 수 있습니다.
따라서 저는 이를 쉘의 동작을 수정하지 않는 외부 명령(예: 로그인 관리자)을 실행하는 데 사용합니다.
.zlogout
[로그아웃 시 읽기][로그인 쉘 내]
여기에서 로그인할 때 설정된 터미널이나 기타 리소스를 지울 수 있습니다.
설정할 위치를 어떻게 선택하나요?
- 필요한 경우명령은 비대화형으로 실행됩니다.:
.zshenv
- 만약 그래야 한다면모든 새 셸에서 업데이트:
.zshenv
- 명령을 실행하면완료하는 데 다소 시간이 걸릴 수 있음:
.zprofile
- 만약에 관련이 있다면대화형 사용:
.zshrc
- 만약 그것이라면쉘이 완전히 설정된 후 실행할 명령:
.zlogin
- 그 경우리소스 해제로그인 시 받기:
.zlogout
답변3
기억하고 유지하기 쉬운 간단한 솔루션을 원하는 분들을 위해 제가 사용하고 권장하는 설정은 다음과 같습니다(적어도 Mac OS 사용자의 경우).
- 모든 공통 항목을 and 에 넣으십시오
.zshenv
..bash_env
나머지 항목은 이제 비어 있어야 하며 제거할 수 있습니다(쉘에 특정한 것이 아닌 한, 4단계 참조). .zshenv
및 에 동일한 콘텐츠가 있는지 확인하세요 ..bash_env
- 콘텐츠를 제거
.bash_env
하고 넣어서 모든 것을 한 곳에 보관하세요.
if [ -f $HOME/.zshenv ]; then
source $HOME/.zshenv
fi
- (나중에 실행될 때)
.zlogin
셸별로 덮어쓸 수 있도록 만들어졌습니다 ..bash_login
.zshenv/.bash_env
- (선택 사항) 일부 설치 프로그램이 자동으로 콘텐츠를 생성하고 추가할 수 있으므로 , , 을(를 )
.zprofile
모니터링 하세요..bash_profile
.bashrc
.zshrc