[Linux] ls: command not found

    Mac 사용자들이 terminal을 사용하다가 ls나 vi 와 같은 명령어를 써줄때, 갑자기 명령어가 작동하지 않는 순간이 있다.
     

    무엇이 원인일까?

    mongodb와 관련된 코드의 에러를 해결하려던 중, mongodb 설치 경로를 읽기 전용이라 접근 불가능하다는 것으로 원인을 파악하여 쓰기 전용으로 권한을 변경하려했다. 
    그러기 위해서 .bash_profile에 가서 mongodb path를 잘못 설정해주었기때문에 발생했던 것이다.
     

    어떻게 해결해야할까?

    1. 당장의 PATH에서는 명령어가 작동하지 않기때문에 임시방편으로 PATH설정을 수동으로 해줘야한다. 

    다음의 명령어를 shell에 치면 ls나 vi와 같은 명령어가 제대로 작동할 수 있다. 

    export PATH=%PATH:/bin:/usr/local/bin:/usr/bin

    하지만 terminal 을 종료시켰다가 재시작을 했을때 똑같은 상황이 발생하므로 원론적인 해결방법이 아니다. 
     

    2. .bash_profile에 가서 잘못된 path 정보를 지워준다. 

    다음의 명령어를 shell에 치면 .bash_profile을 수정할 수 있다.

    vi .bash_profile

    캡쳐본.png

    * 이때 vi 명령어를 참고해야 한다.
    간단하게 말하자면 키보드 i 를 눌러 INSERT 모드로 변경을 해준 후 파일 수정을 마친 esc 버튼을 누르고  키보드에서 다시:wq로 저장하고 나와주면 된다. 

    왼쪽이 당시 내 .bash_profile상황이었으며 오른쪽이 수정한 .bash_profile상황이다. 마지막 줄을 삭제하였다. 

    정상적으로 .bash_profile이 저장되었으면 터미널을 껐다 킨 상황에서도 ls나 vi와 같은 명령어가 잘 작동함을 확인할 수 있다.

    잘_동작캡쳐.png

     

    사실대로 말하자면 내가 어떤 파일을 잘못건드려서 path설정을 다시 해줘야한다는 사실을 알고있었지만 해결방법 1step인 임시방편으로 몇주를 버텼지만, 원인을 찾아 해결해야겠다는 생각이 들어 글로 작성하게 되었다. 원인을 빠르게 파악하고 해결할 수 있는 사람이 되어야겠다.

    'CS' 카테고리의 다른 글

    [Linux] vi나 vim 에디터 없이 파일 수정  (0) 2023.11.10

    댓글