惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Register - Security
The Register - Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MyScale Blog
MyScale Blog
V
Visual Studio Blog
云风的 BLOG
云风的 BLOG
aimingoo的专栏
aimingoo的专栏
C
Check Point Blog
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
L
LangChain Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Security @ Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理
H
Hacker News: Front Page
L
Lohrmann on Cybersecurity
T
Troy Hunt's Blog
T
Threat Research - Cisco Blogs
A
About on SuperTechFans
T
Threatpost
AWS News Blog
AWS News Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
Tor Project blog
Google Online Security Blog
Google Online Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
W
WeLiveSecurity
博客园 - 叶小钗
K
Kaspersky official blog
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
M
MIT News - Artificial intelligence
Hacker News - Newest:
Hacker News - Newest: "LLM"
Engineering at Meta
Engineering at Meta
有赞技术团队
有赞技术团队
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Secure Thoughts
小众软件
小众软件
D
Docker
爱范儿
爱范儿
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News and Events Feed by Topic
S
Schneier on Security
博客园 - 三生石上(FineUI控件)
D
DataBreaches.Net

博客园 - xiashengwang

Rocky Linux 9 安装docker Rocky Linux 9 与Centos区别,以及软件安装dnf命令 《Linux 基础点滴》:(17)SSH 密钥生成与管理 – 免密登录的利器 Linux服务器安全登录:从入门到实践 putty 基础 《Linux 基础点滴》:(16)firewalld 防火墙管理命令 《Linux 基础点滴》:(15)用户管理 – 创建、删除、权限与 sudo 《Linux 基础点滴》:(14)定时任务 – 用 crontab 自动化 《Linux 基础点滴》:(13)文本编辑入门 – 使用 Vim 《Linux 基础点滴》:(12)tldr – 简化版命令手册 《Linux 基础点滴》:(11)系统信息与资源监控 – 掌握服务器状态 《Linux 基础点滴》:(10)压缩与打包 – tar 的艺术 《Linux 基础点滴》:(8)网络基础 – 查看 IP、连通性与端口 《Linux 基础点滴》:(7)进程管理 – 查看与控制运行中的程序 《Linux 基础点滴》:(6)文件权限与所有者 – 保护你的文件 《Linux 基础点滴》:(5)文件与目录操作 – 增删改查必会命令 《Linux 基础点滴》:(4)磁盘空间查看 – df 和 du 的妙用 《Linux 基础点滴》:(3)Linux 文件系统概览 – 一切皆文件 《Linux 基础点滴》:(2)SSH 连接与基础命令 – 从登录到第一次操作 《Linux 基础点滴》:(1)初识 Linux 大家族 – 发行版分类与选择 docker学习(7)-docker compose 文件 docker学习(11)- 容器的日志(log) docker学习(10)-利用Github Action 自动化部署 docker学习(9)-Docker Swarm + Nginx 跨机器负载均衡 docker学习(8)-从 Windows 开发到 Linux 部署 docker学习(6)-数据持久化与网络通信 学会 Git Tag,让版本管理不再混乱 docker学习(5)-Dockerfile docker学习(4)-Docker常用命令 docker学习(3)-一个简单的例子 docker学习(2)-安装 docker学习(1)-基本概念 Github 使用 Self-hosted Runner 实现服务器自动化部署 github创建分支 + Pull Request 合并 Git Rebase vs Git Merge:深入理解与实战选择 Git 系统学习教程:从零到团队协作 AI学习笔记(2)-OpenClaw安装 windbg分析dmp文件 docker desktop 和 Vmware冲突的解决办法
《Linux 基础点滴》:(9)查找与过滤 – find, grep, 管道
xiashengwang · 2026-04-21 · via 博客园 - xiashengwang

2026-04-21 15:52  xiashengwang  阅读(13)  评论()    收藏  举报

第 9 篇:查找与过滤 – find, grep, 管道

学习目标

  • 使用 find 按名称、类型、大小、时间查找文件
  • 使用 grep 在文件或输出中搜索文本
  • 熟练运用管道 | 组合命令

核心概念

find – 文件查找

find /etc -name "*.conf"          # 按文件名
find /var -type f -size +10M      # 大于 10M 的文件
find /home -mtime -7              # 7 天内修改过的文件
find . -type d -name "backup"     # 查找目录
find /var -type f -size +10M -print0 | xargs -0 ls -lhS # 大于 10M 的文件,并按照Size倒序排列
  • -print0 :输出不是换行分隔,而是用 \0 这个看不见的特殊符号分隔
  • xargs -0: 指定\0分割符。文件名里的空格、换行、奇怪字符都不会被当成分隔

grep – 文本搜索

grep "error" /var/log/messages          # 基本搜索
grep -i "error" log                     # 忽略大小写
grep -r "TODO" ~/projects/              # 递归搜索目录
grep -v "debug" log                     # 反向匹配(不含 debug)

管道 |

将一个命令的标准输出作为另一个命令的标准输入。

ls -la | grep "^-" | wc -l          # 统计当前目录普通文件数量
ps aux | grep nginx                 # 查看 nginx 进程
  • wc -l:wc(Word Count) -l:line,统计行数。

动手实验

实验 1:find 多种条件组合

# 查找 /var/log 下 7 天内修改且大于 1M 的日志文件
find /var/log -type f -name "*.log" -mtime -7 -size +1M

实验 2:grep 结合正则

grep "^[0-9]" /var/log/secure      # 查找以数字开头的行
grep -E "Failed|Accepted" /var/log/secure   # 扩展正则

-E的作用只有一个,让|不用转义。
否者就要这样写:

grep "Failed\|Accepted" /var/log/secure

实验 3:管道链式处理

# 找出最常用的 10 个命令
history | awk '{print $2}' | sort | uniq -c | sort -nr | head -10

常见错误

  • find 忽略权限错误find / -name "*.conf" 2>/dev/null
    • 2>/dev/null:让错误信息丢掉。
  • grep 搜索二进制文件:加 -a 或 --text
    • 有些文件(如日志、缓存、图片)grep 默认会认为是二进制文件,直接跳过,不搜索。加 -a 就能强制搜索。

思考题

  1. find-exec 选项如何使用?举例说明。
  2. 如何统计 /var/log 中包含 "ERROR" 的行数?