我已经在debian中预装了一个gcc
,并且我也成功编译了另一个gcc,它安装在/root/tools/
中。但是在那之后,我输入了type gcc
,它显示 gcc is hashed (/bin/gcc)
。这是什么意思?
我的 bash PATH
变量:PATH=/root/tools/bin:/bin:/usr/bin
答案 0 :(得分:1)
hashed 意味着 shell 知道它在哪里。当您第一次运行 gcc
之类的命令时,shell 会在路径中找到它。第二次,shell 没有去寻找它,因为 shell 已经记住了它在哪里。这被称为散列,可能是因为它在内部使用了一个散列表。
如果您希望 shell 忘记其记住的位置,请使用命令 rehash
。如果您在某处安装了一个新程序,但 shell 找不到它,因为它记住了它的旧位置,这将很有用。
编辑添加:您还可以使用 hash -l
查看 shell 已散列的内容。
$ hash -l
builtin hash -p /usr/bin/git git
builtin hash -p /home/alester/bin/dirtysmoke dirtysmoke
builtin hash -p /usr/bin/chmod chmod
builtin hash -p /usr/local/bin/exa exa
builtin hash -p /usr/bin/ssh-add ssh-add
builtin hash -p /usr/bin/mkdir mkdir
builtin hash -p /usr/bin/man man