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系统中,定位和查找文件是我们经常需要做的任务之一。本文将介绍三个常用的命令:which、whereis和find,它们能够帮助我们快速定位或查找文件。
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∑naixi和 B ( x ) ∑ i 0 m b i x i B(x)\sum\limits_{i0}^mb_ix^i B(x)i0∑mbixi…...
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在现场应用广泛,现场问题也较多,本季度通过对现场问题就行跟踪和总结,同时结合一些调研,尝试提高难点问题的解决效率,从而提高客户和现场满意度。非难点问题(历史遇到过问题…...
基于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万张。…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
