文章目录

  • 前言
  • find
    • 命令格式
    • 具体示例
  • locate
    • 命令格式
    • 具体示例
  • whereis
    • 命令格式
    • 具体示例
  • which
    • 命令格式
    • 具体示例
  • grep
    • 命令格式
    • 具体示例
  • 总结

前言

查找是运维工作的很重要的一部分,不管是文件查找,还是内容查找,在日常开发维护过程中都常常用到,本文把一些日常用到的查找命令总结到一起,通过对比来学习异同点,进而达到 增强记忆的目的。

本文只是想对常用命令进行一个罗列,并不会对每个命令进行详细的解释,如果想看更详细的用法,直接查询 man 手册是一个不错的选择,我们接下来会说到通用文件查找的 find 命令,快速定位文件的 locate 命令,仅用于搜索程序和文档的 whereis 命令,用于查找系统命令的 which 命令,最后是用于文件内容查找的 grep 命令。

find

命令格式

find [指定目录] 搜索条件 [指定动作]

具体示例

  • 全局查找tendis文件所在目录
[root@VM-0-3-centos ~]# find / -name tendis
/root/tendis
  • 当前目录按指定名找到tendis并打印文件信息
[root@VM-0-3-centos ~]# find . -name tendis -ls
918146    4 drwxr-xr-x   4 root     root         4096 May  1  2021 ./tendis
  • 全局查找test开头的文件
[root@VM-0-3-centos ~]# find / -name 'test*'
/boot/grub2/i386-pc/testspeed.mod
/boot/grub2/i386-pc/test.mod
/boot/grub2/i386-pc/test_blockarg.mod
/boot/grub2/i386-pc/testload.mod
/usr/lib/modules/3.10.0-1127.19.1.el7.x86_64/kernel/drivers/ntb/test
/usr/lib/python2.7/site-packages/jinja2/tests.pyc
/usr/lib/python2.7/site-packages/jinja2/tests.py
/usr/lib/python2.7/site-packages/jinja2/testsuite
...
  • 当前目录下查找所有的目录
[root@VM-0-3-centos ~]# find . -type d
.
./tendis
./tendis/scripts
./tendis/bin
./tendis/bin/deps
./extundelete-0.2.4
...
  • 查找大于1M的文件
[root@VM-0-3-centos ~]# find . -size +1M -ls
918152 164712 -rwxr-xr-x   1 root     root     168663910 Dec 17  2020 ./tendis/bin/tendisplus_static
918151 18036 -rwxr-xr-x   1 root     root     18464898 Dec 17  2020 ./tendis/bin/binlog_tool
918148 2576 -rwxr-xr-x   1 root     root      2635759 Dec 17  2020 ./tendis/bin/redis-cli
918150 10896 -rwxr-xr-x   1 root     root     11154937 Dec 17  2020 ./tendis/bin/deps/libstdc++.so.6
918145 165076 -rwxr-xr-x   1 root     root     169036319 Dec 17  2020 ./tendis/bin/tendisplus
1311915 1860 -rw-r--r--   1 root     root      1904320 Nov 28  2021 ./extundelete-0.2.4/src/extundelete-extundelete.o
1311926 1296 -rwxr-xr-x   1 root     root      1323360 Nov 28  2021 ./extundelete-0.2.4/src/extundelete
...
  • 查找10分钟内修改的普通文件
[root@VM-0-3-centos ~]# find . -type f -mmin -10
./b.txt
./.bash_history

locate

locate 也是用来查找文件的,只不过它不是通过文件系统来找,而是通过自己的数据库来找,默认在 /var/lib/mlocate/mlocate.db,每天自动更新一次,所以查不到最新变动的文件,可以手动通过 updatedb 来更新数据库(我查了一下才2M很小的)。

命令格式

locate [选项] [匹配串]

具体示例

  • 查找家目录下包含te的文件
[root@VM-0-3-centos ~]# locate ~/te
/root/tendis
/root/test.iso
/root/tendis/bin
/root/tendis/file.xml
/root/tendis/scripts
/root/tendis/bin/binlog_tool
/root/tendis/bin/deps
/root/tendis/bin/redis-cli
/root/tendis/bin/tendisplus
/root/tendis/bin/tendisplus_static
/root/tendis/bin/deps/libstdc++.so.6
/root/tendis/scripts/start.sh
/root/tendis/scripts/stop.sh
/root/tendis/scripts/tendisplus.conf
  • 不区分大小写查找
