1.文件搜索命令:locate [文件名]
    在后台数据库中按文件名搜索,搜索速度比find快,耗费资源更少
    例子:locate test.txt,就会显示文件名包含 test.txt的所有文件以及这些文件所在的目录
    但对于新建的一个文件,立即使用locate搜索是搜索不到的,因为locate不是遍历所有的文件进行搜索的,而是在locate 自己的数据库中进行搜索的,它的数据库的位置在 /var/lib/mlocate/。因为不需要遍历所有的文件,只是通过自己的数据库进行搜搜,所以搜索速度很快,但是数据库不是实时更新的(一般是一天一更新)
    通过updatedb 命令手动更新它的数据库,就可以将新建的文件的信息放到数据库中了
    但是locate还有一个缺点,它只能通过文件名进行搜索
    locate 命令是根据 /etc/updatedb.conf 的配置文件配置的筛选规则进行搜索的
        PRUNE_BIND_MOUNTS="yes":表示开启搜索限制
        PRUNEFS=:搜索时,不搜索的文件系统
        PRUNENAMES=:搜索时,不搜索的文件类型
        PRUNEPATHS=:搜索时,不搜索的路径

2.命令搜索命令 whereis、which
    whereis、which的搜索规则也是按照 /etc/updatedb.conf里面的配置进行规定的
    whereis [命令名],搜索命令所在路径及帮助文档所在位置
        只能搜索命令,不能搜索普通的文件
        -b:只查找可执行文件;-m:只查找帮助文件
    which [命令名]
        不同于whereis 的是,which不光会搜索到命令的路径,如果该命令有别名,还会显示该命令的别名,但是不能看到命令的帮助文档
    注意:cd……shell自带的命令,是whereis、which所搜索不到的

3.文件搜索命令:find [搜索范围] [搜索条件]
    功能强大、选项很多、消耗的资源较多

例如:find / -name install.log:在 /目录下,搜索名字为 install.log的文件
    使用find的时候需要注意:避免大范围搜索,会非常耗费资源,如果一开始就能确定文件的大概路径在 /var/local下,就把范围设为/usr/local,而不要设为 /,这样会首先缩小范围,会极大的提升效率、缩短时间,尤其是在真实的服务器环境中,一定要尽量减少系统的资源消耗,否则严重的可能出现宕机
        实验环境中可以尽情的尝试,但是在真实的使用环境下(尤其是当服务器正在繁重的工作的时候)一定要避免一些极其消耗资源的操作

find是在系统中搜索符合条件的文件名,如果需要模糊查询、模糊匹配,使用通配符匹配,通配符是完全匹配
        如果使用通配符的话,最好使用双引号括起来,否则可能无法识别,例如:find /root -name "install*"
        *:匹配任意内容
        ?:匹配任意一个字符
        []:匹配任意一个中括号中的字符

 下面是一些其他选项的例子:
        find /root -iname install.log:不区分大小写(在Linux里面是严格区分大小写的)
        find /root -user root:按照所有者搜索,使用的较少
        find /root -nouser:查找没有所有者的文件
        find /var/log -mtime +1:查找10天前修改的文件。主要用于查看系统日志
            -10:10天内;10:10天当天修改的文件;+10:10天前修改的文件
            -atime:文件访问时间;-ctime:改变文件属性的时间;-mtime:修改文件内容的时间
        find . -size 25k:查找当前目录下文件大小是25KB的文件。-25k:小于25KB的文件;25k:等于25KB的文件;+25k:大于25KB的文件
            也可以按照MB,KB应该用小写的k,MB应该用大些的M
        find . -inum 262422:查找当前目录下inode 是262422的文件。另一个知道文件名来查inode的命令:ls -i
        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的文件,并将find显示出来的结果交给 ls -lh命令进行处理,注意{}和前面的名令需要有空格,而且也要和后面的 \ 存在空格
        find /etc -name install.log -exec rm -rf {} \:把用find查找出来的文件进行删除(注意这种形式中rm -rf后面不要加文件名,而是将find 查找到的文件传给它进行处理)
    
4.字符串搜索命令:grep [选项] 匹配形式 文件名
    在指定的文件中匹配符合条件的字符串,并且显示所有能匹配到这种形式的行。-i:忽略大小写;-v:排除制定字符串

例子: grep "size" /root/test:在/root/test文件中查找有"size"字符串的行,并显示符合该条件的所有行
        grep -v "size" /root/test:在/root/test文件中查找不包含"size"字符串的所有行

grep是查找文件中的字符串;而find是搜索文件系统中的文件(名)
    find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
    grep命令:在文件中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配
    
5.帮助命令 man和其他帮助命令
    man 命令名称:显示对应命令的帮助文档
        用man 输出了命令的帮助文档之后,如果想要在文档中查找一些字符串,假如想找 file,就应该在这时输入 /-file,然后会将file字符串加亮显示,如果想看下一个 file,就直接按键盘上的 n即可

