如果两个命令行程序共享相同的名称会发生​​什么?

wis*_*sew 6 unix bash shell terminal command-line

我一直想知道这个问题,并且没有设法在任何地方找到一个好的答案 \xe2\x80\x93 如果两个命令行程序没有正确命名并共享相同的名称会发生​​什么?您如何称呼其中之一?比如说,有两个程序响应brew install\xe2\x80\x93,默认情况下会调用这两个程序?你会如何指定另一个?

\n

Ans*_*ers 8

第一个是$PATH运行。如果您想运行特定的二进制文件,请运行带有完整路径的命令。

例如,如果您有/usr/bin/brewand/usr/local/bin/brew和 set ,则当您调用不带其路径的命令时,PATH=/bin:/usr/bin:/usr/local/bin您将运行。/usr/bin/brew如果您将 中的目录顺序更改为,$PATHPATH=/usr/local/bin:/bin:/usr/bin将改为运行/usr/local/bin/brew/usr/local/bin/brew将始终运行命令/usr/local/bin(如果存在)。


Kev*_*vin 6

当您在命令行上键入命令时,可以调用四个功能。它们按以下顺序使用:

  1. 别名
  2. 功能
  3. 内置
  4. 文件

您可以使用type -a [program]来查看哪些可用以及它们的找到顺序。\当您有别名时,您可以跳过它并运行用(ie )找到的下一个\echobuiltin您可以使用( )调用内置命令,并使用( )builtin echo调用找到的第一个文件。您可以通过提供路径(至少有一个)来指定要执行的特定文件。当您没有指定文件路径时,您的 shell 将查看您的,这是一个以冒号分隔的要查看的目录列表。它将在您指定的每个文件夹中检查具有您的命令名称的文件,并执行找到的第一个文件。commandcommand echo/PATHPATH