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

发布于:2024-04-19 ⋅ 阅读:(30) ⋅ 点赞:(0)

目录

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完成杀死进程的操作。 
​