Linux whereis和which的区别

devtools/2024/9/19 17:37:47/ 标签: linux
  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来确认正在执行的是哪个目录下的命令。

http://www.ppmy.cn/devtools/113053.html

相关文章

C#/.NET/.NET Core技术前沿周刊 | 第 5 期(2024年9.9-9.15)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿&…

Taro + Vue 的 CSS Module 解决方案

一、开启模块化配置 Taro 中内置了 CSS Modules 的支持,但默认是关闭的。如果需要开启使用,请先在编译配置中添加如下配置: weapp: {module: {postcss: {// css modules 功能开关与相关配置cssModules: {enable: true, // 默认为 false&…

【C++知识扫盲】------初识命名空间

在 C 中,using namespace std; 和 std:: 都与命名空间的使用相关。命名空间是为了防止不同库或模块中的同名符号(函数、变量等)发生冲突的机制。 1. std:: std:: 是用于访问 C 标准库中定义符号的前缀。std 代表标准(standard&a…

AI创意引擎:优化Prompt提示词的高效提问技巧

AI内容创作的精髓:提示词(Prompt) 在AI领域中,提示词(Prompt)是与模型沟通的关键工具。提示词不仅决定了AI生成内容的方向和质量,还在优化模型输出、提升用户体验中扮演着至关重要的角色。因此…

HTTPS和HTTP区别是什么?

HTTP和HTTPS是两种协议,分别是HyperText Transfer Protocol和HyperText Transfer Protocol Secure。 HTTPS还经常被称为HTTP over SSL或者HTTP over TSL,HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。 他们的区别主要由以下几个方面&…

Git常用指令整理【新手入门级】【by慕羽】

Git 是一个分布式版本控制系统,主要用于跟踪和管理源代码的更改。它允许多名开发者协作,同时提供了强大的功能来管理项目的历史记录和不同版本。本文主要记录和整理,个人理解的Git相关的一些指令和用法 文章目录 一、git安装 & 创建git仓…

如何用Appium实现移动端UI自动化测试?

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 Appium是一个开源跨平台移动应用自动化测试框架。 既然只是想学习下Appium如何入门,那么我们就直奔主题。文章结构如下: 为什么要使用App…

计算机毕业设计:Java体育成绩管理系统开题报告+源代码效果图

博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

OpenCV-上下采样

文章目录 一,简介二、下采样(Downsampling)三、上采样(Upsampling)四、代码实现1.图像读取2.下采样3.上采样4.拉普拉斯金字塔 五、应用 一,简介 高斯金字塔是图像处理、计算机视觉和信号处理中常用的一项技…

快人一步迅为LPDDR5版本瑞芯微RK3588核心板升级了

性能强--iTOP-3588开发板采用瑞芯微RK3588处理器,是全新一代ALoT高端应用芯片,采用8nm LP制程,搭载八核64位CPU,四核Cortex-A76和四核Cortex-A55架构,主频高达2.4GHZ,8GB内存,32GB EMMC。四核心…

JAVA学习笔记05-Character

package day01; public class CharacterDemo { public static void main(String[] args) { // char 占用2个字节 char temp A; System.out.println(temp); System.out.println((int)temp); char t1 \; // 特殊符号有特殊含义,不…

Matlab生成prbs7的代码

最近的一个客户需求,客户想看一下我们的产品产生的prbs并进行一些分析。 我在“”豆包“”这里找到了一个pbs的matlab的生成程序,效果就是连续生成prbs7,然后每次都在原来的基础之上添加。 生成的matlab的PRBS7代码修改如下: %…

虚幻引擎Gameplay探索 Actor 之间的高效通信与交互技巧二

Actor通信介绍 在虚幻引擎中,Actor 是游戏世界中的基本构建块,类似于 Unity 中的 GameObject。Actor 通信是指不同 Actor 之间如何相互交互和传递信息,这在构建复杂的游戏逻辑时至关重要。以下是对 Actor 通信的详细介绍。 Actor通信方法表…

git-fork操作指南

git-fork操作指南 1.fork github仓库2. clone fork仓库3. 分支修改4.与原始仓库保持修改同步4.1添加上游仓库4.2 拉取上游分支4.3 合并更改4.4 推送更改 参考: 有时候我们需要将github的项目fork到自己名下,然后修改并提交pull request,这里将…

计算机毕业设计 二手闲置交易系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【Git】Clone

当git clone失败时,出现 RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8) 错误,可能由于网络连接不稳定或仓库太大导致的。 可以尝试以下几种方法来解决这个问题: 增加 Git 的缓冲区大小: git confi…

Java许可政策再变,Oracle JDK 17 免费期将结束!

原文地址:https://www.infoworld.com/article/3478122/get-ready-for-more-java-licensing-changes.html Oracle JDK 17的许可协议将于9月变更回Oracle Technology Network License Agreement,这将迫使用户重新评估他们的使用策略。 有句老话说&#xf…

探索Python中的装饰器

在Python编程中,装饰器是一种非常强大的工具,它允许我们在不改变原有函数代码的情况下,为函数添加额外的功能。本文将深入探讨Python装饰器的概念、工作原理以及如何使用它们来增强代码的功能。 一、装饰器的基本概念装饰器是Python中的一个…

navicate连接oracle数据库probable oracle net admin error

没用过oracle数据库 1、数据库版本19c; 使用dbeaver连接是没有问题的 使用navicate一直报错 解决方案: oracle官网下载win64的OCI环境 https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html 下载好的压缩包直接解…

QT设置闹钟超时播报

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTimerEvent> #include<QTime> #include<QTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic…