Bash에서 명령 참조의 손상 제거

Bash에서 명령 참조의 손상 제거

Bash에서 손상된 명령 참조를 복구하는 방법은 무엇입니까?

CentOS 7 서버에 Docker와 Docker Machine을 설치하고 있습니다. 설치를 위해서는 BIOS 옵션을 수동으로 재설정한 다음 설치 프로세스 중에 운영 체제를 다시 시작해야 합니다. 처음에는 docker-machinebash를 통해 명령을 찾았습니다. 그러나 다시 시작하는 동안 bash에 대한 일부 참조가 손상된 것 같습니다. 따라서 Docker Machine을 설치하고 버전을 확인하는 아래 명령을 실행하면 아래 설치 명령을 반복적으로 실행해도 실패 메시지가 표시됩니다.

Docker Machine 설정 지침을 따르고 있습니다.이 링크에서.

최종 재부팅 후 터미널 출력은 다음과 같습니다.

[root@localhost ~]# base=https://github.com/docker/machine/releases/download/v0.14.0 &&  
>   curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&  
>   sudo install /tmp/docker-machine /usr/local/bin/docker-machine
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
                                 Dload  Upload   Total   Spent    Left  Speed  
100   617    0   617    0     0    836      0 --:--:-- --:--:-- --:--:--   836
100 26.7M  100 26.7M    0     0  3481k      0  0:00:07  0:00:07 --:--:-- 5962k
[root@localhost ~]# docker-machine version
-bash: docker-machine: command not found
[root@localhost ~]#

새로 설치할 때 의미 있는 오류가 발생할 수 있도록 bash에 대한 모든 참조를 정리하는 데 사용할 수 있는 명령이 있습니까? 아니면 제대로 작동하기를 바라나요? 아니면 누군가 진단 명령을 제안할 수 있나요?

호스트 OS를 다시 설치하고 컴퓨터의 모든 것을 처음부터 재구성하는 것보다 더 우아한 솔루션을 기대합니다.


사용자 제안:

@MichaelHomer의 제안에 따라 다음을 시도했습니다.

[root@localhost ~]# PATH=/usr/local/bin:$PATH
[root@localhost ~]#

@roaima의 제안에 따라 다음을 시도했습니다.

[root@localhost ~]# hash -r
[root@localhost ~]# ls -ld /usr/local/bin/docker-machine
-rwxr-xr-x. 1 root root 28034848 Apr 16 16:18 /usr/local/bin/docker-machine
[root@localhost ~]# echo "$PATH"
/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/bin:/root/bin
[root@localhost ~]#

@arcsin의 제안에 따라 다음을 입력했습니다.

[root@localhost ~]# file /usr/local/bin/docker-machine
/usr/local/bin/docker-machine: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
[root@localhost ~]# /usr/local/bin/docker-machine version
docker-machine version 0.14.0, build 89b8332
[root@localhost ~]#

답변1

효율성을 위해 각 명령이 있는 bash디렉토리 목록이 유지됩니다 .$PATH

찾을 수 없는 명령을 실행한 다음 추가하는 경우 bash해당 목록을 무효화하도록 지시해야 합니다.

hash -r

관련 정보