请简述Which 和 whereis 区别 ?
参考回答
which 和 whereis 都是用于查找命令路径的 Linux 命令,但它们的功能和使用方式有所不同。
which命令:- 用于查找并显示某个命令的路径(即该命令的可执行文件的位置)。
- 它查找的是当前环境变量
PATH中定义的路径。 - 只显示第一个匹配的可执行文件路径。
示例:
which python输出示例:
/usr/bin/pythonwhereis命令:- 用于查找命令的二进制文件、源代码文件和帮助文件的位置。
- 它会搜索预定义的目录,而不仅仅是
PATH中的路径。 whereis提供更广泛的信息,不仅包括命令的路径,还包括源文件和手册页的位置。
示例:
whereis python输出示例:
python: /usr/bin/python /usr/share/man/man1/python.1.gz
详细讲解与拓展
which命令:which命令只会显示可执行文件的位置,它会按照环境变量PATH中的路径顺序来查找。如果命令在PATH中的多个位置都存在,which只会返回第一个找到的路径。- 它只查找并显示执行文件的位置,不会返回其他相关信息(如配置文件或手册页)。
示例:
查找ls命令的位置:which ls输出:
/bin/ls如果想查看某个程序的路径,
which是一个简单而快速的方式。-
whereis命令:whereis命令比which更强大,不仅查找命令的可执行文件,还会查找源代码文件和手册页等相关文件。- 它默认会在一组特定的目录中查找,而不只是
PATH环境变量定义的路径。 whereis查找的目录是预定义的,通常包括/usr/bin/、/usr/local/bin/、/usr/include/、/usr/share/man/等目录。
示例:
查找gcc命令的相关文件:whereis gcc输出:
gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/man/man1/gcc.1.gz在这个例子中,
whereis命令返回了gcc的二进制文件路径、库路径和手册页路径。
区别总结:
which:用于查找并显示指定命令的可执行文件路径,只搜索PATH环境变量中的路径。whereis:用于查找命令的可执行文件、源代码文件和手册页,搜索的路径更广泛,不限于PATH。
which 更侧重于显示命令执行文件的路径,而 whereis 提供更全面的信息,包括可执行文件、源代码和文档等。