zsh에서 찾을 수없는 명령


138

z 셸을 사용하고 있습니다 (zsh기본 bash 대신 )을 사용하고 있으며 잘못된 일이 발생하여 작업하는 데 사용 된 모든 명령이 더 이상 인식되지 않습니다.

ls
zsh: command not found: ls

open -e .zshrc
zsh: correct 'open' to '_open' [nyae]? 

재설정 방법이 나이 zsh문제를 해결하는 방법을 모르겠습니다 . $PATH변수 내용은 다음과 같습니다 .

echo $PATH
/Users/Malloc/bin/Sencha/Cmd/3.1.2.342:/usr/local/bin/mate

.bash_profile파일을 열 수 없습니다.zshrc 파일을 . 유일한 해결책은을 재설정하는 것 같습니다 zsh. 어떤 아이디어?

편집하다:

이 스레드에zsh 표시된대로 재설정하려고 했지만 항상 오류 가 발생했습니다.command not found

exec zsh
zsh: command not found: zsh

무슨 일이야? 왜 모든 명령이 손실됩니까?

답변:


218

PATH변수 를 엉망으로 만드는 것이 분명 합니다. (현재 PATH는 공용 유틸리티가있는 위치를 포함하지 않습니다.)

시험:

PATH=/bin:/usr/bin:/usr/local/bin:${PATH}
export PATH

또는 "재설정"zsh에 대해 쉘의 전체 경로를 지정하십시오.

exec /bin/zsh

또는

exec /usr/bin/zsh

17
Catalina로 업그레이드했을 때 zsh 셸로 전환하여 사용중인 타사 앱을 실행할 수없는 시점까지 엉망이되었습니다. 방금 .zshrc 파일을 수정하고 "export PATH = << 내 저장소 위치 >>"를 추가하고 exec / bin / zsh를 수행했는데 모두 정상이었습니다.
Robert Walters

18

~ / .zsh 구성 파일에 별명을 포함하는 bash 경로 파일의 경로를 포함하십시오. 필자의 경우 ~ / .zsh 안에 "source ~ / .bash_profile"줄을 포함하고있었습니다.


1
고마워, 나를 위해 그것을 해결했다. Catalina로 업그레이드 한 후 문제가 발생하여 zsh shell로 전환했습니다.
neiya

1
~/.zsh파일 이 없습니다 . 대신 나는 그것을 넣어야했다 /etc/zshrc.
체이스 로버츠

14
  1. VS Code와 같은 훌륭한 텍스트 편집기를 사용하고 .zshrc파일을여십시오 (홈 디렉토리에 있어야 함) 파일이 보이지 않으면 파일 폴더를 마우스 오른쪽 단추로 클릭하고 '숨겨진 파일 표시'옵션을 선택하십시오. .

  2. 그것이 어디에 있는지 찾아라 : export PATH=a-bunch-of-paths-separated-by-colons:

  3. 끝 따옴표 앞에 줄의 끝에 이것을 삽입하십시오. :$HOME/.local/bin

그리고 그것은 당신을 위해 작동해야합니다.

먼저 터미널에 이것을 입력하여 이것이 작동하는지 테스트 할 수 있습니다. export PATH=$HOME/.local/bin:$PATH

터미널에 입력 한 후 오류가 사라지고 터미널이 정상적으로 작동하면 위의 해결 방법이 작동합니다. 그렇지 않은 경우 참조 오류가있는 폴더 (찾을 수없는 것)를 찾아 위의 PATH를 PATH-TO-THAT-FOLDER로 바꾸십시오.


아하, 내 실수는 zsh가 내 PATH설정을 "무시"하게 한 것 입니다. bash에서 홈 폴더 안의 디렉토리 앞에 접두사를 사용했습니다 ~. 따라서 zsh $HOME의 경우 예제와 같이 변수를 사용해야합니다 .
lalilulelost

7

/ usr / local / bin /에서 심볼릭 링크를 만들 수 있습니다

sudo ln -s $HOME/.composer/vendor/bin/homestead /usr/local/bin/homestead

고마워 나는 문제를 겪고 있었고이 대답은 $HOME상대 경로를 사용하지 않고 있음을 깨닫게했습니다 . 전체 경로를 사용하여 $HOME문제를 해결했습니다.
tasomaniac

많은 간단한 사용 사례의 경우 +1 : 하나의 실행 파일을 추가하려는 경우 symlink를 추가하는 것이 좋습니다. 새 폴더에서 여러 실행 파일을 관리하려는 $PATH경우 해당 사용 사례에 추가하는 것이 좋습니다.
David Bodow


4

터미널 환경 설정 일반 탭을 열고 명령 (전체 경로) /bin/bash을 기본값으로 변경 한 다음 ~/.zshrc파일 을 편집하여 문제를 해결했습니다 .

