简介
find[查找目录] [查找条件] : 在指定目录下查找文档
grep [关键词特殊字符] [文件]
find 查找文档
-name : 根据文档名进行查找
在根目录下查找文档名后缀为conf结尾的文档(目录+文件)(*通配符匹配任意数量的任意字符)
find / -name "*.conf"
-type:根据文档类型进行查找
{f:file 文件 ,d:directory 目录,l:link 链接,b:block 块设备}
在根目录下查找后缀为.conf的文件
find / -name "*.conf" -type f
-size:根据文档大小进行查找
{+3M:超过3M的文档,-1k:小于1k的文档,+10G:超过10G的文档}
在根目录下查找超过10M的文件
find / -size +10M -type f
-mtime:根据文档的修改天数查找
+1 :超过1天
- 1:低于1天
在/tmp(存放缓存文件)目录中,查找哪些目录是低于一天没有修改的
find /tmp -mtime -1 -type d
-perm:根据权限进行文档查询
{属主:u,属组:g,其他用户:o,读:r,写:w,可执行:x}
在/var[存放动态缓存文件]/log[存放日志文件]目录下查找其他用户具有读权限的文件
find /var/log -perm -o=r -type f
-user:根据文档属主查询文档
查找根目录下哪些文档的属主是username[用户名]
find / -user username
-a -o 多条件查询
{-a:并且 同时满足多个条件}{-o:并且 多个条件只需满足一个}
查找大于3M的文件
find / -size +3M -a -type f
查找大于10M或小于1k的文档
find / size +10M -o -1k
grep通过文件内容查找文件
基础用法
-
搜索文本:
grep [关键词特殊字符] [file]- 在指定的文件中搜索与模式匹配的文本行。如果找到匹配项,则输出这些行。
-
区分大小写:
grep "关键词" file- 默认情况下,
grep对大小写敏感。
- 默认情况下,
-
忽略大小写:
grep -i "关键词" file [常用]- 使用
-i选项使搜索忽略大小写。
- 使用
常用选项
-v:反转匹配,即只显示不匹配模式的行。[常用]-c:计数模式,只输出匹配行的数量,而不是文本本身。-n:显示匹配行及其行号。[常用]-l:只列出包含匹配行的文件名,不显示匹配的文本行。-r或--recursive:递归搜索目录中的所有文件。-E:启用扩展正则表达
关键词特殊字符 [常用]
^:一行的开始,查找以ab开头的行,grep "^ab" 文件
" 文件
^:匹配空行,查找文件中的空行,grep "^" 文件
#:配置文件中一般代表注释,被注释的配置项不会再生效
查找文件中被注释的内容:grep "^#" 文件
案例
1.在/etc/passwd 文件中查找带有root关键词的行 grep "root" /etc/passwd
2.在/etc/passwd 文件中查找不包含root关键词的行 grep -v "root" /etc/passwd
3.在/etc/passwd 文件中查找包含ROOT关键词的行,忽略大小写 grep -i "ROOT" /etc/passwd
4.在/etc/selinux/config,查找被注释的行 grep "^#" /etc/selinux/config
5.在/etc/selinux/config,查找没有被注释的行 grep -v "^#" /etc/selinux/config
6.在/etc/selinux/config,查找空行 grep "^$" /etc/selinux/config
7.在/etc/selinux/config,查找非空行 grep -v "^$" /etc/selinux/config
联合管道符进行多重筛选(管道符详细内容请观看作者主页{linux扩展}文章)[扩展]
在/etc/selinux/config文件中查找非空的内容并且没有被注释的内容,统计一共有多少行
grep -v "^$" /etc/selinux/config | grep -v "^#" | wc -l