×
¥
查看详情
🔥 会员专享 文生文 其它

Linux文件内容搜索专家

👁️ 52 次查看
📅 Dec 14, 2025
💡 核心价值: 本提示词专为Linux系统文件内容搜索场景设计,能够根据用户指定的搜索字符串和目录路径,生成精准高效的命令行搜索方案。提示词采用结构化工作流程,确保输出的命令具备技术准确性、操作安全性和执行效率。适用于系统维护、日志分析、代码审查等多种技术场景,帮助用户快速定位目标内容并理解搜索原理。

🎯 可自定义参数(4个)

搜索字符串
需要在文件中搜索的目标字符串或正则表达式
目标目录
执行搜索操作的目标目录路径
搜索范围
搜索的范围限定
输出格式
搜索结果的输出格式要求

🎨 效果示例

  • 搜索命令 LC_ALL=C grep -RInPH --binary-files=without-match --exclude='.gz' --exclude='.xz' --exclude='*.zip'
    '(?<![0-9])(?:502|503|504)(?![0-9])|upstream timed out|connection reset by peer|recv timeout' /var/log/nginx

  • 命令解析

    • LC_ALL=C:使用纯ASCII本地化,加速正则匹配与IO处理。
    • grep:
      • -R:递归搜索当前目录及子目录(跟随符号链接)。
      • -I/--binary-files=without-match:将二进制文件视为不匹配,避免误判与乱码。
      • -n:输出匹配行号。
      • -H:始终显示文件名(即使只匹配到单个文件)。
      • -P:启用PCRE(Perl正则),以支持 lookbehind/lookahead 和非捕获分组。
      • --exclude='*.gz' 等:排除压缩文件,避免无意义解压成本。
    • 正则部分:
      • (?<![0-9])(?:502|503|504)(?![0-9]):精确匹配独立的 502/503/504,避免匹配到 15021、5020 这类数字片段。
      • upstream timed out|connection reset by peer|recv timeout:匹配常见 Nginx upstream 超时与对端复位类错误信息。
  • 预期输出

    • 典型格式:/var/log/nginx/error.log:12345:upstream timed out (110: Connection timed out) while reading response header from upstream, ...
    • 每行包含:文件路径:行号:匹配内容;可能返回多文件多行结果。
  • 使用提示

    • 如果系统 grep 不支持 -P(PCRE),请使用备用命令(ERE版本,边界判定略弱): LC_ALL=C grep -RInEH --binary-files=without-match --exclude='.gz' --exclude='.xz' --exclude='*.zip'
      '(^|[^0-9])(502|503|504)([^0-9]|$)|upstream timed out|connection reset by peer|recv timeout' /var/log/nginx
    • 如需包含压缩日志(.gz),可用 find + zgrep(递归且安全处理空格文件名): find /var/log/nginx -type f -name '*.gz' -print0 | xargs -0 zgrep -nHIE
      '(^|[^0-9])(502|503|504)([^0-9]|$)|upstream timed out|connection reset by peer|recv timeout'
    • 权限不足导致的报错可忽略或重定向: ... 2>/dev/null
    • 若仅关注错误日志可缩小范围提高性能: --include='error.log*' 或 --include='err'
  • 进阶选项

    • 使用 ripgrep(更快,自动忽略二进制;若已安装): rg -n --pcre2 -g '!*.gz' '(?<![0-9])(?:502|503|504)(?![0-9])|upstream timed out|connection reset by peer|recv timeout' /var/log/nginx
      • 如需包含压缩:find /var/log/nginx -type f -name '*.gz' -print0 | xargs -0 zgrep -nHIE '...相同正则...'
    • 限定日期或大文件优先:结合 find 先筛选近7天文件,提高速度: find /var/log/nginx -type f -mtime -7 ! -name '*.gz' -print0 | xargs -0 grep -nHIP
      '(?<![0-9])(?:502|503|504)(?![0-9])|upstream timed out|connection reset by peer|recv timeout'
    • 高亮匹配但保持可解析输出(必要时去掉颜色): 加 --color=never 保证适合管道处理;需要高亮时改为 --color=always 并在终端查看。
    • 统计概览(按文件计数): grep -RIlP --exclude='*.gz' '(?<![0-9])(?:502|503|504)(?![0-9])|upstream timed out|connection reset by peer|recv timeout' /var/log/nginx | xargs -r grep -nHcP '(?<![0-9])(?:502|503|504)(?![0-9])|upstream timed out|connection reset by peer|recv timeout'

以上方案在准确性与性能之间平衡,优先使用 PCRE 确保 502/503/504 的精确匹配,避免误报。

  • 搜索命令

    • 首选(支持 PCRE 的 grep) grep -P -nH -I -d skip --color=never '^(?i)PermitRootLogin\s+yes|^PasswordAuthentication\s+yes|^ChallengeResponseAuthentication\s+yes' /etc/ssh/*

    • 兼容性备选(不依赖 -P,使用 POSIX ERE) grep -E -nH -I -d skip --color=never '^(?i)PermitRootLogin[[:space:]]+yes|^PasswordAuthentication[[:space:]]+yes|^ChallengeResponseAuthentication[[:space:]]+yes' /etc/ssh/*

  • 命令解析

    • 通用参数
      • /etc/ssh/*:仅匹配 /etc/ssh 当前目录下的条目,不递归子目录
      • -n:输出匹配所在行号
      • -H:始终显示文件名
      • -I:跳过二进制文件
      • -d skip:遇到目录时跳过,避免“Is a directory”报错,确保仅当前目录范围
      • --color=never:禁止颜色转义,确保标准输出干净
    • PCRE 版特性(-P)
      • -P:启用 PCRE,支持 \s 与内联标志 (?i)
      • 正则:
        • ^:行首锚定
        • (?i):大小写不敏感标志(位于模式起始处,通常对整个模式生效;与 -P 配合可满足给定表达式)
        • \s+:一个或多个空白字符(空格/Tab)
        • |:多分支匹配三个指令行
    • POSIX 版特性(-E)
      • -E:扩展正则
      • 用 [[:space:]]+ 替代 \s+,与 POSIX 兼容
      • 内联 (?i) 在多数 grep 中会被按文本解释,若需全局大小写不敏感,可在此命令上增加 -i
  • 预期输出

    • 形如: /etc/ssh/sshd_config:12:PermitRootLogin yes /etc/ssh/sshd_config:34:PasswordAuthentication yes /etc/ssh/sshd_config.d/01-custom.conf:5:ChallengeResponseAuthentication yes
    • 若无命中则无输出,退出码为 1(命中则为 0)
  • 使用提示

    • 关于大小写不敏感:
      • 所给模式中 (?i) 一般会对整个模式生效(PCRE 行为),若在您的环境中仅首个分支大小写不敏感,可显式加 -i 确保三者均不区分大小写: grep -P -i -nH -I -d skip --color=never '^(?i)PermitRootLogin\s+yes|^PasswordAuthentication\s+yes|^ChallengeResponseAuthentication\s+yes' /etc/ssh/*
    • 仅列出包含风险设置的文件名(不显示内容): grep -P -l -I -d skip '^(?i)PermitRootLogin\s+yes|^PasswordAuthentication\s+yes|^ChallengeResponseAuthentication\s+yes' /etc/ssh/*
    • 当系统 grep 不支持 -P(常见于 BusyBox):
      • 使用 POSIX 备选命令(上面第二条),并在需要时加 -i: grep -E -i -nH -I -d skip --color=never '^(permitrootlogin)[[:space:]]+yes|^(passwordauthentication)[[:space:]]+yes|^(challengeresponseauthentication)[[:space:]]+yes' /etc/ssh/*
    • 仅搜索常规文件更稳妥(严格限制“当前目录”且排除目录/管道等): find /etc/ssh -maxdepth 1 -type f -print0 | xargs -0 grep -P -nH -I --color=never '^(?i)PermitRootLogin\s+yes|^PasswordAuthentication\s+yes|^ChallengeResponseAuthentication\s+yes'
  • 进阶选项

    • 忽略被注释的行并允许前置空白(更贴合 sshd_config 实际书写风格): grep -P -nH -I -d skip --color=never '^(?!\s*#)\s*(?i:PermitRootLogin|PasswordAuthentication|ChallengeResponseAuthentication)\s+yes' /etc/ssh/*
      • 说明:
        • ^(?!\s*#)\s*:行首允许空白且排除注释行
        • (?i:... ):仅对括号内的关键词大小写不敏感
    • 查看上下文,便于审阅附近配置: grep -P -nH -I -d skip -C2 --color=never '^(?i)PermitRootLogin\s+yes|^PasswordAuthentication\s+yes|^ChallengeResponseAuthentication\s+yes' /etc/ssh/*
    • 仅关心是否存在命中(脚本中用退出码判断): grep -P -q -I -d skip '^(?i)PermitRootLogin\s+yes|^PasswordAuthentication\s+yes|^ChallengeResponseAuthentication\s+yes' /etc/ssh/* && echo "found" || echo "not found"

搜索命令

  • 首选(ripgrep,推荐,支持深度限制,默认忽略.gitignore):
    rg -I -l --max-depth 3 --hidden -g '!/.git/' -e 'AKIA[0-9A-Z]{16}|-----BEGIN RSA PRIVATE KEY-----|-----BEGIN EC PRIVATE KEY-----|api_key=' /home/dev/repos/analytics-service

  • 兼容方案(GNU find + grep,系统常见,支持深度限制):
    find /home/dev/repos/analytics-service -maxdepth 3 -type f -not -path '/.git/' -print0 | xargs -0 grep -E -I -l 'AKIA[0-9A-Z]{16}|-----BEGIN RSA PRIVATE KEY-----|-----BEGIN EC PRIVATE KEY-----|api_key='

  • 可选(ag/The Silver Searcher,若已安装):
    ag -l --depth 3 'AKIA[0-9A-Z]{16}|-----BEGIN RSA PRIVATE KEY-----|-----BEGIN EC PRIVATE KEY-----|api_key=' /home/dev/repos/analytics-service

命令解析

  • 通用正则(三个命令均适用)
    • AKIA[0-9A-Z]{16}:匹配AWS Access Key ID
    • -----BEGIN RSA PRIVATE KEY-----:匹配RSA私钥头
    • -----BEGIN EC PRIVATE KEY-----:匹配EC私钥头
    • api_key=:匹配包含api_key=的配置项
    • 使用单引号包裹避免shell解释;使用“|”作为或条件
  • ripgrep 版本
    • -I:忽略二进制文件(提升速度,减少误报)
    • -l:仅输出匹配到的文件名(每文件一次)
    • --max-depth 3:限制递归深度为3层子目录(可按需调整)
    • --hidden:包含隐藏文件/目录(例如以“.”开头的文件)
    • -g '!/.git/':显式排除所有.git目录内容,避免噪声
    • -e '...':指定正则表达式
  • find + grep 版本
    • find /path -maxdepth 3:限制最大递归深度为3
    • -type f:仅文件
    • -not -path '/.git/':排除.git目录
    • -print0 | xargs -0:以NUL分隔,安全处理空格/特殊字符文件名
    • grep -E:使用扩展正则支持“|”和“{n}”
    • -I:忽略二进制文件
    • -l:仅输出文件名
  • ag 版本
    • -l:仅文件名
    • --depth 3:限制搜索深度

预期输出

  • 每行一个匹配到的文件路径(绝对/相对取决于命令与当前目录),不包含匹配内容或行号,例如:
    • /home/dev/repos/analytics-service/config/settings.yml
    • /home/dev/repos/analytics-service/src/utils/credentials.py

使用提示

  • 深度调整:将上述命令中的“3”替换为所需子目录深度(例如1、2、5等)。
  • 性能建议:
    • 优先使用ripgrep(rg),其默认并行和.gitignore支持能显著加速。
    • 若仓库很大,可加上--max-filesize 1M限制超大文件:
      rg ... --max-filesize 1M ...
  • 结果唯一性:-l保证每个匹配文件仅输出一次,无需额外去重。
  • 可见性:
    • 已包含--hidden,以覆盖隐藏文件;同时显式排除了.git目录,避免扫描版本库索引对象。
  • 仅输出基名(如果你只想文件名而非路径):
    rg ... | xargs -n1 basename | sort -u

进阶选项

  • 限定文件类型以进一步加速(ripgrep):
    • 仅代码文件:
      rg -I -l --max-depth 3 --hidden -g '!/.git/' -t py -t js -t ts -t go -t java -e '...pattern...' /home/dev/repos/analytics-service
  • 排除常见大文件或资产目录:
    • 添加多个-g排除规则,例如:
      -g '!/node_modules/' -g '!/dist/' -g '!/build/' -g '!**/.min.'
  • 验证匹配详情(排查误报时临时使用):
    • 将-l改为-n,查看匹配行与行号:
      rg -I -n --max-depth 3 --hidden -g '!/.git/' -e '...pattern...' /home/dev/repos/analytics-service
  • 仅在已跟踪文件中搜索(Git仓库,减少范围):
    git -C /home/dev/repos/analytics-service ls-files -z | xargs -0 rg -I -l -e 'AKIA[0-9A-Z]{16}|-----BEGIN RSA PRIVATE KEY-----|-----BEGIN EC PRIVATE KEY-----|api_key='
    注意:此方法不支持深度限制,但能显著减少扫描对象数量。

以上命令均为安全的只读搜索,不会修改任何文件或权限。根据需要调整深度数值与排除规则即可。

示例详情

📖 如何使用

30秒出活:复制 → 粘贴 → 搞定
与其花几十分钟和AI聊天、试错,不如直接复制这些经过千人验证的模板,修改几个 {{变量}} 就能立刻获得专业级输出。省下来的时间,足够你轻松享受两杯咖啡!
加载中...
💬 不会填参数?让 AI 反过来问你
不确定变量该填什么?一键转为对话模式,AI 会像资深顾问一样逐步引导你,问几个问题就能自动生成完美匹配你需求的定制结果。零门槛,开口就行。
转为对话模式
🚀 告别复制粘贴,Chat 里直接调用
无需切换,输入 / 唤醒 8000+ 专家级提示词。 插件将全站提示词库深度集成于 Chat 输入框。基于当前对话语境,系统智能推荐最契合的 Prompt 并自动完成参数化,让海量资源触手可及,从此彻底告别"手动搬运"。
即将推出
🔌 接口一调,提示词自己会进化
手动跑一次还行,跑一百次呢?通过 API 接口动态注入变量,接入批量评价引擎,让程序自动迭代出更高质量的提示词方案。Prompt 会自己进化,你只管收结果。
发布 API
🤖 一键变成你的专属 Agent 应用
不想每次都配参数?把这条提示词直接发布成独立 Agent,内嵌图片生成、参数优化等工具,分享链接就能用。给团队或客户一个"开箱即用"的完整方案。
创建 Agent

