当前位置: 首页 > news >正文

Linux命令定位与查找:which、whereis和find的用法详解

文章目录

  • Linux命令的定位与查找
    • 1. 简介
      • Linux路径环境变量
      • 命令行和Shell
    • 2. `which`命令
      • which命令的作用
      • 使用which命令定位可执行文件
      • 多个可执行文件的定位
      • which命令的选项及其使用
    • 3. `whereis`命令
      • whereis命令的作用
      • 使用whereis命令查找二进制文件
      • 查找源代码文件
      • whereis命令的选项及其使用
    • 4. `find`命令
      • find命令的作用
      • 使用find命令查找文件
      • 搜索指定类型的文件
      • 根据文件名或文件大小搜索文件
      • find命令的选项及其使用
    • 5. which、whereis和find三者的区别和联系
      • 三种命令的作用和使用场景
      • 命令输出的结果不同
      • 三种命令的优缺点比较
    • 6. 实战演练
    • 7. 总结
  • python精品专栏推荐
    • python基础知识(0基础入门)
    • python爬虫知识

Linux命令的定位与查找

1. 简介

在Linux系统中,定位和查找文件是我们经常需要做的任务之一。本文将介绍三个常用的命令:whichwhereisfind,它们能够帮助我们快速定位或查找文件。

Linux路径环境变量

在开始介绍这些命令之前,我们先来了解一下Linux的路径环境变量。路径环境变量是一个包含多个目录路径的字符串,每个路径之间用冒号(:)分隔。当我们在命令行输入一个指令时,系统会到这些路径中去查找可执行文件。

命令行和Shell

命令行是用户与操作系统交互的界面,通过命令行可以执行各种操作。而Shell则是命令行的解释器,负责接收、解析和执行用户输入的命令。

2. which命令

which命令的作用

which命令用于定位可执行文件的位置。它会搜索系统的路径环境变量中是否存在指定的可执行文件,并返回该文件所在的完整路径。

使用which命令定位可执行文件

以下是使用which命令定位可执行文件的示例:

which python

上述命令会在系统的路径环境变量中搜索python可执行文件,并返回其完整路径。

多个可执行文件的定位

如果系统中存在多个同名的可执行文件,which命令会返回第一个搜索到的文件路径。若要查找所有匹配的可执行文件路径,可以使用-a选项。

which -a python

which命令的选项及其使用

which命令还提供了一些其他的选项,比如-s用于静默模式,只返回退出状态;-p用于显示所有符合条件的路径名。你可以通过以下命令获取更多信息:

man which

3. whereis命令

whereis命令的作用

whereis命令用于查找二进制、源代码和帮助文档等文件。它会在特定的目录中进行搜索,并返回相应文件的位置。

使用whereis命令查找二进制文件

以下是使用whereis命令查找二进制文件的示例:

whereis python

上述命令会在默认的二进制文件搜索路径中查找python,并返回该文件所在的位置。

查找源代码文件

whereis命令还可以用于查找源代码文件。使用-s选项加上src参数即可。例如:

whereis -s src python

whereis命令的选项及其使用

whereis命令还有其他选项可供使用,如-b用于指定搜索二进制文件的路径,-m用于指定搜索帮助文档的路径等。你可以通过下面的命令获取更多帮助:

man whereis

4. find命令

find命令的作用

find命令用于在指定目录下搜索文件,并返回满足条件的文件列表。

使用find命令查找文件

以下是使用find命令查找文件的示例:

find /home/user -name "*.txt"

上述命令会在/home/user目录及其子目录中查找所有扩展名为.txt的文件,并返回它们的完整路径。

搜索指定类型的文件

find命令支持根据文件类型来进行搜索。例如,以下命令将搜索所有的目录:

find /home/user -type d

根据文件名或文件大小搜索文件

find命令还可以根据文件名或文件大小来搜索文件。例如,通过-iname选项可以进行不区分大小写的文件名搜索;通过-size选项可以搜索指定大小的文件。

find命令的选项及其使用

find命令有许多选项可供选择,如-maxdepth用于限制搜索的目录深度,-mtime用于根据文件的修改时间进行搜索等。你可以通过以下命令获得更多信息:

man find

5. which、whereis和find三者的区别和联系

三种命令的作用和使用场景

  • which命令用于定位可执行文件,适合查找系统中某个特定命令的位置。
  • whereis命令用于查找二进制、源代码和帮助文档等文件,可用于查找特定文件类型所在的位置。
  • find命令用于在指定目录下搜索文件,适用于查找满足条件的文件。

命令输出的结果不同

  • which命令返回可执行文件的完整路径。
  • whereis命令返回文件所在的位置和相关信息。
  • find命令返回符合条件的文件列表。

三种命令的优缺点比较

  • which命令简单易用,但只能定位可执行文件。
  • whereis命令功能更丰富,能够查找多种类型的文件,但搜索范围有限。
  • find命令灵活强大,可以根据多种条件进行搜索,但速度较慢。

6. 实战演练

我们接下来通过一个实际案例来演示如何使用which、whereis和find命令。假设我们要找到系统中安装的Java可执行文件的位置。

which java
whereis java
find / -name "java" -type f 2>/dev/null

7. 总结

在本文中,我们详细介绍了Linux命令的定位与查找。首先,我们简要介绍了Linux路径环境变量以及命令行和Shell的基本概念。

接下来,我们深入讨论了which命令。我们了解到,which命令主要用于定位可执行文件。我们学会了如何使用which命令来查找特定的可执行文件,并且还学习了处理多个可执行文件的情况。此外,我们还探讨了which命令的各种选项和使用方法。

然后,我们介绍了另一个常用的命令——whereis命令。whereis命令不仅可以用于查找二进制文件,还可以用于查找源代码文件。通过学习whereis命令的使用方法,我们可以更加灵活地进行文件查找工作。

接着,我们详细了解了find命令。find命令是一个非常强大的文件搜索工具,它可以根据多种条件来查找文件。我们学会了使用find命令来搜索指定类型的文件,以及根据文件名和文件大小来搜索文件。此外,我们还探究了find命令的各种选项和使用技巧。

在接下来的部分,我们比较了which、whereis和find这三个命令的区别和联系。我们明确了它们的作用和使用场景,并且注意到它们输出的结果可能不同。同时,我们也对这三个命令的优缺点进行了综合比较。

最后,我们通过实战演练进一步加深了对这些命令的理解。通过实际操作,我们更加熟悉了这些命令的使用方法,并且掌握了它们在实际工作中的应用技巧。

综上所述,Linux命令的定位与查找是我们日常工作中必备的技能。掌握which、whereis和find这三个命令,可以帮助我们更加高效地进行文件搜索和定位工作。不论是初学者还是有经验的用户,都可以通过本文所介绍的知识来提升自己的技能水平。祝大家在Linux命令的使用中取得更好的成果!


python精品专栏推荐


python基础知识(0基础入门)

【python基础知识】0.print()函数
【python基础知识】1.数据类型、数据应用、数据转换
【python基础知识】2.if条件判断与条件嵌套
【python基础知识】3.input()函数
【python基础知识】4.列表和字典
【python基础知识】5.for循环和while循环
【python基础知识】6.布尔值和四种语句(break、continue、pass、else)
【python基础知识】7.实操-用Python实现“文字PK”小游戏(一)
【python基础知识】7.实操-用Python实现“文字PK”小游戏(二)
【python基础知识】8.编程思维:如何解决问题-思维篇
【python基础知识】9.函数的定义和调用
【python基础知识】10.用函数编写程序 - 实操篇
【python基础知识】10.用Python实现石头剪刀布小游戏-函数实操篇
【python基础知识】11.如何debug -常见报错原因及排查思路 - 思维篇
【python基础知识】12.类与对象(一)
【python基础知识】12.类与对象(二)
【python基础知识】13.类与对象(三)
【python基础知识】13.类与对象(四)
【python基础知识】14.图书管理系统的搭建(类与对象实操)
【python基础知识】15.编码基础知识
【python基础知识】16.文件读写基础及操作
【python基础知识】16.“古诗默写题”的python实现(文件读写和编码-实操篇)
【python基础知识】17.模块的概念以及如何引入
【python基础知识】18.实操-使用python自动群发邮件
【python基础知识】19.产品思维以及流程图的使用 - 思维篇
【python基础知识】20.“午饭吃什么”的python实现(产品思维-实操篇)
【python基础知识】21.高效偷懒的正确打开方式-毕业篇
【python文件处理】CSV文件的读取、处理、写入
【python文件处理】Excel自动处理(使用 openpyxl)
【python文件处理】-excel格式处理


