1、locate 命令格式
locate用法
locate 文件名
在linux指定的数据库中按文件名搜索,搜索速度特别快
数据库地址
/var/lib/mlocate
locate
命令搜索的文件名全都存在该目录下
mlocate
数据库并不会实时更新,而是每天更新一次
更新数据库命令(使用该命令随时更新数据库)
updatedb
locate命令配置(使用locate搜索不生效应该就是该配置的原因)
- 该配置文件存在于:
/etc/updatedb.conf
-
//PRUNE_BIND_MOUNTS = "YES"
代表开启搜索限制yes
-
// 搜索时,不搜索的文件系统PRUNEFS =
-
// 搜索时,不搜索的文件类型PRUNENAMES =
-
// 搜索时,不搜索的路径PRUNEPATHS =
2、搜索命令的命令whereis与which
whereis用法(该搜索只能搜索命令)
whereis 命令名
搜索命令所在路径及帮助文档所在位置
- 选项
-
-b
只查找可执行文件
-
-m
只查找帮助文件
which用法(该搜索只能搜索命令)
which 命令名
搜索命令所在路径及别名
PATH环境命令
如果想直接使用命令,则需要在PATH中填写该命令所在的目录
PATH环境变量: 定义的是系统搜索命令的路径
输入
echo $PATH
,即可查看
$PATH
中有哪些目录,如下例:
root@ubuntu:/$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
3、文件搜索命令 find
find 用法
find [搜索范围] [搜索条件]
find 举例
root@ubuntu:/$ find / -name .log
/home/ceshi/.log
注:避免大范围搜索,因为搜索非常耗费系统资源
Linux中的通配符
使用find搜索时,只知道文件的其中一个字符,那么就可以使用通配符,可以使你更容易搜索到文件
-
*
匹配任意内容
-
?
匹配任意一个字符
-
[]
匹配任意一个中括号内的字符
find 扩展
-
// 不区分大小写find /home -iname install.log
-
// 按照所有者搜索find /home -user root
-
// 查找没有所有者的文件find /home -nouser
-
// 查找10天前修改的文件find /home/log/ -mtime +10
-
文件访问时间atime
-
改变文件属性ctime
-
修改文件内容mtime
-
10天内修改文件 |-10
10天当天修改的文件 |10
10天前修改的文件+10
-
-
或者find /etc -size +25k
// 查找文件大小大于25k或者2M的文件find /etc -size +2M
- 这里
必须是小写,k
必须是大写M
- 其余用法都跟上列一样
- 这里
-
// 查找i节点是262422的文件find /etc inum 262422
-
// 查找/etc/目录下,大于20kb并且小于50kb的文件find /etc -size +20k -a -size -50k
-
// 逻辑与,两个条件都满足-a and
-
// 逻辑或,两个条件满足一个即可-o or
-
-
// 查找/etc/目录下,大于20kb并且小于50kb的文件,并显示详细信息find /etc -size +20k -a -size -50k -exec ls -lh {} \;
-
#命令#-exec
// 对搜索结果执行操作{} \;
-
4、搜索字符串命令grep
grep 用法
grep [选项] 字符串 文件名
在文件当中匹配符合条件的字符串
- 选项
-
忽略大小写-i
-
排除指定字符串-v
grep 举例
查找123.log文件里包含”a”的部分
root@ubuntu:/home/ceshi$ grep "a" .log
casca
a
as
find命令 和 grep命令的区别
-
命令:在系统中搜索符合条件的文件名,如果需要匹配,就得使用通配符,通配符是完全匹配find
-
命令:在文件中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式包含匹配grep