如何获取 Linux 命令的路径?
您从终端窗口运行的 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 实用程序的更多信息。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

