From e886c76c14fd3caab40a0822e93e7f7566889502 Mon Sep 17 00:00:00 2001 From: wenyongda Date: Sat, 28 Feb 2026 16:52:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_posts/Claude-Code.md | 149 +++++++++++++++++++++++++++++++++++ source/_posts/Docker.md | 45 ++++++++++- source/_posts/Linux.md | 18 +++++ 3 files changed, 211 insertions(+), 1 deletion(-) create mode 100644 source/_posts/Claude-Code.md diff --git a/source/_posts/Claude-Code.md b/source/_posts/Claude-Code.md new file mode 100644 index 0000000..487bd37 --- /dev/null +++ b/source/_posts/Claude-Code.md @@ -0,0 +1,149 @@ +--- +title: Claude Code +date: 2026-02-27 14:05:22 +tags: [AI, 效率工具] +categories: 开发工具 +--- + +## 简介 + +Claude Code 是 Anthropic 官方推出的 CLI 工具,让你在终端中直接使用 Claude AI 助手完成软件工程任务。 + +## 安装 + +### 通过 npm 安装 + +确保已安装 Node.js(推荐 v18+ 版本),然后使用 npm 全局安装: + +```bash +npm install -g @anthropic-ai/claude-code +``` + +或者使用 yarn: + +```bash +yarn global add @anthropic-ai/claude-code +``` + +使用 pnpm: + +```bash +pnpm add -g @anthropic-ai/claude-code +``` + +### 验证安装 + +```bash +claude -v +``` + +## 配置 + +### 1. 获取 API Key + +访问 [Anthropic Console](https://console.anthropic.com/) 注册账号并获取 API Key。 + +### 2. 配置 API Key + +有两种方式配置 API Key: + +**方式一:环境变量(推荐)** + +在命令行中设置环境变量: + +```bash +# Windows PowerShell +$env:ANTHROPIC_API_KEY="your-api-key-here" + +# Windows CMD +set ANTHROPIC_API_KEY=your-api-key-here + +# macOS/Linux +export ANTHROPIC_API_KEY="your-api-key-here" +``` + +**方式二:配置文件** + +运行 `claude` 命令后会提示输入 API Key,会自动保存到配置文件中。 + +配置文件位置: +- Windows: `%APPDATA%\claude-code\config.json` +- macOS/Linux: `~/.config/claude-code/config.json` + +### 3. 配置模型 + +可以指定使用的 Claude 模型: + +```bash +# 使用最新模型 +claude --model claude-opus-4-6 + +# 使用 Sonnet 模型 +claude --model claude-sonnet-4-6 + +# 使用 Haiku 模型 +claude --model claude-haiku-4-5-20251001 +``` + +## 常用命令 + +| 命令 | 说明 | +|------|------| +| `claude` | 启动交互式对话 | +| `claude -p "问题"` | 直接提问并获取答案 | +| `claude --model <模型名>` | 指定模型 | +| `claude --version` | 查看版本 | +| `claude --help` | 查看帮助 | + +## MCP 配置 + +MCP (Model Context Protocol) 允许 Claude 连接外部服务和工具。 + +### 添加 MCP Server + +```bash +# 添加 fetch MCP 服务(用于网页内容抓取) +claude mcp add fetch -- uvx mcp-server-fetch +``` + +### 常用 MCP 服务 + +| 服务 | 命令 | 说明 | +|------|------|------| +| fetch | `claude mcp add fetch -- uvx mcp-server-fetch` | 网页内容抓取 | +| filesystem | `claude mcp add filesystem -- npx -y @anthropic-ai/mcp-server-filesystem` | 文件系统访问 | +| git | `claude mcp add git -- npx -y @anthropic-ai/mcp-server-git` | Git 操作 | + +### 查看已配置的 MCP + +```bash +claude mcp list +``` + +### 移除 MCP + +```bash +claude mcp remove <服务名> +``` + +## 使用示例 + +```bash +# 启动交互模式 +claude + +# 直接提问 +claude -p "解释一下什么是闭包" + +# 分析代码文件 +claude -p "这个函数有什么问题" ./src/index.js + +# 使用特定模型 +claude --model claude-opus-4-6 -p "帮我重构这段代码" +``` + +## 注意事项 + +- API 调用会产生费用,请合理使用 +- 建议将 API Key 设置为环境变量避免每次输入 +- 不同模型的价格和能力有所不同,根据需要选择 diff --git a/source/_posts/Docker.md b/source/_posts/Docker.md index 72f0ac1..e76fd8d 100644 --- a/source/_posts/Docker.md +++ b/source/_posts/Docker.md @@ -780,10 +780,41 @@ docker volume rm $(docker volume ls -qf dangling=true) ## 限制容器的日志大小 +防止它再次爆满 + +配置 Docker 全局日志轮转策略 + +**编辑/新建 Docker 配置文件**:`/etc/docker/daemon.json` + +**添加 log-opts 配置**: (限制每个容器日志最大 100MB,最多保留 3 个文件) + +```json +{ + "log-driver": "json-file", + "log-opts": { + "max-size": "100m", + "max-file": "3" + } +} +``` + +(注意:如果文件里已有其他配置,请确保 JSON 格式正确,不要漏掉逗号) + +**重启 Docker 服务**: + +```shell +systemctl daemon-reload +systemctl restart docker +``` + +注意:此配置只对**新建**的容器生效。对于现有的 `1a28bcc...` 容器,你需要将其删除并重新运行 (`docker rm` -> `docker run`) 才能应用新策略。 + +## 清理容器日志 + Docker 的所有相关文件,包括镜像、容器等都保存在 **/var/lib/docker** 目录中: ```shell -du -hs /var/lib/docker/ +du -sh /var/lib/docker/ 29G /var/lib/docker/ ``` @@ -795,6 +826,18 @@ du -hs /var/lib/docker/ truncate -s 0 /var/lib/docker/containers/a376aa694b22ee497f6fc9f7d15d943de91c853284f8f105ff5ad6c7ddae7a53/*-json.log ``` +也可以清空文件内容,需要root权限 + +```shell +# 方法 1:使用 echo 重定向(推荐) +sh -c "echo '' > /var/lib/docker/containers/1a28bcc2e01033a9d83df7ac183cb128cdd81e40852befbb218459d04a054189/1a28bcc2e01033a9d83df7ac183cb128cdd81e40852befbb218459d04a054189-json.log" + +# 或者 方法 2:使用 cat /dev/null +sh -c "cat /dev/null > /var/lib/docker/containers/1a28bcc2e01033a9d83df7ac183cb128cdd81e40852befbb218459d04a054189/1a28bcc2e01033a9d83df7ac183cb128cdd81e40852befbb218459d04a054189-json.log" +``` + +**原理:** 这会将文件的大小截断为 0,但保持文件的 inode(文件句柄)不变。Docker 进程可以继续向这个文件写入新日志,而你立即获得释放的空间。 + ## 重启 Docker 当我清理了镜像、容器以及数据卷之后,发现磁盘空间并没有减少。根据[Docker disk usage](https://github.com/moby/moby/issues/12265)提到过的建议,我重启了 Docker,发现**磁盘使用率从 83%降到了 19%**。根据高手[指点](https://github.com/moby/moby/issues/12265#issuecomment-316303769),这应该是与内核 3.13 相关的 BUG,导致 Docker 无法清理一些无用目录: diff --git a/source/_posts/Linux.md b/source/_posts/Linux.md index 4ec80ca..3925802 100644 --- a/source/_posts/Linux.md +++ b/source/_posts/Linux.md @@ -243,6 +243,12 @@ du -Sh / | sort -rh | head -n10 # 只看大小在 GB 范围内的所有文件 du -ah / | grep "[0-9]G\b" + +# 查看各目录占用(从根目录开始,排序显示) +du -sh /* 2>/dev/null | sort -rh | head -20 + +# 重点查看 /var 目录 +du -sh /var/* 2>/dev/null | sort -rh | head -20 ``` ## 进程管理 @@ -1478,6 +1484,18 @@ mount -t cifs -o username=user,password=backup //192.168.0.1/备份 /mnt/wdshare //192.168.0.1/备份 /mnt/wdshare/ cifs username=user,password=backup 0 0 ``` +`:wq`保存好,使用以下命令使修改生效 + +```shell +sudo systemctl daemon-reload +``` + +一键挂载上 + +```shell +sudo mount -a +``` + ### NTFS 分区 #### 可读可写