臭名昭著aTrust隔离计划1.臭名昭著aTrust隔离计划2.VPN原理与aTrust隔离网络实践3.docker-easyconnect到底做了什么4.TUN(tunnel-隧道-虚拟网卡)模式
个人项目
personal(个人展示)GitHub Actions 自动部署个人展示项目
基于Quartz搭建的个人博客1.Quartz个人博客使用教程2.使用 rsync 增量部署 Quartz 博客3.使用 GitHub Actions 自动部署 Quartz 博客5.域名绑定6.CDN加速7.Google 搜索收录排查:为什么关键词搜得到别人,却搜不到我的网站?Obsidian、双向链接与知识图谱
架构设计
分布式分布式事务RPC原理
旅行
行程攻略青岛三日游行程攻略
前端
NginxNginx配置与反向代理入门
Nodenpm与npx的区别
数据库
mysql01.MySQL基础语法与约束02.MySQL数据库类型03.MySQL多表查询04.MySQL 索引05.MySQL 事务06.MySQL 隔离级别07.MySQL MVCC08.MySQL 锁09.EXPLAIN10.慢查询与 SQL 优化
mysql面试题01.索引问题02.事务与隔离级别03.锁机制04.存储引擎与性能优化05.用户权限、字符集与备份恢复
mysql实战01.EXPLAIN实战02.测试环境菜单误删排查与恢复03.MySQL IN 详解
网络
网络安全1.无线监听网卡苹果M系列虚拟机安装Kali Linux教程3.kali怎么使用RTL8812AU4.kali基础命令
网络基础进程之间怎样通过网络传递数据
网址常用网址
中间键
esElasticsearch 入门
mq
RabbitMQRabbitMQ高级RabbitMQ基础
1. MQ 基础2. MQ 核心角色与代码对应3. MQ Consumer Group 与消费模式4. SOFAMQ 账户变更代码实践5. MQ 可靠性问题6. 消息幂等
redis缓存击穿、穿透与雪崩Redis 分布式锁Redis 缓存问题Redis 数据结构
AI
使用说明
第三方插件&技能简介Archify使用与安装指南geekgeekRun使用OfferFlow使用指南Ponytail使用指南Skills Manager使用指南
CodexCodex CLI与IDE区别及使用指南Codex Hook单独配置与提交通知Codex MCP安装与使用指南Codex第三方插件安装与使用指南
Agent开发0-学习路线1.LLM、Token、上下文窗口与模型参数2.大模型 API、请求参数与响应结构3.Spring AI ChatClient4.Prompt、System Prompt、Prompt 模板6.结构化输出、JSON Schema7.SSE 流式响应8.会话 ID、聊天记录、Redis9.超时、重试、限流、降级10.*完成可运行聊天接口11.Function Calling、Tool Calling 原理12.用 Java 方法定义 Tool13.工具参数设计和校验14.实现订单查询工具15.实现物流查询工具16.实现库存查询工具17.多个工具自动选择18.工具异常、超时、重试
diy主机
主机零件学习1.CPU2.主板3.内存4.显卡5.硬盘6.散热7.风扇8.机箱热门型号价格表
捡垃圾diy-13600kf+5060diy-14600kf+5070
English高频词汇英文基础语法简单句子音标
GitGit常用命令Sublime Merge 使用指南
Java
工具库Caffeine本地缓存Reactor教程
工作实践如何使用@Async线程池使用与排查线上服务 CPU 使用率过高排查压测下RPC接口大量失败排查记录
基础1.HashMap2.ConcurrentHashMap3.HashSet4.final5.static6.volatile7.AtomicInteger8.String动态代理反射锁与线程同步线程注解
面试题1.HashMap 存储在方法内是线程安全的吗2.ArrayList参数传递与引用重新赋值3.== 和 equals 的区别、hashcode4.重载和重写的区别5.String、StringBuffer、StringBuilder区别及使用场景6.接口和抽象类7.ArrayList 与 LinkedList 的区别和扩容机制8.HashMap 和 Hashtable 的区别及底层实现9.Object 和 Objects 的区别10.ThreadLocal的原理和使用场景11.字节码是什么及作用12.Java类加载器有哪些13.双亲委派模型14.Java异常体系15.GC是什么16.GC如何判断对象可以被回收
面试总结0.HR面试模板1.面试一2.面试二3.面试三笔试
网络与 IO(黑马程序员-纯理论)01-网络编程基础02-IO模型与零拷贝03-BIO04-NIO基础与缓冲区05-NIO通道与选择器06-AIO
juc00-目录01-进程与线程02-线程同步与通信03-并发设计模式04-Java内存模型05-CAS与原子类06-ThreadLocal07-阻塞队列08-线程池使用与原理09-任务调度10-ForkJoin与享元模式11-AQS12-ReentrantLock13-读写锁14-并发协作工具15-ConcurrentHashMap16-CopyOnWrite与同步容器17-SkipListMap18-非阻塞队列
juc(工作常见)Java并发编程三个重点拆解
jvm1. JVM运行时数据区
Spring1.Spring IoC、DI与构造方法注入CGLIB、Byte Buddy 与 Spring AOPSpring 常用注解详解Spring Bean 生命周期
Spring MVC异常处理机制
linux常用命令
mac快捷键终端常用操作
python
基础01.Python是什么,为什么要安装Python02.Python项目中.venv是什么03.Python基础语法
基础实战sql替换
HTTPXHRMS员工详情接口调用(Python HTTPX)
windowswindows激活

