Computer >> 컴퓨터 >  >> 문제 해결 >> Mac

Mac 터미널 'command not found' 오류 원인과 해결 방법 총정리

맥 터미널(Terminal)에서 명령어를 실행하려고 할 때 "command not found"(명령을 찾을 수 없음) 오류가 발생하는 경우가 종종 있습니다.

애플이 macOS Catalina부터 기본 셸을 bash에서 zsh로 변경했기 때문에, macOS Catalina 이상 버전을 사용하는 경우 "zsh: command not found: brew" 같은 메시지를 보게 됩니다. 반면 macOS Mojave 이하 버전 사용자라면 "bash: brew: command not found"와 같은 오류를 마주할 가능성이 높습니다.

터미널이 "command not found"라고 표시한다는 것은 입력한 명령어가 검색 경로에 없다는 의미입니다. 그 원인은 다양하며, 아래에서 하나씩 자세히 살펴보겠습니다.

'command not found' 오류가 발생하는 이유

다음과 같은 상황에서 맥 명령어 오류가 나타날 수 있습니다.

  • 명령어를 잘못 입력한 경우
  • 해당 명령어가 맥에 설치되어 있지 않은 경우
  • 명령어가 실수로 삭제되었거나 시스템 디렉터리가 수정·삭제된 경우
  • 명령어 검색 대상 디렉터리를 지정하는 $PATH 환경 변수가 불완전하거나 잘못 설정되었거나 초기화된 경우

원인이 무엇이든 아래의 일반적인 해결 가이드를 따라 하면 "command not found" 오류를 수정할 수 있습니다.

Mac 명령어 찾기 오류 해결 방법

"command not found" 오류는 다양한 형태로 나타납니다. macOS Monterey 등 zsh를 사용하는 모든 macOS 버전에서 "zsh: command not found" 메시지가 표시될 수 있으며, 어떤 명령어에서든 문제가 발생할 수 있습니다. 사용자들이 자주 겪는 오류 메시지는 다음과 같습니다.

  • zsh: command not found: $
  • zsh: command not found: ls
  • zsh: command not found: brew
  • zsh: command not found: import
  • bash: brew: command not found
  • -bash: $: command not found
  • sudo: command not found
  • sudo: nano: command not found

다행히 이러한 오류는 대부분 아래의 해결 방법으로 처리할 수 있습니다. 명령어가 정상적으로 실행될 때까지 하나씩 순서대로 시도해 보는 것이 좋습니다.

  • 해결책 1: 명령어 구문 확인하기
  • 해결책 2: $PATH를 macOS 기본 경로로 설정하기
  • 해결책 3: 디렉터리를 PATH에 추가하기
  • 해결책 4: macOS 재설치 또는 Time Machine 복원

1. 명령어 구문 확인하기

명령어에 익숙하지 않은 사용자는 필수 공백을 빠뜨리거나 불필요한 기호를 추가하는 실수를 자주 합니다. 예를 들어 Nano 편집기로 Hosts 파일을 편집하려고 할 때 sudo nano/private/etc/hosts처럼 입력하면 안 되며, 올바른 구문은 nano 뒤에 공백이 있는 sudo nano /private/etc/hosts입니다.

또한 문서에서 복사한 $ brew install pyqt 같은 문장을 그대로 터미널에 붙여넣으면 "-bash: $: command not found" 오류만 반환됩니다. 이는 $가 실제 명령어가 아니라 설명 문서에서 예시로 사용된 터미널 프롬프트 기호이기 때문입니다.

따라서 "command not found" 오류가 발생하면 가장 먼저 명령어 구문을 확인해야 합니다. 직접 타이핑하는 것보다 원문을 그대로 복사해서 붙여넣는 것이 좋으며, 동일한 명령어를 사용하는 다른 예시와 비교해 보는 것도 도움이 됩니다.

2. $PATH를 macOS 기본 경로로 설정하기

경로(path)란 파일 시스템 내 특정 위치를 의미합니다. 마찬가지로 터미널 명령어의 PATH 시스템 변수($PATH)는 실행 프로그램이 위치한 여러 디렉터리를 지정합니다. $PATH 덕분에 맥은 명령어를 어디에서 찾아야 하는지 알 수 있으므로, 전체 경로를 입력할 필요 없이 ls처럼 명령어 이름만 입력하면 됩니다.

