51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 577|回复: 0

Linux的对决:which vs. whereis vs. whatis

[复制链接]
  • TA的每日心情
    无聊
    1 小时前
  • 签到天数: 932 天

    连续签到: 4 天

    [LV.10]测试总司令

    发表于 2023-5-24 11:27:19 | 显示全部楼层 |阅读模式
    您可能已经多次在 Linux 上使用过 which、whereis 和 whatis 命令。这三个命令都用于查找关于其他 Linux 命令的信息。这些命令看起来相似,但它们确实有一些区别。
      以下是对 Linux 上 which、whereis 和 whatis 命令的详细比较。
      which 命令
      某些命令在不同的目录中具有多个可执行文件。当您运行一个命令时,Shell 会在 PATH 环境变量指定的目录中搜索其可执行文件。
      要查找 PATH 环境变量中包含的目录,请在 Linux 终端中运行以下命令:
      ┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
      └─$ echo $PATH



      小贴士:您还可以手动将目录添加到您的PATH环境变量中。
      在 Linux 中,当 shell 找到第一个可执行路径时,它会执行该路径。使用 which 命令,您可以确定该可执行文件的路径。
      这在以下情况下非常有用:您的系统上安装了同一程序的两个不同版本,或者安装了具有相同名称的两个不同程序。使用 which 命令,您可以找出哪个将首先被执行。
      以下是 which 命令的语法:
      which [选项] [命令]

      例如,要检查 tar 命令的实际路径,您可以输入:
      ┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
      └─$ which tar



      该命令将显示tar命令在PATH中找到的第一个可执行路径,即 /usr/bin。这意味着无论何时运行 tar 命令,shell 都会执行位于 /usr/bin 目录中的二进制文件。
      要显示命令的所有可用可执行路径,请使用 which 命令加上 -a 选项:
      ┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
      └─$ which -a tar



      您还可以同时显示多个命令的可执行路径,如下所示:
      which [命令1] [命令2] [命令3]

      whereis 命令
      whereis 命令会显示与指定命令相关的二进制文件、源文件和手册页面文件的路径。与 which 命令不同,它不仅在 $PATH 中搜索可执行文件,还在 $MANPATH 和其他预定义位置进行搜索。
      如果没有任何命令行选项,whereis 命令会显示命令的二进制文件、源文件和手册页面文件:
      ┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
      └─$ whereis tar



      要仅显示二进制文件路径,请使用 -b 选项:
      ┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
      └─$ whereis -b tar



      要仅显示源文件,请使用-s标志:
      ┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
      └─$ whereis -s tar



      要仅显示手册页面,请使用 -m 选项:
      ┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
      └─$ whereis -m tar



      whatis 命令
      whatis 命令提供了给定 Linux 命令的一行描述。它从命令的 man 页面中获取这些信息。
      例如,要查找 tar 命令的功能,请运行:
      ┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
      └─$ whatis tar



      您还可以同时查找多个命令的信息,例如:
      ┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
      └─$ whatis ls cp mkdir cat head



      which、whereis 和 whatis 之间的区别是什么?
      如果您想找到在 shell 中运行命令时执行的二进制文件的路径,请使用 which 命令。而如果您想找到命令的源文件、二进制文件和 man 页面,请使用 whereis 命令。
      whereis 命令列出所有的二进制可执行文件,而 which 命令仅显示在 shell 中输入该命令时执行的第一个可执行文件。
      which 命令在 PATH 变量中进行搜索,而 whereis 命令在标准的Linux目录中进行搜索,包括 $PATH 和 $MANPATH。
      最后,whatis 命令会从命令的 man 页面中提取出一行简短的描述。
      查找Linux命令的信息
      which、whereis 和 whatis 命令可以帮助您找到其他 Linux 命令的信息,如可执行文件的完整路径、二进制文件、源文件、手册页面以及命令的功能。
      除了 whatis 命令,您还可以使用其他命令,如 apropos、man、info 和 help,以获得关于 Linux 命令及其功能的详细信息和更好的理解。

    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-18 10:29 , Processed in 0.063846 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表