구성 파일(예: .zshrc)을 실행하지 않고 대화형 zsh를 시작합니다.

구성 파일(예: .zshrc)을 실행하지 않고 대화형 zsh를 시작합니다.

구성 파일을 실행하지 않고 대화형 zsh를 시작하는 방법은 무엇입니까 .zshrc?

시도해 보았지만 zsh -d -f -i프롬프트가 지정된 것과 동일하므로 ~/.zshrc옵션이 작동하지 않는 것 같습니다.

저는 macOS 10.15.4에서 zsh 5.8을 실행하고 있습니다.

답변1

zsh -d -f -i-d(암시적으로 -f) 및 -i( zsh명령줄에서 실행할 스크립트/코드가 없고 stdin이 터미널인 경우 어쨌든 대화식으로 실행)은 중복되지만 이에 대해서는 정확합니다 .

그러나 이는 /etc/zsh/zshenv여전히 해석되고 있으며 이를 비활성화할 수 있는 방법은 없다고 생각합니다. info zsh RCS자세히보다.

귀하의 경우에는 PS1환경에서 상속됩니다. PS1셸을 사용자 정의할 수도 있는 많은 환경 변수 중 하나입니다.

초기 쉘에는 rc 파일이 없었으며 사용자 정의는 환경 변수(사용자가 ~/.profile설정하거나 ~/.login로그인 쉘에 의해 해석됨)를 통해서만 수행되었습니다.

쉘을 구성하는 데 사용되는 많은 변수가 있습니다. 바라보다:

info zsh 'Parameters Used By The Shell'

세부 정보(그러나 일부의 경우 환경에서 발견된 값은 무시됩니다).

이러한 환경 변수 중 일부(예 HOME: PATH, , SHELL, , COLUMNS, )는 셸 외부의 다른 많은 프로그램에서 사용되므로 LANG설정을 해제하거나 설정 해제를 사용하는 것은 LC_*좋지 않습니다 .env -i

이 문서에 나열된 대부분의 변수는 환경에 넣기를 원하지 않지만 환경에서 ~/.zshrc일반 쉘 변수로 선언합니다. PS1그 중 하나입니다. PS1많은 셸에서 프롬프트 사용자 지정 변수로 사용되지만 구문은 셸마다 크게 다릅니다.

PS1불행하게도 일부 GNU/Linux 배포판은 일부 시스템 시작 파일에서 이 변수를 설정하고 내보내며 bash이를 쉘(GNU 쉘) 구문에 특정한 값으로 정의합니다. 즉, bash이 환경과 다른 환경에서 실행하면 PS1가비지를 받게 됩니다. 프롬프트.

PS1환경에서 제거된 셸을 시작하려면 다음을 수행할 수 있습니다.

(unset -v PS1; zsh -f)

일부 env구현을 사용하면 다음을 수행할 수도 있습니다.

env -u PS1 zsh -f

환경 변수 없이 시작하려면(위에서 언급한 것처럼 이는 아마도 좋은 생각이 아닐 것입니다):

env -i zsh -f

관련 정보