man的帮助级别
        1:查看命令的帮助
        2:查看可被内核调用的函数的帮助
        3:查看函数和函数库的帮助
        4:查看特殊文件的帮助(主要是/dev目录下的文件)
        5:查看配置文件的帮助
        6:查看游戏的帮助
        7:查看其他杂项的帮助
        8:查看系统管理员可用命令的帮助
        9:查看内核相关文件的帮助
    查看命令拥有哪个级别的帮助
        man -f 命令,相当于whatis 命令
        例子:man -f passwd,可以看到passwd命令有1级别和5级别的帮助
            如果想查看passwd 1级别的帮助文档,请用:man 1 passwd
            如果想查看passwd 5级别的帮助文档,请用:man 5 passwd
    查看和这个命令的所有的相关帮助可以用:man -k 命令,或者 apropos 命令

 其他帮助命令
        命令 --help:获取命令选项帮助,例如:ls --help
        help shell内部命令:只能获取shell内部命令的帮助,例子:
            whereis cd:确定是否是 shell内部命令,如果whereis显示不出来这个命令的位置就说明这个命令是shell内部命令,如果能显示这个命令的位置就说明这个命令是后来安装的;
            help cd:获取内部命令帮助
        info 命令名称

Linux常用命令学习2---(文件搜索命令locate find、命令搜索命令whereis which、字符串搜索命令grep、帮助命令man)的更多相关文章

  1. Linux | Linux常用指令学习笔记

    @ 目录 前言 1. Linux目录结构: 2. 运行级别: init.systemctl 3. vim相关快捷键: 4. 开关机相关命令: shutdowm.halt.reboot.sync.log ...

  2. linux常用指令学习记录

    前言 本文主要为学习贴,用来记录一些 linux上的常用指令 以供参考. 文件内容查看 cat 从上往下阅读文件内容 cat [-AbEnTv] ${FILE_NAME) cat -n /etc/is ...

  3. 鸟哥的Linux私房菜学习笔记——文件权限与目录配置

    Linux的文件权限和目录配置 在linux中的每个用户必需属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念. (1)所有者 一般为文件的创建者,谁创建了该文件,就是天 ...

  4. Linux常用命令学习3---(文件的压缩和解压缩命令zip unzip tar、关机和重启命令shutdown reboot……)

    1.压缩和解压缩命令    常用压缩格式:.zip..gz..bz2..tar.gz..tar.bz2..rar .zip格式压缩和解压缩命令        zip 压缩文件名 源文件:压缩文件   ...

  5. linux命令学习 查找文件和文件夹

    1: 查找根目录下查找文件夹名称叫XXXX的目录地址 find / -name XXXX -d 2: 查找/var/www/目录下叫index.php的文件 find /var/www/ -name ...

  6. Linux常用基本命令wc-统计文件的字节,字符,行数

    wc命令 作用:统计文件的字节,单词,行数 用法:wc [option] [file] -c:统计字节 ghostwu@dev:~/linux/uniq$ cat ghostwu.txt 192.16 ...

  7. Linux运维学习笔记-文件权限知识总结

    权限总结: 1. 可读r:表示具有读取\阅读文件内容的权限: 2. 可写w:表示具有新增.修改文件内容的权限: a. 若果没有r配合,那么vi编辑文件会提示无法编辑(但可以强制编辑),echo可以重定 ...

  8. Linux常用的指令(...编辑文件+保存)

    mkdir命令用来创建目录 1 mkdir filename touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来:二是用来创建新的 ...

  9. LINUX 常用指令学习

    目录 0 查找find 1 别名alias 2 变量的设置 3 常用的系统变量 4 通配符及组合按键 5 指令之间的分隔符(;&||) 6 输出重定向(>,>>,1>, ...

随机推荐

  1. Django 1.9 Post 时候出现 CSRF token missing or incorrect 错误

    get 的时候没有问题,只有在post的时候出现出现这个错误 在方法中加入 @csrf_exempt

  2. JS获取URL地址参数

    <script> var url = "http://127.0.0.1/index.php?old_quantity=168&date=1478309879000$id ...

  3. AOJ DSL_2_E Range Add Query (RAQ)

    Range Add Query 数列 A = {a1,a2,...,an} に対し.次の2つの操作を行うプログラムを作成せよ. add(s,t,x): as,as+1,...,at にxを加算する. ...

  4. MapReduce实现手机上网日志分析(排序)

    一.背景 1.1 流程 实现排序,分组拍上一篇通过Partitioner实现了. 实现接口,自动产生接口方法,写属性,产生getter和setter,序列化和反序列化属性,写比较方法,重写toStri ...

  5. windows下 nvm下载node被墙了解决办法

    不需要这么麻烦的,在1.1.1版本中,确实没有实现命令行设置.这点你分析的很对,但是从配置文件中读取镜像地址已经完成,所以直接在settings.txt中手工设置一下就好了,无需编译.以下是我的文件位 ...

  6. [转载]用 grub2 启动 clover.iso 来启动 OS X

    这个帖子只用来解决特定问题,是楼主这两天辛苦的结晶,如果你遇到了跟我差不多的情形,你就可以尝试这个解决方案. 特定情景:1.不管你的机器支不支持 UEFI ,反正你现在是用传统 BISO + MBR ...

  7. GNURadio 使用问题

  8. POJ 2478 Farey Sequence

     名字是法雷数列其实是欧拉phi函数              Farey Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submi ...

  9. 【经验】在CSS中定义超链接样式a:link、a:visited、a:hover、a:active的顺序

    以前用CSS一直没有遇到过这个问题,在最近给一个本科同学做的项目里面.出现一些问题,搜索引擎查了一些网站和资料,发现很多人问到这个问题,给出的结果我试了试,大部分都不正确. 给出我试的顺序,可能会对大 ...

  10. 【转】PHP curl CURLOPT_HTTPHEADER设置HOST

    为了安全,我们的web服务主机往往不能上网.维护的时候,也是通过跳板机,ssh登录后去操作. 有时候我们的程序需要访问外网.比如需要调用外网其他程序的某个接口.这下该怎么办呢? 我们可以通过PHP的C ...