为什么';Linux是否在PATH环境中的所有目录中查找该命令?

为什么';Linux是否在PATH环境中的所有目录中查找该命令?,linux,docker,Linux,Docker,我首先通过以下命令从安装docker: 然后我删除/usr/local/bin目录中的docker 我再次通过yum安装docker,这次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 ~]# docke

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

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

我再次通过
yum
安装
docker
,这次
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
实际上在
路径中:

[root@dl380gen8snbjbb ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
为什么系统不在
/usr/bin
目录中查找
docker
命令?

检查以下链接:

bash会缓存命令的完整路径。您可以验证 您尝试执行的命令使用type命令进行散列:

$type svnsync svnsync已哈希(/usr/local/bin/svnsync)

要清除整个缓存,请执行以下操作:

$hash-r

或者只需一个条目:

$hash-d svnsync

有关更多信息,请参阅帮助哈希和manbash


我可能错了,但docker在使用之前不应该作为服务启用/启动吗?@vmonteco:我想关键是系统没有在$PATH中查找所有目录。@RogerLipscombe:酷!你能给个详细的答复吗?我会接受的。也许,
docker
是别名?检查
别名的输出
[root@dl380gen8snbjbb ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin