Gemini CLI高级使用技巧
💡 前提条件:确保您已经熟悉 基本使用方法。
MCP 服务器集成
Gemini CLI 的强大之处在于可以通过 Model Context Protocol (MCP) 扩展功能。
查看可用服务器
bash
# 列出所有 MCP 服务器
/mcp
# 显示详细描述
/mcp desc
# 查看工具的 JSON schema
/mcp schema
常见 MCP 服务器
文件系统操作:
bash
> 使用文件工具重命名所有 .txt 文件为 .md 格式
> 创建一个包含项目结构的 tree 图表
> 批量处理这个目录中的图片文件
Git 集成:
bash
> 分析最近 10 次提交的变更模式
> 创建一个 git 钩子来自动格式化代码
> 生成本周的开发报告
数据库连接:
bash
> 连接数据库并分析用户表的数据分布
> 生成数据库性能优化建议
> 创建数据迁移脚本
智能项目配置
层级化 GEMINI.md 配置
Gemini CLI 支持层级化的项目配置,从全局到项目再到子目录:
全局配置 (~/.gemini/GEMINI.md
):
markdown
# 全局 AI 配置
## 编码规范
- 使用 TypeScript 严格模式
- 遵循 ESLint 配置
- 注释必须用中文
## 安全要求
- 敏感信息使用环境变量
- API 密钥不得硬编码
- 定期检查依赖安全性
项目配置 (./GEMINI.md
):
markdown
# 电商项目配置
这是一个基于 React + Node.js 的电商平台。
## 架构说明
- 前端:React + TypeScript + Tailwind CSS
- 后端:Node.js + Express + Prisma
- 数据库:PostgreSQL
- 缓存:Redis
## 项目约定
- API 路由统一前缀 `/api/v1/`
- 组件放在 `src/components/`
- 工具函数放在 `src/utils/`
- 测试文件使用 `.test.ts` 后缀
## 特殊说明
- 支付相关代码需要特别小心
- 用户数据处理遵循 GDPR 规范
- 性能敏感的页面需要做代码分割
模块配置 (src/auth/GEMINI.md
):
markdown
# 认证模块
## 功能说明
负责用户注册、登录、权限验证等功能。
## 安全要求
- 密码必须加密存储
- JWT Token 有效期不超过 24 小时
- 支持双因素认证
## 测试要求
- 覆盖率必须达到 90%
- 包含安全性测试用例
配置管理命令
bash
# 查看当前加载的配置
/memory show
# 重新加载配置
/memory refresh
# 添加临时指令
/memory add "这次代码审查重点关注性能优化"
高级会话管理
分支式对话
bash
# 保存当前状态并创建分支
/chat save feature-login-implementation
# 在分支中尝试不同方案
> 实现用户登录功能,使用 JWT 认证
# 保存这个实现方案
/chat save feature-login-jwt
# 回到主分支尝试其他方案
/chat resume feature-login-implementation
> 实现用户登录功能,使用 Session 认证
# 保存另一个方案
/chat save feature-login-session
# 比较两种方案
/chat resume feature-login-jwt
> 总结 JWT 方案的优缺点
/chat resume feature-login-session
> 总结 Session 方案的优缺点
项目生命周期管理
bash
# 项目启动阶段
/chat save project-init
> 分析项目需求,制定技术架构
# 开发阶段
/chat save development-phase
> 实现核心功能模块
# 测试阶段
/chat save testing-phase
> 设计测试策略,编写测试用例
# 部署阶段
/chat save deployment-phase
> 配置 CI/CD 流程,准备生产环境
# 维护阶段
/chat save maintenance-phase
> 性能优化,bug 修复,功能迭代
智能文件操作
高级 @ 命令技巧
智能过滤:
bash
# 只分析 TypeScript 文件
> 检查代码质量 @src/ --filter "*.ts,*.tsx"
# 排除测试文件
> 统计代码行数 @src/ --exclude "*.test.*"
# 按修改时间过滤
> 分析最近修改的文件 @src/ --since "1 week ago"
批量处理模式:
bash
# 批量重构多个文件
> 将这些组件重构为 hooks 模式 @src/components/
# 批量添加注释
> 为所有工具函数添加 JSDoc 注释 @src/utils/
# 批量更新导入路径
> 更新所有文件中的导入路径,使用相对路径 @src/
项目结构分析
bash
# 生成项目架构图
> 创建这个项目的架构图表 @
# 分析依赖关系
> 分析模块间的依赖关系 @src/
# 检查代码组织
> 评估当前代码组织结构,提出改进建议 @
# 技术债务分析
> 识别技术债务和重构机会 @src/
自动化工作流
代码质量保证
bash
# 自动代码审查
> 审查这次 PR 的代码变更 @git/diff
# 性能分析
> 分析这些组件的性能瓶颈 @src/components/
# 安全检查
> 检查代码中的安全问题 @src/
# 依赖分析
> 分析 package.json 中的依赖安全性 @package.json
文档生成
bash
# API 文档生成
> 为这些 API 生成详细文档 @src/api/
# README 生成
> 基于项目内容生成 README.md @
# 更新日志
> 基于 git 历史生成 CHANGELOG.md @git/log
# 部署文档
> 创建部署指南文档 @docker/ @scripts/
性能优化技巧
上下文管理
bash
# 压缩长对话历史
/compress
# 清理无关上下文
/clear
# 查看当前使用统计
/stats
智能缓存策略
bash
# 预加载项目信息
> 加载并缓存项目结构信息 @
# 缓存常用查询
/memory add "项目使用 React 18 + TypeScript + Vite"
# 增量更新
> 只分析自上次检查以来的变更 @git/diff
团队协作模式
知识共享
bash
# 创建团队知识库
/chat save team-knowledge-base
> 总结项目的核心技术知识
# 新人入职指南
/chat save onboarding-guide
> 创建新开发者入职指南 @
# 最佳实践文档
/chat save best-practices
> 总结团队开发最佳实践
代码评审流程
bash
# PR 评审模板
/chat save pr-review-template
> 为代码评审创建标准检查清单
# 评审自动化
> 使用 AI 预评审这个 PR @git/diff
# 知识传承
> 将评审中的知识点添加到团队文档
企业级应用
安全配置
bash
# 敏感信息检查
> 扫描代码中的敏感信息泄露 @src/
# 安全最佳实践
> 检查项目是否遵循安全最佳实践 @
# 合规性检查
> 验证代码是否符合 GDPR 要求 @src/
大型项目管理
bash
# 微服务架构分析
> 分析微服务间的通信模式 @services/
# 数据库设计评审
> 评审数据库设计和查询性能 @database/
# 系统监控设计
> 设计系统监控和告警策略 @monitoring/
自定义扩展
创建自定义工作流
bash
# 保存复杂工作流
/chat save code-review-workflow
> 执行完整的代码审查流程:
> 1. 分析代码结构 @src/
> 2. 检查安全问题
> 3. 评估性能影响
> 4. 验证测试覆盖率 @tests/
> 5. 生成评审报告
模板和脚手架
bash
# 组件模板生成
> 基于这个组件创建标准模板 @src/components/Button/
# 项目脚手架
> 为新的微服务创建项目结构模板 @
# 配置模板
> 生成 TypeScript 项目的标准配置文件
故障排除和调试
性能诊断
bash
# 检查响应速度
/stats
# 优化建议
> 当前对话太长了,如何优化?
# 内存使用分析
> 分析项目的内存使用模式 @src/
问题定位
bash
# 错误分析
> 分析这个错误的根本原因 @logs/error.log
# 系统诊断
> 诊断系统性能问题 @monitoring/
# 依赖问题
> 解决依赖冲突问题 @package.json
最佳实践总结
高效使用模式
- 项目开始:设置好 GEMINI.md 配置
- 日常开发:保持对话上下文的连续性
- 代码审查:使用分支式对话比较方案
- 知识管理:及时保存重要的对话状态
- 团队协作:共享配置和最佳实践
避免常见误区
bash
# ❌ 避免:包含过多无关文件
> 分析整个项目 @
# ✅ 推荐:指定具体范围
> 分析用户认证模块 @src/auth/
# ❌ 避免:模糊的问题描述
> 优化代码
# ✅ 推荐:具体的改进目标
> 优化这个组件的渲染性能 @src/UserList.tsx
下一步
您现在已经掌握了 Gemini CLI 的高级使用技巧!建议:
- 🔧 在实际项目中实践这些技巧
- 📚 探索更多 MCP 服务器集成
- 🤝 与团队分享最佳实践
- 📖 查看 故障排除指南 解决问题
🚀 专家提示:Gemini CLI 的威力在于其理解上下文的能力。善用项目配置和会话管理,可以让 AI 成为您最得力的开发助手!
Top-k 和 Top-p 采样控制:
bash
# 限制候选词汇范围
gemini generate "写技术文档" --top-k 10 --temperature 0.3
# 核心采样控制
gemini generate "创意写作" --top-p 0.8 --temperature 0.7
Safety Settings(安全设置):
bash
# 调整安全级别
gemini generate "讨论敏感话题" --safety-level medium
工作流自动化
1. 脚本集成
Bash脚本示例(Linux/macOS):
bash
#!/bin/bash
# auto_blog.sh - 自动化博客生成脚本
TOPIC="$1"
DATE=$(date +%Y-%m-%d)
OUTPUT_DIR="./blog_posts"
# 创建输出目录
mkdir -p "$OUTPUT_DIR"
echo "正在生成博客:$TOPIC"
# 生成博客大纲
gemini generate "为主题'$TOPIC'创建详细的博客大纲" \
--temperature 0.5 \
--output "$OUTPUT_DIR/${DATE}_outline.md"
# 生成博客内容
gemini generate "基于以下大纲写一篇完整的博客文章" \
--input "$OUTPUT_DIR/${DATE}_outline.md" \
--temperature 0.6 \
--max-tokens 2000 \
--output "$OUTPUT_DIR/${DATE}_${TOPIC}.md"
# 生成SEO描述
gemini generate "为这篇博客生成SEO友好的meta描述" \
--input "$OUTPUT_DIR/${DATE}_${TOPIC}.md" \
--temperature 0.3 \
--max-tokens 160 \
--output "$OUTPUT_DIR/${DATE}_meta.txt"
echo "博客生成完成!文件保存在 $OUTPUT_DIR"
PowerShell脚本示例(Windows):
powershell
# auto_translate.ps1 - 批量翻译脚本
param(
[string]$SourceDir = ".\source",
[string]$OutputDir = ".\translated",
[string]$TargetLang = "en"
)
# 创建输出目录
New-Item -ItemType Directory -Path $OutputDir -Force
# 获取所有文本文件
$files = Get-ChildItem -Path $SourceDir -Filter "*.txt"
foreach ($file in $files) {
Write-Host "翻译文件: $($file.Name)"
$outputFile = Join-Path $OutputDir "$($file.BaseName)_$TargetLang.txt"
gemini translate $file.FullName `
--to $TargetLang `
--output $outputFile `
--temperature 0.2
Write-Host "完成: $outputFile"
}
Write-Host "批量翻译完成!"
2. CI/CD集成
GitHub Actions示例:
yaml
# .github/workflows/auto-docs.yml
name: Auto Documentation
on:
push:
paths: ['src/**']
jobs:
generate-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Gemini CLI
run: |
curl -fsSL https://cli.gemini.google.com/install.sh | bash
- name: Generate API Documentation
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
run: |
gemini code document src/ \
--format markdown \
--output docs/api.md \
--temperature 0.3
- name: Commit Documentation
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add docs/api.md
git commit -m "Auto-update API documentation" || exit 0
git push
高级提示工程
1. 结构化提示
Few-shot Learning(少样本学习):
bash
# 创建提示模板文件
cat > classification_template.txt << 'EOF'
请根据以下示例对文本进行情感分类:
示例1:
文本:这个产品真的很棒,我很满意!
分类:正面
示例2:
文本:服务太差了,完全不推荐。
分类:负面
示例3:
文本:还可以吧,没什么特别的。
分类:中性
现在请对以下文本进行分类:
文本:{INPUT_TEXT}
分类:
EOF
# 使用模板
gemini generate --template classification_template.txt \
--variable INPUT_TEXT="这个新功能很有用" \
--temperature 0.1
Chain-of-Thought(思维链)提示:
bash
gemini generate "
请一步步解决这个数学问题:
问题:一个班级有30名学生,其中60%是女生。如果又来了5名男生,现在男生占总数的比例是多少?
请按以下步骤思考:
1. 计算原来有多少女生和男生
2. 计算新来男生后的总人数
3. 计算现在男生的总数
4. 计算男生占总数的比例
" --temperature 0.2
2. 角色扮演和专业化
专业角色设定:
bash
# 技术专家角色
gemini chat --system "
你是一位资深的软件架构师,拥有15年的大型系统设计经验。
你的回答应该:
- 技术准确且深入
- 考虑可扩展性和维护性
- 提供具体的实现建议
- 包含潜在风险和最佳实践
"
# 教育者角色
gemini generate "解释什么是区块链" --system "
你是一位优秀的科普作家,擅长用通俗易懂的语言解释复杂概念。
请用比喻和实例来帮助读者理解,避免过多的技术术语。
"
企业级功能
1. 配置管理
多环境配置:
bash
# 开发环境配置
gemini config create --profile dev \
--api-key $DEV_API_KEY \
--model gemini-pro \
--temperature 0.7
# 生产环境配置
gemini config create --profile prod \
--api-key $PROD_API_KEY \
--model gemini-pro \
--temperature 0.3 \
--max-tokens 1000
# 切换配置
gemini config use dev
gemini config use prod
团队共享配置:
yaml
# team-config.yaml
profiles:
content-team:
model: gemini-pro
temperature: 0.8
max_tokens: 2000
system_prompt: "你是一个专业的内容创作者"
dev-team:
model: gemini-pro
temperature: 0.3
max_tokens: 1500
system_prompt: "你是一个资深的软件开发工程师"
qa-team:
model: gemini-pro
temperature: 0.1
max_tokens: 1000
system_prompt: "你是一个严谨的质量保证工程师"
2. 成本控制和监控
使用量监控:
bash
# 查看API使用统计
gemini usage stats --period monthly
# 设置使用量警告
gemini usage alert --limit 1000 --email admin@company.com
# 查看成本分析
gemini usage cost --breakdown-by-model
预算控制:
bash
# 设置月度预算
gemini budget set --amount 500 --currency USD
# 设置自动停止
gemini budget auto-stop --threshold 90%
数据处理和分析
1. 批量数据处理
CSV数据分析:
bash
# 分析销售数据
gemini file sales_data.csv "
请分析这个销售数据集,包括:
1. 总销售额和平均订单价值
2. 销售趋势分析
3. 最佳销售产品和地区
4. 异常值检测
5. 改进建议
" --output analysis_report.md
# 生成数据可视化建议
gemini file data.csv "
为这个数据集设计可视化方案:
1. 推荐合适的图表类型
2. 提供Python/matplotlib代码
3. 说明可视化的目的和意义
" --output viz_suggestions.py
日志分析:
bash
# 分析服务器日志
gemini file server.log "
分析这个服务器日志文件:
1. 识别错误模式
2. 统计请求频率
3. 发现性能瓶颈
4. 安全威胁检测
5. 优化建议
" --format json --output log_analysis.json
2. 实时数据流处理
监控脚本:
bash
#!/bin/bash
# monitor.sh - 实时系统监控和分析
while true; do
# 获取系统状态
SYSTEM_STATUS=$(top -bn1 | head -20)
# AI分析系统状态
ANALYSIS=$(echo "$SYSTEM_STATUS" | gemini generate "
分析这个系统状态信息,识别:
1. 是否有性能问题
2. 资源使用是否正常
3. 是否需要采取行动
请简洁回答:正常/警告/严重
" --temperature 0.1 --max-tokens 100)
echo "$(date): $ANALYSIS"
# 如果有问题,发送详细分析
if [[ "$ANALYSIS" == *"警告"* || "$ANALYSIS" == *"严重"* ]]; then
echo "$SYSTEM_STATUS" | gemini generate "
详细分析系统问题并提供解决方案
" --output "alert_$(date +%s).txt"
fi
sleep 300 # 5分钟检查一次
done
安全和隐私最佳实践
1. API密钥管理
安全存储:
bash
# 使用系统密钥库(macOS)
security add-generic-password \
-a "$USER" \
-s "gemini-api-key" \
-w "$GEMINI_API_KEY"
# 在脚本中安全读取
API_KEY=$(security find-generic-password \
-a "$USER" \
-s "gemini-api-key" \
-w)
密钥轮换:
bash
# 定期轮换API密钥
gemini auth rotate-key --backup-old
# 验证新密钥
gemini auth test --key-check
2. 数据隐私保护
敏感数据处理:
bash
# 数据脱敏处理
gemini generate "
请重写以下文本,移除所有个人身份信息:
- 姓名替换为[姓名]
- 电话号码替换为[电话]
- 邮箱替换为[邮箱]
- 地址替换为[地址]
原文:$SENSITIVE_TEXT
" --temperature 0.1
# 本地处理敏感文件
gemini file sensitive.txt "总结要点" --local-only
性能优化技巧
1. 缓存策略
结果缓存:
bash
# 启用智能缓存
gemini config set cache-enabled true
gemini config set cache-ttl 3600 # 1小时缓存
# 查看缓存状态
gemini cache stats
# 清理缓存
gemini cache clear --older-than 7d
预计算常用结果:
bash
# 预生成常用模板
gemini generate "写一个邮件签名模板" \
--cache-key "email-signature" \
--cache-forever
# 使用缓存结果
gemini cache get "email-signature"
2. 并发处理
并行任务执行:
bash
# 并行处理多个文件
find ./documents -name "*.txt" | \
xargs -I {} -P 4 sh -c '
gemini summarize "{}" --output "summaries/$(basename {} .txt)_summary.md"
'
# 限制并发数以控制API调用频率
gemini config set max-concurrent 3
质量保证和测试
1. 输出质量检查
自动质量评估:
bash
# 生成内容并评估质量
CONTENT=$(gemini generate "写一篇关于AI的文章")
QUALITY_SCORE=$(echo "$CONTENT" | gemini generate "
评估这篇文章的质量(1-10分):
1. 内容准确性
2. 逻辑清晰度
3. 语言流畅性
4. 结构完整性
只返回数字分数和简短评价
" --temperature 0.1)
echo "质量评分:$QUALITY_SCORE"
A/B测试框架:
bash
# 比较不同参数的输出质量
for temp in 0.3 0.5 0.7; do
gemini generate "解释机器学习" \
--temperature $temp \
--output "test_temp_${temp}.txt"
done
# 评估最佳参数
gemini generate "比较这三个版本的质量并推荐最佳参数" \
--input "test_temp_*.txt"
故障恢复和备份
1. 自动重试机制
智能重试脚本:
bash
#!/bin/bash
# reliable_gemini.sh - 带重试的可靠执行
COMMAND="$1"
MAX_RETRIES=3
RETRY_DELAY=5
for i in $(seq 1 $MAX_RETRIES); do
echo "尝试 $i/$MAX_RETRIES: $COMMAND"
if gemini $COMMAND; then
echo "成功执行"
exit 0
else
echo "失败,等待 ${RETRY_DELAY} 秒后重试..."
sleep $RETRY_DELAY
RETRY_DELAY=$((RETRY_DELAY * 2)) # 指数退避
fi
done
echo "所有重试均失败"
exit 1
2. 备份和恢复
配置备份:
bash
# 备份配置
gemini config export --output gemini-config-$(date +%Y%m%d).json
# 恢复配置
gemini config import gemini-config-20240101.json
下一步
您现在已经掌握了Gemini CLI的高级功能!这些技巧将帮助您:
- ✅ 构建自动化工作流
- ✅ 优化性能和成本
- ✅ 确保安全和质量
- ✅ 处理企业级需求
接下来,我们将学习常见问题的解决方案,确保您能够应对各种挑战!
💡 专业建议:建议将这些高级技巧逐步集成到您的工作流中,先从简单的自动化开始,再逐步添加复杂功能。记住,工具的价值在于解决实际问题,而不是炫技。