[root@VM-0-3-centos ~]# locate -i ~/tE
/root/TE.txt
/root/tendis
/root/test.iso
/root/tendis/bin
/root/tendis/file.xml
/root/tendis/scripts
/root/tendis/bin/binlog_tool
/root/tendis/bin/deps
/root/tendis/bin/redis-cli
/root/tendis/bin/tendisplus
/root/tendis/bin/tendisplus_static
/root/tendis/bin/deps/libstdc++.so.6
/root/tendis/scripts/start.sh
/root/tendis/scripts/stop.sh
/root/tendis/scripts/tendisplus.conf

whereis

whereis 只能用于二进制文件、man手册和源代码文件的搜索,默认返回所有信息。

命令格式

whereis [-bmsBMS] 匹配串

具体示例

  • 查找二进制程序 ls
[root@VM-0-3-centos ~]# whereis -b ls
ls: /usr/bin/ls
  • 查找 grep 所有信息
[root@VM-0-3-centos ~]# whereis grep
grep: /usr/bin/grep /usr/share/man/man1/grep.1.gz

which

which 是在 PATH 变量中找到第一个匹配的命令并返回,这能帮助我们确认多个相同命令时用的是哪一个。

命令格式

which [选项] 匹配串

具体示例

  • 打印当前使用的gcc程序,打印所有可加 -a 参数
[root@VM-0-3-centos ~]# which gcc
/usr/bin/gcc
[root@VM-0-3-centos ~]# which gcc -a
/usr/bin/gcc

grep

grep 不算是单纯查找文件的命令,更多的是用于从文件中过滤指定内容。

命令格式

grep [选项] 匹配串 [指定文件]

具体示例

  • 过滤包含指定字符串的行
[root@VM-0-3-centos ~]# grep "which" w.txtwhich - shows the full path of (shell) commands.which [options] [--] programname [...]This man page is generated from the file which.texinfo.
  • 显示匹配行之后的2行
[root@VM-0-3-centos ~]# grep "which" w.txt -A 2which - shows the full path of (shell) commands.SYNOPSISwhich [options] [--] programname [...]DESCRIPTION
--This man page is generated from the file which.texinfo.OPTIONS
--
  • 当前目录下查找包含 wonderful 的文件
[root@VM-0-3-centos ~]# grep -r "wonderful" .
./.rediscli_history:hset life family wonderful
./.bash_history:grep -r "wonderful" . | head

总结

  • find命令查找文件最全面 find . -name tendis -ls
  • locate 命令查找最快,locate -i /etc/redis,可用 updatedb 命令更新数据库
  • whereis 命令可以查找二进制、man手册、源码,whereis -b grep
  • which 可以从PATH路径下找到第一个匹配的二进制程序
  • grep 一个强大的过滤命令,也可用于找文件 grep -r "wonderful" .

==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==


幸福感从比较中诞生,亦从比较中消亡,并且与比较双方的关系紧密程度高度相关。我有一块糖,而你没有,我就很幸福,转身发现他有10块糖,然后嘴里的糖瞬间就不甜了~

