前面5天我们已经搞定了:环境搭建、路径管理、文件操作、权限体系、用户管理。
从今天开始,正式进入运维实用工具阶段!
工作中最头疼的两件事:
服务器文件太多,不知道文件放哪
日志几万行,找不到报错关键词
今天 Day6 带你吃透 Linux 两大检索神器:
find(全局文件查找)、grep(文本关键词过滤)
排查问题、检索配置、批量处理文件每天都在用!
一、今日学习目标
✅ 掌握 find 全局查找任意文件/目录
✅ 学会按名称、大小、时间精准检索
✅ 掌握 grep 文本过滤、关键词匹配、日志筛选
✅ 学会递归检索目录所有文件内容
✅ 掌握日常排查日志的标准组合命令
二、find 命令:系统全局搜文件
find 是 Linux 最强文件搜索工具,遍历全盘,精准匹配,没有搜不到的文件。
1、按文件名查找(最高频)
bash
# 在根目录全局搜索 nginx 相关文件
find / -name "nginx"
# 模糊匹配后缀 .log 所有日志文件
find / -name "*.log"
# 在home目录搜索所有txt文件
find /home -name "*.txt"
2、按文件大小查找
bash
# 查找大于100M的文件
find / -size +100M
# 查找小于1M的文件
find / -size -1M
3、按修改时间查找
bash
# 查找24小时内修改过的文件
find / -mtime -1
# 查找7天前修改的旧文件
find / -mtime +7
4、find 批量删除文件(运维常用)
bash
# 查找所有 .tmp 临时文件并批量删除
find / -name "*.tmp" -delete
⚠️ 批量删除务必先执行查找确认,再加 delete 参数!
三、grep 命令:文本关键词过滤神器
查看日志、排查报错、检索配置,离不开 grep。
作用:从文件/输出中,筛选出包含指定关键词的行。
1、基础关键词搜索
bash
grep "error" log.txt
筛选出文件中所有包含 error 报错的内容
2、忽略大小写匹配
bash
grep -i "error" log.txt
3、显示匹配行 + 前后几行(排查BUG神技)
bash
# 显示报错及上下5行
grep -A5 -B5 "error" log.txt
4、递归检索整个目录所有文件内容
bash
grep -r "password" /etc/
全局检索包含密码字段的配置文件,工作超级常用!
5、反向匹配(排除指定内容)
bash
# 过滤掉空行和注释行
grep -v "#" config.txt
四、工作高频组合命令(必须掌握)
1、查看日志实时报错
bash
tail -f server.log | grep "error"
2、查找系统所有配置并过滤关键词
bash
find /etc -name "*.conf" | grep nginx
3、检索进程关键词
bash
ps -ef | grep java
五、今日完整实操作业
复制逐条练习,彻底固化检索思维:
bash
# 1. 在全局查找所有 .txt 文件
find / -name "*.txt"
# 2. 在home目录查找近期修改文件
find /home -mtime -1
# 3. 创建测试文件并写入内容
touch grep_test.txt
echo "Linux error test log" > grep_test.txt
# 4. grep 关键词匹配
grep "error" grep_test.txt
# 5. 反向过滤
grep -v "#" /etc/profile
六、今日知识点总结
1、find:找文件,全局扫描硬盘,适合找未知路径文件
2、find 支持按名称、大小、时间多维度筛选,可批量清理垃圾文件
3、grep:找内容,筛选文本关键词,日志排查核心工具
4、grep -r 递归检索目录,可批量检索所有配置内容
5、工作核心组合:tail+grep、find+grep、ps+grep