提交
This commit is contained in:
parent
012e8ed87a
commit
e886c76c14
149
source/_posts/Claude-Code.md
Normal file
149
source/_posts/Claude-Code.md
Normal file
@ -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 设置为环境变量避免每次输入
|
||||||
|
- 不同模型的价格和能力有所不同,根据需要选择
|
||||||
@ -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** 目录中:
|
Docker 的所有相关文件,包括镜像、容器等都保存在 **/var/lib/docker** 目录中:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
du -hs /var/lib/docker/
|
du -sh /var/lib/docker/
|
||||||
29G /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
|
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
|
||||||
|
|
||||||
当我清理了镜像、容器以及数据卷之后,发现磁盘空间并没有减少。根据[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 无法清理一些无用目录:
|
当我清理了镜像、容器以及数据卷之后,发现磁盘空间并没有减少。根据[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 无法清理一些无用目录:
|
||||||
|
|||||||
@ -243,6 +243,12 @@ du -Sh / | sort -rh | head -n10
|
|||||||
|
|
||||||
# 只看大小在 GB 范围内的所有文件
|
# 只看大小在 GB 范围内的所有文件
|
||||||
du -ah / | grep "[0-9]G\b"
|
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
|
//192.168.0.1/备份 /mnt/wdshare/ cifs username=user,password=backup 0 0
|
||||||
```
|
```
|
||||||
|
|
||||||
|
`:wq`保存好,使用以下命令使修改生效
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
```
|
||||||
|
|
||||||
|
一键挂载上
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo mount -a
|
||||||
|
```
|
||||||
|
|
||||||
### NTFS 分区
|
### NTFS 分区
|
||||||
|
|
||||||
#### 可读可写
|
#### 可读可写
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user