zoukankan      html  css  js  c++  java
  • Linux学习之路(三)搜索命令

    1.文件搜索命令locate

    2.命令搜索命令whereis与which

    3.字符串搜索命令grep

    4.find命令与grep命令的区别

    locate命令相对于find命令搜索非常快,find命令在哪个目录下使用就在该目录下遍历一遍,非常消耗资源。

    locate命令格式

    locate 文件名

    在后台数据库中按文件名搜索,搜索速度非常更快。locate不能搜索新建的文件,原因为locate命令不是直接在系统当中去搜索,而是在/var/lib/mloacte中去搜索。/var/lib/mlocate是locate命令所搜索的后台数据库。执行locate时,在数据库中搜索,不需要遍历整个操作系统,所以搜索文件时速度非常快。但是mlocate数据库不是实时更新,默认一天一更新,所以新建文件时,mlocate数据库并没有更新,locate该文件时没有能够搜索到,等到它更新时就能搜索到了。除此之外,还可以强制更新mlocate数据库,用命令updatedb命令来强制更新数据库。不同版本的Linux中locate命令的数据库mlocate的命名不同,有的是locatedb,有的是slocated。具体用locate去locate

    自身。

    缺点:只能按文件名搜索,功能单一。

    locate搜索时是按照/etc/updatedb.conf配置文件来搜索的

    PRUNE_BIND_MOUNTS="yes"         #开启搜索限制
    PRNEFS =                        #搜索时,不搜索的文件系统
    PRUNENAMES =                    #搜索时。不搜索的文件类型
    PRUNEPATHS =                    #搜索时,不搜索的路径
    

    当更新了数据库后仍不能搜索到文件时,可以去看一下/etc/updatedb.conf里面是不是存在排除的规则。

    2.命令的搜索命令whereis与which

    搜索命令的命令whereis

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

    选项:

    -b  只查找可执行文件

    -m  只查找帮助文件

    只能搜索系统命令,不能搜索我们创建的文件

    搜索命令的命令which

    which 文件名

    搜索命令所在的路径及别名        #但是并不是所有命令都有别名,如系统shell命令。which只能搜索外部安装外部外来命令。

    当我们执行一个外部命令时,首先在$PATH路径下去找该命令,没有就报错。如果有就不用加绝对路径,没有就要加绝对路径,否则就放进$PATH路径下来定义搜索环境。

    PATH环境变量

    PATH环境变量:定义的是系统搜索命令的路径

    3.文件搜索命令find

     find命令

    find [搜索范围] [搜索条件]        #搜索文件

    注意

    #避免大范围搜索,会非常耗费系统资源

    #场面是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配

     Linux中的通配符

    *  匹配任意内容

    ?  匹配任意一个字符

    []  匹配任意一个中括号内的字符

    find /root -iname install.log    #不区分大小写
    find /root -user root    #按照所有者搜索
    find /root -nouser        #查找没有所有者的文件
    

    find /var/log/ -mtime +10      #查找10天前修改的文件

    -10    10天内修改的文件

    10    10天当天修改的文件

    +10    10天前修改的文件

    atime  文件访问时间

    ctime  改变文件属性

    mtime  修改文件内容

    find . -size 25k    #查找当前目录下大小是25KB的文件

    -25k  小于25KB的文件

    25K  等于25KB的文件

    +25  大于25KB的文件

    kb要小写,MB要大写

    find . -size +2M

    find . -inum  262626  #查找inode号是262626的文件

    find /etc -size +20k -a -size -50k  #查找/etc目录下,大于20KB并且小于50KB的文件

    -a  and  逻辑与,两个条件都满足

    -o  or  逻辑或,两个条件满足一个即可

    find  /etc  -size +20k -a -size -50k -exec  ls  -lh   {}  ;    #查找/etc目录下,大于20KB并且小于50KB的文件,并显示详细信息

    #-exec/-ok  命令{};  对搜索结果执行操作 

    4.搜索字符串命令grep

    .grep  [选项]  字符串  文件名

    #在文件当中匹配符合条件的字符串

    选项:

      -i  忽略大小写

      -v  排除指定字符串

    find命令与grep命令的区别

    .find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符是完全匹配。

    .grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达工时包含匹配      

  • 相关阅读:
    Andriod调试桥
    抓包工具charles的使用
    测试常用工具
    Indentation error codes
    Cmder 中文乱码的解决方法
    修改Cmder命令提示符
    统计单词出现的字数
    将字串内容输出到文件
    python数据实例str
    python语法检查工具
  • 原文地址:https://www.cnblogs.com/RzCong/p/6639967.html
Copyright © 2011-2022 走看看