방금 .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
원치 않는 결과를 초래할 수 있으므로 거의 좋은 생각이 아닙니다. 해당 파일에서 작업을 수행합니다. 이러한 변경 사항은 이미 시작된 프로그램에도 표시되지 않습니다.$PATH
ssh-agent
무조건 추가와 같은 변경의 경우 $PATH
현재 셸에서 added 명령을 실행할 수 있습니다.
$ path+=/usr/local/openjdk12/bin
zsh
그러면 현재 셸 세션의 끝 /usr/local/openjdk12/bin
(및 $PATH
배열의 끝) 에 디렉터리( in )가 추가됩니다 . 다시 말하지만, 이 변경 사항은 이미 실행 중인 프로세스에는 영향을 미치지 않습니다.$path
zsh
$PATH
답변3
PATH 변수 업데이트(다른 줄에 따라 다름)를 포함하여 특정 변경 사항을 적용하는 새 파일을 얻을 수 있습니다. 그러나 소싱은 .zshrc
다시 실행되므로 예상치 못한 중복 명령이 실행될 수 있습니다. 또한 이전 행에서 행이 삭제되면 .zshrc
세션에서 "제거"되지 않습니다.
가장 깔끔한 방법은 로그아웃했다가 다시 로그인하는 것입니다. 전체 데스크톱 환경이 아닌 터미널 세션에 대해서만 이 작업을 수행하면 됩니다.
답변4
아 맙소사 Zsh
아 맙소사 ZshZsh 구성을 관리하기 위한 오픈 소스 커뮤니티 기반 프레임워크입니다.
설치가 완료되면 다음 명령을 실행할 수 있습니다.
omz reload
.zshrc
구성 파일을 다시 로드합니다 .