CentOS 버전 6.9 HPC에 사용자로 로그인했습니다. 명령 을 시도하면 다음과 같은 ls
결과가 나타납니다.
/usr/local/bin/ls: 96행: dpkg: 중단된 명령을 찾을 수 없습니다. 이 스크립트는 Ubuntu와 같은 배포판에서만 작동합니다.
해당 ls 파일을 열면 96행에 다음 행이 있습니다.
# (internal) The architecture of the local system
arch=$(dpkg --print-architecture)
나는 dpkg가 데비안이라는 것을 알고 있습니다. 이것이 CentOS에서 작동하지 않는 이유입니다. 그런데 왜 dpkg가 거기에 있는 걸까요? 간단한 것을 어떻게 실행합니까 ls
?
답변1
질문 텍스트에서 볼 수 있듯이 ls
명령은 디렉토리에서 가져옵니다 /usr/local/bin
. 이는 PATH
해당 디렉토리가 eg /usr/bin
및 변수 value 보다 이전에 발견되었음을 의미합니다 /bin
.
셸 시작 파일에서 변수 값의 순서를 변경하면(아마도 앞에 /bin
및 를 추가하여) 셸이 또는 에 명령이 있다고 가정하여 에서 을 /usr/bin
(를) 사용하지 못하게 해야 합니다 .ls
/usr/local/bin
ls
/bin
/usr/bin
PATH=/bin:/usr/bin:$PATH
이유왜 /usr/local/bin/ls
쉘 스크립트입니다(아마도Ubuntu 관련 스크립트는 여기에서 찾을 수 있습니다.맬웨어는 아니지만 ls
명령과 전혀 관련이 없음) 이 예외 현상이 ls
실행 파일로 제한되는지, 아니면 /usr/local
.