📅  最后修改于: 2023-12-03 14:55:33.342000             🧑  作者: Mango
在Shell或Bash中,我们常常需要找到某个命令的执行路径,以便正确地使用该命令或在脚本中调用它。
通常情况下,Unix或类Unix系统上的命令路径由$PATH环境变量定义。我们可以使用echo $PATH
命令来查看当前系统环境变量的值。
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
从上面的输出中,我们可以知道,系统将在这些路径中查找可执行文件。如果我们想要查找某个特定的命令在哪个路径下,则可以使用which
命令。
$ which python
/usr/bin/python
which
命令会在系统的$PATH路径下查找命令的可执行文件,并返回该可执行文件的路径。如果找不到命令,则不会输出任何信息。
另外一个常用的命令是whereis
,它会在系统的标准路径下查找二进制、源码和man文档。
$ whereis python
python: /usr/bin/python3.6m /usr/bin/python3.6 /usr/bin/python2.7 /usr/lib/python2.7 /etc/python3.6m /etc/python2.7 /usr/local/lib/python3.6 /usr/include/python3.6m /usr/share/python /snap/bin/python3.6m /snap/bin/python3.6
whereis
命令会列出所有相关的文件路径。如果找不到相关文件,则只输出命令名称。
除了以上两个命令外,还可以使用type
命令来查找命令的路径。
$ type python
python is /usr/bin/python3.6m
type
命令会输出找到的命令及其类型(例如alias、function、builtin或file)。
最后,如果您想查找特定文件或目录的路径,则可以使用find
命令。
$ find / -name python
/usr/bin/python3.6m
/usr/bin/python3.6
/usr/bin/python2.7
...
find
命令会从指定路径(/)开始递归查找文件或目录名为python的文件或目录,并输出所有找到的路径。
以上是Shell或Bash中查找命令路径的常用方式。熟练掌握这些命令,将有助于您更好地理解和使用Shell或Bash。