全部教程Claude Code 必备脚本合集:日常运维一行搞定

Claude Code 必备脚本合集:日常运维一行搞定

我是 Quentin,OpenClaw 拼车的维护者。这篇是我把自己一年多用下来沉淀的 Claude Code 实用脚本整理出来,分享给所有重度用户。

每个脚本都是从真实问题里磨出来的——某天遇到一个棘手场景,写脚本解决,下次再遇到直接跑。所有脚本都假设你在 macOS / Linux 上,Windows 用户多数也能照搬到 PowerShell。

拼车前置:脚本里多次涉及 OpenClaw 拼车的恢复链路。一行接通 Max 20× 配额:

curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x

一、一键清缓存:ccclear

最高频。Claude Code 跑久了 ~/.claude/ 会沉淀几个 GB 的会话记录、shell 快照、todo、statsig 缓存。

#!/bin/bash
# ccclear.sh —— 温柔清理,登录态保留
set -euo pipefail
TS=$(date "+%Y%m%d%H%M%S")
BASE=~/.claude
 
[ ! -d "$BASE" ] && echo "无 ~/.claude 目录" && exit 0
pkill -f "claude" 2>/dev/null || true
 
[ -d "$BASE/projects" ]        && mv "$BASE/projects"        "$BASE/projects-$TS"
[ -d "$BASE/shell-snapshots" ] && mv "$BASE/shell-snapshots" "$BASE/shell-snapshots-$TS"
[ -d "$BASE/todos" ]           && mv "$BASE/todos"           "$BASE/todos-$TS"
[ -d "$BASE/statsig" ]         && mv "$BASE/statsig"         "$BASE/statsig-$TS"
 
echo "归档时间戳:$TS"
ls -la "$BASE"

核心思路:永远 mv 重命名,不要 rm -rf。万一发现误删,改回名字就回来了。

我每月 1 号会自动跑一次。


二、彻底重置:ccmoveconfig

清完 cache 还是有问题(登录态错乱、token 循环、模型不切换),就动核武器:

#!/bin/bash
# ccmoveconfig.sh —— 彻底归档,包括登录态
set -euo pipefail
TS=$(date "+%Y%m%d%H%M%S")
pkill -f "claude" 2>/dev/null || true
 
[ -d ~/.claude       ] && mv ~/.claude       ~/.claude-$TS
[ -f ~/.claude.json  ] && mv ~/.claude.json  ~/.claude.json-$TS
 
echo "已彻底归档,时间戳:$TS"
echo "下次启动 claude 会要求重新登录,建议直接走 OpenClaw 拼车回血:"
echo "  curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x"

跑完之后别去手动 /login 折腾,直接走拼车一键恢复。


三、用量统计:ccusage

想知道今天 / 本月用了多少 token,最简单的方式是装 ccusage

npm i -g ccusage
ccusage              # 当天用量
ccusage --month      # 本月用量
ccusage --by-project # 按项目细分

我把它包了一层日常摘要:

#!/bin/bash
# cc-stats.sh —— 每日用量摘要
echo "=== 今日 Claude Code 用量 ==="
ccusage --today
 
echo ""
echo "=== 本月累计 ==="
ccusage --month
 
echo ""
echo "=== Top 5 项目 ==="
ccusage --by-project --month | head -7

塞进 cron 每晚 23:55 跑一次,邮件发给自己。


四、配置备份:ccbackup

CLAUDE.md、自定义 commands、agents、settings 是积累出来的资产,丢了等于重头开始。

#!/bin/bash
# ccbackup.sh —— 备份 Claude Code 配置到 git
set -euo pipefail
 
BACKUP_DIR=~/code/dotfiles/claude-config
mkdir -p "$BACKUP_DIR"
 
# 同步关键文件(注意:不备份 .claude.json,里面有 token)
rsync -av --delete \
  --exclude 'projects/' \
  --exclude 'shell-snapshots/' \
  --exclude 'statsig/' \
  --exclude 'todos/' \
  --exclude '*.log' \
  ~/.claude/ "$BACKUP_DIR/"
 
# 自动 commit
cd "$BACKUP_DIR/.."
git add -A
git diff --cached --quiet || git commit -m "claude config backup $(date +%Y-%m-%d)"
git push origin main 2>/dev/null || echo "(未推送)"
 
echo "✅ 备份完成"

要点:

  • 排除掉历史会话和缓存
  • 永远不备份 .claude.json——里面有 OAuth token 和 API key,进 git 风险极高
  • 命令、agents、CLAUDE.md 全部进版本控制

