如何获取 Linux 命令的路径?

linuxopen sourceoperating system

您从终端窗口运行的 Linux 命令可以是内置命令(系统的一部分)、函数(输入某些命令时运行的应用程序)、别名(命令的另一个名称)或外部可执行文件(您下载的程序)。您可以使用 which、command、whereis、whatis 和 type 工具来确定每个命令的含义及其位置。

我们将介绍 which、command、types 和 whereis 命令,因为它们通常在大多数基于 Linux 的操作系统中找到。

因此,让我们在本文中探讨如何获取 Linux 命令的路径。

PATH 环境变量

在深入了解这些实用程序的细节之前,让我们首先了解应用程序(例如我们的 shell(我们输入命令时运行的程序))会在存储在名为 PATH 的环境变量中的文件夹列表中搜索命令。每个文件夹都用冒号":"分隔。

我们可以使用 echo 函数查看此变量中的内容。

命令

$ echo $PATH

输出

/sbin:/bin:/usr/sbin:/usr/bin

当我们在计算机上安装可执行文件时,为了能够从任何地方运行它,我们必须确保 PATH 环境变量包含可执行文件的位置。

我们可以通过输入以下命令临时更改 PATH 变量命令

命令

$ export PATH=$PATH:/newdir/path $ echo $PATH

输出

/sbin:/bin:/usr/sbin:/usr/bin:/newdir/path

重启计算机后,上面创建的 PATH 将被重置。

我们可以通过编辑 .bashrc 文件永久更改 PATH 环境变量。

export PATH=$PATH:/newdir/path

which 命令

大多数 Linux 操作系统发行版都包含 which 实用程序。我们可以使用此工具来确定 Linux 程序的位置。

命令

$ which echo

输出

/usr/bin/echo

当我们在终端窗口中输入 echo 命令时,它将执行位于 /bin/ 目录的 echo 可执行文件。

此外,which 命令有一个选项 -a,可以打印所有匹配的路径 -

命令

$ which -a php

输出

/usr/bin/php
/usr/bin/php
/bin/php

我们在两个不同的目录中有两个可执行文件。一个位于 /usr/bin/,另一个位于 /opt/php8/。默认使用前者,因为它的位置出现在 PATH 环境变量中,而后者具有正确的权限。

whereis 命令

让我们快速了解一下 whereis (where is) 实用程序。此工具可查找程序的位置。

如果我们直接调用这些实用程序,它们会显示二进制文件、源代码和手册页的所有位置 -

命令

$ whereis php

输出

php: /usr/bin/php /usr/lib64/php /etc/php.ini /etc/php.d /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz

我们可以使用 -b 参数来仅显示二进制文件。

命令

$ whereis -b php

输出

php: /usr/bin/php /usr/lib64/php /etc/php.ini /etc/php.d /usr/include/php /usr/share/php

如果我们只想显示手动使用的 -m 参数 -

命令

$ whereis -m php

输出

php: /usr/share/man/man1/php.1.gz

type 命令

Type 命令不仅可以显示 Linux 命令的路径,还可以确定目标是内部、函数、别名还是外部可执行文件。

让我们使用 type 命令-p 参数用于查看提供的 Linux 命令的路径 -

命令

$ type -p php

输出

/usr/bin/php

如果不包含该参数,则会显示命令定义。

命令

$ type echo

输出

echo is a shell builtin

如果我们使用 -a 选项,它会显示命令描述、可执行文件类型和完整文件名 -

命令

$ type -a echo

输出

echo is a shell builtin
echo is /usr/bin/echo
echo is /usr/bin/echo
echo is /bin/echo

我们也可以使用命令类型 -t 来显示可执行文件类型。

命令

$ type -t echo

输出

builtin

上述命令内置了输出,因为 echo 是内置文件类型。

命令

$ type -t ls

输出

alias

与上文类似,ls 命令是一个别名文件,而下面的命令显示 php 命令只是一个文件(可执行文件)。

命令

$ type -t php

输出

file

command 命令

另一个用于查找 Linux 命令位置的有用工具是 command 命令。

此工具让我们知道我们正在处理的是可执行文件还是别名命令。

command 有两个选项"-v"和"-V",其中"-v"以结果形式输出,"-V"选项以句子格式输出。

命令

$ command -v php

输出

/usr/bin/php

命令

$ command -V php

输出

php is /usr/bin/php

命令

$ command -v echo

输出

echo

命令

$ command -V echo

输出

echo is a shell builtin

我们必须添加 -v 或 -V 参数。

如果没有,它将执行我们提供的 Linux 命令。

命令

$ command ls

输出

command filebeat-6.4.1-x86_64.rpm test.pcap config pmgo pmta4.0.zip

结论

我们可以使用 which、command、type 和 whereis 命令查找 Linux 命令的位置。有些实用程序显示的信息比其他实用程序更多。

我们在本教程中看到,使用某些命令时有一些注意事项,但基本上,我们可以使用这些工具来获取有关特定 Linux 实用程序的更多信息。


相关文章


有用资源