为什么Linux不在PATH环境中的所有目录中寻找命令?

时间:2015-05-11 08:40:06

标签: linux docker

我首先通过docker site的以下命令安装docker:

curl -s -O https://get.docker.com/builds/Linux/x86_64/docker-1.6.1 && chmod +x docker-1.6.1 && sudo mv docker-1.6.1 /usr/local/bin/docker

然后我删除docker目录中的/usr/local/bin

我再次通过docker安装yum,这次docker安装在/usr/bin目录中:

[root@dl380gen8snbjbb ~]# ls -lt /usr/bin/docker
-rwxr-xr-x 1 root root 13451927 Apr 20 13:44 /usr/bin/docker

当我在命令中执行docker时:

[root@dl380gen8snbjbb ~]# docker
-bash: /usr/local/bin/docker: No such file or directory

/usr/bin实际上在PATH

[root@dl380gen8snbjbb ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

为什么系统不在docker目录中寻找/usr/bin命令?

1 个答案:

答案 0 :(得分:2)

检查以下链接: https://unix.stackexchange.com/q/5609/55635

  

bash会缓存命令的完整路径。你可以验证一下   使用type命令对

进行哈希处理您尝试执行的命令      

$ type svnsync svnsync hashed(/ usr / local / bin / svnsync)

     

清除整个缓存:

     

$ hash -r

     

或只是一个条目:

     

$ hash -d svnsync

     

有关其他信息,请参阅help hash和man bash。