
在
Ollama使用教程
这篇文章中写的是 Ollama 的整体使用,但后来我把 ollama -h 的输出完整看了一遍,发现很多命令和参数平时根本没注意过。这篇算是补课,把每个命令的参数、用法、适用场景都过一遍。更适合当成速查手册来用。
全局 Flags 和环境变量
先说说ollama命令本身自带的几个全局参数。
| Flag | 说明 |
|---|---|
-h, --help | 显示帮助 |
--nowordwrap | 不自动换行,长行会超出终端边界 |
--verbose | 显示回复的时间统计(首 token 时延、生成速度等) |
-v, --version | 版本号 |
--verbose在调试模型性能时很有用,尤其对比不同量化级别、不同 GPU 分配方式的响应速度。--nowordwrap大多数时候用不上,除非你输出的是表格或 json 不希望被打断。
环境变量方面,很多命令都共用 OLLAMA_HOST(服务地址),但 ollama serve 有一大堆专有变量。
ollama serve
ollama serve负责启动 Ollama 服务端。后台服务通常开机自启(Linux systemd、macOS launchd、Windows 服务),但手动调试时可以用 ollama serve 在前台跑,日志直接打印到终端。
命令别名:serve, start。
重要环境变量(这里只列最常用的几个):
| 变量 | 默认值 | 说明 |
|---|---|---|
OLLAMA_DEBUG | 未设置 | 设为 1 开启调试日志 |
OLLAMA_HOST | 127.0.0.1:11434 | 监听地址和端口,改 0.0.0.0:11434 可允许外部访问 |
OLLAMA_CONTEXT_LENGTH | 动态(4k/32k/256k 基于显存) | 覆盖默认上下文长度 |
OLLAMA_KEEP_ALIVE | 5m | 模型在内存中保持加载的时间。设为 -1 永久驻留,0 立即卸载 |
OLLAMA_MAX_LOADED_MODELS | 未设置 | 每个 GPU 最多同时加载的模型数 |
OLLAMA_MAX_QUEUE | 未设置 | 最大排队请求数 |
OLLAMA_MODELS | ~/.ollama/models | 模型文件存放目录 |
OLLAMA_NUM_PARALLEL | 未设置 | 并行处理的最大请求数(需模型支持) |
OLLAMA_NO_CLOUD | 未设置 | 设为 1 禁用云功能(远程推理和 web search) |
OLLAMA_NOPRUNE | 未设置 | 启动时不清理模型 blobs |
OLLAMA_ORIGINS | 未设置 | 允许跨域访问的来源(逗号分隔) |
OLLAMA_SCHED_SPREAD | 未设置 | 总是跨所有 GPU 调度模型 |
OLLAMA_FLASH_ATTENTION | 未设置 | 启用 flash attention(加速长上下文) |
OLLAMA_KV_CACHE_TYPE | f16 | KV cache 量化类型(可选 q8_0, q4_0) |
OLLAMA_GPU_OVERHEAD | 未设置 | 为每个 GPU 预留的显存(字节) |
OLLAMA_LOAD_TIMEOUT | 5m | 模型加载卡住多久后放弃 |
举个例子:如果你的 Mac 内存只有 16GB,想让模型常驻并且启用 flash attention,可以这样启动:
export OLLAMA_KEEP_ALIVE=-1
export OLLAMA_FLASH_ATTENTION=1
ollama serve
ollama create
从 Modelfile 构建一个模型。最基本用法:
ollama create mymodel -f ./Modelfile
参数:
| Flag | 说明 |
|---|---|
-f, --file | 指定 Modelfile 路径(默认 ./Modelfile) |
-q, --quantize | 量化级别,比如 q4_K_M, q5_K_M, q8_0 |
--experimental | 实验性 safetensors 模型创建 |
量化参数参考:q4_K_M 是平衡质量和大小比较常用的选择。q8_0 质量更高但体积更大。
如果一个模型是 FP16 格式的 safetensors 文件,可以用 --experimental 标志直接导入 Ollama 内部格式,不用先转 GGUF。
ollama show
查看模型的详细信息,不加任何 flag 会输出基本信息(架构、参数量、量化、context length 等)。
专用 flags:
| Flag | 输出内容 |
|---|---|
--license | 模型的许可证文本 |
--modelfile | 生成该模型的 Modelfile 内容(可用于再创建) |
--parameters | 模型参数配置(temperature, top_p 等) |
--template | 模型的 chat template |
--system | 模型的系统提示词 |
-v, --verbose | 更详细的输出(包括 digest 大小等) |
常用场景:想知道某个模型默认的上下文长度是多少,ollama show llama3.2 --parameters | grep num_ctx。或者想把别人做的模型改一改,ollama show gemma3 --modelfile > mymodelfile,再编辑后用 create 构建。
ollama run
最常用的命令,但它的参数多到让我有点意外。
基本格式:
ollama run MODEL [PROMPT] [flags]
没有 PROMPT 时进入交互模式;提供 PROMPT 则单次生成后退出。
主要 flags:
| Flag | 说明 |
|---|---|
--format string | 强制输出格式,比如 json |
--keepalive string | 模型在内存中保持的时长(覆盖服务端默认值),如 10m, 1h |
--verbose | 显示时间统计 |
--nowordwrap | 不自动换行 |
--insecure | 允许不安全的 registry(非 https) |
--think string[="true"] | 启用思考模式:true/false 或 high/medium/low(支持 thinking 的模型) |
--hidethinking | 隐藏思考过程的输出(只显示最终答案) |
--experimental | 启用实验性 agent 循环 + 工具调用 |
--experimental-websearch | 启用 web search 工具(需云服务) |
--experimental-yolo | 跳过所有工具使用的确认提示(危险,自动执行) |
--dimensions int | 仅 embedding 模型:截断输出向量到指定维度 |
--truncate | embedding 模型:超过上下文长度时截断(默认 true);设为 false 则报错 |
图像生成(实验性):如果模型支持文生图(如某些 Flux 变体),可以用:
--width int --height int --steps int --seed int --negative string
不过这一块还没怎么普及,先记一笔。
几个实用例子:
# 强制 JSON 输出,并保持模型常驻内存 30 分钟
ollama run gemma3 "List 3 colors" --format json --keepalive 30m
# 启用 low 程度的思考(节省计算)
ollama run deepseek-r1 --think low "What is 17*24"
# 隐藏思考过程,只看答案
ollama run deepseek-r1 --hidethinking "Explain recursion"
# 单次生成并显示详细时间信息
ollama run llama3.2 "Hello" --verbose
ollama stop
停止一个正在运行的模型(从内存中卸载)。如果模型没有在 ollama ps 列表里,stop 会报错。
ollama stop llama3.2
注意:ollama stop 和 ollama rm 完全不同。stop 只是释放内存,模型文件还在硬盘上。下次 run 会重新加载(可能慢一点)。
ollama pull / push
pull:从 registry(默认 ollama.com 或私有仓库)下载模型。
ollama pull llama3.2:latest --insecure
--insecure 用于连接到未启用 TLS 的私有 registry(比如本地运行的某些镜像)。
push:将本地模型上传到 registry。需要先登录(ollama signin),并且目标仓库名要包含 registry 地址。
ollama push myregistry.com/namespace/mymodel:latest
ollama signin / signout
登录到 ollama.com,用于使用云端模型或付费功能。执行后会打开浏览器进行 OAuth 认证(或输入 API Key)。signout 清除本地凭证。
ollama list / ps
ollama list(别名ls):显示已下载到本地的所有模型(大小、修改时间)。ollama ps:列出当前加载在内存里的模型(正在运行的),以及每个模型使用的处理器分布(GPU/CPU 占比)。
ollama cp / rm
cp 复制模型:ollama cp gemma3 gemma3-backup,只是个标签复制,不占用额外磁盘空间(基于 digest 共享)。适合在做实验前备份一个 Modelfile 状态。
rm 删除模型:ollama rm gemma3 gemma3-backup,可一次删多个。
ollama launch
版本较新的 Ollama 加入了 launch 命令,用来快捷启动各种集成工具。不需要手动配置环境变量或安装 integration,Ollama 会代理拉起。
用法:
# 不带参数:启动交互菜单(同直接输入 ollama)
ollama launch
# 启动 Claude Code
ollama launch claude
# 使用指定模型启动 Claude Code
ollama launch claude --model gemma3:4b
# 配置但不启动(生成配置后退出)
ollama launch droid --config
# 向集成工具传递额外参数(用 -- 分隔)
ollama launch codex -- --sandbox workspace-write
支持的工具列表(持续增加):
- claude(Claude Code)
- cline(Cline)
- codex(Codex)
- copilot / copilot-cli(Copilot CLI)
- droid(Droid)
- hermes(Hermes Agent)
- kimi(Kimi Code CLI)
- opencode(OpenCode)
- openclaw / clawdbot / moltbot(OpenClaw)
- pi(Pi)
- vscode / code(VS Code)
使用 ollama launch 相当于一键把本地模型接到各种 AI 编程工具里,不用手动改配置。
给 macOS / Linux / Windows 的小提示
这些命令跨平台表现一致,环境变量配置方式不同,但变量名相同。另外 Windows 下 ollama run 里按 Ctrl+D 不一定能退出,建议用 /bye。
这篇比较枯燥,全是命令行的排列组合,但整理完以后还是有点收获。尤其是 ollama serve 的那些环境变量,之前根本没注意到 KV cache 还可以调成 q8 来省显存。ollama launch 也是个有意思的功能,可以省很多配置时间。有需要的时候回来翻这篇就行。







