Linux whereis和which的区别

  1. 功能概述
    • whereis命令
      • whereis主要用于查找二进制文件、源代码文件和手册页文件的位置。它会在特定的目录列表中查找,这些目录包括二进制文件目录(如/bin、/sbin、/usr/bin、/usr/sbin等)、源代码目录(如/usr/src)和手册页目录(如/usr/share/man)等。
    • which命令
      • which主要用于查找可执行文件的位置,并且是在系统的环境变量 P A T H 所定义的路径中查找。 PATH所定义的路径中查找。 PATH所定义的路径中查找。PATH是一个包含一系列目录的环境变量,当在命令行输入一个命令时,系统会根据$PATH中的目录顺序来查找对应的可执行文件。
  2. 输出内容差异
    • whereis命令
      • 例如,当执行whereis ls时,可能会输出类似如下的结果:
        • ls: /bin/ls /usr/share/man/man1/ls.1.gz
      • 它不仅会显示可执行文件ls/bin目录下的位置,还会显示与ls相关的手册页文件(如果存在)在/usr/share/man/man1/ls.1.gz的位置等。
    • which命令
      • 当执行which ls时,输出结果可能为:/bin/ls。它只会显示可执行文件lsPATH环境变量所定义的搜索路径中的第一个匹配位置。
  3. 搜索范围区别
    • whereis命令
      • 搜索范围是预定义的一些系统目录,这些目录包含了二进制文件、源代码文件和手册页文件的常见存放位置,不受$PATH环境变量的影响。
    • which命令
      • 搜索范围严格限制在 P A T H 环境变量所指定的路径中。如果某个可执行文件不在 PATH环境变量所指定的路径中。如果某个可执行文件不在 PATH环境变量所指定的路径中。如果某个可执行文件不在PATH所定义的目录中,which命令将无法找到它,即使该文件存在于系统的其他目录中。
  4. 使用场景
    • whereis命令
      • 当需要查找一个命令相关的二进制文件、源代码文件以及手册页文件的位置时,可以使用whereis命令。例如,在开发过程中,想要找到某个命令的源代码或者查看是否有对应的手册页文件时,whereis就很有用。
    • which命令
      • 当只想确定一个在命令行中可直接执行的命令的具体位置(特别是在$PATH所定义的路径中)时,使用which命令。例如,当遇到命令执行问题,怀疑是执行了错误路径下的命令时,可以用which来确认正在执行的是哪个目录下的命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值