.zshenv, .zshrc, .zlogin, .zprofile, .zlogout에 무엇이 들어가거나 없어야합니까?


131

에 대한 다양한 시작 파일에 포함하거나 포함하지 않아야 할 지침을 찾고 있습니다 zsh.

나는이 파일들의 소싱 순서와 그것들이 소스 인 조건을 이해하지만, 각각에 무엇이 들어가야하는지 여전히 명확하지 않다.


답변:


156

다음은 각 파일에 포함되는 비 배타적 목록입니다.

  • .zshenv항상 소스 이므로 다른 프로그램에서 사용할 수있는 내 보낸 변수가 포함됩니다. 예를 들어, $PATH, $EDITOR, 그리고 $PAGER종종 설정됩니다 .zshenv. 또한, 당신은 설정할 수 $ZDOTDIR있는 .zshenv사용자의 zsh을 구성의 나머지 부분에 대한 대체 위치를 지정할 수 있습니다.
  • .zshrc대화식 쉘 구성을위한 것입니다. setoptunsetopt명령 을 사용하여 대화식 쉘에 대한 옵션을 설정 합니다. 쉘 모듈을로드하고, 히스토리 옵션을 설정하고, 프롬프트를 변경하고, zle 및 완료를 설정하는 등의 작업을 수행 할 수도 있습니다. 또한 대화식 쉘에서만 사용되는 모든 변수를 설정합니다 (예 :) $LS_COLORS.
  • .zlogin로그인 쉘 시작시 제공됩니다. 이 파일은 종종를 사용하여 X를 시작하는 데 사용 startx됩니다. 일부 시스템은 부팅시 X를 시작하므로이 파일이 항상 유용한 것은 아닙니다.
  • .zprofile기본적으로 .zlogin직전 .zshrc이 아닌 직전 이 소싱 되는 것을 제외하고 는 동일 합니다. zsh 문서에 따르면, " .zprofileksh 팬을위한`.zlogin '의 대안으로 사용된다.이 두 가지를 함께 사용하기위한 것은 아니지만, 원하는 경우 확실히 수행 할 수있다."
  • .zlogout 때로는 터미널을 지우고 재설정하는 데 사용됩니다.

당신은 통과해야 임의 Github에서 사용자의 구성 파일을 각 파일에 포함해야하는지의 더 나은 아이디어를 얻을 수 있습니다.


3
명확성을 기하기 위해 .zlogin은 .zshrc 뒤에 있습니다 (자세한 내용 man zshall은 참조).
Aaron

8
$PATH에서 설정할 .zshenv때이 파일 다음에 다양한 다른 파일이 모두 제공되므로이 값을 무시합니다. zsh.org/mla/users/2003/msg00600.html을 참조하십시오 .
Beau Barker

어디는해야 $LANG하고 $LC_ALL이동?
Lenar Hoyt

23
내 메모 / 확인 만하고 다른 사람을 돕기 위해 최종 순서는 .zshenv→ [ .zprofile로그인] → [ .zshrc인터랙티브] → [ .zlogin로그인] → [ .zlogout가끔]입니다.
Gabriel L.

23

내 의견으로는 각 파일에 포함하거나 포함해서는 안되는 목록은 다음과 같습니다.

.zshenv

[매번 읽으십시오]

항상 소스로 제공되므로 자주 업데이트 해야하는 환경 변수를 설정해야합니다 . PATH (또는 관련 상대 경로 )는 전체 세션을 다시 시작하여 업데이트하지 않기를 원하기 때문에 좋은 예입니다. 해당 파일에서 설정하면 터미널 에뮬레이터를 다시 열면 PATH 값이 업데이트 된 새 Zsh 인스턴스가 시작 됩니다.

그러나 Zsh를 시작 하여 -c 옵션 과 함께 단일 명령을 실행하기 위해 (예 : -c 옵션 사용) 에도이 파일을 읽습니다make . 표준 명령의 기본 동작을 수정하지 않도록주의 해야 합니다 . 예를 들어 별칭을 설정하여 명령 을 사용하는 일부 도구가 손상 ​​될 수 있습니다. 확실히, 당신이하고있는 일을 알고 있기 때문에 금지되지 않습니다.

.zprofile

[로그인시 읽기]

나는 개인적으로 그 파일을 처리 .zshenv하지만 한 번 설정해야하거나 자주 업데이트 할 필요가없는 명령과 변수를 처리합니다 .

  • 도구를 구성하기위한 환경 변수 (컴파일 용 플래그, 데이터 폴더 위치 등)
  • 실행하는 SCONSFLAGS="--jobs=$(( $(nproc) - 1 ))"데 시간이 걸릴 수 있으므로 명령 (같은 등 ) 을 실행하는 구성입니다 .

해당 파일을 수정하면 현재 쉘을 로그인 쉘과 같은 새로운 쉘로 교체하여 구성 업데이트를 얻을 수 있습니다.

exec zsh --login

.zshrc

[대화 형일 때 읽기]

대화식 사용 에만 필요한 모든 것을 여기에 넣었습니다 .

  • 신속한,
  • 명령 완료
  • 명령 수정,
  • 명령 제안,
  • 명령 강조
  • 출력 채색,
  • 별명,
  • 키 바인딩
  • 명령 기록 관리,
  • 기타 기타 대화식 도구 (auto_cd, manydots-magic) ...

.zlogin

[로그인시 읽기]

이 파일은 비슷 .zshprofile하지만 이후에 읽습니다 .zshrc. 현재 쉘이 완전히 설정되어 있다고 생각합니다.

따라서 쉘 동작을 수정하지 않는 외부 명령 (예 : 로그인 관리자)을 시작하는 데 사용합니다.

.zlogout

[로그 아웃시 읽기] [로그인 쉘 내]

여기에서 로그인시 터미널 또는 기타 리소스 설정을 지울 수 있습니다.

설정 위치를 선택하는 방법

  • 비 대화식으로 실행 되는 명령 이 필요합니다 ..zshenv
  • 새 쉘에서 업데이트 해야합니다 ..zshenv
  • 완료하는 데 시간이 걸릴 수 있는 명령을 실행합니다 ..zprofile
  • 대화식 사용법 과 관련이 있습니다 ..zshrc
  • 쉘이 완전히 설정되었을 때 실행 되는 명령입니다 ..zlogin
  • 그것은 자원 출시 로그인 할 때 인수를 :.zlogout

0

ssh-agent전화를 걸지 마십시오 .zshenv. less옵션이 Prezto ( export LESS='-F -g -i -M -R -S -w -X -z-4'in .zprofile)에 의해 사용자 정의 되었기 때문에 내 명령에 더 이상 텍스트 파일이 표시되지 않았습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.