--- title: 什么是 ssh.blog date: 2026-10-14 tags: 介绍, 对比, ssh summary: 一份 markdown、三个入口、一个二进制加一棵目录树——它和其他博客框架到底差在哪 --- # 什么是 ssh.blog 一个**同时能被浏览器和终端阅读**的博客。 文章只有一份 markdown,程序就是一个二进制文件加一棵目录树。网页那一侧是正常的站点(真实 URL、RSS、能被搜索收录);终端那一侧你可以 `ssh` 进去敲 `ls`、`cat`、`grep`,输出还能直接进管道。 而且网页的 URL 就是树里的路径:`/posts/x.md` 是那篇文章,`/posts/` 是那个目录,`/ui/theme.css` 就是那个文件。没有第二套地址规则。 ## 三个入口,一份内容 | 入口 | 怎么进 | 得到什么 | |---|---|---| | 网页 | 打开域名 | 可分享、可收录的文章页;首页是一个可交互的终端 | | 浏览器终端 | 在首页直接敲命令 | `ls` / `cat` / `cd` / `grep` / `tree`,Tab 补全、↑↓ 历史 | | SSH | `ssh 你的域名` | 同一个终端,而且输出是纯文本,能进管道和脚本 | 三个入口共用**同一份命令实现**:`ls` 在网页里和 SSH 里走的是同一个函数,只是输出分别渲染成 HTML 和 ANSI。所以不存在"两边行为不一致"这种事。 ## 和其他方案比 | 方案 | 文章在哪里 | 阅读入口 | 运行时依赖 | 说明 | |---|---|---|---|---| | WordPress / Ghost | 数据库 | 网页 | PHP 或 Node + 数据库 + 反代 | 功能最全,维护面也最大 | | Hugo / Jekyll / Zola | markdown | 网页 | 无(产物是静态文件) | 快、稳、SEO 好,但只有网页 | | Astro / Next.js | markdown | 网页 | 构建链(Node + 一堆依赖) | 灵活,代价是要维护前端工程 | | LiveTerm 一类模板 | 写在配置或前端里 | 网页 | 前端框架 | 终端是**假装**的:命令是前端函数,刷新就回初始状态,也没有 URL 和 SEO | | **ssh.blog** | markdown(一份) | 网页 **+ 浏览器终端 + SSH** | **一个二进制 + 一棵目录树**(无 Node、无数据库、无构建步骤) | 终端是真的;命令能进管道;代价是受众面和功能面 | ## 别人不太有的几点 1. **SSH 是真终端,不是网页里假装的。** `ssh 你的域名` 真的连上;`ssh 你的域名 cat 某篇` 的输出能 `| less`、能 `grep`、能写进脚本。 2. **一份内容,三个前端。** markdown 是唯一真相,网页用 goldmark 渲染,终端里就是原始文件(不做排版),而命令实现只有一套。 3. **URL 就是路径。** 网页上没有另一套"文章 ID"或者路由表:目录给你目录页,`.md` 给你文章页,其它文件给你原文。新建一个目录、丢一篇 markdown 进去,网页和终端立刻都有,不用改代码、不用重启、不用重新构建。 4. **一个二进制加一棵树,零运行时依赖。** 服务器上放这个二进制和这份仓库就能跑:文章是树里的 markdown,终端里浏览的文件、`source` 读到的源码也都是这棵树本身。没有数据库、没有 Node、不发布文章也不用重新构建。 5. **程序可以自省。** `which` 能看到每条命令实现在哪个文件哪一行,`source ls` 能直接把实现它的 Go 代码打印出来(读的就是服务器上那份源码);`buildinfo` / `deps` / `ps` / `lsof` 报的是现场数据,不是写死的。 6. **没有 JavaScript 也能用。** 首页是一个普通表单,命令由服务端执行;同时网页侧有真实 URL、canonical、RSS、sitemap——把"终端博客没 SEO"这个老问题补上了。 7. **改样式只改你看到的那一份。** 配色是几个 CSS 变量,`theme` / `edit` 由浏览器接管写进 localStorage,服务端一行都不动。 ## 代价,先说清楚 - **读者门槛**:会敲 `ssh` 的人很少。SSH 入口是给同类人准备的彩蛋,不是主要渠道。 - **移动端一般**:终端排版在手机上只是"能用"。 - **功能面窄**:没有评论、没有 CMS、没有草稿流、没有多作者、没有插件生态。 - **维护面全在自己身上**:换主题、加功能都得自己写(好处是不会被插件升级搞坏)。 - **终端是近似的**:表格和图片只能用文本近似表达。 - **SEO 只来自网页那一侧**:SSH 入口对搜索引擎不存在。 ## 适合谁 适合:想要一个有点个性的个人站点、喜欢终端、愿意把"这东西怎么做的"也当成内容的人。 不适合:要开箱即用插件生态的、多人协作的内容平台、必须给不特定大众阅读的营销站。 ## 想试一下 ```bash # 本地跑(启动日志会打印两个入口各自监听的地址) go run . ``` 进去之后,这几条最能说明它和别的博客不一样: ```console visitor@localhost:~$ help # 全部命令 visitor@localhost:~$ which ls # 每条命令实现在哪个文件哪一行 visitor@localhost:~$ source ls # 直接把实现它的 Go 代码打印出来 visitor@localhost:~$ ps # 这个进程自己的内存、goroutine、请求数 visitor@localhost:~$ deps # 编进这个二进制的依赖表 ``` 如果这个站点就是一个 ssh.blog,上面这些命令你在网页首页也能敲——不用开终端。