各个操作系统剖析命令的位置
当在 Linux/Unix 或者 Windows 的命令行执行某个命令时(例如 python),我时常会想这个命令处于什么位置呢?有没有重复的命令被安装在了不同的位置呢?该如何解决这个问题,该文先大概记录一下,后续持续优化
以 python 为例。
Linux/Unix
使用 which python 命令查看命令所在路径
可以看到 python 命令位于 /usr/local/bin/python 路径下,但这还不够,因为该位置可能只是一个软连接,有可能真正的安装路径在其他地方。
用
ll /usr/local/bin | grep python
继续查看可以看到,该路径确实是一个软连接,实际的安装位置在
/opt/homebrew/bin
下到这里就可以找到某个命令的真实位置了。
但是像 Python,我们可能安装了多个版本,只是因为路径的查找顺序问题,所以先找到了 /usr/local/bin/python
,其他的就被忽略了,现在我们想要知道,哪个路径下,还有这个命令,该如何操作?
使用 whereis python3
可以找到哪个路径下,安装了这个命令:
Windows
Windows 上的很多命令跟 Linux/Unix 上的不一样,两个几乎完全不同的体系。如果想要在 Windows 上确认命令的位置,一般只需要 where 命令即可,它会列举出要查找的命令的所有位置。
但是不知道为什么,得用 CMD 命令行才能执行这个命令,PowerShell 没有这个命令。
:::center
2022-10-27 更新
:::
总结
后来发现,只需要 where 一个命令即可,全平台通用。至少在 Windows 11 22H2 版本和 MacOS Monterey 12.6 上,都支持这个命令,非常好用。