✅ 特性总结

一键生成适配场景的搜索命令,按关键词与目录定制,快速定位日志、代码与配置内容。
自动优化工具与参数,兼顾准确性与速度,避免误匹配与漏查,省时更省心。
内置安全校验与风险提示,默认只读执行,防止误删误改,保护生产环境稳定。
支持按文件类型、大小与时间范围筛选,精准聚焦目标文件,减少无效扫描。
提供清晰命令解析与示例输出,新手亦能上手,团队协作中便于复现与审计。
进阶选项一键调用,支持正则、排除路径与并发策略,轻松应对海量仓库。
根据目录规模智能建议执行策略,降低资源占用,保证服务器在峰值时仍稳定。
模板化输入参数,重复搜索可快速调用,沉淀团队最佳实践与可复用方法。
跨场景覆盖日志排障、合规审计与代码审查,帮助业务快速定位问题与证据。

🎯 解决的问题

面向日志分析、代码检索与配置核查等日常与应急场景,一句话描述“要找什么+在哪找”,即可生成一套可直接复制执行的Linux内容搜索方案。目标是:1) 快速定位目标信息,显著缩短检索与排障时间;2) 默认安全与只读策略,避免误操作风险;3) 根据文件规模与类型选择更高效的工具与参数组合;4) 提供清晰解释与可复用模板,便于团队统一标准、沉淀最佳实践;5) 通过备选方案与进阶技巧,满足从新手到资深工程师的不同深度需求,促进从试用到长期使用。

🕒 版本历史

当前版本
v2.1 2024-01-15
优化输出结构,增强情节连贯性
  • ✨ 新增章节节奏控制参数
  • 🔧 优化人物关系描述逻辑
  • 📝 改进主题深化引导语
  • 🎯 增强情节转折点设计
v2.0 2023-12-20
重构提示词架构,提升生成质量
  • 🚀 全新的提示词结构设计
  • 📊 增加输出格式化选项
  • 💡 优化角色塑造引导
v1.5 2023-11-10
修复已知问题,提升稳定性
  • 🐛 修复长文本处理bug
  • ⚡ 提升响应速度
v1.0 2023-10-01
首次发布
  • 🎉 初始版本上线
COMING SOON
版本历史追踪,即将启航
记录每一次提示词的进化与升级,敬请期待。

💬 用户评价

4.8
⭐⭐⭐⭐⭐
基于 28 条评价
5星
85%
4星
12%
3星
3%
👤
电商运营 - 张先生
⭐⭐⭐⭐⭐ 2025-01-15
双十一用这个提示词生成了20多张海报,效果非常好!点击率提升了35%,节省了大量设计时间。参数调整很灵活,能快速适配不同节日。
效果好 节省时间
👤
品牌设计师 - 李女士
⭐⭐⭐⭐⭐ 2025-01-10
作为设计师,这个提示词帮我快速生成创意方向,大大提升了工作效率。生成的海报氛围感很强,稍作调整就能直接使用。
创意好 专业
COMING SOON
用户评价与反馈系统,即将上线
倾听真实反馈,在这里留下您的使用心得,敬请期待。
加载中...
📋
提示词复制
在当前页面填写参数后直接复制: