插件窝 干货文章 Linux 神秘对决:which vs. whereis vs. whatis

Linux 神秘对决:which vs. whereis vs. whatis

命令 文件 whatis python 524    来源:    2025-04-20

Linux 命令对决:which vs. whereis vs. whatis

这三个命令都是Linux系统中用于查找信息的工具,但各有不同的用途和特点。让我们来详细比较它们:

1. which 命令

用途:查找可执行文件的完整路径(在PATH环境变量中查找)

特点: - 只搜索PATH环境变量中列出的目录 - 主要用于查找可执行命令的位置 - 返回第一个匹配的结果

示例

$ which python
/usr/bin/python

2. whereis 命令

用途:查找命令的二进制文件、源代码和手册页位置

特点: - 搜索标准Linux目录(不仅仅是PATH) - 可以同时显示二进制文件、源代码和手册页的位置 - 比which搜索范围更广

示例

$ whereis python
python: /usr/bin/python /usr/lib/python2.7 /usr/include/python2.7 /usr/share/man/man1/python.1.gz

3. whatis 命令

用途:显示命令的简短描述(从手册页中提取)

特点: - 不显示文件位置,只显示命令的简要说明 - 依赖于已构建的whatis数据库 - 用于快速了解命令的用途

示例

$ whatis python
python (1) - an interpreted, interactive, object-oriented programming language

对比总结

命令 搜索内容 搜索范围 主要用途
which 可执行文件 PATH环境变量中的目录 查找命令的实际执行文件位置
whereis 二进制文件、源代码、手册页 标准系统目录 查找命令相关所有文件位置
whatis 命令描述 whatis数据库 快速了解命令用途

使用建议

  • 当你想知道执行某个命令时实际运行的是哪个文件 → 使用 which
  • 当你想找到命令的所有相关文件(二进制、手册等) → 使用 whereis
  • 当你想快速了解一个命令是做什么的 → 使用 whatis

高级技巧

  1. 更新whatis数据库(如果whatis命令不工作):
sudo mandb
  1. 组合使用这些命令可以更全面地了解一个命令:
whatis ls; whereis ls; which ls
  1. whereis-b-m-s 选项可以分别限制只搜索二进制文件、手册页或源代码。