一、一句话理解

Obsidian 是管理 Markdown 笔记的工具;双向链接负责连接笔记;知识图谱负责把这些连接画出来。

二、理论:它是什么

2.1 Obsidian 是什么

Obsidian 可以理解成一个个人知识库工具。

它的笔记本质上是保存在电脑上的 .md 文件,Obsidian 负责帮助我们编写、搜索、连接和查看这些笔记。

一个 Obsidian 知识库通常叫作 Vault,也就是一个文件夹。文件夹中的 .obsidian 目录保存了这个知识库的设置、插件和主题配置。

2.2 双向链接是什么

在 Obsidian 中,可以使用下面的格式链接到另一篇笔记:

我正在学习 [[面向对象]]。

[[面向对象]] 表示链接到名为“面向对象”的笔记。点击链接即可打开对应笔记。

2.3 知识图谱是什么

知识图谱可以理解成“笔记关系地图”。

  • 一个圆点代表一篇笔记。
  • 一条线代表两篇笔记之间存在链接。
  • 被很多笔记链接的笔记,通常会有更多连接。

三、理论:它是怎么工作的

3.1 双向链接的工作方式

假设有两篇笔记:

Java基础.md
面向对象.md

在 Java基础.md 中写入:

我正在学习 [[面向对象]]。

这会产生两个效果:

  1. 从“Java基础”可以点击链接打开“面向对象”。
  2. 打开“面向对象”时,可以在反向链接区域看到“Java基础”。

严格来说,文件中保存的是从 A 指向 B 的链接;Obsidian 根据链接关系生成反向链接,所以使用体验像是双向的。如果在两篇笔记中都主动写入对方链接,才是两边都保存了明确链接。

3.2 知识图谱的组成

知识图谱主要由两部分组成:

  • 节点:笔记、文件或概念。
  • 边:笔记之间的链接关系。

例如:

Java基础 ─── 面向对象 ─── 继承
                         │
                       多态

这张关系图表示“Java基础”和“面向对象”有关,“面向对象”和“继承”有关,“继承”和“多态”有关。

四、实践:可以拿来干什么

Obsidian 和这些链接功能可以用于:

  • 整理编程、英语、历史等学习笔记。
  • 记录工作经验和项目资料。
  • 管理读书笔记。
  • 关联业务概念、技术方案和问题记录。
  • 通过反向链接找出某个概念被哪些内容引用。
  • 通过知识图谱观察知识之间的整体关系。

传统文件夹更像把内容放进不同抽屉;笔记链接则像给内容建立了可追踪的关系。

五、最小例子

创建三篇笔记。

5.1 Java基础

# Java基础
 
Java 是一门面向对象的编程语言。
 
相关概念:[[面向对象]]

5.2 面向对象

# 面向对象
 
面向对象包含:
 
- [[封装]]
- [[继承]]
- [[多态]]

5.3 继承

# 继承
 
继承是面向对象的重要特征之一。

这样就建立了一条知识关系:

Java基础 → 面向对象 → 继承

打开“面向对象”笔记时,还能看到“Java基础”通过反向链接引用了它。

六、边界与常见误区

6.1 知识图谱不会自动生成知识

如果笔记之间没有建立链接,图谱就无法展示有意义的关系。

