Skip to content

📦 其他 / 通用 ​


📐 概率论与数理统计 — 做题技巧与真题解析 ​

来源:概率论习题册(3份模拟试卷),整理自手写解题过程


一、事件概率计算 ​

核心公式 ​

  • 加法公式: P(A∪B)=P(A)+P(B)−P(AB)P(A \cup B) = P(A) + P(B) - P(AB)
  • 减法公式: P(A−B)=P(A)−P(AB)P(A - B) = P(A) - P(AB)
  • 对立事件: P(A‾)=1−P(A)P(\overline{A}) = 1 - P(A)
  • 条件概率: P(A∣B)=P(AB)P(B)P(A|B) = \frac{P(AB)}{P(B)}
  • 乘法公式: P(AB)=P(A)P(B∣A)=P(B)P(A∣B)P(AB) = P(A)P(B|A) = P(B)P(A|B)
  • 全概率: P(A)=∑i=1nP(Bi)P(A∣Bi)P(A) = \sum_{i=1}^{n} P(B_i)P(A|B_i)
  • 贝叶斯: P(Bj∣A)=P(Bj)P(A∣Bj)∑i=1nP(Bi)P(A∣Bi)P(B_j|A) = \frac{P(B_j)P(A|B_j)}{\sum_{i=1}^{n} P(B_i)P(A|B_i)}

德摩根律 ​

A∪B‾=A‾∩B‾\overline{A \cup B} = \overline{A} \cap \overline{B}

A∩B‾=A‾∪B‾\overline{A \cap B} = \overline{A} \cup \overline{B}

独立性 ​

  • 定义:P(AB)=P(A)P(B)P(AB) = P(A)P(B)
  • 等价:P(A∣B)=P(A)P(A|B) = P(A)(P(B)>0P(B)>0)
  • 性质:独立的对立事件也独立,即 P(A‾B‾)=P(A‾)P(B‾)P(\overline{A}\overline{B}) = P(\overline{A})P(\overline{B})

互斥 vs 独立 ​

互斥独立
定义AB=∅AB = \emptysetP(AB)=P(A)P(B)P(AB) = P(A)P(B)
关系互斥+正概率 → 必不独立独立+正概率 → 必不互斥

古典概型 ​

  • 放回抽样:总数 nmn^m(n个选择,m次)
  • 不放回抽样:总数 Pnm=Cnm⋅m!P_n^m = C_n^m \cdot m!
  • 等可能事件:P(A) = \frac{A \text{包含的基本事件数}}{S \text{中的基本事件总数}}

📝 例题1:独立事件的对立事件 ​

【填空】 P(A)=0.5,P(B)=0.2P(A)=0.5, P(B)=0.2,A与B独立,求 P(A‾+B‾)P(\overline{A}+\overline{B})

点击查看解析

A‾+B‾=AB‾\overline{A}+\overline{B} = \overline{AB}(德摩根律)

P(A‾+B‾)=P(AB‾)=1−P(AB)=1−P(A)P(B)=1−0.1=0.9P(\overline{A}+\overline{B}) = P(\overline{AB}) = 1 - P(AB) = 1 - P(A)P(B) = 1 - 0.1 = 0.9


📝 例题2:全概率与贝叶斯 ​

【解答】 某人从南京到上海,乘火车/汽车/飞机概率 0.5/0.3/0.2,正点率 0.95/0.9/1.0。求:(1) 正点概率;(2) 已知正点,乘火车概率

点击查看解析

设 A=火车,B=汽车,C=飞机,D=正点

(1) P(D)=0.5×0.95+0.3×0.9+0.2×1=0.945P(D) = 0.5\times0.95 + 0.3\times0.9 + 0.2\times1 = 0.945

(2) P(A∣D)=P(A)P(D∣A)P(D)=0.4750.945≈0.5026P(A|D) = \frac{P(A)P(D|A)}{P(D)} = \frac{0.475}{0.945} \approx 0.5026


