find和grep查找搜索命令常用的一些使用方式

news/2024/9/24 1:40:54/

目录

find和grep查找搜索命令常用的一些使用方式

一、find命令

二、grep命令


find和grep查找搜索命令常用的一些使用方式

一、find命令

我们知道在Windows系统中想要搜索查找文件,一般需要满足两个条件:
1、知道在哪些目录中查找
2、知道查找的内容;
在Linux系统中,查找文件也需要这两个条件,不同于Windows系统下的使用搜索框查找,Linux中使用find命令来查找文件。以下介绍find命令常用的一些使用方式。
在Linux系统下find命令格式为:
find + 目录名 + 选项 + 查找条件
以下举例说明其使用方法:
例1:
find /home/ubuntu/hello/ -name " test.txt " 
说明:
⚫ /home/ubuntu/hello/ :表示查找的路径。(hello为文件夹)
⚫ -name :表示以文件名的方式来查找文件。
⚫ test.txt :表示要查找的文件为test.txt。例2:
find /home/ubuntu/hello/ -name " *.txt "   
说明:
⚫查找指定目录下面所有以'.txt'结尾的文件,其中星号'*'是通配符,表示任意的,所有的。例3:
find /home/ubuntu/hello/ -name "123"
说明: 
⚫查找指定目录下面是否存在'123'这个目录或文件,'123'是名称。例4:
find . -name " *.txt "  //其中.代表当前路径。
find -name " *.txt "    //没加查找路径,默认是在当前路径下查找。
说明: 
⚫如果没有指定查找目录,则默认查找目录为当前目录。   例5:    
find /home/ubuntu/ -mtime -2 //查找/home/ubuntu目录下两天内有变动的文件。
说明: 
⚫find命令的一些高级的用法,比如查找最近几天(几个小时)之内(之前)有变动的文
件。

二、grep命令

grep命令的作用是查找文件中符合条件的字符串,其格式如下:
grep + 选项 + 搜索内容 + 文件名
其中常用的格式为:grep -nr "字符串" 文件名 
说明:
⚫ n(number):显示目标位置的行号
⚫ r(recursive):递归的进行查找 
⚫ 字符串:要查找的字符串
⚫ 文件名:要查找的目标文件,如果是星号'*'则表示查找当前目录下的所有文件和目录。例1:
grep -n "abc" test.txt 
说明:
⚫ 在test.txt文件中查找字符串abc,并显示目标位置的行号。 例2:
grep -nr "abc" * 
说明:
⚫ 在当前目录递归查找字符串abc,并显示目标位置的行号。
注意:在查找时还可以加入-w选项进行全字匹配。
​
例3:
ps -ef | grep ssh
说明:
⚫ 查找ssh的进程。'|'为管道符,用于将前面命令输出的结果传递给后面的命令。
⚫ 可以在前面命令执行的结果中执行grep搜索。
上述命令把第1个命令'ps -ef'的执行结果通过管道传给第2个命令'grep ssh'。即第2个命令是在第1个命令的结果中进行搜索。例4:
ps -aux | grep 进程名| grep -v grep | awk '{print $2}' | xargs  kill -9
说明:
⚫  上面的这个命令的作用是使用进程名来查找进程的pid,然后杀死该进程。
⚫  ps -aux: 查找所有的进程。
⚫  ps -aux | grep 进程名: 查找所有进程,并且过滤出只含有进程名的进程。
⚫  ps -aux | grep 进程名 | grep -v grep: 查找所有进程,并且过滤出只含有进程名的进程以及过滤掉grep进程。(grep查找指令本身也是一个进程,因此也要过滤掉)
⚫  ps -aux | grep 进程名 | grep -v grep | awk '{print $2}':根据进程名查找对应的pid号。 
⚫  xargs kill -9: xargs用于传参,将前面获得的pid号使用xargs传递给后面的命令kill -9完成杀死进程的操作。 
​

http://www.ppmy.cn/news/1429177.html

相关文章

鸿蒙OpenHarmony【轻量系统编写“Hello World”程序】 (基于Hi3861开发板)

编写“Hello World”程序 下方将通过修改源码的方式展示如何编写简单程序,输出“Hello world”。请在下载的源码目录中进行下述操作。 前提条件 已参考鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到…

vue中的inject和provide

在Vue中,provide 和 inject 是用来实现祖先组件向子孙组件传递数据的一种高级组件通信方式。provide 可以在祖先组件中定义数据,而 inject 可以在子孙组件中接收这些数据。这种传递方式不受组件层级限制,非常适合于跨多层级的组件通信。 用法…

配置 rust国内源

rust crate.io 配置国内源(cargo 国内源) warning: spurious network error (2 tries remainin..._warning: spurious network error (3 tries remaining-CSDN博客

linux apt-get安装Jenkins

这个错误信息表明在尝试更新软件包索引时,APT 软件包管理器无法验证 Jenkins 存储库的 GPG 签名,因为缺少相应的公钥。此外,还提示 sources.list 和 jenkins.list 文件重复配置了相同的目标。 要解决这个问题,请按照以下步骤操作…

Linux——进程基本概念中篇

Linux——进程基本概念中篇 文章目录 Linux——进程基本概念中篇一、通过系统调用创建进程——fork1.1 fork的理解1.2 fork的返回值 二、进程状态2.1 运行状态2.2 睡眠状态和休眠状态2.3 停止状态和死亡状态2.4 僵尸进程2.5 孤儿进程2.6 前台和后台进程 三、进程优先级3.1 查看…

使用Canal同步MySQL 8到ES中小白配置教程

🚀 使用Canal同步MySQL 8到ES中小白配置教程 🚀 文章目录 🚀 使用Canal同步MySQL 8到ES中小白配置教程 🚀**摘要****引言****正文**📘 第1章:初识Canal1.1 Canal概述1.2 工作原理解析 📘 第2章&…

代码质量与自动化:ESLint Prettier配置与使用

代码质量与自动化是现代软件开发中非常重要的一部分。ESLint和Prettier是两个流行的工具,可帮助开发人员提高代码质量并自动化代码格式化。 ESLint是一个JavaScript和TypeScript的静态代码分析工具,可以帮助开发人员在编写代码时发现和修复常见的问题&a…

Python机器学习算法库scikit-learn学习之决策树实现方法

Scikit-learn 是一个功能强大的Python机器学习库,它提供了各种算法,包括决策树(Decision Tree)。决策树是一种直观的算法,用于分类和回归任务。以下是如何使用 scikit-learn 实现决策树的基本步骤: 1. 导入…