← 返回首页

AI 入门手册:Mac 用户完全指南

别怕,看完这本小册子,你就懂了。

---

前言:为什么你需要这本小册子?

2024 年以来,AI 发生了翻天覆地的变化。过去,你跟电脑打交道的方式很简单——打开一个软件,点几下按钮,事情就做完了。但 AI 的出现改变了这一切。

现在,你可能已经在用 ChatGPT、Claude、Cursor、OpenClaw 这些 AI 工具了。它们很聪明,能帮你写文章、改代码、整理数据。但你会发现,这些 AI 有时候会让你做一些"奇怪的事"——

它们会给你一串看不懂的命令,让你"在终端里运行"

它们会告诉你"打开这个配置文件,找到某一行,把它改成某个值"

它们会说"把这段内容保存为 .json 文件,放到 ~/.config 目录下"

你改了某个配置,结果程序打不开了,你不知道为什么

你运行一个命令,屏幕弹出一堆英文,你完全不知道发生了什么

这本小册子,就是为你写的。

如果你觉得自己"完全不懂电脑"——这正是我们要解决的问题。这本小册子用最底层、最根本的逻辑来解释每一个概念,同时用日常生活中的比喻让你秒懂。

读完这本小册子,你不会变成程序员,但你至少会——

看明白 AI 让你运行的那串命令是在干什么

知道配置文件是什么东西,改它会有什么后果

看到报错时不慌,知道去哪里找关键信息

理解"环境变量"“路径”"进程"这些词到底在说什么

在使用 AI 时更有底气

让我们开始吧。

---

第 1 章:终端是什么?为什么我要用它?

1.1 第一性原理

计算机和人之间的交流,有两种方式。

第一种方式:图形界面(GUI)

就是你平时用的那种——用鼠标点来点去,打开 App、拖拽文件。就像去餐厅吃饭,菜单上有图片,你指一指服务员就知道你要什么。

这种方式的好处是直观,不需要专业知识。但它有一个致命缺陷:效率低,表达能力有限。

比如你要把 100 个文件的名字全部改一遍——用一个一个右键→重命名→输入新名字→回车,手都要废了。

第二种方式:命令行(CLI)

就是你直接打字告诉电脑要干什么。就像给朋友发消息:“帮我把桌面上的照片都压缩一下”——只不过你需要用电脑懂的语言来说。

命令行的优势是:一句话能描述复杂的操作,而且可以批量执行。

💡 核心理解:命令行不是"程序员才用的东西",它是你跟电脑之间的一种更高效的交流方式。就像你既可以走过去跟同事说一句话,也可以群发一条消息给全公司——两种方式各有用途。

1.2 生活化比喻

图形界面就像去政府窗口办事——你看到窗口上面写着"办理身份证",你走过去,排队,工作人员办完,你拿到结果。每一次操作都是一对一的。

命令行就像打电话给总机——你拿起电话说:“接市场部的小王”,总机接线员(操作系统)就帮你接通了。你可以快速地说出一串指令,效率极高。

在 Mac 上,命令行工具叫终端(Terminal)

怎么打开?三种方式:

Command + 空格 调出聚焦搜索,输入 Terminal,回车

在启动台→其他→终端

在 Finder 中,前往→实用工具→终端

1.3 你在使用 AI 时会遇到的场景

当 Claude Code 或 OpenClaw 让你运行这样一个命令时:

cd ~/my-project

它在做什么?很简单:切换到你的项目文件夹

解释一下:

cd = Change Directory(切换目录/文件夹)的缩写

~ = 你的"家目录"(Home),就是 /Users/你的用户名/

后面的 my-project 是你要去的文件夹名

就像你跟出租车司机说:“去我家旁边那个商场”——cd 就是"去",~ 就是"我家",my-project 就是"商场"。

1.4 终端里你应该知道的基本操作

打开某个文件夹cd 文件夹路径

看看当前文件夹里有什么ls

看看当前在哪个文件夹pwd

清空屏幕clear

复制粘贴Command + C 复制,Command + V 粘贴

⚠️ 安全提示:不要在不理解的情况下运行别人给你的命令,特别是包含 rmrm -rfsudo rm 的命令——它们可能会删除你的文件。AI 给你的命令通常没问题,但如果你不确定,先问一下 AI “这个命令会删除我的文件吗?”

---

第 2 章:路径与目录——你的文件住在哪里?

2.1 第一性原理

你的电脑里存着成千上万个文件。操作系统需要一个"地址系统"来精确找到每一个文件。这个地址系统就是路径

