在Linux系统中,which
和whereis
是两个常用的命令行工具,它们都可以帮助用户查找程序或命令的位置。然而,这两个命令的功能和使用场景有所不同。下面将详细介绍两者的区别,并通过实践演示如何使用它们。
which
命令which
命令用于查找可执行文件的路径。它会搜索环境变量 $PATH
中列出的目录,找到与给定命令名称匹配的可执行文件。
$PATH
环境变量中的目录。which
默认只返回第一个找到的路径(除非使用 -a
参数)。# 查找 'ls' 命令的路径
which ls
输出可能为:
/usr/bin/ls
如果想查看所有匹配的路径(即使有多个),可以使用 -a
参数:
which -a python
whereis
命令whereis
命令不仅能够查找可执行文件,还能同时定位源代码文件和帮助文档的位置。它通常用于查找系统自带的命令或工具。
$PATH
环境变量,而是根据自身的数据库进行查找。# 查找 'gcc' 的相关信息
whereis gcc
输出可能为:
gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/man/man1/gcc.1.gz
这表示找到了 gcc
的可执行文件路径 /usr/bin/gcc
,库文件路径 /usr/lib/gcc
,以及手册页路径 /usr/share/man/man1/gcc.1.gz
。
确保你已经登录到一个 Linux 或类 Unix 系统。
which
和 whereis
我们可以选择一个常见的命令如 ls
进行测试:
# 使用 which 查找 ls
which ls
# 使用 whereis 查找 ls
whereis ls
观察输出结果的不同:
which ls
只会返回 /usr/bin/ls
。whereis ls
可能返回类似 /usr/bin/ls /usr/share/man/man1/ls.1.gz
,包含了可执行文件和手册页路径。从上述实验可以看出,which
更专注于查找 $PATH
中的可执行文件,而 whereis
提供了更全面的信息,包括源代码和文档的位置。
which
来查找当前环境下的可执行文件路径。whereis
来查找系统命令的可执行文件、源代码及文档位置。