linux命令每日一例
linux命令每日一例详细介绍
好的!从今天开始,我们每天分享一个实用的 Linux 命令及示例,帮助你逐步掌握常用操作。今天(2025 年 4 月 14 日,周一)的主题是 grep—— 文本搜索利器。
今日命令:grep
用途
在文件或输入中搜索包含指定模式(字符串或正则表达式)的行,并输出匹配的结果。
语法
bash
选项 文件名
常用选项
| 选项 | 说明 |
|---|---|
-n |
显示匹配行的行号 |
-i |
忽略大小写(不区分 A 和 a) |
-v |
反向匹配:显示不包含指定模式的行 |
-r |
递归搜索目录下的所有文件 |
-l |
仅列出包含匹配内容的文件名,不显示具体行 |
-E |
使用扩展正则表达式(等价于 egrep) |
-w |
匹配完整单词(如搜索 word 不会匹配 words) |
示例
1.
在文件中搜索关键词
假设文件 access.log 中有日志记录,搜索包含 ERROR 的行并显示行号:
bash
access.log
输出(示例):
plaintext
12:2025-04-14 10:00:00 [ERROR] 连接数据库失败45:2025-04-14 10:05:00 [ERROR] 用户认证失败
2.
忽略大小写搜索
搜索 log 或 LOG 等不区分大小写的内容:
bash
system.log
3.
反向匹配:排除包含特定模式的行
显示 access.log 中不包含 GET 请求的行:
bash
access.log
4.
递归搜索目录下所有文件
在 ./src 目录及其子目录中搜索包含 TODO 的文件:
bash
./src/
5.
匹配完整单词
搜索包含单词 error(不匹配 error123 或 errors)的行:
bash
messages.log
912 messages.log
注意事项
grep支持正则表达式,例如^start(以start开头)、end$(以end结尾)、[0-9](匹配数字)等。- 使用
-r时需注意权限问题,避免在无权限的目录中搜索。 - 结合管道(
|)可实现复杂过滤,例如ls -l | grep "txt"筛选出扩展名.txt的文件。
明天我们会分享另一个实用命令,如需回顾或提前了解其他命令,可以随时告诉我!