📝 例题3:对立事件简化计算 ​

【解答】 甲乙丙独立破译密码,概率 1/5, 1/3, 1/4。求密码被译出概率

点击查看解析

用对立事件更简单:

P(\text{译出}) = 1 - P(\overline{A})P(\overline{B})P(\overline{C}) = 1 - \frac{4}{5} \times \frac{2}{3} \times \frac{3}{4} = \frac{3}{5}

二、随机变量与分布 ​

核心概念 ​

概率密度函数 f(x)f(x) 性质:

  • f(x)≥0f(x) \geq 0
  • ∫−∞+∞f(x)dx=1\int_{-\infty}^{+\infty} f(x)dx = 1(归一化)
  • P(a<X<b)=∫abf(x)dxP(a < X < b) = \int_a^b f(x)dx

分布函数 F(x)F(x) 性质:

  • F(x)=P(X≤x)=∫−∞xf(t)dtF(x) = P(X \leq x) = \int_{-\infty}^x f(t)dt
  • 单调不减、右连续
  • limx→−∞F(x)=0\lim_{x \to -\infty} F(x) = 0,limx→+∞F(x)=1\lim_{x \to +\infty} F(x) = 1
  • P(a<X≤b)=F(b)−F(a)P(a < X \leq b) = F(b) - F(a)

密度与分布互推:

  • 密度 → 分布:积分 F(x)=∫−∞xf(t)dtF(x) = \int_{-\infty}^x f(t)dt
  • 分布 → 密度:求导 f(x)=F′(x)f(x) = F'(x)

常见分布速查 ​

分布记号E(X)E(X)D(X)D(X)
二项分布X∼B(n,p)X \sim B(n,p)npnpnp(1−p)np(1-p)
泊松分布X∼P(λ)X \sim P(\lambda)λ\lambdaλ\lambda
均匀分布X∼U(a,b)X \sim U(a,b)a+b2\frac{a+b}{2}(b−a)212\frac{(b-a)^2}{12}
指数分布X∼E(λ)X \sim E(\lambda)1λ\frac{1}{\lambda}1λ2\frac{1}{\lambda^2}
正态分布X∼N(μ,σ2)X \sim N(\mu,\sigma^2)μ\muσ2\sigma^2

正态分布核心技巧 ​

  • 标准化:Z=X−μσ∼N(0,1)Z = \frac{X-\mu}{\sigma} \sim N(0,1)
  • 对称性:Φ(−x)=1−Φ(x)\Phi(-x) = 1 - \Phi(x)
  • 样本均值:X‾∼N(μ,σ2/n)\overline{X} \sim N(\mu, \sigma^2/n)
  • 线性组合:aX+bY∼N(aμ1+bμ2,a2σ12+b2σ22)aX+bY \sim N(a\mu_1+b\mu_2, a^2\sigma_1^2+b^2\sigma_2^2)(独立时)

📝 例题4:归一化+期望联立求参 ​

【解答】 f(x)=cxaf(x) = cx^a(0≤x≤10 \leq x \leq 1),E(X)=0.75E(X)=0.75,求 c 和 a

点击查看解析

归一化: ∫01cxadx=ca+1=1⇒c=a+1\int_0^1 cx^a dx = \frac{c}{a+1} = 1 \Rightarrow c = a+1

期望: ∫01cxa+1dx=ca+2=0.75\int_0^1 cx^{a+1} dx = \frac{c}{a+2} = 0.75

联立: a+1a+2=34\frac{a+1}{a+2} = \frac{3}{4} → a=2,c=3a=2, c=3


📝 例题5:对称性求期望方差 ​

【解答】 f(x)=12e−∣x∣f(x) = \frac{1}{2}e^{-|x|},求 E(X)E(X) 和 D(X)D(X)

点击查看解析

f(x)f(x) 偶函数 → xf(x)xf(x) 奇函数 → E(X)=0E(X) = 0

