全部笔记

12 篇笔记,另有 2 个专题。都是写在动手之后,不是整理别人的答案。

专题
一个大题目拆成多章,每章单独成页。

macOS 使用与设置:一份力求完整的笔记

专题,共 9 章。开机设置、访达与文件、终端与 Homebrew、装卸载、性能与电池、加密隐私、备份重装、快捷键协同、故障排查。

专题系统与运维9 章

Windows 使用与设置:一份力求完整的笔记

专题,共 8 章。装机、C 盘瘦身、性能设置、账户安全、隐私、文件与快捷键、备份还原、故障排查。

专题系统与运维8 章
笔记
按写作时间倒序,新的在前面。

Shell 脚本写稳一点:几个默认就该加的东西

set -euo pipefail 各管什么、它在哪些位置会失效,以及引号、IFS、mktemp 配 trap 这些挡事故的写法。

工具与效率Shell

定时任务不执行:cron 的五个坑和 systemd timer

PATH、% 转义、输出丢失、时区、任务重叠,五个「手动能跑、放进 cron 就不行」的原因。

系统与运维Linux

Python 虚拟环境:为什么不能直接 pip install

venv 到底建了什么、requirements.txt 该怎么记、镜像源怎么配,以及 externally-managed-environment 的处理方式。

编程与语言Python

DNS 排查:一次解析到底经过了谁

递归和权威的区别、dig 输出的读法,以及 NXDOMAIN 和「查到了但是空」为什么必须分开看。

网络与协议DNS

tcpdump 抓包:先缩小范围,再开始看

接口怎么选、BPF 过滤器怎么写、写文件后离线分析,以及为什么普通用户抓不到包。

网络与协议抓包

SSH 免密登录:从生成到关掉密码登录

密钥生成、authorized_keys 的权限要求、sshd_config 三处改动,以及 host key 变更后怎么办。

系统与运维SSH

nginx 反向代理:几个必须搞清楚的细节

proxy_pass 结尾那个斜杠、location 的匹配优先级、转发头怎么补齐,以及 413 和 504 各自从哪来。

系统与运维nginx

HTTPS 打不开时,从头把证书链查一遍

三类证书报错怎么对号入座,以及用一条 openssl 命令把整条链验证跑完。

网络与协议HTTPS

HTTP 缓存:把 Cache-Control 讲明白

强缓存和协商缓存到底谁先谁后,no-cache 为什么不等于不缓存,以及一张表说清哪些字段归谁管。

网络与协议HTTP

Linux 上排查 CPU 占用高的五个步骤

从 top 到 perf,一步步缩小范围。重点是怎么区分「真在算」和「在等」。

系统与运维Linux

Git 里那些每次都要现查的命令

撤销、找回、改写历史。列的是我自己每周都会用错一遍的那几个,附上什么时候不该用。

工具与效率Git

SQLite 用在单机服务里,什么样的场景合适

它的并发模型其实比传言友好,但有几个前提。写清楚我踩过的坑和最后判断的标准。

编程与语言数据库
四个主题各自收录什么
分类只是方便找,边界不严格。

编程与语言 2 篇

语言本身、运行时与依赖管理,以及「这个技术适不适合这个场景」这类判断。 目前是 SQLite 的适用边界和 Python 的虚拟环境。

网络与协议 4 篇

从 DNS 到 TLS,都是「知道原理才能查」的东西。共同点是报错信息往往指不到真正的原因, 得自己一层层往下剥。

系统与运维 4 篇

服务器上每天要打交道的部分:进程、端口、定时任务、反向代理、登录方式。 写的时候尽量以「照着敲能复现」为标准。

工具与效率 2 篇

命令行工具的正确用法,以及怎么把「容易写错的东西」写成不容易写错的形式。 Git 和 Shell 脚本是这一类的常客。