python爬虫知识

【python爬虫】1.爬虫基础知识
【python爬虫】2.网页基础知识
【python爬虫】3.爬虫初体验(BeautifulSoup解析)
【python爬虫】4.爬虫实操(菜品爬取)
【python爬虫】5.爬虫实操(歌词爬取)
【python爬虫】6.爬虫实操(带参数请求数据)
【python爬虫】7.爬到的数据存到哪里?
【python爬虫】8.温故而知新
【python爬虫】9.带着小饼干登录(cookies)
【python爬虫】10.指挥浏览器自动工作(selenium)
【python爬虫】11.让爬虫按时向你汇报
【python爬虫】12.建立你的爬虫大军
【python爬虫】13.吃什么不会胖(爬虫实操练习)
【python爬虫】14.Scrapy框架讲解
【python爬虫】15.Scrapy框架实战(热门职位爬取)
【python爬虫】16.爬虫知识点总结复习

相关文章:

Linux命令定位与查找:which、whereis和find的用法详解

文章目录 Linux命令的定位与查找1. 简介Linux路径环境变量命令行和Shell 2. which命令which命令的作用使用which命令定位可执行文件多个可执行文件的定位which命令的选项及其使用 3. whereis命令whereis命令的作用使用whereis命令查找二进制文件查找源代码文件whereis命令的选项…...

LeetCode 面试题 17.10. Find Majority Element LCCI【摩尔投票法】简单

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...

多校联测11 模板题

题目大意 给你四个整数 n , m , s e e d , w n,m,seed,w n,m,seed,w,其中 n , m n,m n,m为两个多项式 A ( x ) ∑ i 0 n a i x i A(x)\sum\limits_{i0}^na_ix^i A(x)i0∑n​ai​xi和 B ( x ) ∑ i 0 m b i x i B(x)\sum\limits_{i0}^mb_ix^i B(x)i0∑m​bi​xi…...

Linux SSH连接远程服务器(免密登录、scp和sftp传输文件)

1 SSH简介 SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录和文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多的安全…...

从0开始python学习-30.selenium frame子页面切换

目录 1. frame切换逻辑 2. 多层子页面情况进行切换 3. 多个子页面相互切换 1. frame切换逻辑 1.1. 子页面的类型一般分为两种 frame标签 iframe标签 1.2. 子页面里面的元素和主页面的元素是相互独立 子页面元素需要进去切换才能操作 如果已经进入子页面,那么…...

asp.net core 远程调试

大概说下过程: 1、站点发布使用Debug模式 2、拷贝到远程服务器,以及iis创建站点。 3、本地的VS2022的安装目录:C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE下找Remote Debugger 你的服务器是64位就拷贝x64的目…...

Java spring boot 一次调用多个请求

Java Spring Boot是一种基于Java编程语言的开发框架,它提供了一种快速构建高效、可伸缩和易于维护的企业级应用程序的方式。在实际的应用开发中,我们常常需要调用多个独立的请求来完成某个业务功能。然而,传统的同步方式一次只能调用一个请求…...

DRM全解析 —— CRTC详解(4)

