zsh 다시 시작

zsh 다시 시작

방금 .zshrc 파일을 편집하여 구성했습니다.Z 쉘FreeBSD에서, 예를 들어 업데이트시스템 변수.

path+=/usr/local/openjdk12/bin

변경 사항을 적용하려면 어떻게 해야 합니까?

로그아웃했다가 다시 로그인해야 하나요? 파일을 바로 실행하는 방법이 있나요?

답변1

zsh 다시 시작

Zsh가 시작될 .zshrc때 읽으십시오 . 로그아웃했다가 다시 로그인할 필요가 없습니다. 터미널을 닫고 새 터미널을 열어 .zshrc이 새 터미널에서 새 정보를 얻으세요. 하지만 이를 더 간단하게 만들 수 있습니다. zsh에게 다시 시작하라고 지시하세요:

exec zsh

zsh 프롬프트에서 이 명령을 실행하면 현재 zsh 인스턴스가 동일한 터미널에서 실행 중인 새 인스턴스로 대체됩니다. 새 인스턴스는 동일합니다.환경변수는 전작과 동일하지만 신선한 느낌껍데기(내보내지 않은) 변수이며 새로운 기록을 시작합니다(따라서 일반적인 구성에서 다른 터미널의 명령을 혼합합니다). 모든 배경 작업은 거부됩니다.

다시 읽다.zshrc

zsh에게 reread 를 지시할 수도 있습니다 .zshrc. 이는 쉘 기록, 쉘 변수 및 백그라운드 작업에 대한 지식을 유지하는 이점이 있습니다. 하지만 무엇을 넣느냐에 따라 .zshrc작동할 수도 있고 작동하지 않을 수도 있습니다. .zshrc실행 명령을 다시 읽는 것은 작동하지 않거나 두 번 실행하는 경우 제대로 작동하지 않을 수 있습니다.

. ~/.zshrc

.zshrc두 번 실행하고 싶다면 넣을 수 있는 것과 넣을 수 없는 것을 모두 열거하기에는 할 수 있는 일이 너무 많습니다. 여기는 그냥일부일반적인 문제:

  • 변수(예: fpath+=(~/.config/zsh)또는 chpwd_functions+=(my_chpwd))에 추가하면 동일한 요소가 다시 추가되므로 문제가 발생할 수도 있고 발생하지 않을 수도 있습니다.
  • 별칭을 정의하고 명령과 동일한 이름을 사용하면 이제 명령이 별칭으로 실행됩니다. 예를 들어 다음과 같이 작동합니다.
    function foo { … }
    alias foo='foo --common-option'
    
    하지만 그렇지 않습니다. 두 번째로 파일을 가져올 때 foo ()별칭이 확장되기 때문입니다.
    foo () { … }
    alias foo='foo --common-option'
    
  • 기존 zsh 기능을 패치하면 이제 자신의 버전을 패치하게 되어 혼란을 야기할 수 있습니다.
  • "두 키의 바인딩 교체"와 같은 작업을 수행하면 두 번째에는 원하는 작업이 수행되지 않습니다.

답변2

쉘 초기화 파일에 대한 변경 사항은 다음과 같습니다.다음예를 들어 새 그래픽 터미널을 열거나 로그아웃했다가 다시 로그인하는 경우 시작하는 셸입니다. 어떤 방식으로든 데스크탑 환경에 영향을 미치는 변경을 한 경우(어떤 변경 유형인지는 모르겠습니다) 로그아웃했다가 다시 로그인해야 합니다.

할 수 있다. /path/to/filename(귀하의 경우) get the file . ~/.zshrc또는 start a new shell session from the command line을 사용하십시오. 그러나 이는 변수에 중복 경로를 추가하거나 추가 프로세스를 시작하는 등 zsh원치 않는 결과를 초래할 수 있으므로 거의 좋은 생각이 아닙니다. 해당 파일에서 작업을 수행합니다. 이러한 변경 사항은 이미 시작된 프로그램에도 표시되지 않습니다.$PATHssh-agent

무조건 추가와 같은 변경의 경우 $PATH현재 셸에서 added 명령을 실행할 수 있습니다.

$ path+=/usr/local/openjdk12/bin

zsh그러면 현재 셸 세션의 끝 /usr/local/openjdk12/bin(및 $PATH배열의 ​​끝) 에 디렉터리( in )가 추가됩니다 . 다시 말하지만, 이 변경 사항은 이미 실행 중인 프로세스에는 영향을 미치지 않습니다.$pathzsh$PATH

답변3

PATH 변수 업데이트(다른 줄에 따라 다름)를 포함하여 특정 변경 사항을 적용하는 새 파일을 얻을 수 있습니다. 그러나 소싱은 .zshrc다시 실행되므로 예상치 못한 중복 명령이 실행될 수 있습니다. 또한 이전 행에서 행이 삭제되면 .zshrc세션에서 "제거"되지 않습니다.

가장 깔끔한 방법은 로그아웃했다가 다시 로그인하는 것입니다. 전체 데스크톱 환경이 아닌 터미널 세션에 대해서만 이 작업을 수행하면 됩니다.

답변4

아 맙소사 Zsh

아 맙소사 ZshZsh 구성을 관리하기 위한 오픈 소스 커뮤니티 기반 프레임워크입니다.

설치가 완료되면 다음 명령을 실행할 수 있습니다.

omz reload

.zshrc구성 파일을 다시 로드합니다 .

관련 정보