그러나 실행하려는 명령어가 있는 경로가 설정되어 있지 않으면 "zsh: command not found" 또는 "zsh: command not found ls" 같은 오류가 발생합니다.

이 경우 다음 단계에 따라 명령어가 있는 $PATH가 제대로 구성되어 있는지 먼저 확인해야 합니다.

  1. 터미널을 엽니다.
  2. 다음 명령어를 실행하여 macOS가 명령줄에서 사용하는 표준 경로를 설정합니다.
    export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
  3. 관리자 암호를 입력하고 Enter 키를 누릅니다.

이후 이전에 실패했던 명령어를 다시 실행하여 macOS Monterey에서 "zsh: command not found" 오류가 재현되는지 확인합니다. 문제가 계속된다면 다음 해결책으로 넘어갑니다.

3. 디렉터리를 PATH에 추가하기

M1 맥에서 "zsh: command not found" 오류가 발생하는 또 다른 원인은 입력한 명령어가 기본 $PATH에 저장되어 있지 않은 경우입니다. 터미널에서 다음 명령어를 실행하면 현재 기본 $PATH를 확인할 수 있습니다.
echo $PATH

이 명령어는 일반적으로 /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin이라는 기본 $PATH를 반환하며, 이 다섯 개 디렉터리가 맥이 명령줄에서 사용하는 기본 경로입니다.

  • /usr/local/bin
  • /usr/bin
  • /bin
  • /usr/sbin
  • /sbin

사용하려는 명령어가 이 기본 디렉터리에 포함되지 않은 곳에 저장되어 있다면, 아래 단계에 따라 해당 디렉터리를 $PATH에 추가해야 합니다. 예를 들어 "zsh: command not found: brew" 오류가 발생했는데 Homebrew가 일반적인 /usr/local/이 아닌 /opt/homebrew/bin에 저장되어 있다면 다음과 같이 해결할 수 있습니다.

  1. 터미널을 실행합니다.
  2. 다음 명령어를 실행하여 새 디렉터리(예: /opt/homebrew/bin)를 임시로 $PATH에 추가합니다.
    export PATH=$PATH:/opt/homebrew/bin
  3. echo 명령어로 새 디렉터리가 추가되었는지 확인합니다.
    echo $PATH

이제 원하는 명령어가 정상 작동하는지 테스트해 볼 수 있습니다. 경로 변경을 영구적으로 유지하려면 사용 중인 셸에 따라 .zshrc 파일, .bash_profile 또는 .bashrc 파일에 추가해야 합니다. 절차는 다음과 같습니다.

  1. 터미널에서 다음 명령어를 실행하여 홈 디렉터리로 이동합니다.
    cd
  2. 아래 명령어로 홈 디렉터리의 파일 목록을 확인하고, zsh를 사용한다면 .zshrc 파일이 있는지 살펴봅니다.
    ls -la
  3. .zshrc 파일이 없다면 nano 편집기를 사용해 새로 생성합니다. 이미 있다면 4단계로 건너뜁니다.
    touch .zshrc
  4. 다음 명령어로 nano에서 .zshrc 파일을 엽니다.
    nano .zshrc
  5. 새 디렉터리(예: /opt/homebrew/bin)를 .zshrc에 추가하는 명령어를 실행합니다.
    export PATH=$PATH:/opt/homebrew/bin
  6. 터미널을 종료한 후 다시 엽니다.

이 방법으로도 해결되지 않는다면, M1 맥이든 인텔 맥이든 관계없이 다음 해결책을 계속 시도해 "zsh: command not found" 오류를 해결할 수 있습니다.

4. macOS 재설치 또는 Time Machine 복원

시스템 내부를 살펴보던 중 시스템 파일이나 폴더를 삭제했다면, 터미널 명령어 실행에 필수적인 파일까지 실수로 제거했을 가능성이 있습니다. 이런 경우에는 해당 시스템 파일을 복구해야 합니다.

Time Machine으로 맥을 백업해 두었다면 이전 상태로 복원하는 것이 가장 간편합니다. 백업이 없다면 드라이브를 포맷하지 않고 macOS를 재설치하는 방법도 있습니다. 운영체제를 재설치해도 데이터 손실은 없어야 하지만, 만약에 대비해 작업 전에 중요한 파일을 미리 백업해 두는 것이 좋습니다.