linux - “gcc 已散列(/bin/gcc)”是什么意思?
问题描述
我已经在debian中预装了一个gcc
,我也成功编译了另一个gcc,安装在/root/tools/
.但之后,我输入type gcc
了,它显示gcc is hashed (/bin/gcc)
. 这是什么意思 ?
我的 bashPATH
变量:PATH=/root/tools/bin:/bin:/usr/bin
解决方案
hashed 意味着 shell 知道它在哪里。当您像gcc
第一次一样运行命令时,shell 会在路径中找到它。第二次,shell 没有去寻找它,因为 shell 已经记住了它在哪里。这称为散列,可能是因为它在内部使用散列表。
如果您希望 shell 忘记其记住的位置,请使用命令rehash
。如果你在某个地方安装了一个新程序,但 shell 找不到它,这很有用,因为它记住了它的旧位置。
编辑添加:您还可以使用hash -l
查看外壳已散列的内容。
$ 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
推荐阅读
- css - css 指针事件:没有一个不能在 chrome 中工作
- r - R中的嵌套foreach %dopar%
- reactjs - Netifly 部署后加载资源失败
- cython - 使用 LoadLibrary 在 .pyd 中加载 cython cdef 函数
- java - 使用 Cassandra Embedded 时出现 NoHostAvailableException
- azure - 无法从 Docker 容器访问本地运行的 Azure Functions
- r - 拆分、聚合和组合矩阵并在基础 R 中保持相同的结构
- vue.js - 非命名空间模块上的 mapState
- java - 如何用按位操作替换此字符串操作?
- ruby - 如何修复'NameError:未初始化的常量 Mongo::ConnectionFailure