五、跨主机同步:ccsync

家里台式机、笔记本、办公室主机三套环境,CLAUDE.md 经常想保持一致。

#!/bin/bash
# ccsync.sh —— 从 dotfiles 仓库拉最新配置
set -euo pipefail
 
REPO=~/code/dotfiles/claude-config
[ ! -d "$REPO" ] && git clone https://github.com/<>/dotfiles.git ~/code/dotfiles
 
cd "$REPO/.."
git pull --rebase
 
# 双向同步(注意只同步 commands / agents / CLAUDE.md,不动 settings)
rsync -av "$REPO/commands/" ~/.claude/commands/
rsync -av "$REPO/agents/"   ~/.claude/agents/
[ -f "$REPO/CLAUDE.md" ] && cp "$REPO/CLAUDE.md" ~/.claude/CLAUDE.md
 
echo "✅ 同步完成"

新机器上跑一次拼车 setup + ccsync,就有完整的 Claude Code 工作环境。


六、批量处理:ccbatch

需要对一组文件做同样的 AI 处理(比如批量翻译、批量加注释、批量重构),手动一个个开 Claude Code 太蠢。

#!/bin/bash
# ccbatch.sh —— 批量喂文件给 Claude
# 用法:./ccbatch.sh "翻译成中文,保留代码块" docs/*.md
 
set -euo pipefail
 
PROMPT="$1"
shift
 
for f in "$@"; do
  echo "=== 处理 $f ==="
  # 用 -p (print) 模式,跑完直接输出结果
  claude -p "$PROMPT" --file "$f" > "${f}.out"
  mv "${f}.out" "$f"
  echo "✅ $f"
done

用法:

# 批量翻译 docs 下所有 markdown 到中文
./ccbatch.sh "把这个 markdown 翻译成中文,保留 frontmatter 和代码块原样" docs/*.md
 
# 批量给 Python 文件加 type hint
./ccbatch.sh "给这个 Python 文件补全 type hints,不改变运行时行为" src/**/*.py

注意:批量处理 token 消耗会很猛,确保拼车配额够用。


七、PR 自动审查:pr-review

GitHub 项目接到 PR,先让 Claude 审一遍,过滤明显问题再人工。

#!/bin/bash
# pr-review.sh —— 用 Claude Code 审 PR
# 用法:./pr-review.sh 123
 
set -euo pipefail
 
PR_NUM="${1:?用法: ./pr-review.sh <pr-number>}"
 
# 拉 PR diff
gh pr checkout "$PR_NUM"
DIFF=$(gh pr diff "$PR_NUM")
 
# 调 Claude
claude -p "请审查这个 PR diff,重点找:
1. 真实的逻辑 bug
2. 安全漏洞(SQL 注入、XSS、命令注入、权限校验)
3. 资源泄漏(未关闭的文件 / 连接 / 订阅)
4. 性能死角(N+1 查询、阻塞 IO、不必要的循环)
 
不要做风格点评。每个问题用三行:
- 严重程度(🔴必修 / 🟡建议 / 🟢优化)
- 文件:行号
- 一句话说明
 
PR diff:
$DIFF" > "/tmp/pr-$PR_NUM-review.md"
 
cat "/tmp/pr-$PR_NUM-review.md"
 
# 可选:直接发到 GitHub
read -p "发到 GitHub PR 评论?(y/N) " yn
if [[ "$yn" == "y" ]]; then
  gh pr comment "$PR_NUM" --body-file "/tmp/pr-$PR_NUM-review.md"
fi

每次开会前跑一遍当天的 PR,5 分钟过完,比手动审快得多。


八、Git commit 消息生成:ccmsg

懒得写 commit message 时:

#!/bin/bash
# ccmsg.sh —— 让 Claude 生成 commit message
set -euo pipefail
 
DIFF=$(git diff --cached)
[ -z "$DIFF" ] && echo "暂存区为空" && exit 1
 