Mac 的文件系统是树形结构

/ (根目录) ├── Applications(应用程序) ├── System(系统文件) ├── Library(系统级库文件) ├── Users(所有用户) │ └── 你的用户名 │ ├── Desktop(桌面) │ ├── Downloads(下载) │ ├── Documents(文档) │ ├── .config(隐藏的配置文件夹) │ └── ... ├── usr(Unix 系统资源) ├── tmp(临时文件) └── ...

💡 核心理解:路径就是文件在这个树上的"家庭住址"。从根出发,经过每一层"分叉",最终到达你的文件。

2.2 生活化比喻

路径就像快递地址。

想象你寄快递,写的是"中国→广东省→深圳市→南山区→科技园→XX大厦→18楼→1801室"。每一层都是地址的一部分,从大到小,越来越精确。

计算机路径完全一样:/Users/小明/Desktop/照片.jpg

/ = 国家(根目录,整个地址的起点)

Users = 省(存储所有用户的文件夹)

小明 = 市(你的个人文件夹)

Desktop = 街道(桌面文件夹)

照片.jpg = 门牌号(你的文件)

Mac 用正斜杠 / 来分隔每一层(和 Windows 的反斜杠 \ 不同),就像快递单上斜杠分隔各级地址。

2.3 绝对路径 vs 相对路径

绝对路径:从根目录(/)出发,写出完整的地址。

就像说快递地址:“中国广东省深圳市南山区科技园”

例如:/Users/小明/Documents/report.txt

相对路径:基于你"当前站的位置"来描述。

就像你跟人约见面,如果你们都在科技园,你只需要说"我在 18 楼",不需要说"中国广东省深圳市南山区科技园 18 楼"

例如:如果你当前已经在 /Users/小明 这个位置,你只需要写 Documents/report.txt

当前目录就是你"现在站的位置"。在终端里输入 pwd(Print Working Directory)可以看到当前位置。

几个特殊符号:

~ = 家目录(/Users/你的用户名/

. = 当前目录(你站的位置)

.. = 上一级目录(上一层楼)

例如,如果你在 ~/Desktop,输入 cd .. 就会回到 ~(家目录)。

2.4 你在使用 AI 时会遇到的场景

AI 经常会说:“请确保你在项目根目录下运行这个命令”——它就是在说"请先 cd 到正确的文件夹"。

如果你在一个错误的文件夹里运行命令,AI 可能会找不到需要的文件,然后报错说 No such file or directory(找不到文件)。

怎么办? 先看看 AI 让你在哪个文件夹里操作,然后 cd 过去。

---

第 3 章:文件的"身份证"——扩展名是什么?

3.1 第一性原理

计算机要知道用哪个程序打开一个文件。

比如你双击一个文件,macOS 怎么知道是用 Safari 打开,还是用预览打开,还是用音乐播放器打开?答案就在文件的扩展名上。

扩展名是文件名最后那个 . 后面的几个字母,比如 .txt.pdf.jpg。它是文件对操作系统的"自我介绍"——告诉系统"我是哪一类文件,请用对应的程序打开我"。

💡 核心理解:扩展名不是文件内容的全部,它只是一个标签。就像书的封面告诉你"这是小说"还是"工具书"——内容才是关键,但封面让你知道用什么方式去读它。

3.2 生活化比喻

扩展名就像商品包装上的分类标签。

你走进超市,看到不同颜色的标签:红色标签=肉类、蓝色标签=海鲜、绿色标签=蔬菜。你不需要打开包装就知道里面是什么。

同理,macOS 看到 .txt 就用文本编辑打开,看到 .jpg 就用预览打开,看到 .mp4 就用 QuickTime 打开。

3.3 你在使用 AI 时会接触到的常见扩展名

扩展名

全称

是什么

比喻

.txt

Text

纯文本文件

白纸,没有任何格式

.md

Markdown

带格式的文本,AI 最爱用

彩色便签纸,有标题有列表

.json

JavaScript Object Notation

结构化数据,常做配置文件

填好的表格

.yaml / .yml

YAML

配置文件,比 JSON 更好读

简化版的表格

.env

Environment

环境配置文件,存密码和设置

贴在你办公桌上的小纸条

.sh

Shell Script

Shell 脚本,一键执行命令

你写好的待办清单

.app

Application

macOS 应用程序

一台完整的机器

.dmg

Disk Image

安装包,像虚拟光盘

快递箱

.zip

ZIP

压缩包,把很多文件打包成一个

行李箱

.log

Log

日志文件,记录程序做了什么

监控录像

.plist

Property List

macOS 配置文件

Mac 专属的表格

3.4 Mac 用户常见问题

问题:Mac 上能直接看到扩展名吗?

回答:默认情况下,Mac 的访达(Finder)不会显示大部分文件的扩展名。你看到的"照片"其实是"照片.jpg",但 Mac 只显示了"照片"。

解决方法:打开访达→顶部菜单"访达"→“设置”→“高级”→勾选"显示所有文件扩展名"。

⚠️ 注意:改扩展名不会改变文件的真实内容,但会让操作系统用错误的程序去打开它。比如你把 照片.jpg 改成 照片.txt,Mac 就会用文本编辑打开——你看到的会是乱码。除非 AI 明确让你改,否则不要改文件扩展名。

---

第 4 章:看不见的文件——隐藏文件与隐藏文件夹

4.1 第一性原理

不是所有文件都需要被你"看见"。

你的电脑里有一些文件,它们对系统的正常运行至关重要,但不是给你用的,是给程序自己用的。比如配置文件、缓存文件、临时文件。如果这些文件都堆在桌面上,你会崩溃的。

所以 macOS 把它们"藏"起来了——默认不显示。

💡 核心理解:隐藏文件的逻辑不是"不让你看",而是"不打扰你"。就像你家墙里走的电线——你不需要天天看到它,但装修师傅需要知道它在哪。

4.2 生活化比喻

隐藏文件就像房子的电路和管道。

你生活在房子里,看到的只是墙壁、地板、天花板。但墙里面藏着电线、水管、网线。平时你看不到它们,也不需要看到。但装修的时候,你必须知道它们在哪,否则一锤子下去可能把水管敲爆了。

同理,AI 让你改的配置文件往往藏在 ~/.config 这种以点开头的隐藏文件夹里。平时你看不到,但 AI 需要找到它。

4.3 如何处理隐藏文件

在 Mac 上显示隐藏文件有两种方式:

方式一:快捷键(推荐)

在访达中按 Command + Shift + .(句号键)

再按一次就隐藏回去

方式二:终端命令

defaults write com.apple.finder AppleShowAllFiles -bool true killall Finder

(这个是永久生效的,想关闭就把 true 改成 false 再运行一次)

. 开头的文件和文件夹(比如 .git.vscode.env.config)通常是配置文件夹或配置文件。这些文件不是真的"消失了",只是系统默认不显示而已。

---

第 5 章:文件编辑——不只是双击打开

5.1 第一性原理

文件本质上分两大类:

文本文件:存储的是人可以直接阅读的文字。

比如 .txt.md.json.yaml.html.js.py

你可以用文本编辑器打开,看到里面的"源代码"

AI 让你修改的配置文件几乎都是文本文件

二进制文件:存储的是计算机直接理解的数据,人看不懂。

比如 .app.jpg.mp4.zip.dmg

你双击它让程序运行,但你不能用文本编辑器打开看(会看到乱码)

💡 核心理解:文本文件是人机共同的"通用语言"。你改了文本文件的内容,程序的行为就会改变。二进制文件是程序的"黑盒子",你只需要运行它,不需要理解里面是什么。

5.2 生活化比喻

文本文件就像手写菜单——你可以随时增删改,内容一目了然。厨师(程序)照着菜单做菜。

二进制文件就像微波炉的速食餐——包装完整,你放进去加热就行。你不能打开包装把里面的原料重新组合。

AI 让你编辑的,永远是文本文件(菜单),不是二进制文件(速食餐)。

5.3 你需要的编辑器

Mac 自带的"文本编辑"不适合编辑代码和配置文件(它可能会自动把文件转成富文本格式,破坏文件内容)。

推荐安装 VS Code(Visual Studio Code)——免费、好用、绝大多数 AI 都能配合它工作。

AI 常说"用 VS Code 打开这个文件"——就是这个意思。

在终端里,你还可以用 open -a "Visual Studio Code" 文件名 来打开文件。或者更简单地,安装 code 命令后直接 code 文件名

---

第 6 章:配置文件——程序的"遥控器"

6.1 第一性原理

每一个程序都有一个"决策方式":它怎么知道自己应该做什么?

程序的代码是固定的,但程序的行为可以是灵活的。这种灵活性来自配置文件——程序启动时会读取配置文件,然后按照配置的指示调整行为。

💡 核心理解:程序 = 一台机器。配置文件 = 这台机器的遥控器。代码决定机器能做什么,配置文件决定这台机器这次怎么做。

6.2 生活化比喻

想象你去一家"自动配餐"的餐厅:

你坐下后,不是直接点菜,而是先填写一张"偏好表"——

辣度:🌶️🌶️

饭量:大碗

过敏原:不吃花生

饮料:热茶

厨师(程序)收到这张表,开始做菜。如果你是第一次来,厨师的默认设置是"中辣、中碗、什么都吃、冰水"。如果你填了偏好表,厨师就按你的要求来。

这张偏好表就是配置文件。

6.3 你在使用 AI 时常见的配置文件

配置文件

所属工具

用途

.env

各种项目

存放 API Key、密码、环境设置

package.json

Node.js 项目

描述项目依赖和脚本

settings.json

VS Code

VS Code 的所有设置

claude_desktop_config.json

Claude Desktop

Claude 的连接配置

mcp.json.mcp.json

MCP 服务

AI 工具的插件配置

config.yaml

各种工具

通用配置文件

.zshrc

终端 Shell

终端的配置文件

.bash_profile

终端 Shell

终端配置(旧版)

com.xxx.plist

macOS App

Mac 原生应用的配置

6.4 修改配置的注意事项

先备份:改之前复制一份,万一改错了还能恢复

注意格式:JSON 里多了一个逗号就可能出问题

缩进要用空格:YAML 里不能用 Tab 键,必须用空格,而且要对齐

改完要保存:不保存等于没改

可能需要重启:大部分配置修改后要重启程序才能生效

⚠️ 安全提醒.env 文件里如果有 API Key 或密码,绝对不要发给别人或上传到网上。它就像你的银行卡密码。

---

第 7 章:权限——谁能动我的电脑?

7.1 第一性原理

macOS 基于 Unix,从设计之初就有严格的权限管理系统。每个文件和文件夹都有自己的"主人"(Owner)和"访问规则"(Permission),规定谁能看、谁能改、谁能执行。

操作系统把操作分成了不同等级:有些操作"任何人都能做"(比如打开浏览器),有些操作"只有管理员能做"(比如安装系统级软件、修改系统文件)。

💡 核心理解:权限就是"你能动什么"的界限。它不是为了刁难你,而是为了保护你——防止你不小心删掉系统文件,或防止恶意程序偷偷干坏事。

7.2 生活化比喻

权限就像酒店的房卡系统。

你有一张普通房卡:可以开自己房间的门,可以去餐厅吃饭,可以去游泳池——这些是你的"标准权限"

酒店经理有一张万能房卡:可以开任何房间的门,可以进机房,可以改空调温度——这就是"管理员权限"

你需要修房间的空调(安装一个系统级软件),你自己没有权限。所以你要么找经理(管理员)帮忙,要么让经理暂时把万能卡借给你用一下(使用 sudo)。

在 Mac 上,"管理员权限"表现为 sudo

sudo npm install -g some-package

sudo = Super User DO(以超级用户/管理员身份执行)

系统会要求你输入你的开机密码(输入时不会显示字符,这是正常的)

输入正确后,这个命令就暂时获得了"万能房卡"的权限

⚠️ 不要对所有命令都加 sudo。只有 AI 明确要求时才用。滥用 sudo 就像什么都用万能卡——可能不小心进了不该进的地方。

7.3 macOS 的"完全磁盘访问权限"

有时候,AI 工具(比如 Claude Code)需要读取你电脑上的文件,但 macOS 阻止了它——这是因为 macOS 的隐私与安全性设置。

解决方法:系统设置→隐私与安全性→完全磁盘访问权限→把对应工具加进去。

这就像酒店给某个服务人员发了"全楼通行证"——让他能帮你处理各楼层的事务。

---

第 8 章:环境变量——程序的"通讯录"

8.1 第一性原理

假设你安装了 Node.js。你在终端输入 node --version,计算机怎么知道 node 在哪里?

答案是:环境变量

环境变量是操作系统维护的一个"查找列表"和"备忘录"。当你输入一个命令时,操作系统按顺序检查 PATH 里的每个文件夹,看里面有没有叫这个名字的程序。

💡 核心理解:环境变量就是程序之间的"共用通讯录"和"备忘录"。

8.2 生活化比喻

PATH 环境变量就像你手机的通讯录。

你打电话给"妈妈",你不需要记住妈妈的 11 位手机号——你只需要在通讯录里找到"妈妈",手机会自动帮你拨号。

同理,你输入 python3,操作系统在 PATH 环境变量里找到 Python 的安装位置(比如 /usr/local/bin/python3),然后帮你启动它。

如果你安装了 Python,但在终端输入 python3 时显示 command not found,就是因为 PATH 里没有 Python 的安装路径——通讯录里没存妈妈的号码。

除了 PATH,还有其他环境变量:

环境变量

含义

比喻

PATH

命令查找路径

通讯录

HOME

你的家目录

你的家庭地址

SHELL

当前使用的终端类型

你打电话用的通讯工具

LANG

语言设置

你说的语言

JAVA_HOME

Java 安装位置

Java 的家庭地址

NODE_PATH

Node.js 模块位置

Node.js 的工具箱地址

8.3 如何查看和修改环境变量

查看所有环境变量:在终端中输入 envprintenv

查看某个环境变量echo $PATH

临时设置(只在当前终端窗口有效)

export MY_VAR="hello"

永久设置(写入 Shell 配置文件): 打开 ~/.zshrc 文件(Mac 默认使用 zsh),在末尾加一行:

export MY_VAR="hello"

保存后,在终端运行 source ~/.zshrc 让配置立即生效。

💡 .zshrc 就是你的终端"偏好表"。每次打开终端,它都会先读一遍这个文件。

---

第 9 章:进程与端口——正在运行的秘密

9.1 第一性原理

当你双击一个 App,它被加载到内存中开始执行——这时候,它不再只是一个"文件",而是一个"正在运行的实体"。这个实体,就叫进程

💡 核心理解:文件是静态的(躺在硬盘上),进程是动态的(正在内存中活跃着)。一个程序可以同时开多个进程(就像你同时开多个浏览器窗口)。

9.2 生活化比喻

进程就像餐厅里正在处理的订单。

菜单上的菜 = 硬盘上的程序文件

厨房里正在做的菜 = 进程(程序正在运行)

一道菜可以做多份 = 一个程序可以开多个进程

菜做完了端走 = 进程结束

端口就像餐厅的"出菜窗口"。

程序之间需要通信,端口就是通信的"门牌号"。

比如,当你打开浏览器访问一个网站,你的浏览器(一个进程)通过 443 端口向网站的服务器发送请求。你的电脑上有 65535 个端口可用。

9.3 你在使用 AI 时会遇到的场景

AI 让你启动一个服务,结果报错:Error: listen EADDRINUSE: address already in use :::3000(端口 3000 已被占用)。

这意味着什么?已经有另一个程序占用了 3000 号端口——就像你想坐一个位子,但已经有人坐了。

解决方法

找到是谁占用了端口:在终端中运行 lsof -i :3000

关掉那个程序(用 kill 命令或活动监视器),或者让 AI 换一个端口号

查看所有正在运行的进程

Command + 空格 搜索"活动监视器"并打开

你能看到所有正在运行的程序和它们占用的资源

强制结束一个卡死的程序

在活动监视器里选中那个程序→点左上角的"×"按钮

或者在终端里用 kill 命令:先 ps aux | grep 程序名 找到进程 ID(PID),然后 kill PID

如果普通 kill 不管用,就用 kill -9 PID(强制杀死,相当于拔电源)

---

第 10 章:编码——为什么文字会变成乱码?

10.1 第一性原理

计算机只能存储数字(0 和 1),不能直接存储文字。所以人类发明了一种映射关系:每个文字对应一个数字。这种映射关系就是编码

💡 核心理解:编码 = 一本"数字↔文字"的字典。同一个数字,在不同的字典里可能对应不同的文字。如果你用错误的字典去读,就会看到乱码。

10.2 生活化比喻

编码就像密码本。

你有一本密码本:A=01, B=02, C=03…

你收到一条密文:“01 02 03”

你用密码本解开:“A B C”

但如果发信人用的是另一本密码本——A=97, B=98, C=99——那你用旧密码本去解,就会看到"a b c"(因为 97 在旧密码本里是 a)。

这就是乱码的根本原因:用错了"密码本"。

10.3 常见编码

编码

说明

使用场景

UTF-8

国际通用标准,支持所有语言

现代软件的默认编码,AI 工具几乎都用它

GBK / GB2312

中文编码(中国标准)

一些老旧的中文软件和从 Windows 传过来的文件

ASCII

只支持英文字母

最古老的编码,现在很少单独使用

Mac 默认使用 UTF-8,这和现代 AI 工具一致。所以在 Mac 上,编码问题比 Windows 少很多。但如果你收到一个从 Windows 传来的中文文件,仍然可能遇到乱码。

10.4 你在使用 AI 时会遇到的场景

AI 让你打开一个文件,结果看到的是乱码。这可能是因为:

文件是用 GBK 编码保存的(可能是 Windows 上生成的中文文件)

但你的 Mac 用 UTF-8 编码打开了它

解决方法

在 VS Code 底部状态栏可以看到当前编码,点击可以切换

或者告诉 AI:“这个文件打开是乱码,帮我看看编码问题”

---

第 11 章:版本与依赖——程序的"血缘关系"

11.1 第一性原理

软件不是凭空存在的。现代软件的开发方式是搭积木——一个程序依赖于几十甚至几百个其他程序(称为"依赖"或"库")。

每个依赖有自己的版本号(比如 2.0.1),不同的版本之间可能不兼容。

💡 核心理解:软件像一棵树——有主干(你的程序),有枝干(你直接依赖的库),还有树叶(库的库的库)。任何一个环节版本不对,整棵树可能摇摇欲坠。

11.2 生活化比喻

版本就像手机系统升级。

iOS 18.3.1 —— 18 是大版本(有重大变化),3 是小版本(加了新功能),1 是修补版本(只修了 bug)。

如果你有一个 App 要求"最低 iOS 15",你还在用 iOS 14,那这个 App 就装不了。这就是版本不兼容

依赖就像乐高积木。

你想搭一个城堡,需要的积木包括:

基础底板(操作系统)

各种砖块(库和框架)

特殊零件(工具)

如果一块积木的型号不对(版本不兼容),你的城堡就搭不起来。

11.3 你在使用 AI 时会遇到的场景

AI 让你安装某个工具,结果报错:incompatible versiondependency conflict

会看版本号很重要

1.0.02.0.0:大版本升级,可能有重大变化,不向后兼容

2.0.02.1.0:小版本升级,加了新功能,向后兼容

2.1.02.1.1:修复版本,只修 bug,完全兼容

如果遇到版本冲突:告诉 AI 报错信息,让 AI 帮你找兼容的版本。千万不要自己乱装。

11.4 Mac 上的包管理器

Mac 上安装软件有一个利器:Homebrew(简称 brew)。

它就像一个"应用商店的命令行版"——你不需要去网站下载安装包,只需要:

brew install python # 安装 Python brew install node # 安装 Node.js brew install ffmpeg # 安装 FFmpeg

AI 可能会告诉你"先用 brew 安装 xxx"——就是在用 Homebrew。

如果你还没有安装 Homebrew,AI 通常会给你一行安装命令。这是安全的,但命令很长,你直接复制粘贴到终端运行即可。

---

第 12 章:命令参数——让命令听懂你的话

12.1 第一性原理

命令就像一个动词,参数就是这个动词的"补充说明"。

python3 是一个命令(启动 Python),但光说 python3 不够具体。你需要告诉电脑:“用 Python 运行这个文件”→ python3 my_script.py

但有时候还需要更具体:python3 --version(告诉我 Python 的版本号)。

💡 核心理解:命令名 = 你要做什么。参数 = 怎么做的具体细节。

12.2 生活化比喻

命令参数就像点菜时说的具体要求。

你说:“来杯咖啡”(命令)。 服务员问:"什么咖啡?“你补充:“美式,大杯,少冰,不加糖”——这些都是"参数”。

如果用命令行表达就是:咖啡 --类型=美式 --杯型=大杯 --冰=少 --糖=无

12.3 参数的形式

形式

例子

含义

位置参数

pip install requests

requests 是安装的目标,放在命令后面

短选项

-h-v-f

单字母缩写,前面一个 -

长选项

--help--version

完整单词,前面两个 --

带值选项

--port 3000

选项后面跟一个值

12.4 怎么看命令的说明书

大多数命令都自带说明书。在命令后面加 --help-h

python3 --help # 查看 Python 的使用说明 pip3 --help # 查看 pip 的使用说明 man ls # 查看 ls 命令的完整手册(按 q 退出)

如果你不确定一个命令是做什么的,先加 --help 看一眼。看不懂没关系,至少你能大概知道这个命令有没有危险参数(比如 --force--delete-rf)。

---

第 13 章:看懂报错信息——程序在向你求救

13.1 第一性原理

报错信息不是程序在"骂"你,而是程序在"告诉你出了什么问题"。

程序在运行时,如果遇到了它无法处理的情况,它就会停下来,输出一条报错信息。这条信息通常包含:出了什么问题 + 在哪里出的问题 + 可能的原因

💡 核心理解:报错信息 = 程序在向你说明它为什么做不下去了。看懂它,你就能解决问题。看不懂它,你就会永远卡在这里。

13.2 生活化比喻

报错就像汽车仪表盘上的警示灯。

你的汽车突然亮了一个黄色的灯,上面有个油壶标志。它不是在骂你,而是在告诉你:“机油不够了,请尽快添加。”

如果你忽略它,继续开,最终发动机会烧掉。如果你看懂它,花十分钟加点机油,问题就解决了。

报错信息也是如此——它给了你解决问题的关键线索。

13.3 报错信息的结构

一条典型的报错信息通常包含:

错误类型: 具体描述 位置: 文件路径,第 X 行 上下文: 报错时的状态

例如:

FileNotFoundError: [Errno 2] No such file or directory: 'config.json'

翻译:

FileNotFoundError(错误类型)= 找不到文件

No such file or directory: 'config.json'(具体描述)= 找不到名叫 config.json 的文件

你需要关注的几个关键点

错误类型:程序在做什么的时候出错了?(找不到文件?权限不够?格式不对?)

文件名或路径:哪个文件有问题?

行号:如果是配置文件,哪一行出错了?

13.4 常见报错速查

报错关键词

含义

通常怎么解决

not found / No such file

找不到文件或命令

检查路径是否正确,文件是否在那里

permission denied

权限不足

sudo 或检查文件权限

already in use / EADDRINUSE

端口被占用

换一个端口,或关掉占用端口的程序

syntax error

语法错误

配置文件格式不对,检查逗号、引号、缩进

connection refused

连接被拒绝

目标程序没启动,或网络不通

command not found

命令不存在

没安装这个工具,或 PATH 没配好

operation not permitted

操作不被允许

macOS 安全限制,可能需要"完全磁盘访问权限"

13.5 报错了你该怎么办

别慌——报错是正常的,程序员一天看上百次报错

先读错误类型和描述——用上面的表格看看能不能匹配

复制报错信息,扔给 AI——这是 AI 最擅长的事

不要盲目尝试——如果你不确定怎么修复,让 AI 帮你分析

---

第 14 章:为什么改了配置没生效?

14.1 第一性原理

程序读取配置文件有一个时机——启动的时候。

大多数程序只在启动时读取一次配置文件。启动之后,即使你改了配置文件,程序也不会知道——因为它已经读过了,不会再回头看一眼。

💡 核心理解:配置文件修改 ≠ 程序行为立刻改变。你需要让程序"重新读一遍"配置——通常是重启程序。

14.2 生活化比喻

改配置就像换餐厅菜单。

餐厅早上打印了今天的菜单(程序启动时读取了配置)。你在中午 12 点跑到后厨,把菜单上的"宫保鸡丁"改成了"麻婆豆腐"(修改了配置文件)。

但是!服务员手里的菜单还是早上的那张。顾客还是会点宫保鸡丁。除非你重新打印菜单(重启程序),或者告诉服务员"菜单换了,用新的"(重新加载配置)。

14.3 不同的生效方式

方式

说明

比喻

重启程序

关掉程序再打开

重新打印菜单

热重载

程序自动检测配置变化

服务员实时收到通知

执行重载命令

手动触发重新加载

你告诉服务员换菜单

source 配置文件

让终端重新读取 Shell 配置

直接把新菜单塞给服务员

对于终端配置(.zshrc),修改后运行 source ~/.zshrc 即可立即生效,不用重启终端。

14.4 排查清单

改了配置但没生效,依次检查:

✅ 文件保存了吗?(按 Command + S

✅ 保存到正确的位置了吗?(有没有存到另一个文件夹?)

✅ 格式对吗?(JSON 里有没有多逗号?YAML 缩进对不对?用空格不用 Tab)

✅ 重启程序了吗?(或者 source 了吗?)

✅ 如果重启还不行,看看是不是有缓存——有些程序会缓存旧配置

✅ 是否编辑了正确的配置文件?(有些程序有全局配置和用户配置两套,你可能改错了那个)

---

第 15 章:程序装在哪里了?

15.1 第一性原理

软件安装的本质是:把程序文件复制到某个位置,并在系统里"登记"一下。

"登记"的目的是让操作系统知道:这个程序的存在、它的位置、它应该用什么方式打开。

💡 核心理解:安装 = 搬家 + 登记户口。卸载 = 搬走 + 注销户口。

15.2 生活化比喻

安装软件就像搬家入住。

你搬进一个新小区:

把行李搬进房间(文件复制)

去物业登记:你是几栋几号的住户(系统注册)

物业给你录入指纹锁(文件关联)

这样以后快递员(操作系统)就能找到你了。

15.3 Mac 上程序安装的常见位置

路径

里面有什么

/Applications/

大多数应用程序(.app 文件)

/Applications/Utilities/

系统实用工具

/usr/local/bin/

命令行工具(Homebrew 安装的多数在这里)

/opt/homebrew/bin/

Apple Silicon Mac 上 Homebrew 安装的工具

~/Applications/

用户级应用

~/Library/

应用的数据和配置(隐藏的 Library)

~/.config/

各种工具的配置文件

~/.local/bin/

用户级的命令行工具

你的家目录 /Users/你的用户名/(简写 ~)是最重要的。这里面有:

Desktop:桌面文件

Downloads:下载的文件

Documents:文档

Library:程序数据和配置(隐藏文件夹)

Applications:你的个人应用

⚠️ 注意~/Library 是一个隐藏文件夹,里面存着几乎所有应用的配置和数据。不要随便删除里面的东西,否则应用可能会出问题。

15.4 Mac 特有的安装方式

Mac 上安装软件的方式比 Windows 丰富:

方式

怎么做

比喻

App Store

跟手机一样,从商店下载

商场购物

拖拽到 Applications

下载 .dmg,打开后把 .app 拖进 Applications

自己搬家具进房间

Homebrew

终端输入 brew install xxx

打电话叫人送上门

npm/pip

终端输入 npm install xxxpip install xxx

买特定品牌的配件

AI 通常会用 Homebrew 或 npm/pip 的方式帮你安装工具,因为命令行安装最方便。

15.5 你在使用 AI 时会遇到的场景

AI 说:“把文件放到你的家目录下”——它指的是 ~(即 /Users/你的用户名/)。

AI 说:“配置文件在 ~/.config 里”——这是你家目录下的一个隐藏文件夹,存着各种工具的配置。

AI 说:“用 brew 安装”——它要用 Homebrew 来安装软件。

AI 说:“检查你的 /usr/local/bin”——那里放着通过命令行安装的工具。

---

附录:常用概念速查表

术语速查

术语

一句话解释

详细章节

终端 / Terminal

用打字来操控电脑的界面

第 1 章

路径

文件在电脑上的"地址"

第 2 章

扩展名

文件名 . 后面的标签,告诉系统文件类型

第 3 章

配置文件

程序的"偏好设置"文件

第 6 章

环境变量

程序的"通讯录"和"备忘录"

第 8 章

PATH

环境变量之一,用来找命令在哪

第 8 章

进程

正在运行的程序实体

第 9 章

端口

程序通信的门牌号

第 9 章

编码

文字和数字之间的翻译规则

第 10 章

版本号

程序的代际编号

第 11 章

依赖

一个程序需要借用的其他程序

第 11 章

sudo

以管理员身份运行命令

第 7 章

Homebrew

Mac 的命令行应用商店

第 11 章

Shell

终端里执行命令的程序(默认 zsh)

第 8 章

常用 Mac 快捷键

快捷键

功能

Command + 空格

聚焦搜索(找任何东西)

Command + C

复制

Command + V

粘贴

Command + S

保存

Command + Z

撤销

Command + Tab

切换应用

Command + Shift + .

在访达中显示/隐藏隐藏文件

Command + Q

退出当前应用

常用终端命令速查

命令

功能

cd 目录路径

切换到某个目录

ls

列出当前目录的文件

pwd

显示当前目录的完整路径

mkdir 目录名

创建新文件夹

cat 文件名

查看文件内容

open .

在访达中打开当前目录

open 文件名

用默认程序打开文件

which 命令名

查看某个命令的位置

echo $PATH

查看 PATH 环境变量

source ~/.zshrc

重新加载终端配置

brew install 软件名

用 Homebrew 安装软件

sudo 命令

以管理员身份运行命令

紧急联系"人"

遇到问题不知道怎么解决?直接问 AI:

“我在 Mac 上遇到了这个报错:[粘贴报错信息]。我不懂技术,请用简单的中文告诉我:1. 出了什么问题?2. 我需要做什么?3. 这样安全吗?”

---

恭喜你读完了!你不是程序员,但你至少能听懂程序员说话了。🎉