linux环境下常用的查找命令find、which、grep相关推荐

  1. linux环境下常用的网络命令ping、telnet、traceroute、tcpdump

    文章目录 前言 网络 网络命令 ping telnet nc traceroute tcpdump 总结 前言 因特网(Internet)的前身是美国国防部高级研究计划局(ARPA)用于军事目的的通信 ...

  2. 操作系统课程设计--在Linux环境下模拟实现简单命令解释器(C++代码)

    操作系统课程设计要求 一.设计目的 熟悉Linux编程环境,加强对Linux命令的理解及函数的运用 二.设计内容 1. 在Linux环境下模拟实现简单命令解释器. (1)要求实现的基本命令包括: pw ...

  3. linux四种文件系统,Linux环境下常用的四种文件系统

    Linux环境下几种常用的文件系统 1.ext2 ext2是为解决ext文件系统的缺陷而设计的可扩展的.高性能的文件系统,又被称为二级扩展文件系统.它是Linux文件系统中使用最多的类型,并且在速度和 ...

  4. 第十八篇 Linux环境下常用软件安装和使用指南

    提醒:如果之后要安装virtualenvwrapper的话,可以直接跳到安装virtualenvwrapper的方法,而不需要先安装好virtualenv 安装virtualenv和生成虚拟环境 安装 ...

  5. Linux环境下查看日志文件命令详解

    目录: 前言 cat命令 more命令 less命令 head命令 tail命令 tac命令 echo命令 grep命令 sed命令 混合命令 附加 前言: 当日志存储文件很大时,我们就不能用 vi ...

  6. 在linux环境下模拟实现简单命令解释器_git bash 竟然不支持 tree 命令

    别人家的孩子 以下故事,纯属虚构,如有雷同,绝不可能! git 是一个思维敏捷做事可靠的好管家,什么事交给他都很放心,文件再也不用担心丢失了,还得记住文件内容的更改变化. 可惜的是,git 是别人家的 ...

  7. linux环境下常用的打包、压缩、解压命令(tar、gzip、bzip2、zip)

    文章目录 前言 基础概念 打包/归档 压缩 解压 打包压缩 压缩解压命令 总结 前言 经常使用电脑的人常常会接触到压缩文件,不管是软件.数据还是资料,下载之后通常就是一个压缩包,在Windows平台上 ...

  8. linux环境下随时照看服务器进程的ps和top命令

    文章目录 前言 ps命令 语法格式 语法规范 常用的ps选项 ps命令的表头 进程状态 常规状态码 BSD格式状态码 进程相关的后续命令 top命令 语法格式 常用的top选项和快捷键 top命令的表 ...

  9. linux设置密码报错automa,opensuse linux环境下ibm_websphere和ibm_db2安装以及DB2数据迁移操...

    opensuse linux环境下ibm_websphere和ibm_db2安装 ibm_websphere安装: 1.ibm官网下载免费版websphere,如下载文件名为BASETRIAL.age ...

  10. 【Chrome浏览器插件开发】浏览器插件运行机制02之实战开发出一款Google浏览器插件——含源码全部过程 (建议在Linux环境下)

    一.浏览器插件配置文件 manifest.json入门 每个浏览器插件都有一个 JSON 格式的文件,叫做 manifest.json,里面提供了插件的描述信息. manifest.json 文件本质 ...

最新文章

  1. 一些非常酷的GAN的应用
  2. 车脸检测 Adaboost 检测过程
  3. 一张图看懂华为2019年年报
  4. Linux的铜墙铁壁:防火墙之iptables
  5. mfix中统计气泡体积
  6. 深入浅出妙用 Javascript 中 apply、call、bind
  7. 【OpenCV学习笔记】【函数学习】十五(批量读入图片)
  8. Allegro16.6导出位号图
  9. 全国大学生恩智浦杯智能汽车竞赛
  10. 进阶Java架构师必看的15本书
  11. linux服务网卡速率查看,linux下查看网卡速率
  12. 【Java基础知识 8】String、StringBuilder、StringBuffer详解
  13. Tinder 和 Potluck 的卡片风格实现
  14. 如何做好软件可靠性测试?
  15. Python 数据科学入门教程:Pandas
  16. 团队协作效率低?多半是这5大障碍搞的鬼
  17. C++程序设计:税费计算
  18. 上传并下载excel表格
  19. JAVA中Object转String
  20. 关于STM32串口3的使用,接收并解析一帧数据

热门文章

  1. python row函数_Python extmath.row_norms方法代码示例
  2. 数据结构 - 线性表顺序存储结构
  3. Android使用串口打印机打印图片方法
  4. 读后感:八部众---走出软件作坊:三五个人十来条枪 如何成为开发正规军(二十三)
  5. opc服务器变量为空,OPC客户机上浏览不到OPC服务器上的变量
  6. 10min快速回顾C++语法(六)函数专题
  7. Chrome 浏览器翻译停服!改Hosts也失效!还有这些解决方案
  8. 《Spring实战》读书笔记-第5章 构建Spring Web应用程序
  9. 通过故障恢复控制台修复xp系统引导文件丢失的方法
  10. ios13 微信提示音插件_教大家苹果ios13系统怎么改微信提示音的方法