설정할 위치를 어떻게 선택하나요?

설정할 위치를 어떻게 선택하나요?

에 포함되어야 할 것과 포함되어서는 안 될 것에 대한 정보를 찾고 있습니다 zsh.

나는 이러한 파일의 원본 순서와 원본 조건을 이해하지만 각 파일에 무엇이 있어야 하는지는 여전히 명확하지 않습니다.

답변1

다음은 각 파일에 포함되는 내용을 실행 순서대로 나열한 대략적인 목록입니다.

  1. .zshenv언제나원천. 일반적으로 다른 프로그램에서 사용할 수 있는 내보낸 변수가 포함되어 있습니다. 예를 들어, $PATH, $EDITOR$PAGER는 에 설정되는 경우가 많습니다 .zshenv. 또한 나머지 zsh 구성 $ZDOTDIR에 대해 대체 위치를 지정하도록 설정할 수 있습니다 ..zshenv
  2. .zprofile로그인 쉘에 사용됩니다. 이전 과 이후 .zlogin에 얻은 점을 제외하면 기본적으로 와 동일합니다 . zsh 문서에 따르면,.zshrc.zlogin.zshrc" ksh 팬을 위한 대안 .zprofile으로 고안되었습니다 .zlogin. 두 가지를 함께 사용하도록 의도된 것은 아니지만 원하는 경우 확실히 사용할 수 있습니다."
  3. .zshrc대화형 쉘에 사용됩니다. setopt및 명령을 사용하여 대화형 셸에 대한 옵션을 설정할 수 있습니다 unsetopt. 또한 셸 모듈 로드, 기록 옵션 설정, 프롬프트 변경, zle 및 완료 설정 등을 수행할 수 있습니다. 대화형 셸에서만 사용되는 변수를 설정할 수도 있습니다(예 $LS_COLORS: ).
  4. .zlogin로그인 쉘에 사용됩니다. 이는 로그인 셸 시작 시 발생하지만 이후에는 발생하지 않습니다( .zshrc셸도 대화형인 경우). 이 파일은 일반적으로 사용됩니다 startx. 일부 시스템은 부팅 시 X를 시작하므로 이 파일이 항상 유용한 것은 아닙니다.
  5. .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 사용자의 경우).

여기에 이미지 설명을 입력하세요.

  1. 모든 공통 항목을 and 에 넣으십시오 .zshenv. .bash_env나머지 항목은 이제 비어 있어야 하며 제거할 수 있습니다(쉘에 특정한 것이 아닌 한, 4단계 참조).
  2. .zshenv및 에 동일한 콘텐츠가 있는지 확인하세요 ..bash_env
  3. 콘텐츠를 제거 .bash_env하고 넣어서 모든 것을 한 곳에 보관하세요.
   if [ -f $HOME/.zshenv ]; then
           source $HOME/.zshenv
   fi
  1. (나중에 실행될 때) .zlogin셸별로 덮어쓸 수 있도록 만들어졌습니다 ..bash_login.zshenv/.bash_env
  2. (선택 사항) 일부 설치 프로그램이 자동으로 콘텐츠를 생성하고 추가할 수 있으므로 , , 을(를 ) .zprofile모니터링 하세요..bash_profile.bashrc.zshrc

관련 정보