Linux笔记-3-文件搜索命令

写在前面

分享我在学习Linux入门时的笔记,主要通过慕课网学习并记录了如下笔记。适合初学者了解Linux的一些基本知识、指令。
链接:Linux达人养成计划1

正菜

一、文件搜索命令

1. locate命令

和find相比,locate搜索速度非常快;find占用系统资源大。

Linux笔记-3-文件搜索命令_第1张图片

  • locate 不是遍历整个系统的文件,而是搜索/var/lib/mlocate下的数据库,所以比较快;但是这个数据库不是实时更新的,而是一天更新一次,所以新建文件是搜索不到的,如果想要搜索到,可以使用updatedb命令更新数据库即可。
  • 缺点:只能按照文件名搜索
  • 特点:搜索时遵守配置文件的要求(当配置文件中PRUNJE_BIND_MOUNTS = “YES”时,配置文件的要求才生效),可以打开配置文件查看内容
    Linux笔记-3-文件搜索命令_第2张图片
2. 命令搜索命令 whereis 和 which
Linux笔记-3-文件搜索命令_第3张图片
  • whereis命令只能搜索系统命令,不能搜索普通文件;
    whatis 命令名——显示命令的功能
    whoami —— 用于打印当前有效的用户名称
  • 举个栗子


    Linux笔记-3-文件搜索命令_第4张图片
  • 当一个命令有别名时才能搜索到,但不是所有命令都有别名(简略名/全名)
  • 注意:which和whereis命令都只能搜索存在文件支持的“外部”命令,而cd命令是shell内置的命令(shell会内置一些比较简单的命令,一些比较复杂的命令需要后来安装),不需要文件支持,这一类命令使用which和whereis搜索不到,只能搜索到帮助文档所在位置!
3. PATH环境变量(Windows中的环境变量也是这样)
Linux笔记-3-文件搜索命令_第5张图片

  在Linux中,要想执行脚本或者执行命令,需要用绝对路径。比如,执行ls命令,需要输入/bin/ls,这样很不方便!环境变量可以避免每次都输绝对路径!
  环境变量之间以冒号 : 分割;


Linux笔记-3-文件搜索命令_第6张图片
  • 当不输入绝对路径,只输入一个命令ls时,系统会在环境变量的各个目录下搜索是否有对应的脚本或执行命令,如果找得到,就执行命令;否则就报错,比如lssss;如果是自己写的脚本或者命令,要想使用的时候不用每次都输入绝对路径,就必须将路径提前添加到环境变量中!
4. 文件搜索命令find
Linux笔记-3-文件搜索命令_第7张图片
  • Linux中的通配符

* 匹配任意内容
  ? 匹配任何一个字符
  [] 匹配任何一个中括号中的字符

  • 注意,若使用通配符,要将文件名和通配符都用双引号引起来;注意:通配符完全匹配!
Linux笔记-3-文件搜索命令_第8张图片
  • find /home –name "ab[cd]"——搜索/home目录下文件名是abc或者abd的文件;
  • find /home –name "*[cd]"——搜索/home目录下文件名以c或者d结尾的文件;
    Linux笔记-3-文件搜索命令_第9张图片
  • find / -nouser —— 寻找没有所有者的文件:搜索结果很可能是垃圾文件,但是有两种情况例外,
    /proc 、 /sys中的文件,由内核产生,可能没有所有者
    ②外来文件(U盘、光盘等),因为Windows中产生的文件忽略了所有者
    Linux笔记-3-文件搜索命令_第10张图片
  • 默认按照天来查找,其实还可以按照分钟来查找


    Linux笔记-3-文件搜索命令_第11张图片
  • 举个栗子


    Linux笔记-3-文件搜索命令_第12张图片

从查找结果来看:按照字节大小查找只能使用小写的k,按照兆字节大小来查找只能使用大写的M;如果什么大小单位都不加,默认单位是硬盘单个扇区的数据块(不是格式化那里说的那个4kb大小的数据块哦),单个数据块大小512kb。

Linux笔记-3-文件搜索命令_第13张图片
  • 第二条命令中:find 命令_1 -exec 命令_2 {} \;是标准写法,有-exec后面就要加{} ;
    表示对于命令_1的查找结果用命令_2进行处理,例:
    Linux笔记-3-文件搜索命令_第14张图片
5. 字符串搜索命令grep——搜索文件内容中符合条件的字符串
  • 命令格式


    Linux笔记-3-文件搜索命令_第15张图片
  • 举个栗子


    Linux笔记-3-文件搜索命令_第16张图片
  • find命令和grep命令的区别


    Linux笔记-3-文件搜索命令_第17张图片
  • 完全匹配:find /root -name install.log,查找结果不会有install.log.log,只会有install.log。 这叫做完全匹配;匹配符适用完全匹配
  • 包含匹配:grep “size” anaconda-ks.cfg,查找结果是所有包含字符串“size”的行。正则表达式适用包含匹配


原创文章,转载请注明出处:http://www.jianshu.com/p/11186e17235c

你可能感兴趣的:(Linux笔记-3-文件搜索命令)