linux怎么快速查找文件,怎么查找一个命令文件所在路径、以及根据文件内容进行查找?

引言:上期回顾(想要学习的童鞋可以点击看看)

    上一章节讲诉了使用find命令查询文件的几种方式,如果服务器使用久了,或者是说部署了很多服务,在这种情况下使用find搜索文件会出现特别慢,同时也会消耗很多资源。所以针对这个问题,今天我们来学习另外一个能快速查找一个文件的命令,以及这个命令原理是什么,还会教大家如何在linux中查找我们输入命令所在文件路径。

1.locate 命令 : locate 文件名

    这个locate命令搜索文件是比较快的,具体是为什么呢?首先我们来讲一下这个locate查找文件的原理。

    之所以这个locate命令查找很快,它不像find一样在我们的搜索范围进行查找也不是在我们的硬盘上进行操作,而是在它所存放的资料库中进行查找。那资料库是什么呢?就类似一个记录操作日志的一个文件库,我们创建一个文件时,就会保存到我们的资料库中,所以我们在搜索文件时只是会检索资料库,从而提高效率

    我们只用locate搜索一下tomcat(图1),速度几乎达到秒搜。这个locate资料库是定期被存放的,如果说我们刚刚创建的一个文件能被搜索到吗?我们来试试。如(图2),一个刚刚新建的文件夹today,再使用locate进行查找时,第一次是查询不到结果的。刚刚新建的一个文件还没保存到资料库中去,所以我们更新一下资料库就可以查询到,更新资料库的命令是updatedb

    在这里我们还需要注意一点,locate的资料库并不是针对全部的目录的。好比如说我们在临时目录/tmp下创建一个文件夹,试试我们能不能搜索到(图3),我们在/tmp目录下创建一个文件夹,更新资料库以后进行搜索,可是结果并没有搜索到。所以大家记住locate到资料库并不是针对所有目录下的文件哦。

    针对文件名有大小写可使用-i的选项来忽略大小写查找,这里就不再做演示了。

    

2.which 命令 : which 需要查找命令

    大家知道我们所输入的命令一般是存放在那个目录下吗? 不知道? 没关系我告诉你哈哈哈哈~~~

      /bin、/usr/bin : 这个目录下存放的命令是针对普通的用户都可以使用命令。

      /sbin、/usr/sbin:这个目录下存放的针对root用户才能使用的命令。

    那我们怎么知道这个命令所存放的位置呢? 这个时候就可以使用which命令来进行查找。如(图1),使用来which来查找来rm、useradd命令所在文件位置。我们很清楚就能看出rm是所有用户可以使用的,其中还有一行"rm=rm -i",这个意思就是给rm取了一个别名的意思,具体的我们后期会有所介绍。像我们useradd命令就只是针对root用户使用,因为这个命令是存放在/usr/sbin目录下的。

    当然这些命令所存放的目录也可以使用find进行查找,但是效率会比较慢。

    

3.whereis 命令 :whereis 需要查找命令

    这个命令干什么用的呢?这个也是查找命令所在位置,但是和which有一点是不同的。whereis不仅仅可以查找出一个命令所在文件,还可以查询到该命令的帮助文档所在文件位置。(其实在linux系统中,命令都会有相对应的帮助文件提供给大家查看,这个内容下个章节会有所介绍),这里大家有所了解就可以了。

   

4.grep 命令 : grep 搜索内容 文件名

    上面我们所学的命令都是进行搜索文件的,那这个grep是针对文件内容进行搜索的。比如我查看一个配置文件,可能这个配置文件有几百行甚至上千行,每一次查看都需要翻页或者是查找关键字。如果使用grep命令,就可以快速的看到你所需要浏览的内容。

    我们先用more浏览一下/etc/inittab这个文件,在使用grep来查找每一行中包含set关键字的所在行。结果显示有2行,这个就是grep命令的效果。

    grep命令还有两个知识点需要大家掌握的:

             第一:怎么去掉多余的行?什么意思呢?比如说我们查看一个配置文件,其中包含了很多注释信息(在配置文件中一般#代表的是注释),但是我们又不想看注释信息,很多配置文件的注释信息都是英文,对于我来说看不看都是一回事哈哈哈,干脆不要看了。 我们可以使用-v的选项来进行筛选

             注意:如果我们不想看到注释信息,可是有些注释是写在后面的,所以我们只需要去掉行首是#的就可以了,语法如下:

             "grep -v ^# /etc/inittab",^:这个代表着只去掉每一行以#开始的行。

             第二:同样的如果存在大小写的问题找不到你需要的行,可以使用-i的选项忽略大小写进行查找。

                 

猜你喜欢

转载自blog.csdn.net/weixin_38111957/article/details/79939350
今日推荐