export PATH=/usr/bin:/usr/sbin:/bin:/usr/local/bin:/sbin:/opt/x11/bin:$PATH
이거 터미널에 입력했더니 해결. 명령어 다 먹힘.
1. PATH란?
• PATH는 터미널에서 실행 가능한 프로그램들의 디렉토리 경로를 저장하는 환경 변수입니다.
• 터미널에서 명령어를 입력하면, 운영 체제는 이 PATH에 지정된 디렉토리를 순서대로 탐색하여 해당 명령어에 대응하는 실행 파일을 찾습니다.
예를 들어:
curl
• 터미널은 PATH에 나열된 디렉토리에서 curl 실행 파일을 찾습니다.
• curl이 PATH에 포함된 디렉토리에 없다면, command not found 오류가 발생합니다.
2. 왜 command not found 오류가 발생했나?
• curl, sudo 등은 일반적으로 /usr/bin이나 /bin 디렉토리에 위치합니다.
• 하지만 PATH 환경 변수에서 이 디렉토리가 빠지면, 운영 체제는 해당 명령어를 어디에서 실행해야 할지 찾을 수 없습니다.
3. 해결 방법: PATH에 디렉토리 추가
export PATH=/usr/bin:/usr/sbin:/bin:/usr/local/bin:/sbin:/opt/X11/bin:$PATH 명령어를 실행하면:
1. 기존 PATH에 /usr/bin, /usr/sbin, /bin, /usr/local/bin 등의 디렉토리를 우선적으로 추가합니다.
2. $PATH는 기존 PATH의 값을 가져오는 역할을 합니다. 새로운 경로를 추가한 뒤 기존 PATH를 이어붙이는 방식입니다.
3. 이 명령어를 실행하면 PATH가 수정되어 터미널이 명령어를 올바른 디렉토리에서 찾을 수 있게 됩니다.
4. 왜 이 방법으로 해결됐을까?
• MacOS의 경우, PATH 설정이 잘못되었거나 특정 소프트웨어가 PATH를 덮어썼을 가능성이 있습니다.
• 디렉토리를 수동으로 추가하여 PATH를 복구했기 때문에 문제가 해결된 것입니다.
5. PATH 확인 방법
다음 명령어를 실행하여 현재 PATH를 확인할 수 있습니다:
echo $PATH
출력 예시:
/usr/bin:/usr/sbin:/bin:/usr/local/bin:/sbin:/opt/X11/bin
이 값 안에 명령어가 위치한 디렉토리가 포함되어 있는지 확인하세요.
6. PATH를 영구적으로 설정하는 방법
export PATH 명령어는 현재 터미널 세션에서만 유효합니다. 터미널을 종료하거나 다시 열면 PATH가 초기화됩니다. 이를 영구적으로 적용하려면 쉘 설정 파일을 수정해야 합니다.
1. zsh 사용 중일 경우 (MacOS 기본 쉘):
• ~/.zshrc 파일을 열기:
nano ~/.zshrc
• 아래 내용을 추가:
export PATH=/usr/bin:/usr/sbin:/bin:/usr/local/bin:/sbin:/opt/X11/bin:$PATH
• 저장하고 종료 (Ctrl + O, Enter, Ctrl + X).
2. 변경 사항 적용:
source ~/.zshrc
• PATH는 터미널에서 명령어를 실행할 때, 해당 실행 파일이 있는 디렉토리를 지정하는 환경 변수입니다.
• 문제가 발생한 이유는 PATH에서 필요한 디렉토리가 빠졌기 때문입니다.
• PATH를 수정하고 영구적으로 설정하면, 향후에도 비슷한 문제가 발생하지 않습니다.