接前一篇文章:DRM全解析 —— CRTC详解(3) 本文继续对DRM中CRTC的核心结构struct drm_crtc的成员进行释义。 3. drm_crtc结构释义 (21)struct drm_object_properties properties /** properties: property tracking …...

六个为Rust构建的IDE

Rust语言的学习曲线适中,介于高级语言和低级语言之间。这门语言既能编写系统软件,将嵌入式设备编译为x86 ARM,也可以用于前端技术,这要归功于WebAssembly。 在日渐成熟的发展中,Rust开始拥有更好的工具来提高效率。最…...

25 Python的collections模块

概述 在上一节,我们介绍了Python的sqlite3模块,包括:sqlite3模块中一些常用的函数和类。在这一节,我们将介绍Python的collections模块。collections模块是Python中的内置模块,它实现了特殊的容器数据类型,提…...

JEPG Encoder IP verilog设计及实现

总体介绍: 采用通用的常规 Verilog 代码编写,可用于任何 FPGA。 该内核不依赖任何专有 IP 内核,而是用 Verilog 编写了实现 JPEG 编码器所需的所有功能,代码完全独立。 编码器内核的输入是一条 24 位数据总线,红色像素、绿色像素和蓝色像素各有 8 位。 信号 "data_i…...

yolov5 web端部署进行图片和视频检测

目录 1、思路 2、代码结构 3、代码运行 4、api接口代码 5、web ui界面 6、参考资料 7、代码分享 1、思路 通过搭建flask微型服务器后端,以后通过vue搭建网页前端。flask是第一个第三方库。与其他模块一样,安装时可以直接使用python的pip命令实现…...

嵌入式养成计划-34--函数库

七十二、 函数库 1. 库的概念 库是一个二进制可执行文件,与二进制可执行程序比较,库是不能单独运行的。 库中存放的是功能函数,没有主函数(main函数) 库需要被载入到内存中使用 标准的基础库中存放了很多已经写好的…...

PM864AK01-eA 3BSE018161R2 工业人工智能供应链先驱

PM864AK01-eA 3BSE018161R2 工业人工智能供应链先驱 吞吐量和Macnica Networks的战略合作伙伴关系将使Macnica Networks的客户能够加速和量化智能工厂计划的投资回报(ROI)。高管、经理和运营负责人可以使用Macnica Networks领先的制造场所数据收集平台和ThroughPut基于约束理论…...

参与现场问题解决总结(Kafka、Hbase)

一. 背景 Kafka和Hbase在现场应用广泛,现场问题也较多,本季度通过对现场问题就行跟踪和总结,同时结合一些调研,尝试提高难点问题的解决效率,从而提高客户和现场满意度。非难点问题(历史遇到过问题&#xf…...

基于PSD-ML算法的语音增强算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 1.加窗处理: 2.分帧处理: 3.功率谱密度估计: 4.滤波处理: 5.逆变换处理: 6.合并处理: 5.算法完整程序工程 1.算法…...

【1++的Linux】之文件(一)

👍作者主页:进击的1 🤩 专栏链接:【1的Linux】 文章目录 一,初识文件二,文件接口 一,初识文件 文件就是文件内容属性。因此对文件的操作无非就是对文件内容的操作和对文件属性的操作。 我们访问…...

Kafka 高可用

正文 一、高可用的由来 1.1 为何需要Replication 在Kafka在0.8以前的版本中,是没有Replication的,一旦某一个Broker宕机,则其上所有的Partition数据都不可被消费,这与Kafka数据持久性及Delivery Guarantee的设计目标相悖。同时Pr…...

关于分布式操作系统

关于分布式操作系统,如果你不太理解的话,可以把它看成是传统操作系统延展。二者的区别在于,传统的操作系统都是单机系统,只能在一台计算机上运行,而分布式操作系统是多机系统,每台计算机都是系统中的一个计…...

Pytorch使用DataLoader, num_workers!=0时的内存泄露

描述一下背景,和遇到的问题: 我在做一个超大数据集的多分类,设备Ubuntu 22.04i9 13900KNvidia 409064GB RAM,第一次的训练的训练集有700万张,训练成功。后面收集到更多数据集,数据增强后达到了1000万张。…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...