gpt4 book ai didi

linux - 如何知道命令在 linux 中运行的位置

转载 作者:IT王子 更新时间:2023-10-29 00:54:29 25 4
gpt4 key购买 nike

假设我在 unix 中运行了一个命令,如 lsrm 并且路径变量设置如下

PATH=$JAVA_HOME/bin:.:$ORACLE_HOME/bin:/sbin:/usr/sbin:/usr/bin:/usr/ccs/bin:$COBDIR/bin:/sbin:/bin:/usr/local/bin:/bin

我们如何知道 ls 命令从哪个路径运行? ls(只是一个例子)也可能在 /sbin /usr/bin

所以我想知道它从哪里运行的?

我无法搜索所有目录并知道 ls 所在的所有目录。有没有一种直接的方法可以从它运行的地方搜索 ls

最佳答案

当您在 bash 中运行外部命令时,bash 会对该命令进行散列处理,以避免必须执行两次路径查找。 hash 命令可以告诉您运行了哪个命令。如果该命令在哈希的生命周期内未运行,则会报错。

$ hash -t ls
-bash: hash: ls: not found

$ ls foo
$ hash -t ls
/bin/ls

了解hashwhichtype 命令的区别是很有帮助的。

  • hash 告诉您什么路径/命令使用/散列。如果您的 PATH 或文件系统在 hash 的生命周期内发生变化,hash 可以告诉您在该变化之前发生的命令。
  • which 是在 PATH 环境变量中查找命令的外部命令。
  • type 是一个内置命令,它在本地 PATH 变量中查找命令,该变量可能(但几乎不会)与环境中的不同。

请参阅 bash 中的 help hash 以了解有关其工作原理的更多信息。

关于linux - 如何知道命令在 linux 中运行的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27756849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com