[Linux] 常用命令之【whereis/which】

缘起: which / whereis 的区别?

  • 在Linux操作系统中,whereis和which命令都是用于查找可执行文件路径的工具,但它们的工作方式和用途有所不同。
root@xxxbackend-service-xxx-xxx:/# which python3
/usr/bin/python3

root@xxxbackend-service-xxx-xxx:/# whereis python3
python3: /usr/bin/python3 /usr/lib/python3 /etc/python3 /usr/share/python3

which命令

  • which命令主要用于查找系统PATH目录下的可执行文件

它会在PATH环境变量中指定的目录中搜索可执行文件,并返回第一个找到的路径。
例如:

which ls

输出:

/bin/ls

这意味着which命令只能找到已经安装并且在PATH中定义的可执行文件。如果一个可执行文件不在PATH中,即使它存在于系统中,which命令也无法找到它

whereis命令

  • whereis命令不仅可以查找可执行文件,还可以查找源文件和man手册页文件

which不同,whereis命令可以通过文件索引数据库而非仅仅依赖于PATH来查找文件
因此,它的搜索范围更广。例如:

whereis ls

输出:

ls: /bin/ls /usr/share/man/man1/ls.1.gz

可以看到,whereis不仅找到了ls可执行文件的位置,还找到了其man帮助文件的位置

总结

  • which命令:用于查找PATH环境变量中指定的目录下的可执行文件路径。适用于查找系统中某个特定命令的位置。
  • whereis命令:用于查找二进制文件、源代码和帮助文档等文件。搜索范围更广,不仅限于PATH,还包括$MANPATH和其他预定义位置。

这两个命令在Linux系统中都有各自的用途,根据需要选择合适的命令可以提高工作效率

X 参考文献

  • GPT : which 与 whereis 的区别?
posted @ 2025-06-09 11:14  千千寰宇  阅读(45)  评论(0)    收藏  举报