Linux基础(六):Linux文件查询相关笔记

133 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情

1、数据库查找命令:locate

Linux也可以通过locate命令查找文件,locate命令主要是依据一个数据库文件来执行文件的查找,默认情况下Linux每天会默认检索系统中的所有文件,然后把检索的文件信息记录到数据库文件中。因为运行locate命令是直接检索该数据库记录文件,并且打印到屏幕上,所有它比find命令效率更高、查询速度更快。如果想查询最新的文件,可以首先执行 updatedb 命令,手动更新文件记录数据库,从而保证文件记录数据库是最新的。比如我需要查找 mysql.conf文件,可以执行:locate mysql.conf 

注意:如果系统中没有locate命令,可以执行 yum install mlocate 进行安装

2、检索可执行文件命令:which/whereis

which用于从Linux系统的PATH变量定义的目录查找可执行文件的绝对路径。

例如:which passwd

输出:/usr/bin/passwd

whereis:包含which命令的同时,还可以额外找出其二进制文件、以及相关的man文件。

例如:whereis passwd

输出:passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz

/usr/share/man/man1/passwd.1.gz

3、grep命令检索文件

grep是在linux系统中基于行文本非常实用检索工具,通过该命令可以将匹配到的结果信息输出到终端控制台。

语法格式:grep [-ivnc] '需要匹配的内容' 文件名

常用参数说明:

  • -i 检索的时候不区分大小写
  • -c 检索到的匹配行数
  • -n 检索到的匹配行显式具体的行号
  • -v 逆向匹配也就是不包含匹配项的结果检索出来

准备工作:

创建一个演示的测试文本文件 test.txt

vim test.txt

插入如下内容:

today IS Saturday

tommow is Sumday

my name is xiaoming

Today

命令示例:

grep 'today' test.txt #找到test.txt文件包含today的行

输出结果:today IS Saturday

grep  -i  'today' test.txt #找到test.txt文件包含today的行不区分大小写

输出结果:

today IS Saturday

Today 

grep  -in  'today' test.txt 

#找到test.txt文件包含today的行不区分大小写包含行号

输出结果:

1:today IS Saturday

4:Today 

grep  -ci  'today' test.txt #找到test.txt文件包含today的行书不区分大小写

输出结果:2

grep  -vn  'today' test.txt #到test.txt文件不包含today的行书显式行号

输出结果:

tommow is Sumday

my name is xiaoming

注意: cat 命令+管道符号进行改写 

比如  :

grep  -ni  'today' test.txt

可以改写为:

cat test.txt | grep  -ni  'today'