详解:Linux下的搜索

阿里云刚到期,于是索性就把原来的winServer换成了CentOS,决定好好学一学Linux。在这把今天学到的东西回顾一下。


为了便于学习,就把搜索命令认为的划分成4个部分,分别是:

1、文件搜索命令 locate

2、命令搜索命令

3、find命令

4、grep命令


第一条:文件搜索命令 locate

命令格式

lacate -fileName

locate和find相比,locate的速度非常快,因为locate的搜索是从数据库中搜索的,但是相对的如果搜索一个新建的文件,可能不能搜到,因为数据库不是实时更新的,一般一天更新一次,如果想要立即搜索到这个文件,可以使用

updatedb

这个命令来强制更新这个数据库(/var/lib/mlocate,在Linux版本不同,可能会有不同)。如果显示为command not found ,就先yum install mlocate。

还有一种情况就是这样,


同样创建文件后,test3能找到,test1找不到。

原因是locate是按/etc/updatedb.conf文件来搜索的,主要有四条。


在上一个问题中的原因是,不筛选/tmp目录下的文件。

同样的下面要讲的whereis 和which 也会遵守这个配置文件。

第二条:搜索命令的命令whereis和which

whereis搜索命令所在的路径及帮助文档的位置

-b 只查找可执行文件的位置

-m 只查找帮助文档的位置

whereis 只能搜索系统命令,不能搜索自己创建的文件。

 ][]

Which 在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

which还可以查看命令的别名。如果没有别名就不显示。上图表示ls支持颜色显示,方式为自动。

第三条:文件搜索命令find命令

find   path   -option   [-print]   [-exec  -ok command]   {} \;
例如:find / -name install.log
pathfind命令所查找的目录路径

option命令选项

printfind命令将匹配的文件输出到标准输出
execfind命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } \;,注意{   }和\;之间的空格 
ok 和 exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行

一般情况下,尽量避免大范围的搜索。find的搜索是一模一样的,如果要模糊查询,就要使用通配符。

有3个通配符:

* 匹配任意多个字符

?匹配任意单个字符

[] 匹配单个括号内的内容


Linux 严格区分大小写,要不分大小写搜索,要用-iname

-nouser 没有所有者的文件
find /var/log -mtime +10 #搜索10天前修改过的文件

<pre name="code" class="plain" style="font-size: 13.3333px;">+10 10天前修改的时间  -10 10天内修改的时间 10 10天修改的时间
atime 访问的文件ctime 改变的文件mtime 修改的文件

 
find . -size 25k #搜索当前目录下文件大小为25k的文件

-25k 小于25k 25k 等于25k +25k 大于25k

find . -size 2M #兆的单位要大写,k的单位为小写,如果不写单位,默认为扇区
find  . -inum 1000 #查找i节点为262422的文件
find /etc -size +25k -a -size -2M #在/etc下查找大于25k,小于2M的文件
-a # and 逻辑与 两个条件都满足
-o # or 逻辑或 只需满足一个条件

find /etc -size +25k -a -size -2M -exec ls -lh {} \ 
# -exec 后面写第二条命令。指把前面找到的数据交给第二条命令处理,此处为显示。
# {} \是标准格式,只要写-exec就要写{} \,在{}和\之间有空格。

第四条:字符搜索命令grep命令

grep 在指定的文件中搜索符合的字符串

grep [-acinv] [--color=auto] '搜寻字符串' filename
选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔!




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值