6.2 链接越多不一定越好

链接应该表达真实关系,例如“属于”“解释”“对比”“依赖”或“应用于”。随意添加链接会让图谱变得混乱。

6.3 不必一开始就设计复杂体系

刚开始只需要做到:一件事情写一篇笔记,遇到相关概念就使用 [[笔记名]],之后通过反向链接回顾关系。

6.4 双向链接不等于自动理解

Obsidian 能发现笔记之间的链接,但不会自动判断两篇笔记在业务或知识上的真实含义。关系仍然需要由我们建立和维护。

七、其他好用功能

7.1 属性:给笔记增加结构化信息

属性是写在笔记顶部的元数据,适合记录标题、日期、状态、标签、数字或是否完成等信息。

---
type: 学习笔记
status: 进行中
date: 2026-08-18
tags:
  - Obsidian
  - 知识管理
---

属性的作用是让笔记不只有正文,还拥有可以被筛选和整理的字段。

7.2 Bases:把笔记当成数据库查看

Bases 是 Obsidian 的核心插件,可以根据笔记属性生成类似数据库的表格、列表或卡片视图,并支持筛选、排序和分组。

例如,可以给读书笔记增加 作者、评分、阅读状态 属性,然后用 Bases 做出“正在阅读”“已读完”的书籍列表。

7.3 嵌入:在一篇笔记里显示另一篇笔记

普通链接是跳转,嵌入则是把内容直接显示在当前笔记中:

![[项目背景]]

也可以只嵌入另一篇笔记中的某个标题、段落、图片、PDF 或搜索结果。

适合用来制作项目首页、知识目录和汇总页面。源笔记更新后,嵌入内容也会同步变化。

7.4 Canvas:用画布整理复杂关系

Canvas 是一块可以自由摆放卡片的无限画布,可以把笔记、图片、PDF、网页和文字卡片放在一起,再用线连接它们。

它适合:

  • 整理系统架构。
  • 规划文章结构。
  • 绘制业务流程。
  • 做头脑风暴。
  • 把零散笔记整理成整体思路。

7.5 每日笔记和模板:减少重复劳动

每日笔记可以自动创建当天的笔记,适合记录工作日志、学习记录和待办事项。

模板可以预先写好固定结构,例如:

# {{date:YYYY-MM-DD}}
 
## 今日任务
 
- [ ]
 
## 学到的内容
 
## 遇到的问题

以后新建笔记时,直接插入模板即可,不需要每次重新写标题和小节。

7.6 搜索、命令面板和快捷键

命令面板可以搜索并执行 Obsidian 的各种功能;快速切换器可以快速打开或创建笔记;搜索功能可以查找全文、标签、属性和任务。

这类功能看起来简单,但笔记多起来之后,比手动翻文件夹高效很多。

7.7 Web Clipper:把网页内容保存进知识库

Web Clipper 是官方浏览器扩展,可以把网页正文、选中的内容或高亮内容保存到 Obsidian。它还支持模板,能够自动整理标题、网址、作者和标签等信息。

例如,看到一篇技术文章后,可以保存为:

---
source: 网页地址
type: 技术文章
tags:
  - 待整理
---

7.8 插件、主题和同步

核心插件是 Obsidian 自带的功能,社区插件则由其他用户开发,可以扩展任务管理、日历、图表、自动化等能力。

主题和 CSS 片段可以改变外观;同步功能可以让多个设备使用同一份知识库;发布功能可以把笔记整理成网站、Wiki 或文档站。

插件越多不一定越好。建议先使用核心功能,只有遇到明确需求时再安装插件,并定期清理长期不用的插件。

八、推荐学习顺序

建议按下面的顺序学习:

  1. [[笔记名]] 内部链接和反向链接。
  2. 标签和属性。
  3. 模板与每日笔记。
  4. 嵌入和 Canvas。
  5. Bases 数据库视图。
  6. Web Clipper 和社区插件。

先把笔记写起来,再逐步增加工具功能,比一开始设计复杂体系更容易坚持。

九、总结

Obsidian 不只是写笔记,还可以把笔记变成一个可查询、可组合、可视化的个人知识库。

最值得先掌握的是:用链接建立关系,用属性描述笔记,用模板减少重复,用嵌入制作汇总页,再根据需要使用 Canvas、Bases、Web Clipper 和插件。