"exa" 명령을 찾을 수 없습니다

"exa" 명령을 찾을 수 없습니다

나는 설치했다exa설치 후 지침에 따라 내 파일 cargo에 경로를 추가했습니다 .~/.bashrcPATH=/root/.cargo/bin:$PATH

/root/.cargo/bin경고: 설치된 바이너리를 실행할 수 있으려면 PATH에 추가해야 합니다 .

그럼에도 불구하고 달리려고 exa하면

Command 'exa' not found, did you mean:
...
...
...

내가 실행하면 printenv PATH다음 /root/.cargo/bin위치에 나타납니다.PATH, 처음에 추가했지만.

sudo /root/.cargo/bin/exa명령을 실행하면 제대로 작동합니다. 원인은 무엇입니까/어떻게 제대로 작동하게 할 수 있습니까?

답변1

다음 중 하나를 수행해야 합니다.

1. source ~/.bashrc

2. . ~/.bashrc

  1. 로그아웃했다가 다시 로그인하세요.

답변2

경로를 가져오는 것이 작동하지 않으면 권한 문제일 수 있습니다. 이 버전은 루트로 실행하기 때문에 sudo다른 변수를 사용하므로 권한은 문제가 되지 않지만 경로에서 바이너리를 찾을 수 없습니다.PATH

사용자가 디렉터리를 "탐색"(기술 용어가 무엇인지 잘 모르겠습니다)하려면 해당 디렉터리에 대한 "실행" 권한이 있어야 합니다. 디렉터리 내용이 나열되면 세 번째 위치에 X로 표시됩니다. 그래서 실행하면 sudo ls -lash /root일부 결과는 다음과 같습니다.

4.0K drwx------ 10 root root 4.0K Feb  3  2020 .
4.0K drwxr-xr-x 24 root root 4.0K May 28 16:27 ..

두 번째 문자와 대시 세트는 권한입니다. 앞 부분은 d디렉터리임을 나타내고 다음 세 글자( rwx)는 파일 소유자에 대한 읽기, 쓰기 및 실행 권한을 나타냅니다. 다음 세 개( ---의 경우 )는 파일과 관련된 "그룹" 에 대한 .것입니다 . 마지막 그룹은 다른 모든 사람을 위한 그룹입니다./rootr-x../

귀하의 권한이 나와 유사하면 루트 사용자만이 전체 루트 폴더를 읽고, 쓰고, 전달할 수 있습니다. 실행을 추가하여 이 문제를 해결할 수 있지만 루트 디렉터리/계정의 권한을 /root조작하는 sudo chmod +x /root것은 일반적으로 나쁜 생각이며 그룹이나 다른 관리 도구 대신 단일 명령을 사용하여 이 작업을 수행하는 것은 특히 나쁜 생각입니다. .

대신, 아마도 당신이 원하는 것은 모든 사용자를 위해 바이너리를 설치하는 방법을 찾는 것입니다. 일반적으로 다음과 같은 설치 방법이 있을 수 있습니다.

sudo make install   

하지만 문서를 보면 다른 작업을 수행할 수도 있습니다.

관련 정보