1.文本搜索
grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。
格式:grep 关键字 目录
#在目录所在文件里搜索关键字,如(abc是单个单词不用加单引号): grep abc /etc/passwd
#常用参数:
-i 在搜索时忽略大小写
-n 显示结果所在行数
-v 输出不带关键字的行
-Ax 在输出的时候包含结果所在行 之后的指定行数(x 代表数字)
-Bx 在输出的时候包含结果所在行 之前的指定行数(x 代表数字)
关于grep推荐一篇博客linux grep。
2.文件搜索
locate配合数据库查看文件位置,find根据文件的属性精确查找文件名,which查看可执行文件的位置,whereis查看文件的位置 。
- 使用 locate 命令配合数据库查找文件、目录
locate keyword(关键字)
#此命令需要预先建立数据库,默认数据库每天更新一次,我们可以用 updatedb命令手动更新- 使用 find 命令精确查找文件、目录
# 如:
find . -name “*keyword*”(关键字)
find / -name *.conf
find / -perm 777 (查找权限是 777 的文件)
find / -type d (查找所有的目录)
find . -name “a*” -exec ls -l {} \; (查找以 a 开头的文件,并查看他们的 ls)
find . -user tom (查找用户属于 tom 的文件)
find . -group tom (查找属组是 tom 的文件)
find . -ctime +2|wc -l (查找最近两天修改的文件,并统计个数)
find . -size 30[cwbkMG] (查找指定大小的文件)
- 使用 which 命令查看可执行文件的位置
# which 是通过 PATH 环境变量到该路径内查找可执行文件,所以基本功能是查找可执行文件;
- 使用 whereis 命令查看文件的位置
#常用参数:
-b 只查找二进制文件
-s 只查找源文件
# whereis 与 locate 的查找方式一样,都是通过数据库查找