2.1文件搜索命令——locate
#local 文件名 //在后台数据库中按文件名搜索,搜索速度快
/var/lib/mlocate //locate命令所搜索的后台数据库
Updatedb //更新数据库
/etc/updatedb.conf 配置文件
PRUNE_BIND_MOUNTS=“yes”——开启搜索限制
PRUNEFS= ——搜索时,不搜索文件系统
PRUNENAMES= ——搜索时,不搜索文件类型
PRUNEPATHS= ——搜索时,不搜索路径
2.2命令搜索命令——whereis
#whereis 命令名 ——搜索系统命令所在路径及帮助文档所在位置
选项:
-b——只查找可执行文件
-m——只查找帮助文件
2.3命令搜索命令——which
#which 命令名——//搜索系统命令所在路径,如果有别名可以看到别名及可执行文件
cd命令是shell自带的,whereis与which看不到,他们只能查看外部的命令
#whatis 命令名 ——//用于查询命令有什么功能
#whoami ——//查看当前用户是谁
2.4 PATH环境变量——定义系统搜索命令的路径
系统在执行脚本命令时需要绝对路径才能执行,定义PATH环境变量后就可以不用写绝对路径,系统自动到PATH环境变量中搜索命令的路径。如果是自己写的脚本,需要将脚本放到PATH环境变量下,这样,不需要写绝对路径就能能执行命令。否在,还是需要写绝对路径才能执行命令。
Echo $?PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
2.5 Find命令——在系统当中搜索符合条件的文件名
#find [搜索范围] [搜索条件] ——搜索文件名
#find / -name install.log
//避免大范围搜索,会非常耗费系统资源
//find是在系统当中搜索符合条件的文件名,完全匹配。如果需要匹配,使用通配符匹配,通配符是完全匹配。
如使用:#find /root -name “install.log*”
-iname——不区分大小写搜索
-user——按照所有者搜索
-nouser——查找没有所有者的文件,一般是垃圾文件需要删除(内核产生 外来数据如U盘)
-atime——按照文件访问时间搜索
-ctime——按照改变文件属性搜索
-mtime——按照修改文件内容搜索
-size——按照文件大小搜索(k是小写,M是大写,必须加单位)
-inum——按照i节点大小搜索
#find /var/log/ -mtime +10 ——//查找10天前修改的文件
-10:10天内修改文件
10:10天当天修改的文件
+10:10天前修改的文件
#find /var/log/ -size 25k ——//查找文件大小是25KB的文件
-25k:小于25KB的文件
25k:等于25KB的文件
+25k:大于25KB的文件
#find /var/log/ -inum 262422——//查找i节点是262422的文件
#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 命令 {} \;————该命令能处理前一个命令的结果
-exec/-ok 命令 {} \;————对搜索结果执行操作
2.7字符串搜索命令——grep
#grep [选项] 字符串 文件名——//在文件当中匹配符合条件的字符串
选项:
-i——忽略大小写
-v——取反,排除指定字符串
#grep "牛客" 文件名 | wc -l ——//统计一个文件中"牛客"出现的行数
wc -l——统计行数
wc -w——统计单词数量
Find命令与grep命令的区别
Find命令是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
Grep命令是在文件数据内容当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配。