여기에 이미지 설명을 입력하십시오

export PATH="all your path inside the quotes"

... PATH="와 사이에 공백이 없으면 파일을 저장하십시오.

여기에 이미지 설명을 입력하십시오

파일을 저장 한 후 /bin/zsh명령을 변경 하거나 기본값을 선택하십시오. 여기에 이미지 설명을 입력하십시오

... 그리고 터미널을 다시 시작하면 zsh 쉘이 다시 작동해야합니다!


4

당신이 나를 좋아한다면, 당신은 두 개의 터미널 응용 프로그램을 갖게 될 것입니다. 하나는 기본 쉘이 bash를 기본 쉘로 사용하고 다른 하나는 zsh를 쉘로 사용하는 iTerm 2입니다. bash의 iTerm 2에 명령과 zsh를 모두 두려면 다음을 수행해야합니다.

iTerm 2에서 환경 설정 (또는 command)으로 이동하십시오. 그런 다음 프로파일 탭으로 이동하여 command 로 이동하십시오 . 아래 그림에서 볼 수 있듯이 명령 옵션 을 선택 하고 zsh 셸의 경로를 붙여 넣으십시오 (경로를 찾으려면 할 수 있습니다 which zsh).

여기에 이미지 설명을 입력하십시오

이 시점에서 iTerm 2에 대해서만 zsh를 기본 쉘로 사용하게되며 기본 mac 터미널 앱에서 전역 기본 쉘로 bash를 갖게됩니다. 다음으로 zsh의 bash에서 여전히 명령이 누락되었습니다. 따라서이 작업을 수행하려면 bash (명령이 작동하는 곳)로 가서 env에서 PATH 변수를 가져와야합니다 (이 명령을 사용하여 수행하십시오 :) env | grep PATH.

그런 다음 iTerm 2로 이동하여 "시작시 텍스트 보내기"옵션에 경로를 붙여 넣으십시오.

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin && clear

iTerm 2를 다시 열면 완료됩니다!


우리가 "시작시 텍스트 보내기"에 내보내기를 추가 한 이유는 누군가 나를 위해 iTerm 2를 다시 열 때마다 경로가 항상 이전 경로로 재설정 되었기 때문입니다. 따라서이를 수정하는 좋은 방법입니다.
Kamil B

3

내 해결책 :

다음으로 다시 변경하십시오 bash.

source .bashrc

다음:

echo $PATH

이것을 복사하십시오 :

/home/frank/.asdf/shims:/home/frank/....

다시 zsh:

source .zsh

오픈 .zshrc:

붙여 넣기

 export PATH=/home/frank/.asdf/shims:/home/frank/....

터미널을 다시 시작


1

내 경우에는 실수로 주석이 달린 코드가 첫 번째 줄에서 주석 처리가 제거되었습니다.

# If you come from bash you might have to change your $PATH.

해시가 제거되었습니다. 다시 추가 한 후에는 잘 작동했습니다.

누군가가 도움이 될 수 있도록 여기에 게시했습니다. 그것은 단지 라인의 시작이며 내가 한 것처럼 실수로 삭제 될 수 있기 때문입니다. 여러 가지 방법으로 시도한 후에도 해결책이없는 것 같습니다.


1

영구적 인 변경 경로를위한 최고의 솔루션

Finder 열기-> / Users / / usr / local / bin 폴더로 이동

TextEdit으로 .zshrc 열기

.zshrc는 숨김 파일이므로 command + shift +로 숨김을 해제하십시오. 프레스

파일 내용 삭제 및 유형

내보내기 경로 = ~ / usr / bin : / bin : / usr / sbin : / sbin : $ PATH

저장

지금

zsh : 명령을 찾을 수 없습니다



0

다른 사람들이 말했듯이 변경 한 후에 터미널을 다시 시작하면 ~ / .zshrc 파일의 변경 사항이 재설정되고 변경됩니다. 예를 들어 Visual Studio를 여는 기능을 추가 한 후 :

function code {  
    if [[ $# = 0 ]]
    then
        open -a "Visual Studio Code"
    else
        local argPath="$1"
        [[ $1 = /* ]] && argPath="$1" || argPath="$PWD/${1#./}"
        open -a "Visual Studio Code" "$argPath"
    fi
}

키워드 코드를 사용하여 명령 줄에서 프로그램을 열 수있었습니다.


0

macOS에서 iTerm2 또는 기본 터미널을 통해 .zshrc 파일을 편집하지 않고 편집하는 방법은 다른 응용 프로그램에서 터미널을 사용하는 것입니다. 예를 들어 터미널을 VSCode의 일부로 사용하여 파일을 찾아서 편집 할 수있었습니다.


-1

zsh를 제거하고 다시 설치하면 나를 위해 일했습니다.

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