E(X2)=2∫0+∞x2⋅12e−xdx=∫0+∞x2e−xdx=2E(X^2) = 2\int_0^{+\infty} x^2 \cdot \frac{1}{2}e^{-x}dx = \int_0^{+\infty} x^2 e^{-x}dx = 2(分部积分)

D(X)=E(X2)−[E(X)]2=2D(X) = E(X^2) - [E(X)]^2 = 2


📝 例题6:分布函数求概率和密度 ​

【解答】 F(x)={0,x≤0Ax2,0<x≤11,x>1F(x) = \begin{cases} 0, & x \leq 0 \\ Ax^2, & 0 < x \leq 1 \\ 1, & x > 1 \end{cases},求 A、P(−1≤X≤0.5)P(-1 \leq X \leq 0.5)、E(X),D(X)E(X), D(X)

点击查看解析

(1) 右连续:limx→1+F(x)=A=1\lim_{x \to 1^+} F(x) = A = 1

(2) P(−1≤X≤0.5)=F(0.5)−F(−1)=0.25−0=0.25P(-1 \leq X \leq 0.5) = F(0.5) - F(-1) = 0.25 - 0 = 0.25

(3) f(x)=F′(x)=2xf(x) = F'(x) = 2x(0<x≤10<x\leq1)

E(X)=∫012x2dx=23E(X) = \int_0^1 2x^2 dx = \frac{2}{3},E(X2)=∫012x3dx=12E(X^2) = \int_0^1 2x^3 dx = \frac{1}{2}

D(X)=12−49=118D(X) = \frac{1}{2} - \frac{4}{9} = \frac{1}{18}


三、二维随机变量 ​

核心技巧 ​

  • 边缘密度: fX(x)=∫−∞+∞f(x,y)dyf_X(x) = \int_{-\infty}^{+\infty} f(x,y)dy,fY(y)=∫−∞+∞f(x,y)dxf_Y(y) = \int_{-\infty}^{+\infty} f(x,y)dx
  • 独立判断: f(x,y)=fX(x)⋅fY(y)f(x,y) = f_X(x) \cdot f_Y(y) 恒成立 → 独立
  • 快速判断: 联合密度可分离变量 + 区域为矩形 → 独立
  • 求常数 k: ∬f(x,y)dxdy=1\iint f(x,y)\,dxdy = 1

协方差与相关系数 ​

  • Cov(X,Y)=E(XY)−E(X)E(Y)\text{Cov}(X,Y) = E(XY) - E(X)E(Y)
  • D(X±Y)=D(X)+D(Y)±2Cov(X,Y)D(X \pm Y) = D(X) + D(Y) \pm 2\text{Cov}(X,Y)
  • 独立 → Cov(X,Y)=0\text{Cov}(X,Y) = 0 → D(X±Y)=D(X)+D(Y)D(X \pm Y) = D(X) + D(Y)
  • 相关系数:ρXY=Cov(X,Y)D(X)D(Y)\rho_{XY} = \frac{\text{Cov}(X,Y)}{\sqrt{D(X)}\sqrt{D(Y)}}

📝 例题7:联合密度求边缘和独立性 ​

【解答】 f(x,y)=ke−x−yf(x,y) = ke^{-x-y}(x>0,y>0x>0, y>0),求 k、边缘密度、独立性

点击查看解析

(1) k∫0∞e−xdx∫0∞e−ydy=k=1k\int_0^{\infty}e^{-x}dx\int_0^{\infty}e^{-y}dy = k = 1 → k=1k=1

(2) fX(x)=e−xf_X(x) = e^{-x}(x>0x>0),fY(y)=e−yf_Y(y) = e^{-y}(y>0y>0)

(3) f(x,y)=e−x⋅e−y=fX(x)⋅fY(y)f(x,y) = e^{-x} \cdot e^{-y} = f_X(x) \cdot f_Y(y) → 独立


四、数字特征 ​

核心公式 ​

期望:

  • 离散:E(X)=∑xipiE(X) = \sum x_i p_i
  • 连续:E(X)=∫−∞+∞xf(x)dxE(X) = \int_{-\infty}^{+\infty} x f(x)dx
  • 线性性(恒成立):E(aX+bY)=aE(X)+bE(Y)E(aX+bY) = aE(X)+bE(Y)
  • 函数期望:E(g(X))=∫g(x)f(x)dxE(g(X)) = \int g(x)f(x)dx

方差:

  • D(X)=E(X2)−[E(X)]2D(X) = E(X^2) - [E(X)]^2
  • D(aX+b)=a2D(X)D(aX+b) = a^2 D(X)
  • D(X±Y)=D(X)+D(Y)±2Cov(X,Y)D(X \pm Y) = D(X) + D(Y) \pm 2\text{Cov}(X,Y)
  • 独立时:D(X±Y)=D(X)+D(Y)D(X \pm Y) = D(X) + D(Y)

常用分布方差:

  • 二项 B(n,p)B(n,p):D(X)=np(1−p)D(X) = np(1-p)
  • 泊松 P(λ)P(\lambda):D(X)=λD(X) = \lambda
  • 正态 N(μ,σ2)N(\mu,\sigma^2):D(X)=σ2D(X) = \sigma^2

📝 例题8:χ²分布的矩 ​

【选择】 X∼χ2(n)X \sim \chi^2(n),则 E(X2)=E(X^2) =(C)n2+2nn^2+2n

点击查看解析

E(X)=nE(X) = n,D(X)=2nD(X) = 2n

E(X2)=D(X)+[E(X)]2=2n+n2=n2+2nE(X^2) = D(X) + [E(X)]^2 = 2n + n^2 = n^2+2n


五、参数估计 ​

矩估计 ​

  1. 写出 E(X)E(X)(用参数表示)
  2. 令 E(X)=X‾E(X) = \overline{X}
  3. 解方程得估计量

极大似然估计(MLE) ​

  1. 写似然函数 L(θ)=∏f(xi;θ)L(\theta) = \prod f(x_i;\theta)
  2. 取对数 lnL(θ)\ln L(\theta)
  3. 求导 dlnLdθ=0\frac{d\ln L}{d\theta} = 0
  4. 解方程得 θ^\hat{\theta}

常见分布估计量 ​

分布矩估计MLE
U(0,θ)U(0,\theta)θ^=2X‾\hat{\theta} = 2\overline{X}θ^=maxXi\hat{\theta} = \max X_i
B(1,p)B(1,p)p^=X‾\hat{p} = \overline{X}p^=X‾\hat{p} = \overline{X}
E(λ)E(\lambda)λ^=1/X‾\hat{\lambda} = 1/\overline{X}λ^=1/X‾\hat{\lambda} = 1/\overline{X}
N(μ,σ2)N(\mu,\sigma^2)μ^=X‾,σ^2=Sn2\hat{\mu}=\overline{X}, \hat{\sigma}^2=S_n^2μ^=X‾,σ^2=Sn2\hat{\mu}=\overline{X}, \hat{\sigma}^2=S_n^2

📝 例题9:MLE完整步骤 ​

【解答】 f(x)=(α+1)xαf(x) = (\alpha+1)x^\alpha(0<x<10<x<1),求 α\alpha 的 MLE

点击查看解析

L(α)=(α+1)n∏xiαL(\alpha) = (\alpha+1)^n \prod x_i^\alpha

lnL=nln(α+1)+α∑lnxi\ln L = n\ln(\alpha+1) + \alpha \sum \ln x_i

dlnLdα=nα+1+∑lnxi=0\frac{d\ln L}{d\alpha} = \frac{n}{\alpha+1} + \sum \ln x_i = 0

α^=−1−n∑i=1nlnXi\hat{\alpha} = -1 - \frac{n}{\sum_{i=1}^n \ln X_i}


六、数理统计 ​

三大抽样分布 ​

分布构造EEDD
χ2(n)\chi^2(n)∑Zi2\sum Z_i^2,Zi∼N(0,1)Z_i \sim N(0,1)nn2n2n
t(n)t(n)Zχ2/n\frac{Z}{\sqrt{\chi^2/n}}0nn−2\frac{n}{n-2}
F(n1,n2)F(n_1,n_2)χ12/n1χ22/n2\frac{\chi_1^2/n_1}{\chi_2^2/n_2}——

关键统计量分布 ​

  • X‾−μσ/n∼N(0,1)\frac{\overline{X}-\mu}{\sigma/\sqrt{n}} \sim N(0,1)(σ已知)
  • (n−1)S2σ2∼χ2(n−1)\frac{(n-1)S^2}{\sigma^2} \sim \chi^2(n-1)
  • X‾−μS/n∼t(n−1)\frac{\overline{X}-\mu}{S/\sqrt{n}} \sim t(n-1)(σ未知)

置信区间 ​

σ已知: X‾±zα/2⋅σn\overline{X} \pm z_{\alpha/2} \cdot \frac{\sigma}{\sqrt{n}}

σ未知: X‾±tα/2(n−1)⋅Sn\overline{X} \pm t_{\alpha/2}(n-1) \cdot \frac{S}{\sqrt{n}}

假设检验 ​

  • σ已知用 Z 检验,σ未知用 t 检验
  • 拒绝域在两侧(双侧检验)或一侧(单侧检验)
  • P值 < α → 拒绝原假设

📝 例题10:置信区间选择 ​

【选择】 X∼N(μ,σ2)X \sim N(\mu,\sigma^2),σ²未知,n=16,x‾=20,s=1n=16, \overline{x}=20, s=1,90%置信区间

点击查看解析

σ未知用 t 分布:

x‾±tα/2(n−1)⋅sn=20±t0.05(15)⋅14\overline{x} \pm t_{\alpha/2}(n-1) \cdot \frac{s}{\sqrt{n}} = 20 \pm t_{0.05}(15) \cdot \frac{1}{4}

关键:自由度 n−1=15n-1=15,90%置信度 → α/2=0.05\alpha/2 = 0.05


七、解题策略总结 ​

  1. 先识别题型:离散/连续?一维/二维?概率/数字特征/估计?
  2. 归一化是第一反应:求常数 C → ∫f=1\int f = 1
  3. 对称性省计算:偶函数×奇函数=0,期望直接得零
  4. 独立性三件套:概率可乘、方差可加、E(XY)=E(X)E(Y)E(XY)=E(X)E(Y)
  5. 正态必标准化:Z=(X−μ)/σZ = (X-\mu)/\sigma
  6. 方差恒正:D(X−2Y)=D(X)+4D(Y)D(X-2Y) = D(X) + 4D(Y),不是减号
  7. MLE 四步走:写L → 取ln → 令导数=0 → 解方程
  8. 置信区间看 σ:已知用 Z,未知用 t(自由度 n-1)

iTerm2 退出时的 Session Restoration ​

现象 ​

退出 iTerm2 后显示:

Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

原因 ​

iTerm2 的 Session Restoration 功能,关闭会话时自动:

  1. 保存会话状态(窗口布局、标签页、当前目录)
  2. 合并命令历史到全局历史文件
  3. 截断历史文件防止膨胀

历史文件位置 ​

  • zsh(Mac 默认):~/.zsh_history
  • bash:~/.bash_history
  • iTerm2 会话状态:~/Library/Application Support/iTerm2/

关闭方法 ​

iTerm2 → Settings → General → Startup → 选 "No restore"

备注 ​

系统自带 Terminal.app 不会有此行为,仅 iTerm2 特有


macOS 系统架构与 Linux 的区别 ​

内核差异 ​

  • macOS 基于 XNU 混合内核(Mach 微内核 + BSD 宏内核层)
  • Linux 是宏内核
  • 两者都是类 Unix,命令行工具基本通用

"一切皆文件" ​

  • macOS 继承 Unix 传统,一切皆文件
  • 但 /proc /sys 等虚拟文件系统在 Mac 上变成 Mach 内核对象

应用与配置 ​

  • Linux:配置多为 /etc/ 下纯文本,apt/yum 安装到 /usr/
  • macOS:
    • 应用 = .app 捆绑包,拖到 /Applications/ 即安装
    • 配置存 ~/Library/Preferences/ 下 plist 二进制文件
    • 用 defaults read/write 命令管理配置
    • 服务管理用 launchd(非 systemd)
    • 包管理用 Homebrew(第三方)

架构层次 ​

Aqua (GUI) → Cocoa/AppKit → Core Services → Darwin (XNU内核: Mach + BSD) → 硬件

核心区别 ​

维度LinuxmacOS
内核宏内核混合内核
包管理apt/yum/pacmanApp Store + .app
文件系统ext4/btrfsAPFS
服务管理systemdlaunchd
配置方式纯文本为主plist 二进制
开源完全开源内核开源,用户层闭源

访达查看根目录 ​

  • Cmd + Shift + . 显示隐藏文件
  • Macintosh HD 就是根目录
  • 系统级操作推荐用终端

Homebrew(brew)— Mac 软件包管理器 ​

是什么 ​

  • macOS 上的包管理器,类比 Linux 的 apt/yum
  • 一行命令装软件,不用去官网下载

核心用途 ​

  • brew install <软件名> — 装命令行工具(git、node、python 等)
  • brew install --cask <软件名> — 装 GUI 应用(Chrome、VSCode 等)
  • brew services list/start/stop — 管理服务
  • brew upgrade — 更新所有已装软件
  • brew uninstall <软件名> — 干净卸载

安装方法 ​

bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

装完后配置 PATH:

bash
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc

注意事项 ​

  • brew 不允许用 sudo/root 运行
  • 首次安装会自动 update,很慢,可用 HOMEBREW_NO_AUTO_UPDATE=1 跳过
  • 如果 git clone 失败,需要配代理(见下方代理章节)

Mac 安装 Node.js(推荐 nvm) ​

为什么用 nvm ​

  • 可以随时切换 Node 版本
  • 不需要 sudo 权限
  • 不污染系统环境
  • 社区主流方案

安装步骤 ​

  1. 安装 nvm:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
  2. 重新打开终端或 source ~/.zshrc
  3. 安装 Node:nvm install --lts(LTS 版)或 nvm install 22(指定版本)
  4. 设为默认:nvm alias default 22
  5. 验证:node -v、npm -v

npm 国内镜像 ​

bash
npm config set registry https://registry.npmmirror.com

macOS 终端代理问题(重要!) ​

现象 ​

  • Clash Verge 开了系统代理/全局模式,浏览器正常走代理
  • 但终端(Terminal/iTerm2)执行 curl/git 等命令时不走代理

原因 ​

  • macOS 系统代理只对支持系统代理的 GUI 应用生效
  • 终端默认只看环境变量 http_proxy、https_proxy、all_proxy
  • Clash Verge 的“系统代理”模式不会自动注入环境变量到终端

解决方案 ​

  1. Clash Verge 开 TUN 模式(推荐)— 虚拟网卡级别,所有流量走代理,终端也走
  2. 终端手动配置环境变量(不推荐写死,应按需开关)

正确的代理使用方式 ​

  • 不要把代理写死在环境变量里,按需开关
  • 在 ~/.zshrc 加快捷函数:
bash
proxy_on() {
    export http_proxy=http://127.0.0.1:7897
    export https_proxy=http://127.0.0.1:7897
    export all_proxy=socks5://127.0.0.1:7897
    echo "✅ 代理已开启"
}
proxy_off() {
    unset http_proxy
    unset https_proxy
    unset all_proxy
    echo "❌ 代理已关闭"
}

什么时候需要代理 ​

  • ✅ GitHub、Google、YouTube 等国外服务
  • ✅ brew/npm/pip 安装国外源
  • ❌ Gitee、百度、淘宝等国内服务(不需要)

验证代理是否生效 ​

bash
env | grep -i proxy
# 有输出说明配了,空说明没配

Mac 环境变量配置 ​

配置文件位置(zsh 加载顺序) ​

  1. ~/.zshenv — 最早加载,所有 zsh 都生效
  2. ~/.zprofile — 登录 shell 加载
  3. ~/.zshrc — 登录交互式 shell 加载(最常用,改这个)
  4. ~/.zlogin — zshrc 之后加载

常用操作 ​

  • 查看环境变量:env
  • 查看 PATH:echo $PATH
  • 编辑:nano ~/.zshrc 或 vim ~/.zshrc
  • 格式:export 变量名="值" 或 export PATH="/new/path:$PATH"
  • 生效:source ~/.zshrc

Mac 查看应用内存和磁盘占用 ​

内存查看 ​

  1. 活动监视器(GUI):open -a "Activity Monitor",内存标签页排序
  2. 命令行:ps aux --sort=-%mem | head -20

磁盘查看 ​

  1. 整体空间:df -h
  2. 目录大小:du -sh * | sort -hr
  3. 应用大小:ls -lhS /Applications/
  4. Homebrew:du -sh /opt/homebrew/
  5. App 沙盒数据:du -sh ~/Library/Containers/

实用工具 ​

  • CleanMyMac(付费,图形化)
  • OmniDiskSweeper(免费,扫描磁盘按大小显示)

Git & GitHub ​

Git:分布式版本控制系统,本地仓库 + 远程仓库(GitHub/Gitee)

安装与配置 ​

  • 安装:sudo apt install git -y(Linux)/ Mac 自带 / Windows 下载安装包
  • 首次配置:git config --global user.name/email

文件流转 ​

工作区 → git add → 暂存区 → git commit → 本地仓库 → git push → 远程仓库

克隆 GitHub 项目 ​

  • HTTPS:git clone https://github.com/用户名/项目名.git(简单,推荐新手)
  • SSH:先生成密钥 ssh-keygen -t ed25519,复制公钥到 GitHub,再 git clone git@github.com:用户名/项目名.git(免密,推荐长期用)

日常操作 ​

  • git status → git add . → git commit -m "描述" → git push origin main → git pull origin main
  • 创建新项目并推送:git init → git remote add origin <url> → git push -u origin main

.gitignore ​

  • 忽略不需要追踪的文件(如 node_modules、.env、*.log)

分支管理 ​

  • git branch 分支名 — 创建但不切换
  • git checkout -b 分支名 — 创建并切换(最常用)
  • git switch -c 分支名 — 新语法(Git 2.23+)
  • git branch — 查看本地所有分支
  • git branch -a — 查看本地 + 远程所有分支
  • git branch -r — 只看远程分支
  • git branch -v — 查看分支及最后提交信息
  • 合并:切回主分支 → git merge 分支名

Mac vs Windows 区别 ​

  • Git 命令完全一样
  • Mac 用 Terminal/iTerm2,Windows 用 Git Bash/CMD
  • 路径格式不同:Mac /Users/xxx,Windows C:\Users\xxx

⚠️ AI 工具分析结果要交叉验证 ​

  • Claude Code 分析服务器性能时,报告的负载/内存/Swap 数字全是编造的
  • 必须用 uptime、free -h、top 等实际命令验证

macOS BSD sed vs Linux GNU sed ​

问题:sed -i 's/old/new/g' file.txt 在 macOS 报错 unterminated substitute pattern

原因:macOS 自带 BSD sed,-i 参数必须传备份后缀(即使不需要备份)

系统正确写法
Linux (GNU sed)sed -i 's/old/new/g' file.txt
macOS (BSD sed)sed -i '' 's/old/new/g' file.txt

原理:少了 '',BSD sed 把后面的表达式当备份后缀,再后面当替换命令,语法错乱

兼容写法:sed -i.bak 's/old/new/g' file.txt && rm file.txt.bak


Vite 开发服务器 HMR 热更新导致内存增长 ​

问题 ​

Vite 开发服务器 HMR 运行时间长了,内存占用越来越大。

原因 ​

1. 模块缓存积累:每次修改只重新编译变化模块,旧版本模块可能因循环引用/闭包未被 GC 回收

2. 模块依赖图增长:内部维护的 Module Graph 频繁更新,旧节点残留,新节点持续加入

3. Source Maps 缓存:每次编译生成 Source Maps,缓存累积越来越多

4. WebSocket 连接泄漏:断线重连后旧连接未关闭

5. 预构建依赖缓存:.vite 目录缓存占用内存

解决办法 ​

  1. 重启 Vite — 最直接
  2. 增大 Node 内存:NODE_OPTIONS="--max-old-space-size=4096"
  3. 检查第三方插件的内存泄漏问题
  4. 调低 IDE 自动保存触发频率
  5. 升级 Vite 版本

排查 ​

bash
node --inspect node_modules/.bin/vite
# 代码中
process.memoryUsage()

这是大多数现代前端工具(Webpack、Vite、ESBuild)的通病 — 为了快速热更新大量缓存,但状态清理不完美。


Codex CLI 国内厂商接入(MiMo + MiniMax 并存) ​

背景:Codex 新版只支持 Responses API(wire_api = "responses"),国内目前有两家厂商都支持:小米 MiMo 和 MiniMax。

参考资料:

两家并存 config.toml 模板 ​

toml
# ====== 顶层:默认激活哪家 ======
model = "MiniMax-M3"
model_provider = "minimax"
model_context_window = 1000000

# ====== 厂商一:MiniMax ======
[model_providers.minimax]
name = "MiniMax"
base_url = "https://api.minimaxi.com/v1"
experimental_bearer_token = "<MINIMAX_API_KEY>"
wire_api = "responses"

# ====== 厂商二:小米 MiMo ======
[model_providers.mimo]
name = "mimo"
base_url = "https://api.xiaomimimo.com/v1"
env_key = "MIMO_API_KEY"
wire_api = "responses"

# 可选:MiMo 推理相关
# model_reasoning_effort = "high"
# model_supports_reasoning_summaries = true
# model_reasoning_summary = "none"
# model_context_window = 1048576
# web_search = "disabled"

# 可选:模型目录,让 /model 看到所有模型
# model_catalog_json = "~/.codex/model-catalogs/model-catalogs.json"

两家关键差异 ​

项目MiMoMiniMax
凭据方式env_key 环境变量(推荐)experimental_bearer_token 直接写(官方示例)
上下文窗口1048576(1M)1000000
默认 reasoninghigh(Adaptive Thinking)high
多模态mimo-v2.5 支持图文MiniMax-M3 支持图文
API Key 格式sk-...(按量)/ tp-...(订阅)JWT(eyJ...)
支持 wire_apiresponsesresponses

切换方式 ​

bash
# 方式1:改 config.toml 顶层两行
model = "mimo-v2.5-pro"
model_provider = "mimo"

# 方式2:命令行 --model 覆盖
codex --model mimo-v2.5-pro "写脚本"
codex --model MiniMax-M3 "解释代码"

# 方式3:Profiles(0.134.0+ 的独立 profile 文件)

环境变量配置 ​

bash
# ~/.bashrc 或 ~/.zshrc
export MIMO_API_KEY="sk-你的小米 key"
export MINIMAX_API_KEY="eyJ...你的 key"

⚠️ 安全提醒 ​

  • MiMo 推荐用 env_key + 环境变量
  • MiniMax 官方示例把 Key 直接写进 experimental_bearer_token,建议改成环境变量更安全
  • chmod 600 ~/.codex/config.toml 保护配置文件

小弟二号打造的知识体系