如何在 bash 中清除命令引用?
在 CentOS 7 服务器上,我正在安装 Docker 和 Docker Machine。安装需要手动重新设置 BIOS 选项,然后在安装过程中重新启动操作系统。一开始,这个docker-machine
命令是被bash找到的。但似乎一些 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 的所有引用,以便全新安装可以引发有意义的错误,或者希望能够正常工作?或者是否有人可以建议一些诊断命令?
我希望有一个更优雅的解决方案,而不是重新安装主机操作系统并从头开始重新配置机器中的所有内容。
用户建议:
根据@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 ~]#
出于效率的原因,在找到每个命令
bash
的位置维护一个目录列表。$PATH
如果你运行一个它找不到的命令然后添加它,你需要告诉
bash
它使它的列表无效。