MSG=$(claude -p "根据下面的 git diff,写一条简洁的 commit message:
- 第一行:50 字以内的总结,动词开头(add / fix / refactor / chore 等)
- 空一行
- 接下来 2~3 行说明 \"为什么\",不是 \"什么\"
- 不要加 emoji
- 中英文都行
 
diff:
$DIFF")
 
echo "$MSG"
read -p "用这条消息 commit?(y/N) " yn
[[ "$yn" == "y" ]] && echo "$MSG" | git commit -F -

养成 git addccmsg 的肌肉记忆,比手写 commit 快 5 倍。


九、紧急 dump 当前会话:ccdump

Claude Code 跑到一半遇到崩溃 / 网络挂掉,你不想丢上下文:

#!/bin/bash
# ccdump.sh —— 把最近的会话记录拷到当前目录
set -euo pipefail
 
PROJECT_DIR=$(pwd | sed 's|/|-|g' | sed 's|^-||')
SESSIONS=~/.claude/projects/"$PROJECT_DIR"
 
[ ! -d "$SESSIONS" ] && echo "未找到当前项目的会话记录" && exit 1
 
# 找最新的会话文件
LATEST=$(ls -t "$SESSIONS"/*.jsonl 2>/dev/null | head -1)
[ -z "$LATEST" ] && echo "无会话文件" && exit 1
 
cp "$LATEST" "./claude-session-$(date +%Y%m%d%H%M%S).jsonl"
echo "✅ 已 dump 到 $(pwd)"

之后你可以用 jq 之类的工具解析 jsonl 提取里面的关键 prompt 和回复。


十、检查环境健康:cccheck

新机器装好之后跑一次,确认所有依赖、配置、权限都到位:

#!/bin/bash
# cccheck.sh —— Claude Code 环境健康检查
set +e
PASS=0
FAIL=0
 
check() {
  if eval "$2" >/dev/null 2>&1; then
    echo "✅ $1"
    ((PASS++))
  else
    echo "❌ $1"
    ((FAIL++))
  fi
}
 
echo "=== Claude Code 环境检查 ==="
 
check "claude 已安装"                "command -v claude"
check "node 版本 >= 18"             "node -v | grep -E 'v(1[89]|[2-9][0-9])'"
check "~/.claude 目录存在"           "test -d ~/.claude"
check "~/.claude.json 存在"          "test -f ~/.claude.json"
check "ANTHROPIC_API_URL 已设置"     "test -n \"\${ANTHROPIC_API_URL:-}\" || grep -q ANTHROPIC_API_URL ~/.claude.json"
check "MCP 配置存在"                 "test -s ~/.claude.json && grep -q mcpServers ~/.claude.json"
check "git 已配置"                   "git config user.email"
check "gh CLI 已登录"                "gh auth status"
 
echo ""
echo "通过: $PASS / 失败: $FAIL"
 
if [ $FAIL -gt 0 ]; then
  echo ""
  echo "如需重置 / 重新配置,可一键回血:"
  echo "  curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x"
fi

十一、把脚本装成命令

每次打全路径太烦,建议把上面所有脚本扔到 ~/.local/bin/ 并加进 PATH:

mkdir -p ~/.local/bin
mv ccclear.sh ~/.local/bin/ccclear
mv ccmoveconfig.sh ~/.local/bin/ccmoveconfig
mv ccbatch.sh ~/.local/bin/ccbatch
# ... 其他几个同理
chmod +x ~/.local/bin/cc*
 
# 加到 shell rc
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

之后随时 ccclearccusagepr-review 123,肌肉记忆就建立起来了。


十二、自动化:cron 定期跑

把维护类脚本塞 cron,再也不用手动操心:

# crontab -e
# 每月 1 号凌晨清缓存
0 3 1 * * /home/<你>/.local/bin/ccclear

# 每天 23:55 备份配置
55 23 * * * /home/<你>/.local/bin/ccbackup

# 每周一早上发用量摘要邮件
0 9 * * 1 /home/<你>/.local/bin/cc-stats | mail -s "Claude Code 周报" you@example.com

十三、写自己的脚本:让 Claude 写

最讽刺也最自然的事情:上面这些脚本都是 Claude Code 自己帮我写的。

下次遇到「这个流程我每周都要重复 3 次」,就直接对 Claude 说:

我每次切换项目都要:
1. cd 到目录
2. /clear
3. 把项目 README 喂给 Claude
4. 加载特定的子代理

帮我写一个 cc-switch <project> 脚本完成这个流程。

它会问你脚本放哪、要不要参数补全、要不要交互式选择,然后产出一个开箱即用的 shell 脚本。

Claude Code 不只是写应用代码的工具——它也是写运维脚本、自动化流程、个人工具最好的伙伴


十四、立即开始

把这些脚本攒成自己的工具箱,比反复手动操作快几个数量级:

curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x
mkdir -p ~/.local/bin
# 把上面那些脚本一个个保存进 ~/.local/bin/

更多文档见 https://cp.bizq.net


相关文章