Linux常用命令002之搜索命令locate、whereis、which、find、grep
-20150811
常用搜索命令
-------文件搜索命令----------
-->locate命令 --速度比find快
locate 文件名
在后台数据库中按文件名搜索,搜索速度更快
/var/lib/mlocate
#locate命令所搜索的后台数据库
updatedb命令
--新建的文件用locate命令搜索不到,更新数据库后可以
--可以手动更新数据库 updatedb
缺点:只能按照文件名搜索
--------命令搜索命令----------
-->whereis 命令
whereis 命令名
#搜索命令所在路径及帮助文档所在位置
选项:
-b ----只查找可执行文件
-m ----只查找帮助文件
-->which 文件名
#搜索命令所在路径及别名
----------------补充-----------------------
PATH环境变量:定义的是系统搜索命令的路径
[soft01@tarena ~]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/jdk/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin
------------------------------------------
-------文件搜索命令----------
-->find命令
find [搜索范围] [搜索条件]
#搜索文件
--eg:find / -name install.log
#避免大范围搜索,会非常消耗系统资源
#find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配。
-------补充:linux中的通配符---------
* ----匹配任意内容
? ----匹配任意一个字符
[] ----匹配任意一个中括号内的字符
-----------------------------------------
--eg:find /root -iname install.log
#不区分大小写
-eg:find /root -user root
#按照所有者搜索
--eg:find /root -nouser
#查找没有所有者的文件
--eg:find /var/log/ -mtime +10
#查找10天前修改的文件
-10 ----10天内修改文件
10 ----10天当天修改的文件
+10 ----10天前修改的文件
atime ----文件访问时间
ctime ----改变文件属性
mtime ----修改文件内容
--eg:find . -size 25k
#查找文件大小是25kb的文件
# . 表示当前目录
-25k ----小于25kb的文件
25k ----等于25kb的文件
+25k ----大于25kb的文件
k、M ----k小写、M大写
--eg:find . -inum 262422
#查找i节点是262422的文件
#ls -i --查看i节点
--eg:find /etc -size +20k -a -size -50k
#查找/etc/目录下,大于20kb并且小于50kb的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可
--eg:find /etc -size +20k -a -size -50k -exec ls -lh {} \;
#把find命令查找出来的文件交给exec后的命令处理,{} \;必须写
-------字符串搜索命令--------
-->grep命令
grep [选项] 字符串 文件名
#在文件当中匹配符合条件的字符串
选项:
-i ----忽略大小写
-v ----排除指定字符串
-->find命令与grep命令的区别
--find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
--grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配