# 29. Terminal Emulators

内核恐慌 · 2015-11-29

<https://lib.pan.icu/baf86057-f0e6-4cea-9af8-d2488148ccc4>

本期《内核恐慌》补充上期未尽的终端仿真器（terminal emulator）话题，吴涛与Rio辨析了模拟器（simulator）与仿真器（emulator）的区别，梳理了从物理终端到软件仿真器的演进，详细对比了macOS上的iTerm 2、Linux上的XTerm、RXVT、GNOME Terminal及Windows上的Putty、CTerm等主流仿真器，并讨论了分层快捷键管理的个人实践。在新闻环节，两人评论了Visual Studio Code开源（Electron框架）的高CPU占用问题、WordPress将管理界面用Node.js和React重写（PHP退居API层）对生态的影响，以及5美元的树莓派Zero（1GHz ARM11、512MB内存、无网卡）的适用场景与物流成本。

## Questions this episode answers

### 终端仿真器和终端模拟器有什么不同？为什么内核恐慌中会将 terminal emulator 称为终端仿真器？

吴涛和Rio在节目中解释，模拟器（simulator）需要完全复制内部原理，而仿真器（emulator）只需外观和感觉一致即可。真正的终端仿真器是仿效早期物理终端的行为，而非模拟硬件，因此更准确的称谓是“终端仿真器”，尽管口语中常混用。这个区分对理解终端软件的历史和原理很重要。

[14:03](https://lib.pan.icu/baf86057-f0e6-4cea-9af8-d2488148ccc4?t=843000)

### 如何在 iTerm2 中根据不同的标签页或窗格自动运行不同的命令？

吴涛分享了一个技巧：iTerm2在启动后会给每个窗格设置一个环境变量ITermSession，值类似“Window0、tab0、pane0”。你可以在shell配置文件中检查该变量，根据不同的窗格运行特定程序，比如在第一个窗格打开Python，从而实现终端布局和程序的自动恢复，提高工作效率。

[1:19:33](https://lib.pan.icu/baf86057-f0e6-4cea-9af8-d2488148ccc4?t=4773000)

### WordPress 的管理后台为什么改用 Node.js 和 React 重写？这对 PHP 开发者意味着什么？

Rio在节目中报道，WordPress将管理界面用Node.js和React重写，核心部分仍保留PHP。这被视为WordPress逐步远离PHP的信号，引发社区担忧，因为大量商业插件依赖PHP。但吴涛认为静态网站生成器等替代方案已成熟，个人博客未必需要复杂的动态CMS。

[1:26:19](https://lib.pan.icu/baf86057-f0e6-4cea-9af8-d2488148ccc4?t=5179000)

## Key moments

- **[0:00] 求职服务**
  - [1:19] Rio 推出双向求职服务，负责初筛和推荐，邮箱 talent@riobard.com
- **[6:31] 听友反馈**
  - [6:54] 听友朱思涵推荐清华学生用 Go 写的 Elvish shell，具备 fish 与 zsh 特性
  - [8:08] Rio: "还蛮开心有这么一个比较新的语言写的这个 shell。然后在想什么时候有人用 Go 写个操作系统出来。"
  - [8:41] 听友 Tomas 指出 DOS 年代文件管理器是 Norton Commander，而非 Total Commander
  - [9:11] 吴涛和 Rio 回忆 DOS 时代的 TSR 程序，如 Norton Guake 可热键呼出手册
  - [10:59] Dash 文档工具未付费会将字体换成 Comic Sans，吴涛吐槽这是人肉折磨
  - [12:11] PHP 官方文档评论区比正文更有用，吴涛称成也评论败也评论
- **[13:35] 终端仿真器**
  - [13:56] 吴涛解释 terminal emulator（仿真器）与 simulator（模拟器）的区别：仿真只求 API 兼容，模拟须 binary 兼容
  - [17:15] 吴涛解释 CUI（字符用户界面）与 CLI（命令行界面）的区别，Norton Commander 是 CUI 而非 CLI
  - [23:38] Rio 描述在计算机历史博物馆见到的老式控制台（console），即早期计算机的操作台
  - [28:33] 吴涛指出 Windows 命令行不是 shell，PowerShell 才是真正的 shell
  - [29:50] 吴涛推荐 'TTY demystified' 文章，讲解终端仿真器的 raw mode 与 line editing mode
- **[31:55] Mac 终端**
  - [35:35] iTerm2 支持将窗口分割为多个独立 pane，Rio 称其比系统自带终端的分屏更好用
  - [36:35] iTerm2 最近的版本支持深度集成 TMUX，用像素线条替代字符分隔线，节省空间
  - [39:52] iTerm2 新增 hotkey window 功能，按下快捷键可从屏幕顶部下拉一个终端，Rio 称常用于快速查东西
- **[44:04] Linux 终端**
  - [44:04] Rio 指出 Unix 下终端仿真器百花齐放的原因：所有 Unix 发行版都必须带终端
  - [50:02] Rio: "感觉像在一个灯光明亮的糖果店的感觉。" 吴涛: "很三俗。" 关于 KDE 的审美
  - [53:48] Rio 吐槽 Linux 下没有最好的终端仿真器，Google 搜出来的 top ten list 都不好用
- **[58:15] 窗口管理**
  - [58:55] 吴涛使用 I3 窗口管理器、终端 Tab 和 TMUX 三层快捷键管理终端，三层是个人极限
  - [1:01:10] 吴涛 vs Rio: 为何不直接用 I3 平铺管理代替终端 Tab？吴涛希望单一进程管理，Rio 认为平层更简单
  - [1:06:20] 吴涛吐槽 Mac 快捷键全局冲突严重，App 间常互相覆盖，不如 Linux 方便
- **[1:08:49] Windows 终端**
  - [1:09:42] Windows 上的终端：Putty 不好用，字大小死板；Rio 回忆 CTerm 是国人开发的支持鼠标的 BBS 软件
  - [1:12:48] Rio 解释 Cygwin 是在 Windows 上运行 POSIX 程序的环境，而 MinGW 是开发原生 Windows 程序的 GNU 工具链
- **[1:15:37] 移动终端**
  - [1:15:44] 吴涛和 Rio 讨论手机上的 SSH 客户端，推荐 ISSH、Prompt 2 和 Server Auditor 用于救火
  - [1:19:33] 吴涛分享 iTerm2 技巧：利用 ITermSession 环境变量，在特定 pane 自动启动特定程序，Rio 称太黑
- **[1:22:09] VS Code 开源**
  - [1:22:42] 微软 Visual Studio Code 代码编辑器正式开源，基于 Electron；吴涛反映其 CPU 占用高、风扇狂转
- **[1:25:53] WordPress 革新**
  - [1:25:53] WordPress 用 Node.js 和 React 重写管理后台，PHP 保留作后端 API；吴涛认为这是放弃 PHP 的信号
  - [1:30:09] 静态网站生成器趋势：吴涛认为不会动的部分不会坏，类比核电池；WordPress 可能被取代
- **[1:34:04] 树莓派 Zero**
  - [1:34:04] 树莓派发布 Raspberry Pi Zero，仅售 5 美元，性能比第一代快 40%，杂志免费赠送
  - [1:40:32] 吴涛 vs Rio: Pi Zero 缺乏网络接口，应用受限；Rio 认为需外接网卡但破坏小巧性
  - [1:43:33] 吴涛完成杜克大学在线课程并拿到证书，Rio 调侃为成教函授学院结业证

## Speakers

- **Rio** (host)
- **吴涛** (host)

## Mentioned

CTerm (product), GNOME Terminal (product), Guake (product), ISSH (product), Konsole (product), MinTTY (product), Prompt (product), RXVT (product), Raspberry Pi Zero (product), Server Auditor (product), Terminal (product), Terminator (product), Tild (product), URXVT (product), Visual Studio Code (product), WordPress (product), XFace Terminal (product), XTerm (product), ZTerm (product), iTerm2 (product)

## Transcript

### 求职服务

**吴涛** [0:00]
欢迎收听 IPN Podcast， 网络旗下的 IT 技术主题娱乐节目 《 内核恐慌 》。 我们号称 "Hardcore"，但是也没有干货 ； 想听的人听 ，不想听的人就别听 。

本节目的网址是 kernelpanic.fm， 我们推荐大家使用 Podcast 客户端订阅节目 。 详情请访问 ipn.li/faq。 欢迎你为本节目捐款 ， 捐款地址是 kernelpanic.fm/donate。

捐款金额随意 ， 只要是 8 的正整数倍就可以 。 捐款不会为你带来什么 ，不捐也不会让你失去什么 。

我们的口号是 ： "Everything is theoretically impossible, until it is done." OK， 呃 ， 今天是我们的第 29 期节目 ， 嗯 ， 我是吴涛 ， 然后今天呢 ， 呃 ， 我们在深圳创业界拥有巨大影响力的投资人 Rio， 要为大家宣传一项 ， 呃 ，IPN 旗下的新业务 。

哈哈哈 ， 可以这么说吧 。

**Rio** [0:59]
你你你 ， 你真的用了那个梗 ， 好吧 ？ 很多人不知道你这样说好吗 ？

**吴涛** [1:04]
Anyway， 这是既成事实 。

**Rio** [1:06]
呃 ，是假设在未来发生的事情 。

**吴涛** [1:08]
哦 ，OK， 好吧 ， 对对对 。

**Rio** [1:10]
OK， 好 。 不过 anyway， 扯淡了哈 ， 呃 ， 今天我我们尝试一个新业务 ，也我个人尝试一个新业务吧 。

**吴涛** [1:18]
嗯哼 。

**Rio** [1:19]
就是一个拉皮条的业务 。

**吴涛** [1:21]
啊 ？

**Rio** [1:21]
然后这边有一些 。

**吴涛** [1:23]
好猥琐啊听起来 。

**Rio** [1:24]
呃 ， 哈哈 ，有些这个朋友的公司 ，他们有这个招聘的需求嘛 ， 然后刚好 ， 呃 ， 我们节目应该还有一些这个开发者 、 程序员听众也在找工作的嘛 ， 然后刚好我觉得可以做一个什么牵线搭桥的事 。

**吴涛** [1:38]
对 。

**Rio** [1:39]
然后我们这个就 ， 就试试吧 。 然后这次我们这里主要有两个

岗位吧 ， 或者两个职位 ， 目前正在招聘 ， 然后这两个公司都是我比较熟悉 ， 都没问题 ， 都很不错的公司 ，也欢迎大家去 ， 呃 ， 考虑一下 。

**吴涛** [1:59]
OK。

**Rio** [2:00]
这两个需求 ， 第一个是在广州的 ， 呃 ，在那个 TIT， 就是微信的那个团队所在那个园区里面的一家小小的创业公司 。

**吴涛** [2:10]
OK， 所以是不是微信的团队 ，而是微信团队所在的园区的创业公司 。

**Rio** [2:14]
旁边 ， 隔壁 ， 对面 。

**吴涛** [2:16]
没错 ， 隔壁 。

**Rio** [2:17]
呃 ，是我以前在知乎的同事 ，他们出 ， 呃 ， 后来做了一个跟体育社区相关的一个 ， 一个 ， 一个产品 。

**吴涛** [2:27]
嗯哼 。

**Rio** [2:28]
嗯 ， 好像现在他们现在在招这个 Python 的后端工程师 ， 所以如果你对什么 Tornado 啊 、Flask 啊 ， 这些名词比较熟悉 ， 比较感冒的话 ， 然后就欢迎考虑一下 。

然后另外一个职位是在北京中关村 ， 啊 ， 这个是一个做这个跨境奢侈品电商的这么一个小团 ， 一个创业团队 。他们的这个招聘需求是 ，他们要招一个架构师 ， 啊 ， 然后要求大概是这样 ， 我大概念一下哈 ， 啊 ， 算法这些 ， 数据结构这些基本的知识就不说了 。

嗯 ， 机器学习有加分 ， 然后搜索优化有加分 ， 如果你能做过搜索引擎的话就更好了 。 然后他们是用这个 Reels 的 ， 所以如果你对 Reels 了解的话 ， 会大大的加分 。

然后他们搜索的实现是用那个 Elasticsearch 来做的嘛 ， 所以这边如果有经验的话 ， 啊 ，也就是有很大的加分了 。

啊 ， 然后两个职位 ， 一个是在广州的 Python 后端开发 ， 呃 ， 后端工程师 ， 一个是在北京的这个 ， 呃 ，Reels 的这个系统架构师 。

呃 ， 都是要在 ， 就是要这个真人出席的 ， 这两个暂时没有办法远程 。 啊 ， 所以如果 ， 就是你考虑一下地域的原因咯 。

呃 ， 如果你对这两个职位有兴趣的话 ， 欢迎给我来信 ， 啊 ， 我专门开了个邮箱 ， 叫做 talent@riobard.com。T-A-L-E-N-T at R-I-O-B-A-R-D dot C-O-M。

啊 ， 你可以发来一个你的一个简单的介绍 ， 然后把你的简历也附过来 。 啊 ， 那个你可以自我介绍一下自己的情况怎么样子 。

然后我们这个拉皮条 ， 我这个拉皮条哈 ， 跟别人不太一样 ， 就是我会帮他们做第一轮的这个初审和店面 ， 所以你得先接触到对象室 ， 这个面试官是我本人， 哈哈 ， 可以聊一下 。

所以如果大家对这个事情有兴趣的话 ， 可以我们试试 。

**吴涛** [4:27]
对 。

**Rio** [4:28]
OK， 这个广告时间到此为止 。

**吴涛** [4:30]
我相信从此就会有很多少女朝这个 ， 嗯 ，talent@riobard.com。

**Rio** [4:35]
如果是女生的话 ， 这个就大大的加分了 。

**吴涛** [4:38]
哈哈哈 。 然后骗局一次和主播 ， 和 Rio 主播电话聊天的机会 。

**Rio** [4:44]
啊 ？ 需要这样吗 ？

**吴涛** [4:46]
呃 。

**Rio** [4:47]
那也要拿一份对的 ， 拿一份能过得了我法眼的简历才行 。

**吴涛** [4:50]
对 ， 还要附照片 。

**Rio** [4:52]
啊 ， 能附照片最好 ， 女生的话 。

**吴涛** [4:55]
呃 ，OK。其实我想知道交金要多少次 ， 呃 ， 多少次节目之后才会有北上广深之外的地方出现 。

**Rio** [5:06]
啊 ， 你说这个职位的需求吧 。

**吴涛** [5:08]
北上 ？ 可能还有一个杭州吧 ， 我觉得中国 IT。

**Rio** [5:12]
就还蛮多的 。 就是以后我们这个这个业务 ， 就我们现在在试点嘛 ， 都是介绍的朋友的公司这样 。

啊 ， 如果有这个以后这个我们节目就确实推荐的这个人才不错 ， 那搞不好也有别的公司过来要求说 ， 哎 ， 我花钱在你们这打广告行不行 ？

你也可以考虑 ， 对吧 ？

**吴涛** [5:29]
不过这也是需要我们的 Rio 主播来 certify 一下的 ， 就是 。

**Rio** [5:33]
啊 ， 对 ， 我们是我们是双向审查的 ， 就是说 ， 啊 ， 我帮公司这个先做这个初筛 ， 对吧 ？ 不推荐不靠谱的人。

当然我们也要是要先是一个审查公司的 ，不推荐不靠谱的公司的 。

**吴涛** [5:45]
没错 。

**Rio** [5:45]
就这点我们还是要先保证的 。

**吴涛** [5:47]
嗯 ，其实刚才两个广告我有一个 ， 呃 ， 内心的 OS， 就是你忘记了最重要的一项 ， 薪水如何 ？

**Rio** [5:55]
哦 ， 呃 ， 这个薪水都应该就至少是高于市场平均数的 ， 这个不用担心 。

**吴涛** [6:01]
OK。

**Rio** [6:01]
就具体是按这个 ， 就是什么来的 ， 会有一个范围嘛 ， 然后但是是按这个 。

**吴涛** [6:06]
还是要看你的薪水水平 。

**Rio** [6:08]
看你的 talent。 对 ， 就因为薪资不光是这个 ， 就工资那块嘛 ， 还有因为是创业公司的话 ， 还有像股权期权那些问题 ， 所以具体到时候 ， 就我负责的部分是说帮你们选择这个公司 ， 然后帮你们选择这个人才 。

但至于说你们后面的这个谈不谈得拢 ， 这个价钱和这个这个酬劳的问题 ， 那就你们自己努力了 。

**吴涛** [6:28]
OK。

**Rio** [6:29]
OK， 大概是这样 。

**吴涛** [6:31]
好的 ， 呃 ， 那我们今天进入节目的正题 。 呃 ， 首先是上一期的 follow up， 呃 ， 两条很短的 follow up。 呃 ， 首先是一位叫做朱思涵的朋友 ， 我不知道念对了没有 ， 思涵朱的朋友 ， 说 ：" 两位主播你好 ， 这期介绍了许多 shell 程序 ， 考虑到历史长河中各类 shell 的数量 ，有所遗漏也是正常 。

### 听友反馈

**吴涛** [6:54]
这里补充一个清华大学校友在本科期间用 Go 语言写的 Elvish， 包含了 fish 与 zh 的一些特性 ，并且对 pipeline 进行了许多实用的改进 。

作为一个自称的系统级编程语言 ， 一个可靠的 shell 项目 ，也无疑是表明自己足够 hardcore 的重要指标 。" 怎么样 ，Go lang 语言的 ， 呃 ， 使用者 Rio 先生 ， 你对这个 Elvish 有所耳闻吗 ？

**Rio** [7:21]
啊 ， 我之前看到过 ，在那个 GitHub 上面看过那个项目 。

**吴涛** [7:24]
OK。

**Rio** [7:24]
但是当时 。

**吴涛** [7:25]
感觉昙花一现吧 ， 就 。

**Rio** [7:27]
就 ，但因为这种都是实验性质的项目嘛 ， 然后肯定还是 ， 就如果你要日常用的话 ， 我觉得你要自己想办法整一整 。

啊 ，不过我还挺开心的 ，有一个这个 Go 写的这个 shell， 大家可以用一下 。 因为像 ， 哎 ， 大部分的 shell 都是谁写的吧 ， 应该 。

**吴涛** [7:44]
呃 ，其实有一个 Python 写的 shell， 叫 ， 叫什么来着 ？ 叫 Gauke 之类的 ，G-A-U-K-E 吧 ， 我不知道 ，Guaque？Guake？

**Rio** [7:55]
OK。

**吴涛** [7:56]
不知道 ， 好像是 Python 写的 ， 我记得 ，但 。

**Rio** [7:59]
OK， 没错 。 呃 ， 那除了这种特例 ， 我印象中大部分的我们日常用的 shell， 像什么 bash 啊 。

**吴涛** [8:05]
对 ， 大部分都是 C 或者 C++ 写的 。

**Rio** [8:08]
对对 ， 啊 ， 还蛮开心有这么一个比较新的语言写的这个 shell。 然后在想什么时候有人用 Go 写个操作系统出来 。

**吴涛** [8:17]
说不定已经有了 ，somewhere in the planet.

**Rio** [8:19]
哈哈哈 ，他说 ：" 那不就是那个 planet 吗 ？" 哈哈哈

。

**吴涛** [8:25]
OK。

**Rio** [8:26]
呃 ， 下一条反馈是这个叫 Tomas， 怎么念 ？

**吴涛** [8:32]
曹吧 ，Coy。 蔡或者曹 ， 我觉得 。

**Rio** [8:36]
这是粤语 。

**吴涛** [8:37]
这是 ， 呃 ， 威图马拼 。

**Rio** [8:39]
啊 ， 对 ，他说是香港的听众 。

**吴涛** [8:41]
对 。

**Rio** [8:41]
啊 ， 两位主持人好 ， 我是香港的听众 。 有关第 28 期内 DOS 年代的 Commander， 应该是 Norton Commander，而不是 Total Commander。 哎 ， 这个我们说错了 。

**吴涛** [8:51]
对 。

**Rio** [8:52]
所以 Total Commander 是哪里的 ？

**吴涛** [8:54]
Total Commander 是 Windows 上的 。

**Rio** [8:55]
哦 ，OK， 啊 ， 好的 ， 还是一家的 。 啊 ， 接着念这一则这个反馈哈 。 啊 ， 提到 Norton，不得不提一提 Norton Guake，由于当时还流行运行一些 TSR。

**吴涛** [9:10]
对 ，TSR。

**Rio** [9:11]
Terminate and Stay Resident Program， 啊 ，TSR 程序 ， 让电脑使用者用 hotkey 呼出来使用 。Norton Guake 有许多不同的手册 ， 让使用者呼出不同的使用手册 。

记得当时 Norton Guake 里面还有一本关于 DOS Batch Commander 的手册 。此外，Norton Utilities 的 Batch Enhancer 使得 DOS 的 Batch Program 变得强很多 ， 可以输出有颜色的文字 。

这个 ， 哎 ， 这个我想起来了 ， 那个以前玩那个叫什么来的 ？

**吴涛** [9:44]
你说内存修改器是吧 ？

**Rio** [9:46]
对对对 ， 就是内存修改器 ， 就是通过这种方式唤醒出来的 ， 对吧 ？ 因为当时 DOS 下面是都是单进程的程序嘛 。

**吴涛** [9:53]
嗯 。

**Rio** [9:53]
所以它怎么怎么弄 ， 怎么把那个内存修改器 。

**吴涛** [9:57]
它其实就是把它藏在内存的一个地方 ， 然后你键盘中断可以呼叫那个地方 ， 就等于把那个 。

**Rio** [10:05]
对 ， 跳过去是吧 ？

**吴涛** [10:06]
弄到前台来 ， 然后这是一个非常愚蠢的或者非常简单的 ， 呃 ， 多任务系统吧 ， 可以理解为 。

**Rio** [10:15]
不 ， 它还是单 ， 它跟有点像现在那个 iOS 那种你可以 。

**吴涛** [10:18]
手动多任务 。

**Rio** [10:20]
哈哈哈 ， 对对对 。 就你看手动起 ， 它不可以在同一个屏幕上出现两个这个这个程序同时运行吧 ？

它是一次用一个 。

**吴涛** [10:28]
非强战术 。

**Rio** [10:29]
对 ， 跟 iOS 差不多 。 啊 ， 它这个就刚才我想起那个 TSR 程序的时候 ， 就想起这个事 。

**吴涛** [10:35]
对 。

**Rio** [10:35]
啊 。

**吴涛** [10:36]
Norton Guake， 就所以它其实它就是一套 F1 吧 ， 就相当于 ， 哈哈 ， 就是一套 ， 呃 ， 使用手册 ， 可以让你在写 batch 的时候 ， 你写批处理程序的时候 ， 忘记了一个什么怎么写 ， 然后按一个快捷键这个批处理程序的 。

**Rio** [10:51]
哎 ， 这这这最近不是挺火的一个 ， 呃 ， 就 Mac 上面那个应用叫 Dash 吗 ？

**吴涛** [10:56]
对 。

**Rio** [10:56]
你买了吗 ？

**吴涛** [10:57]
就买了呀 。

**Rio** [10:58]
看文档的工具 。

**吴涛** [10:59]
而且 Dash，Dash 很贱的 ， 你不买的话 ， 它没有什么程序上的那个功能损失 ，但是它把字体给你换成 ， 呃 ，comic sense 我记得 。

**Rio** [11:11]
啊 ，是这样的吗 ？ 我最开始没买的时候是 ， 呃 ， 启动的时候要等 30 秒 。

**吴涛** [11:16]
就它变着法折磨你 ， 反正就是你功能上没有什么损失 ，但是就是个人肉你让人不爽 ， 然后逼你去买 。

**Rio** [11:24]
已经 ， 已经胸膛大用 comic sense 来做 。

**吴涛** [11:26]
对 ，而且图标也换了好几次 。

**Rio** [11:30]
OK。 啊 ，不过那个那个也 ， 我觉得这个东西挺好用的 ， 每次就是查文档能节省不少时间 。

**吴涛** [11:36]
对 。

**Rio** [11:37]
就推荐你买一个哈 。

**吴涛** [11:38]
好 。

**Rio** [11:40]
啊 ，不过对 ， 它对那个 ， 对有些那个文档支持都不是特别好 ， 我觉得 。

**吴涛** [11:44]
对 ，有些文档还是得上网查 ， 说实话 。

**Rio** [11:47]
对对 ， 就特别像那种更新的比较勤快的那种 。

**吴涛** [11:51]
对 ，而且其实上一次那个 Apple Store 出的那个事 ， 就是那个数字签名损坏 ， 导致我的 Dash 好像不能用了 。

后来我也再也没有改用 。

**Rio** [12:00]
你也中了 。

**吴涛** [12:01]
对对对 ， 我也中了 。

**Rio** [12:02]
OK， 重新下载一个呗 。

**吴涛** [12:04]
对 。

**Rio** [12:05]
哎 ， 说到上网查这个文档 ， 我想起一件事 。 啊 ， 当年我也是写过 PHP 的 ， 你知道吗 ？

**吴涛** [12:11]
啊 ， 黑历史爆出来了 。

**Rio** [12:12]
啊 ， 对对对 ， 黑历史那个时候什么读 ， 那是高中吧 ， 还在自己折腾折腾学学写 。 然后， 然后那个 ，因为 PHP 的文档是在 ， 它是在那个 PHP .NET 的官网上面嘛 。

**吴涛** [12:25]
对 。

**Rio** [12:25]
然后它那个文档有些写的很模 ，因为它那个函数很多 ，有些文档做的很模糊嘛 。其实最有用的是那个 。

**吴涛** [12:32]
评论 。

**Rio** [12:33]
那个 PHP 的 ， 对 ， 它评论区超有用 ， 它那些人会告诉你那个文档的坑 ， 就有些文档是错的 。

**吴涛** [12:38]
对 。

**Rio** [12:39]
而这个还挺挺棒的 。

**吴涛** [12:41]
但有时候 PHP 的评论区也是 ， 就是有可能在最上面的那个解决方案是非常愚蠢的 ， 然后下面会有人指出来 ，但是很多人不会看到下面 ， 就说就直接 copy paste the topmost one， 然后错误代码就到处流转 。

就是成也评论 ， 败也评论 。

**Rio** [12:58]
就那个那个那个社区还挺有意思 ， 就是这种整个操作模式哈 。

**吴涛** [13:02]
对 ，PHP 其实可能是就是因为流传流行程度太广了 ， 这个这个模式简直是独一无二的 ， 你没有办法在其他任何一个程序的 ， 呃 ， 语言编程语言的社区里面找到这样一个在官方文档上面帮那个评论比正文有用的语言了 。

这也是奇葩呀 。

**Rio** [13:21]
后来不是就就这算什么 ， 呃 ， 算 stack overflow 算是这个 ， 就把这个东西正式化了吧 。

**吴涛** [13:28]
对 。

**Rio** [13:29]
那比较有意思 。 对 ， 啊 ， 那行 ， 谢谢这个两位朋友的这个来信 。

### 终端仿真器

**吴涛** [13:35]
对 。

**Rio** [13:36]
啊 ， 上一期其实我们有一个话题没有讲完哈 ，因为时间的关系比较长了 。

**吴涛** [13:41]
讲了两个多小时 ，有点累了 。

**Rio** [13:43]
对 ， 啊 ， 我们今天把那个补上吧 ， 这个补上那块就是那个 terminal emulator， 叫终端模拟器 ， 对吧 ？

**吴涛** [13:51]
错了 ， 终端仿真器 。

**Rio** [13:53]
仿真器 。

**吴涛** [13:55]
我们口语里面都说模拟器 ，但是 。

**Rio** [13:56]
所以这个要要我们要要做一个怎么考据了 。emulator 和 simulator 有什么区别 ？

**吴涛** [14:03]
Simulator 是说要你要你要把它事无巨细的模拟出来 ， 就是你你包括内部原理都要把它做出一个以假乱真的东西来 。

就就就叫啊 。

**Rio** [14:14]
就是得完完全全从头到尾都复刻一遍 ， 才算是 simulator， 模拟器 。

**吴涛** [14:19]
才才算是 simulation， 对 。simulation 就是比如说你模拟一个宇宙 ， 你是要就把它里面什么常数啊 ， 什么重力啊 ， 乱七八糟的全都要模拟出来 ， 才叫 simulation。

**Rio** [14:31]
OK， 那那仿真 。

**吴涛** [14:32]
而 emulator。

**Rio** [14:32]
Emulator， 对 ， 仿真 。

**吴涛** [14:34]
Emulator 则只是就是做出那个样子来 ， 就是它最终的那个 ， 呃 ，look and feel 一样就可以了 。 比如说那个 Maine 那个街机模拟器 。

**Rio** [14:42]
OK。

**吴涛** [14:43]
就我们叫它街机模拟器 ，但它实际上做的是实际上是仿真 ， 它并不是真的做一套那个街机的硬件 ， 或者说用软件去模拟街机的硬件出来 ，而是去读那个街机的 ROM， 然后把这个 ROM 跑起来 。

**Rio** [14:55]
所以最终这两个的区别就是说模拟器叫做 API 吧 ， 呃 ， 仿真器叫做 API compatible， 对吧 ？ 然后模拟器等于是把代码都重新写一遍 。

**吴涛** [15:07]
呃 ， 模拟器相当于 ， 呃 ，binary compatible。

**Rio** [15:11]
啊 ， 对对对 ，因为 binary compatible 和这个 API 就是 interface compatible 的区别 。

**吴涛** [15:16]
对 ， 大概就是这样 。

**Rio** [15:18]
OK，有意思 。

**吴涛** [15:19]
嗯哼 ，但是口语里面我一直我们一直都说终端模拟器 。

**Rio** [15:23]
我我我改了 ， 我现在跟你说终端仿真器 。

**吴涛** [15:26]
好吧 ， 终端仿真器 。

**Rio** [15:28]
OK， 仿真 ， 哎 ， 这个名字好 ， 还挺像挺那个 ， 挺挺挺港台的 。

**吴涛** [15:35]
对 ， 哈哈哈 。 好吧 ， 所以所以终端仿真器到底是个什么鬼 ？ 终端仿真器到底是个什么鬼 ？ 啊 ， 我们上期介绍终端 ， 对吧 ？

就是终端早期是一个实体的 ， 或者说那个加引号 " 物理 " 的这么一个东西摆在那儿 ， 它是一个机械电子元件的一个计算机 ， 它不是计算机摆在那儿 。

**Rio** [15:58]
嗯哼 。

**吴涛** [15:59]
它它只是一个可以 ， 它相当于一个键盘和 ， 呃 ， 显示屏的结合体 ，但是它没有大脑 ， 它的它它所做的唯一的事情就是把你输入的东西传输传出到这个 mainframe， 就是 ， 啊 ， 大型机上面 。

**Rio** [16:16]
对 ， 对 ， 就那个时候因为电脑还是共享的嘛 ， 就没有说 PC 这个概念还没有出来 。

**吴涛** [16:21]
对 ， 所以说实际上我们现在很多事情都是在复古 ， 就比如说这个 ， 呃 ， 浏览器其实本身就是一种复古 ， 浏览器本身并不具备处理信息的能力 ， 它只是把你的输入和远程服务器的输出显示在一个窗口里而已 。

**Rio** [16:39]
嗯哼 。

**吴涛** [16:39]
而这个窗口的实例版本就可以理解为以前的早期的 terminal。

**Rio** [16:44]
嗯哼 。

**吴涛** [16:45]
然后 terminal emulator 就是把 terminal 的 ， 呃 ， 跟远程的大型机打交道的这一套机制 ， 啊 ， 仿真出来 。

**Rio** [16:53]
嗯哼 。

**吴涛** [16:54]
然后用一个软件来实现 。

**Rio** [16:55]
嗯哼 。

**吴涛** [16:56]
这就是我们所谓的 terminal emulator。

**Rio** [16:59]
OK。

**吴涛** [17:01]
对 ， 呃 ， 对 ， 然后上一期我在找一个 ， 我试图说一个术语叫 CUI， 后来我终于查到它到底是什么 ， 就是 character user interface 和这个 graphical user interface 是不一样的 。

**Rio** [17:15]
啊哈 ， 就 GUI 对应的是 CUI 吗 ？

**吴涛** [17:20]
CUI， 对 ，CUI。

**Rio** [17:22]
那其实我们其他都是是是 CLI 对吧 ？command line interface。

**吴涛** [17:26]
对 ，而 command line interface 和 ， 呃 ，character user interface 又不太一样 。

**Rio** [17:31]
对 ，因为 command line 它也可能是图形的 ， 只是说它的这个执行的方式是通过命令行的形式来实现 。 啊 ， 然后 。

**吴涛** [17:40]
而 CUI 则反过来是说你你能看到的 user interface 整个就是一个矩阵上面的一些字符 。

**Rio** [17:47]
对 。

**吴涛** [17:47]
比如说什么 Vim 就是一个 CUI， 对吧 ？ 但是你在你至少你在那个编辑模式和那个命令模式的时候 ， 它是一个 character user interface。

**Rio** [17:57]
对 。

**吴涛** [17:57]
因为你可以在任何地方移动 ， 然后你可以下达命令 。 但是当你进入那个打了冒号之后的那个模式叫什么 ？command line mode。

啊 ，ex mode， 这就是一个命令行模式 。

**Rio** [18:08]
对 。

**吴涛** [18:08]
就此时它是它有一个 CLI。

**Rio** [18:11]
所以这里这里有个很明显的区别 ， 就刚才我们就是那个听众反馈里面提到那个叫 Norton Commander， 它算是一个 CUI，但它不是一个 CLI。

**吴涛** [18:19]
它是一个 CUI 的程序 ，但它不是 CLI。

**Rio** [18:22]
对 ，因为它的那个界面是用那些字符绘制出来的一个像像窗口像图形的一个概念 ，但是它并不是基于命令行的嘛 。

**吴涛** [18:32]
对 。

**Rio** [18:32]
所以这个区别 。

**吴涛** [18:33]
或者说现在最常有最有可能遇见到遇到的 CUI 就是那个 Linux 或者是 Free， 就是 FreeBSD 的那个安装界面还是 CUI 的 。

**Rio** [18:43]
啊 ， 对对对 ，install。

**吴涛** [18:45]
对 ， 感觉非常的复古 。

**Rio** [18:47]
哈哈哈 。 哎 ，其实我一直一直在有一个问题 ， 我后来专门查了才得到这个这个这个解 ， 就是答疑解惑嘛 。

你知道有些在那个在那个机房里面那个服务器它是没有显示器的嘛 。

**吴涛** [19:02]
OK。

**Rio** [19:03]
对 ， 然后然后比如说我们现在那个你去买一个 。

**吴涛** [19:05]
就那些 blade server 嘛 。

**Rio** [19:07]
呃 ，不那个叫机架嘛 ，blade 还是另外一个东西 。

**吴涛** [19:10]
Rack。

**Rio** [19:11]
就是 rack mount server。

**吴涛** [19:12]
型号 ， 对对对 。

**Rio** [19:13]
那 blade 肯定也是没有的 ， 就是它们通常都没有嘛 。 然后然后你看它们用的那个处理器 ， 用的是那个一般比如说英特尔那个叫至强处理器 ，也是不是就不像我们 PC 里面现在那个都是要怎么有有集成显卡的那种东西嘛 ， 或者是板载显卡 ， 它都是没有 。

**吴涛** [19:29]
所以它们是怎么输出的是吧 ？

**Rio** [19:30]
对 ， 它们当然也有些也有那个 VGA 的口 ， 你可以接个显示器上去插个 USB 键盘也可以用 ，但是有些我发现是连就是这块其实也可以省掉嘛 ，因为你想那个服务器它大部分时候并不是需要连个显示器一直连着的嘛 。

所以其实我发现有些是用这个叫做 console， 就是就啊 ， 就上次我们讲那个 RS232 是吧 ？SRJ232， 那个串口型 。

**吴涛** [19:55]
就是一个 jack， 对 ， 水晶头 。

**Rio** [19:57]
不是不是水晶头 ，不是水晶头 ， 串口 ， 串口 。

**吴涛** [20:00]
哦 ，serial port。

**Rio** [20:01]
Serial port， 对 ， 啊 ，是通过那个 ， 然后有一些那个那个主板它那个 BIOS 它是支持 ， 啊 ， 把那个因为我们插一个 VGA 的屏幕 ， 它看到的也是最开始 boot 的时候也是一个 CUI 嘛 ， 对吧 ？character interface 嘛 ， 对吧 ？

它就是可以支持把那个导到那个串口的那个 serial port 导出来的 。 这样的话你再插一个那个那个读串口的机器 ，但现在是一般没有 ， 现在笔记本都没有串口的接口了嘛 ， 可能买个 USB 转串口的那个读插到那个机子上的串口上面去 ， 然后再开一个这个 terminal emulator。

**吴涛** [20:34]
对 。

**Rio** [20:35]
就可以把那个那台服务器上显示的那个东西弄出来嘛 。 这个东西这个这个设备叫什么玩意儿来着 ？

那个那个叫 console port， 对 ， 这个是这样的 。 然后我想想还有一个它它那个读的那个东西叫什么 ， 我现在想不起来了 。

那我觉得这这还挺好的 ，因为我一直在想家里搞个这个 X86 的一个小那种那种微型主机 ， 然后怕它跑来做这个服务器网关啊之类的东西嘛 ， 稍微新的 。

**吴涛** [21:02]
然后不用接显示器 。

**Rio** [21:03]
对 ， 我没我没有显示器嘛 ， 然后我想那没有显示器到时候是有点问题 ， 我怎么去调它 ， 对吧 ？ 有这么一个东西还挺好 。

然后我就找了一圈 ， 发现那个就是消费级的这种产品 ， 就是就是就是家用主板基本上都不支持这个功能 ， 就只能作罢了 。

**吴涛** [21:22]
OK， 如果可以的话 ， 那就是 60 年的技术又一次来来拯救屁股 。

**Rio** [21:27]
对对 ， 我们还是不断的在把那个几十年前的老东西把它包一层一层包起来接着用 。

**吴涛** [21:36]
就越基础的技术越可靠 。

**Rio** [21:39]
啊 。

**吴涛** [21:39]
越越底层的技术越可靠 。其实你真的这么觉得吗 ？ 我一直在想 ， 如果说你现在我们不需要那些各种什么 TTY 了 ， 对吧 ？

我们也不需要这个这个叫什么 ， 啊 ， 这个什么终端 ， 就理论上哈 ，是不需要这个终端模拟器 。 我们如果这个东西推倒重来再来 ， 我们还会这样层层包吗 ？

因为因为层层包的话其实是有那个复杂度是累加的嘛 。 是我觉得角度是这样的 ， 就是如果你的前提是所有的 legacy 的设备全都不复存在了 ， 那重新重启炉灶 ， 按以现有的知识积累和技术水平重启炉灶 ， 那肯定不需要了 。

**Rio** [22:15]
对 ， 就会我觉得会至少叫多少 ， 呃 ， 简单干净很多嘛 。

**吴涛** [22:19]
对 ， 我的点就是因为世界上还有这么多 legacy 的东西存在 ， 所以 。

**Rio** [22:23]
没有办法 。

**吴涛** [22:24]
对 。

**Rio** [22:25]
啊 ， 那个什么 ， 那个那个老话又起作用了哈 。 If you ain't break, don't fix it.

**吴涛** [22:30]
Yeah.

**Rio** [22:31]
哈哈哈 。

**吴涛** [22:32]
我想想还有一句什么话是谁说的 ，是 Stoastrophe 说的 ， 就是那个私人家支付说的 。 我不确定是不是他说的 ，但是他说过这么一句话 ， 就是类似于什么 。

**Rio** [22:42]
你不确定他是不是他说的 ，但是他说的 。 哈哈哈 。

**吴涛** [22:48]
哈 ， 好冤呐 。

**Rio** [22:49]
没事 ， 你说吧 ， 我们知道了 。

**吴涛** [22:51]
对 ， 哈哈哈 。 就他说过类似一句什么 ， 呃 ， 所谓 legacy code。

**Rio** [22:56]
嗯哼 。

**吴涛** [22:56]
呃 ， 和你想要把它删掉重新写的那些 code 相比 ， 嗯 ， 呃 ， 那 legacy code 才是真正 work 并且 scalable 的 。

**Rio** [23:07]
哈哈哈 。

**吴涛** [23:09]
就是对 ，在你总觉得这堆破烂玩意儿应该被替换掉之前 ， 应该考虑到其实你写出来的替换掉那个东西可能根本就跑不起来的这个潜在危险性 。

这句话好犬儒啊 ， 感觉 。

**Rio** [23:24]
哈哈哈 。

**吴涛** [23:26]
对 。

**Rio** [23:27]
好吧 。

**吴涛** [23:28]
哎呦 。

**Rio** [23:29]
对对对 ，不要重新发明轮子啊 ，也是另外一种解另外一种解释了 。

**吴涛** [23:34]
没错 。 呃 ， 然后我们上次还提到一个概念就是 console。

**Rio** [23:38]
嗯哼 。

**吴涛** [23:39]
呃 ，而 console 其实又是一个比 command line interface 更 ， 呃 ， 更泛化的概念吧 。 应该说至少我是在 。

**Rio** [23:49]
控制台 ， 中文翻译成叫控制台 。

**吴涛** [23:51]
控制台 。

**Rio** [23:51]
对 。

**吴涛** [23:52]
最开始啊 ， 这个我这个我可以说 ， 上次我去那个就是在那个那个那个那个加州那个叫就是计算机博物馆 。

**Rio** [24:01]
酒店 。

**吴涛** [24:02]
OK。

**Rio** [24:02]
那叫什么 ， 呃 ，Mo， 呃 ，Computer History Museum， 呃 ， 计算机历史博物馆里面 。

**吴涛** [24:07]
Hotel California。

**Rio** [24:08]
啊 ？

**吴涛** [24:10]
没什么 ， 非常无聊的笑话 ， 说吧 。

**Rio** [24:13]
对 ， 然后我见过那个 console 那个词的对应的本来的那个东西了 ， 就正儿八经是一个控制台 。 就你你想象一下那个以前那个那个新闻联播里面 ， 你想象一下那个当时发这个什么神舟几号来着 ， 那时候你看那个空那个那个那个就叫什么 ， 那个那个那个那个房间叫什么 ， 很多人坐的那个房间 。

**吴涛** [24:34]
呃 ， 指指挥室 ？

**Rio** [24:35]
对 ， 还是 whatever， 就是那个房间里面 。

**吴涛** [24:37]
总控室 ， 对 。

**Rio** [24:37]
对 ， 它前面不是一堆人有一堆那种白色的柜子 ， 上面有很多屏幕 ， 很多按钮吗 ？

**吴涛** [24:42]
对 ， 那个东西就叫 console。

**Rio** [24:43]
对 ， 那个那个有很多按钮可以搬来搬去 ， 可以摁来摁去 ， 那个桌子就叫 console， 就叫控制台嘛 。

**吴涛** [24:51]
对 。

**Rio** [24:51]
然后后来那只是说我们在这个计算机里面 ， 嗯 ， 早期计算机 。

**吴涛** [24:55]
把它虚拟化 。

**Rio** [24:56]
对 ， 早期计算机确实也是有那么多这个按钮和这个 。

**吴涛** [24:59]
对 ， 一大堆灯 ， 一大堆闪亮的灯 。

**Rio** [25:01]
对 ，是要搬的 ，但后来我们现在把它就是虚拟成一个一个窗口了之后嘛 ， 就就变成一个任何一个有这种控制监控功能的都变成一个 console 嘛 。

就说就是 OS 下面自自带一个 console 的应用 ， 你知道吗 ？

**吴涛** [25:16]
对 ， 这个一开始还迷惑我了好久 ， 我心想这是个 console app， 为什么不能做 terminal 用 ？

**Rio** [25:22]
对 。

**吴涛** [25:22]
后来发现哦 ， 还有一个 terminal app。

**Rio** [25:24]
它这个 console 其实是看 log 的 。

**吴涛** [25:26]
对 ， 这个还是有点迷惑性 。

**Rio** [25:29]
对 。 呃 ， 对 ， 这就是 console 的概念 ， 就本本源吧 ， 算是 。

**吴涛** [25:35]
而且你知道现在的 PC game 和的对应物是什么 ？ 是 console 的 。

**Rio** [25:39]
对 ， 所以主机 。

**吴涛** [25:40]
主机也是它的 。

**Rio** [25:41]
游戏主机也是 console 的一个词 。

**吴涛** [25:43]
哎 ， 这个位置这个又是什么来头 ？

**Rio** [25:45]
我觉得就是因为那个 console， 呃 ，在早期的游戏机 ，有早期游戏机的形式就是一个控制台嘛 ， 就是一个有很多按钮 ， 然后呃 ， 分下来两个手柄的一个控制台 。

那个雅达利不就是一个巨大的摇杆 ， 然后有一个按键 ， 这个东西其实就是一个 console。

**吴涛** [26:05]
所以你是说红白机也算是 console 吗 ？

**Rio** [26:08]
红白机算是 console。 然后另最最典型的不就是街机吗 ？ 街机那本身就是一个带显示器的控制台 。

**吴涛** [26:17]
啊 ， 对 ， 这个算是 。

**Rio** [26:19]
对吧 ？ 对 ， 还有个摇杆 。 哈哈哈 。

**吴涛** [26:21]
没错 。

**Rio** [26:23]
所以后来的这个像 PS4、234 也就像一个叫 console game 了哈 。

**吴涛** [26:28]
对 ， 应该是这么来的吧 ， 我觉得 。

**Rio** [26:30]
OK。

**吴涛** [26:31]
就啊 ， 然后 console 这个词也在很多的嗯 ， 很多软件甚至游戏里面出现 ， 比如说 Quake 或者是呃 ， 那个辐射 4 也有 console。

**Rio** [26:43]
它那个功能是什么 ？

**吴涛** [26:46]
就是要其实就是让你其实是在程序内置一个修改器 。

**Rio** [26:50]
程序员拿来调试的 。 对 。

**吴涛** [26:51]
啊 。

**Rio** [26:52]
然后你可以随便改这个游戏的内部 ， 就就 ID 那个 Quake 里面就是等等 ，Quake 的无敌模式是在 console 里面 ， 我看我忘了 ，但是 。

**吴涛** [27:01]
应应该是 。

**Rio** [27:03]
啊 ，OK， 好吧 。 还有就是其实当然这可以理解 ， 就是他们做了一个 repo， 对吧 ？ 在全在 game 游戏里面做了一个 repo， 可以实时的改游戏的一些东西 ， 就自带那个游戏修改器嘛 。

**吴涛** [27:17]
没错 ，而且我觉得将来这个训练实例里面肯定也会有这么一个东西 ， 就是你你在训练 ， 你在你带着 VR 眼镜的时候 。

**Rio** [27:24]
Console 里面写了一行代码 ， 第二天出现一个美女 。

**吴涛** [27:26]
然后对 ， 哈哈哈

。 呃 ， 你已婚了 ，Rio， 你不能这样 。

**Rio** [27:33]
不 ， 这个这个出现一个美女这个有什么问题吗 ？

**吴涛** [27:37]
好吧 ， 呃 ， 那出现一个帅哥好了 。

**Rio** [27:40]
OK。

**吴涛** [27:42]
这个我要是更正是不正确还是还行吧 。 然后你在虚拟现实里面摁一下那个呃 ， 呼出 console 键 ， 就可以在呃 ， 眼前凭空出现一个巨大的 terminal。

**Rio** [27:55]
哎 ， 这不就上帝吗 ？ 要有光 。

**吴涛** [27:57]
对 ， 上帝模式 。

**Rio** [27:59]
嗯 ， 什么 environment dot light 等于 on。

**吴涛** [28:03]
对 。

**Rio** [28:04]
就就就有光了 。

**吴涛** [28:06]
Play God。

**Rio** [28:07]
对 。

**吴涛** [28:08]
OK， 呃 ， 然后我们上一期提到了 shell， 那那 shell 可以说是一个在呃 ，command 是一个提供了 command line interface 的呃 ， 跑在 terminal emulator 里面的一个一个一个程序 。

**Rio** [28:25]
嗯哼 。

**吴涛** [28:26]
对吧 ？

**Rio** [28:27]
对 。

**吴涛** [28:27]
呃 ，但是呢 ， 呃 ，Windows command line 并不是一个 shell。

**Rio** [28:33]
哦 。

**吴涛** [28:34]
这么理解对吧 ？

**Rio** [28:34]
那它是什么 ？

**吴涛** [28:36]
呃 ， 我觉得不是一个 shell 吧 。

**Rio** [28:40]
我我不知道这个它那个具体是什么 。

**吴涛** [28:42]
这是一个问题 ， 这是一个问题 。 你觉得因为因为你看 DOS 本身是一个最开始的时候是一个操作系统 。

**Rio** [28:51]
嗯哼 。

**吴涛** [28:51]
呃 ， 然后这个操作系统为你提供了一个界面 ， 就是一个 command line interface。

**Rio** [28:56]
嗯哼 。

**吴涛** [28:56]
那但是 DOS 并没有内核跟呃 。

**Rio** [29:00]
就它没有这个区分 。

**吴涛** [29:03]
差区分对吧 ？ 它也从来没有说过自己是一个 ，而且它也不是 ， 它也一个 ， 它也并不是一个可以替换的东西 ， 对吧 ？

你在 DOS 下面并没有一个 。

**Rio** [29:12]
不能用其他 shell。

**吴涛** [29:14]
对 ， 就因为它没有这个 shell 的概念 ， 所以它根本不是一个 shell。 我可以这么理解吗 ？

**Rio** [29:19]
明白 。

**吴涛** [29:19]
但是 power shell 却是一个 shell。

**Rio** [29:21]
哈哈哈 。

**吴涛** [29:23]
可以这么理解吗 ？

**Rio** [29:23]
它自己都叫 shell 了吗 ？

**吴涛** [29:25]
对 ，power shell is a task automation and configuration management framework。 然后它有一个呃 consisting of a command line shell and 呃 ， 然后可以使用这个脚本语言来操纵 .NET framework， 所以它它可以理解为是有 shell 跟这个内核的区分的 ， 虽然它还是不支持你换成其他的 shell。

**Rio** [29:50]
嗯 ， 仅此一家别无分店 。

**吴涛** [29:53]
没错 。 呃 ， 好吧 ， 然后上一期我们其实应该给出一个链接叫 TTY demystified， 嗯 ， 这个链接我们会贴在这个 shownotes 里面 ， 然后它它非常详细的介绍了从呃 ， 好吧 ，也不是特别详细 ，但是它介绍了这个从 60 年代的这个 。

**Rio** [30:16]
讨论一下 。

**吴涛** [30:17]
对 ， 从这个 Type 一直到今天所有的 terminal simulator 的一些一些共同的特性 ， 比如说它它它告诉你怎样才能 ， 比如说呃 ， 你有一个 80 乘 40 的窗口 ， 然后你你通过输入指定 TTY 的一些特征 ， 可以让这个窗口变成比如说 80 乘 20， 然后你会发现在这个窗口里面开始的所有的 CUI 的程序 ， 比如说 Vim， 它就会只占这个窗口的一半大小 ， 然后它介绍了什么是这个嗯 ， 终端仿真器的

嗯 ，raw mode， 就是原始模式 ， 它它不再是因为非原始模式之下， 非原始模式之下， 这个终端仿真器会提供一些 line editing 的功能 ， 就是比如说你前进一行 ， 呃 ， 删一个字符呀 ， 呃 ， 前进光标 2 之类的这些功能 ， 只会在这个 line editing 模式之下提供 ， 然后如果你进入这个呃 ， 原生模式 ，raw 模式的话 ， 就这些东西都没有了 ， 然后一些比如说全屏的 editor， 呃 ，emax 啊 ，VR 啊 ，

全都是在这个原生模式下进行呃 ， 控制这个光标的全屏移动 ， 还是蛮蛮有意思的吧 ？ 如果你有这个有心去做 ， 比如说我也不知道 ，Neo Mac 的那个 ， 呃 ，sorry，Neo， 呃 ，Vim 的开发的话 ， 可以去可以去看一看 。

**Rio** [31:42]
嗯哼 。

**吴涛** [31:43]
对 。

嗯 ， 所以我们这一期还要介绍一下呃 ， 比较知名的终端仿真器 。

**Rio** [31:55]
呃 ， 你用的哪个 ？

### Mac 终端

**吴涛** [31:58]
就我在家里面肯定是就在反正在 Mac 上面 ， 我觉得别窝第二家吧 ， 就基本上 90% 的人都在用 iTerms。

**Rio** [32:07]
OK， 对 ， 我也在用 iTerm 2， 对 ， 准确说是 。

**吴涛** [32:11]
对 ，iTerms 2， 对 ， 第二版 。 这个是一个功能非常饱满的呃 ，terminal emulator， 然后呃 ，OSTEM 本身带一个 terminal app， 对吧 ？

**Rio** [32:23]
对 ， 它有一个自带的那个终端 ， 中文叫什么 ？

**吴涛** [32:27]
仿真器 。

**Rio** [32:28]
不 ， 它的 。

**吴涛** [32:29]
哦 ， 终端 ， 这叫终端 ？

**Rio** [32:30]
好像就叫终端 ， 对 ， 它就叫终端 .app 嘛 。

**吴涛** [32:34]
对 。

**Rio** [32:34]
在中文版里面应该是这样写的 ， 英文就 terminal dot app。 然后它那个其实也还蛮好用的 ， 就是在呃 ， 这些自带原生的这些呃 ， 终端仿真器里面 ， 它那个还算不错的 ，不过它那个比较坑的在在于我一直没搞清楚它那个分屏有什么用 ， 就是它那个 split window 嘛 ， 呃 ，不是 split 什么来着 ， 等一下 。

**吴涛** [32:57]
Terminal 支持 split window， 真的 ？

**Rio** [33:00]
它有一个叫 split pane， 就是它把一个 。

**吴涛** [33:04]
分板 。

**Rio** [33:04]
分板 ， 对 ，但是这个分板很奇怪的一点就是说是同一个窗口 ，但你可以看它不同的部位 ， 就说 。

**吴涛** [33:13]
那可能就是让人去追溯前面发生了什么来 。

**Rio** [33:16]
就有可能 ， 我我想出来唯一的一个用途就是说 ， 比如说嗯 ， 你这个 list 了一堆东西 ， 然后你其实你只要你要看它前面的一个东西 ， 然后你下面要照着照着打 ， 或者是要有个什么什么文件的名字 ， 或者目录你要照着去进入 ， 对吧 ？

**吴涛** [33:33]
OK。

**Rio** [33:34]
你得如果你要这 ， 你如果你记不住的话 ， 如果那个比较长的话 ， 你得翻来翻去嘛 ， 打完再翻上去 ， 打完再翻上去 ， 对吧 ？

**吴涛** [33:41]
对 。

**Rio** [33:41]
然后但是你可以把它分开之后， 你看还显示同一个屏幕 ， 你可以在就比如说把上部的那个滚到前面去 ， 然后下面的还在下面打完 ，因为它整个这个过程是一个类似于卷轴的模式嘛 。

**吴涛** [33:53]
嗯 。

**Rio** [33:54]
就我就想能只能想出这么一个应用 ，但是感觉很鸡肋啊 ， 就没有什么用处 。

**吴涛** [33:59]
啊 。

**Rio** [34:00]
这个特别是你用的那个叫什么 ， 用的那个呃 ，Tmax 这种这种 multiplexer 之后， 这个东西就完全废掉了嘛 。

**吴涛** [34:09]
但 Tmax 毕竟毕竟是就最近几年才出来嘛 。

**Rio** [34:12]
对 ， 我就说有这么一个东西 ， 然后它那个也比较囧在于它好像只能上下分 ，不能左右分 。

**吴涛** [34:20]
对 ，command D 默认是就直接把它上下分了两半 。

**Rio** [34:24]
对对 ， 所以就不知道他们这个怎么想的 。

**吴涛** [34:29]
呃 ， 我觉得可能苹果在做这个时候也没有想过这个东西会会会变这么重要吧 。

**Rio** [34:35]
就是你还没觉得这个是一个常用的应用 ， 对吧 ？ 我估计也是 ， 这个东西肯定也是那种一个人写完之后也就不管 ，也不怎么维护了 ， 你看它这么这么多年升级也没什么变化嘛 ， 对吧 ？

**吴涛** [34:47]
而且你看 90% 的 Mac 用户只有在非常呃 ， 极端的情况下， 对 ， 才会去按照网上的教程打开 terminal， 然后输入一些他根本不知道是什么意思的那个命令来完成一些他不想要的功能 。

当然这种情况现在是越来越普遍了 ， 我觉得就经常有一些功能让你恨不得我靠这个东西功能怎么可以做默认值啊 ， 我一定要把它关掉 。

**Rio** [35:11]
哈哈哈 。

**吴涛** [35:12]
然后然后又找不到在哪关 ， 然后最后网上一搜发现只能在这个 terminal 里面关 ， 还挺讨厌的 。

**Rio** [35:19]
对 。 呃 ， 我们都用那个这个这个替代版 ， 就是 iTerm 2， 这个的一大好处在于它可以把窗口 ， 就是它这个不叫 pane 啊 ， 它叫 split window 吧 ， 应该是 ， 如果没记错 。

**吴涛** [35:35]
呃 ， 好像还是叫 pane， 反正它在 Type 里面支持有呃 ， 很多这个 。

**Rio** [35:41]
它也叫也叫 split pane，但它这个 pane 就不一样 ， 比如说它把一个一个窗口你分成两个之后， 它两边是左右是各独立的 ， 独自的一个 shell， 就是完全没有 。

**吴涛** [35:51]
是一个新的 ， 是一个新的 TTY， 对 。

**Rio** [35:52]
对 ， 就没有任何关系 ， 这样的话就比较适合 ， 比如说因为你屏幕一般是个长方形的东西嘛 ， 你不可能说 ， 然后你一般打一行也不会超过一整屏嘛 ， 所以一般会把屏幕分成左右两两半来打 ， 就如果你这个窗口是全屏的情况下哈 ， 所以它这个东西就比较好用 ，而且它还支持出了左右左右 split， 就是左右拆成左右 ， 还支持拆成上下 。

**吴涛** [36:15]
对 ， 你还可以把这个整个屏幕分成一个田字形 ， 就如果你就基本上就是 Tmax 能 Tmax 能做的东西它都能做 ， 然后每一个每一个分开的 pane 是一个单独的 TTY。

**Rio** [36:28]
对 ，而且它还有个很暗黑的 ， 应该是最近几个版本加加的一个新功能 ， 就是它可以跟那个 Tmax 深度整合 。

它分这几个 pane， 它就等于是 Tmax 里面的 ，Tmax 里面这个应该叫 window 吧 ，是吧 ？ 还是叫什么来着 ？

**吴涛** [36:42]
啊 ， 好像也叫 pane。

**Rio** [36:44]
也叫 pane。

**吴涛** [36:45]
我记得有个命令叫 cue pane， 然后是 。

**Rio** [36:48]
对 。

**吴涛** [36:48]
呃 ，pane item。

**Rio** [36:51]
对 ， 主要是一个问题就是说因为 Tmax 里面它是一个 CU， 本来它是一个 CUI 的一个程序嘛 ， 就是它是一个字符界面的 ， 然后它那个就是两个这个 pane， 哇 ， 这个 pane 中文叫什么一定要查一下 。

**吴涛** [37:05]
板嘛 ， 就是就是平板的意思吧 ， 我记得 。

**Rio** [37:08]
窗格 ，OK， 方框 ， 窗格 ， 就是把一个简单说把一个窗口分成几个小小块来用这么一个小格子 ， 它的那个界限它是有一个这个字符来构成的 ， 这样的话有个很不爽的一个原因就是在图形界面上 。

**吴涛** [37:22]
太占地方了 。

**Rio** [37:22]
它太对 ， 太浪费空间了 ， 你通常就显示一个总宽大概就是一百一两百个字符 ， 然后你还要牺牲掉一个这个字符位来给它呃 ， 那个占占那个叫什么 ， 呃 ， 占那个分隔线 ， 就觉得很不 ， 就觉得很不划算嘛 ， 然后它如果你用这个这个 iTerm 2 的这个 Tmax 的整合的话 ， 它就变成一根竖线就只占一两个像素嘛 ， 就感觉还挺好的 。

**吴涛** [37:48]
没错 ，但如果你是 4K 显示器 ， 然后全屏工作的话 ， 那用 Tmax 其实也白上 。 至少我个人是很少用这功能 。

**Rio** [37:56]
哈哈哈 ，OK。

**吴涛** [37:58]
因为我习惯了那个 Tmax 快捷键嘛 ， 就是就是跟那个呃 DV 一样是分段式的嘛 ， 你要先按一个前缀键 ， 然后再按一个命令 。

**Rio** [38:07]
啊 。

**吴涛** [38:08]
然后如果你要在呃 ， 你要使用 iTerm 2 的那些快捷键的话 ， 那就是什么 command 括号 。

**Rio** [38:15]
对 。

**吴涛** [38:16]
来来切换 ，而且括 ，而且我印象没错 ， 印象里没错的话 ， 那个 command 加方括号的切换的方向跟我的希望它去的方向正好是反的 ， 就是我我 command 左括号希望它去下一呃 ， 上一个 pane， 它会去下一个 pane。

**Rio** [38:34]
嗯 。

**吴涛** [38:35]
如果我没记错的话 ， 就

如果你有 ， 对 ， 你你开四个 pane， 然后呃 ， 按 command 啊左括号 ， 你会发现那个转的方向跟你的想象的方向好像是不一样的 。

但但我也很久没用了 ， 所以 。

**Rio** [38:51]
啊 ， 对 ， 它跟它那个旋转的方式跟你分屏的顺序有关系 ， 这个就比较它比较坑爹的一个地方 。

**吴涛** [38:57]
对 。

**Rio** [38:58]
它会有一个这个 ， 它是一个树状的一个结构嘛 。

**吴涛** [39:00]
对 。

**Rio** [39:01]
所以跟你怎么切那个 ， 先切哪个再切哪个是有关系的 ， 就是说你看的是一个田字形结构 ， 它其实并不是一个 ， 就四个 pane 它并不是在同一个呃 ， 这个 hierarchy， 就是层级上面的 ， 这个会 。

**吴涛** [39:17]
然后 Tmax 里面就没有这个疑惑 ，因为就问题 ，因为 Tmax 里面切换 pane 是用方向 ， 就是呃 ，HJKL 切换的 ， 可以 。

**Rio** [39:26]
哈哈哈 。

**吴涛** [39:27]
对 ， 然后这样就没有那个 ， 呃 ， 只你只要指定指定一个绝对方向就可以了 ，而不是这个相呃 ，而不是根据呃先后顺序来 。

**Rio** [39:38]
嗯哼 。

**吴涛** [39:39]
对 。

**Rio** [39:40]
有意思 。 呃 ， 然后那个 iTerm 还有一个也是最新版里面 ， 它是再加了一个这个一个挺暗黑的功能 ， 叫做叫做什么来着 ， 叫做 hotkey window。

**吴涛** [39:52]
OK。

**Rio** [39:53]
你有用过吗 ？

**吴涛** [39:53]
就是一个就是按一个键 ， 它就会 drop down 从那个全局的屏幕上面 drop down 下来一个 。

**Rio** [40:00]
对对对对 ， 就有时候你想运行很快的运行几个东西 ， 然后你就懒得去管窗口的话 ， 就管理窗口的话 ， 这个这个也挺非常好用的功能 。

**吴涛** [40:09]
这个其实是 Linux 上面的一些呃呃 ， 那个 terminal emulator 先弄出来的 。

**Rio** [40:15]
对对 ， 然后那个 iTerm 抄过来的 。

**吴涛** [40:18]
对 ， 没错 。 还是挺有用的吧 ，但我是没用过 。

**Rio** [40:22]
就我还蛮常用这个功能 ，有时候查一下 。

**吴涛** [40:24]
OK。

**Rio** [40:24]
很快速的运行 。

**吴涛** [40:26]
我的我的那个 terminal 就是一直跑着嘛 ， 然后就从 command tab 过去 。

**Rio** [40:29]
一直都是全屏 。

**吴涛** [40:31]
对 。

**Rio** [40:32]
哈哈 。 好吧 。

**吴涛** [40:35]
OK。

**Rio** [40:36]
呃 ， 就所以 Mac 上面就大致上就要要么就是用这个系统自带的 ， 要么就是用这个 iTerm 2， 还有别的吗 ？

**吴涛** [40:43]
还其实还有一些非常古早的 terminal emulator， 比如说呃 ，emulator， 比如说那个一个叫 ZTerm 的 。

**Rio** [40:50]
这现在已经没有人用了 。

**吴涛** [40:52]
对 ， 可能两三年前还更新过吧 ， 它是而且它是从呃 ，OS 10 之前就有了 ， 就如果 。

**Rio** [41:02]
就是 Mac OS 9 就有了 。

**吴涛** [41:03]
对 ， 可能是从 OS 7 开始就有 ， 就如果呃 ， 听众们对 Mac OS 10 的历史不是很了解的话 ，OS 10 跟 OS 9 是完全没有关系的 ， 就是 OS 10 其实是一个叫做 next step 的操作系统 ， 呃 ， 被换了商标 ， 然后装在 Mac 上面跑 ，而在 OS 10 之前的 OS 9，OS 7，OS 8，OS 7 这些全都是一个类似于 Windows 95 的这么一个操作系统 ， 就是呃 ， 呃 ， 是一个单任务的 ， 呃 ， 是一个委多任务的操作系统 。

**Rio** [41:40]
嗯哼 。

**吴涛** [41:40]
不对 ， 这么说也不对 ， 那个正确的 term 是什么来着 ？

**Rio** [41:44]
呃 。

**吴涛** [41:45]
呃 ， 非抢占式多任务 。

**Rio** [41:47]
Pre， 哎 ，是叫 premitive 吧 。

**吴涛** [41:50]
Non-premitive。

**Rio** [41:51]
啊 ， 就是 。

**吴涛** [41:53]
啊 ，premitive 是抢占式的 ， 非抢占式的 。 哎 ，cooperative 就是协作式多任务 。

**Rio** [41:58]
对对对 ，cooperative， 没错没错 ， 协作式多任务 ， 就是你一个程序在跑到一半的时候 ， 如果你必须不停的去看有没有人需要啊 ， 你停下来 。

**吴涛** [42:09]
对 。

**Rio** [42:09]
如果你不愿意停下来的话 ， 那整个系统是可以被你带着一起一起一起卡死的 。 对 ， 就是这么一个事 。

而这个操作系统上面 ，因为它根本就不是 Unix， 它所以它理所当然的没有 terminal， 或者没有这个 terminal emulator 这种东西 。

**吴涛** [42:27]
嗯哼 。

**Rio** [42:27]
呃 ，因为你没有什么 ， 它就它没有一个东西是可以可以称之为内核 。

**吴涛** [42:32]
嗯哼 。

**Rio** [42:33]
然后你要在上面写程序的话 ， 那你也你也不会从这个控制台的程序开始写 ，而你是直接在一个 ， 比如说什么呃 ，Code Warrior， 或者是那个苹果自己的那个卖很贵的一个开发工具 ， 叫什么我忘了 。

嗯 ，anyway， 反正你需要再用一套这个图形化的开发工具来学编程 ，而不是在一个控控制台里面学 。 然后呃 ， 那个时代你如果想要做一些 ， 比如说 telnet， 或者是呃 ， 用什么呃 ， 拨号上网下文件 ， 呃 ，BBS 这种东西 ， 那你必须使用 ZTerm 这种真正的终端仿真器 。

**吴涛** [43:16]
OK。

**Rio** [43:17]
对 ， 这还是 ，但现在已经没有人用了 ， 我相信 。

**吴涛** [43:21]
反正你念这个 V 的时候特别好玩 。

**Rio** [43:24]
为什么 ？

**吴涛** [43:24]
特别像贼 。

**Rio** [43:26]
OK。

**吴涛** [43:27]
贼 term。

**Rio** [43:28]
哈哈哈 ， 贼 term。

**吴涛** [43:29]
哈哈哈 ，chat，chat term。

**Rio** [43:33]
嗯 。

**吴涛** [43:34]
Z 的 Z 的念法在英语里和美语里是不一样的 ， 对吧 ？

**Rio** [43:39]
对 ， 很不一样 。

**吴涛** [43:40]
呃 ， 英语是什么 ？Zed。

**Rio** [43:43]
呃 ， 应该是吧 ，Zed， 对 。

**吴涛** [43:45]
然后美语是 Z。

**Rio** [43:47]
Z， 对 。

**吴涛** [43:48]
OK。

**Rio** [43:49]
哎 ， 行 。

**吴涛** [43:50]
就各就口音差别还是蛮大的 。

**Rio** [43:53]
哈哈哈 。

**吴涛** [43:54]
啊 ， 那个其实终端模拟器 ， 呃 ， 终端仿真器 ， 哎 ， 老是改不过来 ， 终端仿真器在 Linux 上面其实挺泛滥的哈 。

### Linux 终端

**Rio** [44:04]
对 ，在 Unix 下面的终端仿真器简直是百花齐放 ，因为它是怎么说呢 ，是所有这些 Unix 下面的呃 ， 唯一一个最最必不可少不可或缺的东西吧 。

**吴涛** [44:21]
嗯哼 。

**Rio** [44:21]
就不管你你是使用哪种 Linux， 你无论如何至少要用用到终端 ， 所以终端仿真器也是特别特别的呃 ， 百花齐放 ， 比如说最原始的就是 XWindows 上面的那个 XTerm。

**吴涛** [44:37]
嗯哼 。

**Rio** [44:38]
就如果你装一个 Linux 系统 ， 呃 ， 只装它的那个 base system，不装 GUI 的话 ， 然后你一个包一个包往上装 ， 当你装好 XORG 的时候 。

**吴涛** [44:47]
嗯哼 。

**Rio** [44:48]
基本上你就会有什么 XClock， 呃 ，Xi 和 XTerm， 这是呃 ， 这是三个基本上可以验证 XWindows 是不是正常装好的程序 。

**吴涛** [45:00]
对 。

**Rio** [45:00]
啊 ，XTerm 的这个功能也非常简单 ， 首先它不支持 true type， 它的所有的字都是点阵字体 。

**吴涛** [45:09]
OK。

**Rio** [45:10]
啊 。

**吴涛** [45:11]
不 ， 这跟它的那个图形环境有关系吧 ？

**Rio** [45:14]
没错 ， 就 XWindows 其实默认什么也不行 ， 就是只能显示点和线啊什么的 ， 非常原始的呃 ， 这个叫什么 ， 图形界面 ， 对 ，graphic interface， 然后呃 ，XTerm 你只要稍微有一点呃 ， 追求就不会使用 XTerm， 只能这么说了 。

对 ， 然后呃 ，在 X 超越 XTerm，但是只依赖 XWindows 的东西 ， 基本上就是什么啊 ， 最知名的一个叫做 RXVT。 嗯 ，RXVT 好 ， 搞不好是来自于 virtual terminal。

**吴涛** [45:55]
不 ， 那个对 ， 应该是 。

**Rio** [45:57]
RXVT， 对 ， 应该是 。

**吴涛** [45:59]
RR 什么意思 ？

**Rio** [46:00]
就这这个我是当年用的最迷糊的 ，因为这个名字完全没法记 ， 对吧 ？

**吴涛** [46:05]
对 ， 这个是需要很多次呃 ， 死记硬背才可以记下来的 。

**Rio** [46:11]
对 ， 它你完全不明白它它它到底是什么意思 ， 然后你就用 ，而且它还有好有几个变种 ， 比如说什么 URXVT 跟它有什么关系 ， 我一直没搞明白 。

**吴涛** [46:21]
OK， 呃 ，URXVT 的全的正确名称应该是 RXVT Unicode， 这样就明白它是什么干什么用了吧 。

**Rio** [46:29]
啊 ， 就支持 Unicode 的一个词 。

**吴涛** [46:31]
没错 ， 早期的 XTerm 其实就只支持那个真正的 terminal 的那个呃 ， 叫什么 ，VTR20。

**Rio** [46:41]
啊哈 。

**吴涛** [46:42]
是一个我具体是干嘛的我也不知道 ， 我毕竟只是 80 年代出生的人， 不是 60 年代出生的人， 如果我早出生 20 年可能会知道 VTR200 到底是什么东西 ，但现在我只能猜测 VTR200 就是一个终端机的型号 。

**Rio** [46:56]
OK。

**吴涛** [46:57]
然后这个终端机型号的这个终端机的一些电气特性和呃 ，不不不是电气特性 ， 是一些那个呃 ， 数据特性被对被仿真出来的 ， 就也就说它其实是一种协议 。

**Rio** [47:13]
OK。

**吴涛** [47:14]
然后这个呃 ，RXVT 就模仿了 VT102， 应该是对 ， 然后 XTerm 模拟的是 VTR20。

**Rio** [47:22]
啊 。

**吴涛** [47:23]
但到底是什么意思我也不知道 。

**Rio** [47:26]
这些都是属于上上古时期的呃 ， 留下来的神物 。

**吴涛** [47:31]
对 。

**Rio** [47:33]
Relic。

**吴涛** [47:34]
哈哈 。

**Rio** [47:36]
呃 ， 然后要说就是刚才那那几个都其实并不好用 ，而且配置也很麻烦 。 啊 。

**吴涛** [47:41]
呃 ， 我也不知道 ，URXVT 还是有一堆拥趸的 ， 呃 ， 就是尤其是你在使用一些比较呃 ，barebone 的窗口管理器的时候 ， 就是你不你不如果你不喜欢 GNOME 或者是 KDE， 然后你要用一些比较原始的那个 ， 或者比较简单的呃 ， 窗口管理器的话 ， 那 URXVT 还是挺受欢迎的 。

**Rio** [48:07]
因为它比较轻量级嘛 ， 对吧 ？

**吴涛** [48:08]
对 ， 它轻量级 ， 它只是纯 C 写的 ， 然后它又支持 Unicode， 那基本上多了你也不需要了 ， 对吧 ？

**Rio** [48:16]
哈哈 。 这两个其实都不算太常用哈 ，因为这就没有什么主流的 Linux 发行版把它们当做默认的这个终端模拟器 ， 呃 ， 终端仿真器嘛 。

**吴涛** [48:26]
嗯哼 。

**Rio** [48:27]
呃 ， 所以我们目前见的最多的两个反而是什么 ？ 一个是这个啊 ， 像 Ubuntu 就是 Debian 这一系的发布的那个 GNOME Terminal， 对吧 ？

是叫怎么怎么念的 ？

**吴涛** [48:40]
GNOME Terminal。

**Rio** [48:41]
然后一个是那个呃 ，KDE， 它也有叫做它们叫 Console，但是不是 C 开头 ，是 K 开头的那个 Console。

**吴涛** [48:48]
对 。

**Rio** [48:49]
这两个东西 ， 呃 ， 这两个就怎么说呢 ？ 嗯 ， 我我用的那个 GNOME 那个那个 GNOME 怎么念啊 ， 这个东西 GNOME。

**吴涛** [48:59]
我是念 GNOME。

**Rio** [49:00]
GNOME， 对 ，Terminal 这个就比较用的比较多啊 ， 中规中矩吧 ， 就没有什么特别出彩的特性 ，但是就长得很正常 。

**吴涛** [49:09]
哈哈哈 。

**Rio** [49:11]
对 ，Console 我没其实 KDE 的环境我都没怎么用过 ，不知道你 。

**吴涛** [49:14]
我也很少用 。

**Rio** [49:15]
OK， 所以那个 。

**吴涛** [49:16]
KDE 太花了 ， 我觉得就 。

**Rio** [49:18]
啊 ， 这个是当年那个 。

**吴涛** [49:20]
就 Windows 95 时代 XP 时代的那种审美风格一直流传到现在也是 。

**Rio** [49:25]
不 ， 当时他们还是很潮的 ，他们那个 KDE 当时因为当时是那个 Mac OS 10 刚出来嘛 ，不有那个水滴那种那种那种 。

**吴涛** [49:34]
对 ， 水晶效果 。

**Rio** [49:35]
透明的效果嘛 ， 对 ， 然后那个那个那个 KDE 的桌面就是哇 ， 这个不错 ， 我们把它发扬光大是吧 。

**吴涛** [49:43]
全盘抄袭 。

**Rio** [49:44]
花花绿绿的各种感觉 ， 你开了一你在一个那感觉像什么呢 ？ 感觉像是在一个灯光明亮的糖果店的感觉 。

**吴涛** [49:54]
没错 。

**Rio** [49:54]
对 ，但是又很怎么说呢 ，有点 。

**吴涛** [49:57]
很三俗 。

**Rio** [49:58]
Hitch， 对 。 哎呀 ， 我们要被喷了 。

**吴涛** [50:02]
嗯 ， 没事 ， 这 KDE 德国人写的 ， 怕什么 。

**Rio** [50:05]
哈哈哈

， 漂亮 。 呃 ， 所以所以你在公司还用这个 Linux 桌面嘛 ， 对吧 ？ 你用的那个终端仿真器是什么 ？

**吴涛** [50:18]
呃 ， 我现在用的是 XFace Terminal， 就是一个 。

**Rio** [50:22]
啊 ，OK。

**吴涛** [50:22]
唯一的它它依赖的是 GDK，而不是 GNOME。

**Rio** [50:26]
啊 ， 就没有那么重 ， 就稍微轻一点点 ，其实也不算特别特别轻吧 ， 就是它在不损失功能和这个美观性的情况下， 它已经做得比较小巧了 。

**吴涛** [50:38]
对 ，而且它毕竟是 XFace 自带的嘛 。

**Rio** [50:40]
对对对 ，但我我在以前我上学时学校不是有那种那种叫做 LabNet 吗 ？ 就是实验室的那种机房网络 ， 它因为机器性能不是太好 ， 我也跑的那个 X 叫哎 ， 叫什么 XFace。

**吴涛** [50:53]
XFace。

**Rio** [50:53]
X5 Buntu 吧 ， 应该是这个 。

**吴涛** [50:56]
OK。

**Rio** [50:56]
发行版 。

**吴涛** [50:56]
Subuntu。

**Rio** [50:58]
Subuntu，是这么念吗 ？

**吴涛** [50:59]
Subuntu。

**Rio** [51:01]
不是徐 buntu 吗 ？

**吴涛** [51:02]
Subuntu。

**Rio** [51:03]
OK， 然后里面也是用那个 XFace Terminal， 这个比较小巧 ， 然后就我感觉它这个就其实在这么多的这个 Linux 发行版里面 ， 就是从界面风格来讲 ， 我还觉得 XFace 的这个这套还比较就挺清新的嘛 。

**吴涛** [51:18]
对 ， 然后就是 Mint 啊 ， 或者是 LXD 都还比较淡 。

**Rio** [51:24]
XD，XD 我说不上来 ， 总觉得它那个审美哪里有点奇怪 。

**吴涛** [51:29]
就比较幼稚 ， 稍微有点 。

**Rio** [51:32]
对对对 ，但就不像 XFace 那种比较 ， 你看这是至少是一个正儿八经的设计师做出来的产品 。 就还其实那上面还有一些很比相对来说就也没有一个发行版自带 ，但是用户也蛮多的 ，不算特别小众的这种终端仿真器吧 。

然后有几个比较知名的 ， 像是这个 Terminator。

**吴涛** [51:52]
对 ，Terminator 实际上是一个从呃 ，GNOME Terminal 改过来的一个比较呃 ， 功能强大的 Terminal emulator。 它它最知名的一点其实也就是把那个呃 ， 开很多 Pane， 然后可以把这些 Pane 排成一个 Grid， 然后 Grid 的形状也是可以弄得乱七八糟的 ， 什么上面两个 ， 中间三个 ， 下面四个啊这种 。

**Rio** [52:17]
对 ， 哎 ， 这个 XFace 呢 ，Terminal 支持这种多种方格 Pane 的吗 ？

**吴涛** [52:22]
我用的这个版本是不支持 。

**Rio** [52:25]
就我印象中好像没有版本支持吧 。

**吴涛** [52:27]
嗯 。

**Rio** [52:28]
GNOME 那个 Terminal。

**吴涛** [52:29]
XFace 的其实很多东西大部分东西都很简单 ， 就只有最基本的功能 。

**Rio** [52:34]
对对对 ， 就是各种能就能凑合用 ，但是就让人用得很不爽 。

**吴涛** [52:40]
对 ，但反正 TMAX 嘛 ，TMAX 嘛 ， 无所谓了 。

**Rio** [52:45]
啊 ， 还有像这个叫什么 Guake，Guake。

**吴涛** [52:50]
Guake。

**Rio** [52:52]
Guake， 我也不知道怎么念 ，但对 ， 这就是我说那个可能应该是用 Python 写的 Terminal。

**吴涛** [52:57]
OK。

**Rio** [52:57]
Emulator， 然后它跟 Tild 也是 Tild， 这怎么念啊 ？

**吴涛** [53:04]
Tild 吧 ， 就那个符号就是一一数字一组的那个 。

**Rio** [53:08]
波浪哈 。

**吴涛** [53:08]
对对 ， 波浪哈 。 然后这两个也是两个比较受欢迎的在 GNOME 上面的呃 ， 替代品吧 。

**Rio** [53:17]
OK。

**吴涛** [53:17]
对 。

**Rio** [53:18]
嗯 ，其实我一直在用 Linux 都有一个 ，但这跟其实 Linux 大部分的事情都是一样 ， 就是同一个你要完成同一个功能的话 ， 它有至少 a doz。

**吴涛** [53:30]
太多选择了是吧 ？

**Rio** [53:31]
对 ， 至少有一两打的这种可以选择 ，但是难得就是没有一个特别好的 ， 就是用了那么多之后你觉得哪个特别适合你 。在这种情况下我就会去 Google 上搜 "the best terminal emulator under Linux"。

**吴涛** [53:46]
然后发现是一个 flamework。

**Rio** [53:48]
然后是什么 ， 然后是给出一个 top ten list， 然后发现里面每个都不好用 。

**吴涛** [53:53]
哈哈哈 。

**Rio** [53:55]
呃 ， 对 ， 这个就就比较惨 ， 我不知道为什么 ， 可能是因为程序员嘛 ， 用那个终端的场合比较多哈 ， 那大家都想去自己掺和一把 ，但是我觉得做这种东西还是需要一点这个什么来着 ， 一点这个积累和智慧吧 ， 就不是所有的人写出来东西都好使了 。

**吴涛** [54:16]
嗯 。

**Rio** [54:17]
但是 。

**吴涛** [54:18]
最重要的是忍耐力吧 。

**Rio** [54:21]
忍住不要写 ，不要自己写一个吧 。

**吴涛** [54:24]
因为 Linux 的呃 ， 哲学就是这样 ， 你你你用着不爽 ， 那你改啊 ， 你你你 。

**Rio** [54:30]
你就 focus 出去了是吧 ？

**吴涛** [54:32]
对啊 ， 你自己你要不爽你自己弄不爽啊 ， 我又没有跟你收钱对吧 ？ 然后我免费弄出来给你用 ， 你还你还你要又要用又要表何必呢 ？

有本事你自己写一个呀 ， 对吧 ？ 你在其他平台上就 。

**Rio** [54:46]
嗯哼 。

**吴涛** [54:46]
你在其他平台上就很很难这样去去怼你的用户 ，但是 Linux 就是一个你默认的那个呃 ， 你默认你的用户同时也是一个工程师 。

**Rio** [54:58]
对 。

**吴涛** [54:59]
对 ， 就像我们上一次那个标题的那本书 ， 那 "In the beginning there was common line"， 那个是呃 ， 怎么说呢 ，其实是一个关于操作系统的呃 ， 一部传记体的散文 ， 介绍了这个操作系统的源流 。

呃 ，其中里面它它把这个车和操作系统呃 ， 相提并论 ， 或者说它做了一个比喻 ， 我觉得还是挺有意思的 ， 就是它说 Windows 的车其实就是一堆呃 ， 性能一般 ，但是呃 ， 服务很好 ， 然后看起来还 OK， 就中庸的一堆车吧 ， 然后买的人也最多 ， 大部分人如果需要买车的话 ， 那么不动脑子就直接去 Windows 的店买辆车开走 ， 然后这个呃 ， 呃 ， 苹果的车呢 ， 就是一堆看

起来非常漂亮 ， 然后让人觉得呃 ， 很前卫很帅 ，但是疯得很死 ， 你根本不知道这些车是怎么运作的 ， 然后跑得很快 ， 然后也很贵 ， 对吧 ？

就那些一些比较有钱的人就直接去苹果店啊 ， 开一台苹果车走 。 而这个 Linux 是什么呢 ？

**Rio** [56:12]
哈哈哈 。

**吴涛** [56:12]
Linux 是一个坦克厂 ， 坦克维修厂 ， 前面排着一辆又一辆的坦克 ， 然后它里里面也没有人来招呼你 ， 只是立着个牌子说免费开走 。

**Rio** [56:24]
哈哈哈 。

**吴涛** [56:25]
然后你可以对 ， 你可以免费开一辆坦克走 ， 然后呃 ，但是呢 ， 如果它半路抛锚了 ， 你就得自己下来把它修好 。

**Rio** [56:36]
哈哈哈 。

**吴涛** [56:36]
对 ， 大概是这种感觉 。 然后 。

**Rio** [56:40]
为什么为什么这个时候脑子里面出现的是二战时期的德国 ？

**吴涛** [56:44]
哈哈哈 。

**Rio** [56:46]
啊 ， 想起来看看那个电影坦克大战 。

**吴涛** [56:49]
OK， 这个其实让我想到那个我第一次读到这段文字的时候 ， 脑子里面想到的是那个 Eve， 就是中文叫星战前 ， 星战前夜的那个呃 ， 多人在线网游 ， 就是在这个网游里面你开一辆开自己的宇宙飞船 ， 然后去采矿啊 ， 去去做生意啊 ， 去搞运输啊 ， 去杀人越货啊 ， 去打仗啊什么的 ， 然后这里面有四个派系 ， 呃 ， 四派系的那个船的风格完全

不一样 ， 一个其中一个就是非常漂亮 ， 非常非常流线型 ， 然后我觉得苹果就很像这个派系 。

**Rio** [57:29]
嗯哼 。

**吴涛** [57:31]
A 开头叫什么忘了 ， 然后呃 ，Windows 则是一个比较中规中矩的 ， 就是那种司空见惯的想象中的未来人类的飞船的样子 。

然后还有一个派系 ，他们的飞船就感觉就像一堆破烂拼起来的 ， 然后那个就是感觉就是 Linux 社区 ， 对 ， 居然还能飞 ，不对称 ， 然后大量的平板 ， 大量的什么 ， 你就觉得那个那个船都是用胶布粘起来的 ， 然后还是一样跑 。

**Rio** [58:01]
啊 ， 哎 ， 好 ， 扯远了哈 ， 拉回来 。

**吴涛** [58:03]
对 。

**Rio** [58:04]
那个就刚才讲到那个那个像 TMAX 也好 ， 还有刚才讲的各种终端仿真器 ， 里面都提到这个分窗 ，不是分 ， 就一个窗口分成多个小板块来用的这么一个场景啊 。

然后想起之前你在这个听众群里面有好像是有谁问过你一个问题 ， 说你怎么用这个 Terminal， 怎么放到这个 I3 里面去的 。

### 窗口管理

**Rio** [58:23]
因为就其实照逻辑来看 ， 如果你要分这个把一个窗一个屏幕的空间分割成多个的话 ， 这就是那个 Window Manager 要做的事嘛 ， 就是可以在 I3 里面 ， 就哪怕你用这个多个 ， 就不需要支持这个 Pane， 就是 Split Pane 这种的终端仿真器也是可以的嘛 。

你甚至连 Tab 都不需要 ， 对吧 ？ 你需要的是通过 I3 来管理那个窗口就好了 。 所以为什么你用 I3 的时候还是要用这个再开多个 Tab， 然后每个 Tab 里面再开 TMAX？

**吴涛** [58:55]
呃 ， 我觉得是这样的 ， 就是可以把它视为就是呃 ， 窗口管理器是一个逻辑层级 ， 然后呃 ，Terminal emulator 是一个逻辑层级 ， 呃 ，TMAX 又是一个逻辑层级 ， 然后这三个逻辑层级所使用的快捷键是不一样的 。

比如说我要在三个屏幕之间切换的话 ， 我是用 Command 呃 ， 加 123。

**Rio** [59:18]
嗯哼 。

**吴涛** [59:18]
这是一套快捷键 。 第二个快捷键是我如果在某一个 Terminal emulator 里面要在各个 Tab 之间切换 ， 那是 Ctrl 加 Page Down Page Up。

**Rio** [59:28]
嗯哼 。

**吴涛** [59:29]
呃 ， 这是第二套快捷键 。 第三套快捷键是在 TMAX 里面 ， 我用我的前缀是 Ctrl 加 Q，但是 TMAX 默认应该是 Ctrl 加 B。

**Rio** [59:38]
嗯 。

**吴涛** [59:38]
然后呃 ， 比如说 Ctrl 加 Q 加 L，Ctrl 加 Q 然后 L 是切换到右边的那个 Pane 里面 。 这样就是在在这个肌肉记忆和呃 ， 思维逻辑层面都你都把这个呃 ， 区三个逻辑层级分得很清楚 ， 对吧 ？

因为在我在切换窗口的时候 ， 呃 ， 我切换的是本地的计算机或者是远程的计算机 ，而在呃 ， 呃 ， 终端仿真器里面切换 Tab 的时候 ， 我是在切换我呃 ，SSH 到哪一个机器上面 ， 或者是呃 ， 比如说我这个呃 ，Tab 里面做的是测试 ， 另一个 Tab 里面做的是开发 ， 对吧 ？

**Rio** [1:00:23]
嗯哼 。

**吴涛** [1:00:24]
然后在 TMAX 里面我做的则是在一个 Terminal 内部的不同的工具之间的切换 。

**Rio** [1:00:33]
嗯哼 。 这里可能有有两个层级啊 ， 一个是说首先你不可能把远端的窗口挪到本地来管理 ， 除非你用 XX 的 Windows 那个系统嘛 ，但是现在应该没有什么人在用了吧 。

**吴涛** [1:00:46]
对 。

**Rio** [1:00:47]
啊 ， 所以这个我能理解 。

**吴涛** [1:00:49]
还是有 。

**Rio** [1:00:49]
对 ， 还是有吗 ？OK。

**吴涛** [1:00:51]
X to go， 对 ， 还是有 。

**Rio** [1:00:53]
啊 ， 就是你你能就是你要区分远端的这个这个这个不同程序的这个输入交点之间的切换和这个本地窗口的切换 ， 这个我可以理解 。

但是你本地的这个终端模拟器里面的多个 Tab， 你为什么不用这个 I3 的这个多窗口的模式来管理呢 ？

**吴涛** [1:01:10]
啊 ， 为为什么要用 Tab 而不用 I3 的 Windows Manager？

**Rio** [1:01:14]
没错 ，因为其实 Tab 是没有 ， 就 Tab 快捷键的话 ， 它没有那么灵活嘛 ， 你不能说 。

**吴涛** [1:01:20]
从从洁癖的角度讲 ， 从洁癖的角度讲 ， 我希望我的本地的呃 ， 机器上只跑一个 Terminal emulator， 就单一进程 ， 对吧 ？

然后 。

**Rio** [1:01:33]
就是开多个 Tab 是 ， 哎 ， 等等 ， 你开多个窗口也是单一进程吧 ？

**吴涛** [1:01:38]
你确定吗 ？

**Rio** [1:01:41]
呃 。

**吴涛** [1:01:42]
我觉得每次长按 enter。

**Rio** [1:01:44]
开一个新窗口就会多多一个进程出来 。

**吴涛** [1:01:46]
会会多一个呃 ， 会应该是这样的 ， 会多一个新的 Terminal emulator 出来 。

**Rio** [1:01:54]
哼 ，OK， 那多一个 Tab 不不也是吗 ？

**吴涛** [1:01:58]
多一个 Tab 是在同一个 emulator 里面多一个进程吧 。

**Rio** [1:02:02]
不 ， 这个只是 UI 的表现层 ，但并不一定实际上是这样子的 。

**吴涛** [1:02:06]
OK， 好吧 。

**Rio** [1:02:06]
比如说最简单一个例子吧 ， 这个现在像现在这个 Chrome 也好 ，Safari 也好 ， 它也是一个多标签页的一个窗 。

**吴涛** [1:02:13]
对 ，而且你可以把一个标签页拖出来形成一个新窗口 ， 对吧 ？

**Rio** [1:02:16]
对对 ， 它都其实每个标签页 。

**吴涛** [1:02:18]
OK。

**Rio** [1:02:19]
你你拖出来形成新窗口都不一定 ，其实每个 。

**吴涛** [1:02:22]
好吧 。

**Rio** [1:02:22]
这个标签它都是这个独立的一个进程嘛 ， 就这两者之间并没有逻辑的 。

**吴涛** [1:02:26]
不不不 ，Chrome 肯定是多进程的 。

**Rio** [1:02:28]
我知道 ， 我知道 ， 就是说但是你像那个 Safari 以前它有标签页 ， 标签页可以拖出来 ， 这个时候它并不是那个标签页并不是单独的一个进程 。

**吴涛** [1:02:36]
好吧 ， 那我觉得那可能还是从心理上是从一觉得每一个窗口应该是一个 。

**Rio** [1:02:40]
就一定要有个归属感 。

**吴涛** [1:02:41]
单一是一个是对应每一个窗口是对应一个单一的 App。

**Rio** [1:02:45]
OK。

**吴涛** [1:02:46]
对 。

**Rio** [1:02:47]
OK， 明白 。 所以你没有那个两个网页放到并排来使用的对比的情况 ？

**吴涛** [1:02:53]
也有 ，但是这种时候是非常少见的吧 。 我觉得这种时候宁可开一个新的那个啊 ， 啊 ， 还是要看场景 ， 应该说还是要看场景 。

**Rio** [1:03:04]
对 ， 我就比较好奇为什么是这种结果 ，但是那如果这样的话 ， 会不会有一个就刚才讲的这个都是用那个快捷键来控制不同层级的嘛 ，但是你的那个逻辑上是分层 ， 分了三呃 ， 四层了吧 ？

**吴涛** [1:03:17]
三层 。

**Rio** [1:03:17]
窗口层 ，Tab 层和这个 TMAX 三层 ， 对 ，但但你快捷键并是并不分层的 ， 你会不会觉得这个快捷键的这个要考虑潜在的冲突的情况太多了 ？

**吴涛** [1:03:28]
快捷键为什么不是分层 ？ 我刚才不是说了三层吗 ？Command 加 。

**Rio** [1:03:32]
对 ，但这都是 Command 键 。

**吴涛** [1:03:34]
不不不 ，Command 加 123， 然后 。

**Rio** [1:03:37]
就是切换这个嘛 。

**吴涛** [1:03:38]
切换 Tab 是用 Ctrl 加 Page Up Page Down。

**Rio** [1:03:41]
对 ， 没错 ， 都是用 Ctrl 这个 ， 哎 ，Command，Ctrl，OK，但是你还要在那个在 TMAX 里面还有一个 。

**吴涛** [1:03:48]
TMAX 里面则是 TMAX 的这个快捷键机制和其他两两者是不一样的 ， 它是一个二段式的这个快捷键 。

**Rio** [1:03:56]
所以 。

**吴涛** [1:03:57]
对 。

**Rio** [1:03:57]
对 ， 完了你还里面 。

**吴涛** [1:03:58]
习惯了之后还好吧 。

**Rio** [1:04:00]
但你你还想你在 TMAX 里面你还要跑 Vim 嘛 。

**吴涛** [1:04:05]
呃 ，Vim 的 Vim 又用不到 Ctrl 加 Q 了 。

**Rio** [1:04:09]
不 ， 我就说但你总会用到 Comm，不是 Command， 呃 ，Command one 会不会用到 Vim 里面 ？ 好像也用不到吧 。

**吴涛** [1:04:15]
Vim 也用不到 。

**Rio** [1:04:16]
就但但不管怎么说 ， 就是说你你在比如说在 Vim 里面自定义快捷键的时候 ， 或者你在自定义其他快捷键的时候 ， 会不会遇到说有这么一个因为层级太多 ， 你你按你按一个快捷键会出现在两个地方矛盾的情况 ？

**吴涛** [1:04:30]
唯一的问题就是那个默认的 Ctrl 加 B 和呃 ， 默认就是就是 Ctrl 加 B 是呃 ， 给我造成过问题吧 ，因为 Ctrl 加 B 在 Vim 里面有用 。

**Rio** [1:04:44]
所以你选了一个 Ctrl 加 Q 避开了这个 Vim 的就一个没用的键就可以了是吧 ？

**吴涛** [1:04:51]
对 ， 我我以前用过 Ctrl 加 A，但是后来我发现 Ctrl 加 A 其实也是被使用的 ， 就是给那个当前的字符加一 ， 虽然不知道它具体有什么用呢 ， 我还是把它选成了 Q。

**Rio** [1:05:04]
对嘛 ， 所以还是有这个问题的嘛 。 然后 。

**吴涛** [1:05:07]
对 。

**Rio** [1:05:08]
这个这个问题可能在这个就是 I3 里面 ， 就是 Linux 里面还好 ，因为 Linux 里面绝大部分的那个就是 GUI 啊 ， 就是图形界面那一层 ， 它是不用这个我们叫 Meta 键的嘛 。

**吴涛** [1:05:19]
对 。

**Rio** [1:05:20]
因为它不能保证你的键盘上一定有那个键 ， 对吧 ？ 那这只能说键盘 。

**吴涛** [1:05:25]
这个键的这个键的代号叫什么 ？Modifier Modifier 3 还是 Modifier 4？

**Rio** [1:05:31]
对 ， 就就是说你可以你可以把单独把那个键用于这个窗口管理 ，但这个也比较巧 ，因为在很多这个 Windows 的键盘上那个键叫 Win 键嘛 ， 对吧 ？

**吴涛** [1:05:40]
对 ， 这是一个比较取巧的方法 。

**Rio** [1:05:42]
对 ， 窗口键就是用来管理这个 I3 的窗口 ， 设置它 ， 比如说改变布局啊 ， 改变切换这个 Focus 都没有问题 ，但其实你发现在 Mac 上面这个 Command 键 、Alt 键和 Ctrl 键都是以就相当大的比例在实际使用中的 ， 就经常会发现你想的一个快捷键组合在你开的某一个应用里面就不幸被用过了 。

**吴涛** [1:06:06]
对 ，而且 Mac 最让人讨厌的一点就是它的全它的那个快捷键很多都是全局的 ， 你这个 App 里面使用这个快捷键到另外一个 App 里面就就完全用不了了 。

**Rio** [1:06:19]
啊 ， 就会有冲突吧 ，是 。

**吴涛** [1:06:20]
对 。

**Rio** [1:06:21]
啊 ，OK， 哎 ， 这个我还没有留意到 ， 就当然我就就是有点担心 ， 刚才你说像那种情况嵌套那么多层 ， 感觉这个光是想按哪个快捷键在哪一层按都已经快炸了 。

**吴涛** [1:06:33]
我觉得三层已经是我的极限了 ， 再再多一层就受不了了 。

**Rio** [1:06:37]
所以你没有在呃 ， 怎么说来着 ， 就本机不是或者这么说 ， 你有试过从连到远端的一个 TMAX 之后， 再从那个跳板机连到另外一台机器 ， 再再开一个 TMAX 吗 ？

**吴涛** [1:06:50]
啊 ，有 。

**Rio** [1:06:51]
这样的话你就会发现两个 TMAX 那个 Ctrl+Q 冲突了 ， 对吧 ？

**吴涛** [1:06:55]
对 ， 此时就 。

**Rio** [1:06:58]
要穿越 ， 要穿透 。

**吴涛** [1:07:00]
对 ， 此时就需要先呃 ，因为此时起起不起 ， 此时起作用的应该是外层的 Ctrl 加 Q。

**Rio** [1:07:09]
对 ， 然后你再按再按一下就可以穿透到下面那一层了 。

**吴涛** [1:07:14]
啊 ， 真的吗 ？ 是这样吗 ？

**Rio** [1:07:15]
对啊 ， 就是你你按第一次 Ctrl+Q 的时候是给外层嘛 ， 你再按 。

**吴涛** [1:07:19]
我靠 ， 我我一直不知道哎 ， 我一直我一直都是很蠢的 ，Ctrl+Q， 然后新新建一个窗口 ， 然后把那个本地的这个 Ctrl+Q 改成别的 ， 哈哈哈 ， 然后 Reload config， 然后远程就可以用 。

**Rio** [1:07:33]
不 ，但但这个是更好的 ，因为不然的话你你每次按 Ctrl+Q 都是都要按两次 ，也很累啊 。

**吴涛** [1:07:38]
OK。

**Rio** [1:07:38]
对吧 ， 就是就是我所以我所以我很我很关心刚才你说你那么多层怎么去管理的问题 。

**吴涛** [1:07:45]
OK。

**Rio** [1:07:45]
所以我有时候我就在想啊 ， 就说是不是说反而把这些都就不要搞那么两三层 、 三三四层这种 ， 就直接拉平到一层里面 ， 用 I3 来管理会不会好好一些 ？

因为 I3 其实就是这么一个 Flat 的一个东西嘛 ， 对吧 ？

**吴涛** [1:07:59]
对 ，也是个也是个也是个办法 。

**Rio** [1:08:02]
哎 ， 哈哈 ， 仅供参考 。

**吴涛** [1:08:04]
你的想法不一定 。

**Rio** [1:08:05]
你可以去试试 ， 哈哈哈 。

**吴涛** [1:08:06]
对 。

**Rio** [1:08:06]
OK。 天天正事没干 ， 家里各种想法 ， 我到底是用三层还是两层呢 ？

**吴涛** [1:08:12]
这个有时候觉得自己在折腾工具上面花的时间真是太多了 。

**Rio** [1:08:17]
嗯 ， 你你那个什么剑很锋利 ， 没砍死几个人。

**吴涛** [1:08:21]
工欲工欲善其事 ， 必先利其器 ， 结果我现在这个器已经利的差不多了 ， 这事一点没做 。

**Rio** [1:08:29]
刀刀头刀头快被你磨光了 。

**吴涛** [1:08:31]
对 ， 我已经变成了一个刀具鉴赏家了 ， 没杀几个人， 哈哈哈 。

**Rio** [1:08:39]
呃 ， 刚才我们扯了这个 Mac OS X 上和这个 Linux 上面的终端仿真器啊 ， 呃 ，Windows 上面有什么东西吗 ？ 现在算 PowerShell 也算是一个 shell， 它还需要一个一个这个东西去搞它吗 ？

### Windows 终端

**吴涛** [1:08:52]
对 ，其实这这需要区分场景 ， 就是你要在 Windows 上面做 Unix 相关的东西吗 ？ 如果需要的话 ， 那你可能会需要一些比较啊 。

**Rio** [1:09:03]
有一个场景我至少是比较熟悉 ， 就是很多这个比如说做这个 PHP 的开发者 ，他是在用 Windows 的 ， 对吧 ？

**吴涛** [1:09:11]
嗯哼 。

**Rio** [1:09:11]
然后他但是他部署的时候是要部署到这个 Linux 的系统上面去的 ， 所以他一定是需要一个这个比如常用的叫什么 Putty， 或者一个叫什么什么什么 Term 来着 。

**吴涛** [1:09:26]
What？

**Rio** [1:09:27]
有一个有一个 Windows 上面连这个就是连这个远端的 ， 就 SSH 到远端的 ， 然后能够它带这个终端仿真器功能的工具 ， 忘了叫什么 Term 来着 ，ATerm 来着 。

**吴涛** [1:09:39]
哎 ， 我我还我我还只知道 Putty 这一个东西 。

**Rio** [1:09:42]
不不 ，Putty 不好用嘛 ，Putty 其实很难用的 。

**吴涛** [1:09:45]
呃 ， 好吧 。

**Rio** [1:09:47]
就是有些很奇怪的原因 ，Putty 它的那个它那个窗口啊 ， 跟那个就是那个叫做叫什么命令行 ，是叫命令行吧 ？

**吴涛** [1:09:56]
嗯哼 。

**Rio** [1:09:56]
命令行那个应用的窗口是一样的 ， 它很奇怪 ， 比如说它那个字体大小 ， 这个对吧 ， 就只能选择那其中 。

**吴涛** [1:10:04]
这倒是对 ， 对 ， 我觉得 Windows 的这个呃 Terminal 的最讨厌的一点就是字体只有三四种选择 ， 可能 。

**Rio** [1:10:14]
Fix this。

**吴涛** [1:10:16]
对 。

**Rio** [1:10:17]
还有什么 Courier 啊 ，Courier 对吧 ？

**吴涛** [1:10:20]
呃 ，Console.s 应该还有 。

**Rio** [1:10:22]
啊 ，Console.s 后来有的 ， 对对 。

**吴涛** [1:10:23]
对 ， 然后就是默认的那个 ， 对 ， 默认字体叫什么 ？

**Rio** [1:10:28]
Fix this 啊 。

**吴涛** [1:10:29]
对对对对对 ，Fix this。

**Rio** [1:10:31]
对啊 ， 然后他们是有一个叫什么 Term 的一个应用 ，他们也经常我看他们有时候会用 ， 然后你还记得当年跑我们玩那个 BBS 的时候 ，也有人用那个东西去登 BBS 嘛 ， 就 Tilnet 的东西 。

**吴涛** [1:10:44]
登 BBS 不是用 Tilnet 吗 ？

**Rio** [1:10:47]
啊 ，Tilnet 也不好用嘛 ，也跟那个 Putty 和那个命令行那个那个窗口一样的毛病 ， 就是那个字体就窗口管大小 ， 它你是不能改它大小的嘛 ， 它都是 80*20 是定死了的 。

**吴涛** [1:10:59]
OK。

**Rio** [1:11:00]
对 ， 它有一些这种这种就是图形就 GUI 的应用 ， 然后它是那个可以去修改那个字体大小 ， 然后可以调节窗口大小的嘛 ， 就相对来说好用一些 。

应该 CTerm 吧 ， 应该是叫这个东西 ， 我想想我查一下 。

**吴涛** [1:11:14]
CTerm 啊 ，OK， 这个我听过 。

**Rio** [1:11:17]
你听过吧 ？

**吴涛** [1:11:18]
CTerm 搞不好我还用过呢 。

**Rio** [1:11:20]
对 ， 这个应该是有很多人就是跑 BBS 的时候用过的 ，但有有一些是类似这种的软件 。

**吴涛** [1:11:26]
CTerm 是一个与 FTerm 功能相仿的通用仿真终端软件 ，是中国大陆地区发展的第一个在 BBS 上支持鼠标操作的 BBS 软件 。

**Rio** [1:11:35]
对对对 。

**吴涛** [1:11:35]
这是一个这是一个国产软件 。

**Rio** [1:11:38]
对啊 ， 什么是华中大学 ， 当时那个人在华中华中理工华中理工大学研究生嘛 ，97 年的时候 。

**吴涛** [1:11:46]
OK，有意思 。

**Rio** [1:11:50]
对 ， 这个还是有有些什么暴露年龄的历史 。

**吴涛** [1:11:54]
啊 ， 我还记得他好 OK， 看到图标我想起来了 ， 这个东西我还真的用过 。

**Rio** [1:11:58]
对啊 。

**吴涛** [1:11:58]
好古早的记忆 ， 哈哈哈 。

**Rio** [1:12:00]
天啊 ， 对啊 ， 所以 Windows 上面其实我们也不太熟到底有什么终端仿真器 ， 对吧 ？

**吴涛** [1:12:08]
对 ， 至少搜来一个叫做 Console2 的东西 ， 好像口碑不错 ， 支持什么 ？

**Rio** [1:12:13]
其实其实还是 。

**吴涛** [1:12:14]
ClearType 比如 。

**Rio** [1:12:17]
对对对对 ， 这个很重要啊 ， 这个用户体验很重要 ， 就好像我们在这个 ITerm 就就怎么来着 ， 就刚才你说那个 Putty 之于这个 Windows， 就相当于这个什么 RXVT 之于 Linux， 感觉一样 ， 就非常古早的那种东西 。

**吴涛** [1:12:32]
OK， 没错 。

**Rio** [1:12:34]
啊 。

**吴涛** [1:12:36]
呃 ， 对 ， 然后还如果但如果你要在呃 Windows 上面装一个那个 Min Minimum Min 啊 ， 叫什么 MinSys

和 MinGW 的关系 。

**Rio** [1:12:51]
Cygwin 吧 ，是什么 Cygwin 吧 ？

**吴涛** [1:12:53]
啊 ， 对对对 ，Cygwin 和 Min 呃 G 啊 ， 天啊 。

**Rio** [1:13:00]
MinGW。

**吴涛** [1:13:01]
没错没错 。

**Rio** [1:13:02]
我不知道怎么念 ， 反正是这么写 。

**吴涛** [1:13:04]
MinW 吧 ， 我也不知道 。

**Rio** [1:13:05]
MinW 吧 ， 对 。

**吴涛** [1:13:06]
对 ， 它的它的这个意思就是 Minimum GNU for Linux， 呃 ，for Windows。

**Rio** [1:13:14]
For Windows。

**吴涛** [1:13:15]
对 ， 呃 ，而且两者其实不一样的东西 ， 就是 Cygwin 是一个 Linux 跑在 Windows 上面 ，有点像一个 。

**Rio** [1:13:23]
呃 ，不对不对 ， 寄生虫 。Cygwin 应该是一个就是说是一个这个 GNU 的 user。

**吴涛** [1:13:31]
Port。 对 ， 是一个在 Windows 上跑的 Windows 的这个盒子 。

**Rio** [1:13:36]
对 ，而这个呃 MinGW 则是一个呃开发原生程序的呃的的 GNU 的套装 。

**吴涛** [1:13:47]
哈哈哈 。

**Rio** [1:13:48]
对 ， 就是用用这个 MinGW 开发出来的程序是原生的 Windows 的程序 ，而呃 Cygwin 上面的东西则是能够在 Windows 上面跑的 Posix 程序 。

**吴涛** [1:14:02]
好乱 。

**Rio** [1:14:02]
如果我没理解错的话 ， 对 ， 对 ， 你你可能需要把我刚才说的这句话重听两遍才明白到底什么意思 ，但对 ， 大概就是这样 。

**吴涛** [1:14:13]
OK。

**Rio** [1:14:14]
所以所以我很好奇 ， 真的现在还有人这么干吗 ？ 我觉得可能更好的方式是在啊 ，Windows 上 。

**吴涛** [1:14:20]
装虚拟机 。

**Rio** [1:14:21]
虚拟机 ， 然后用一个这个什么什么什么 Term 连进去 ， 可能会好一点吧 。

**吴涛** [1:14:28]
嗯 ， 还是取决于场景吧 ， 我觉得就 ，但我也的确想不出来有什么应用场景会会会使用到 MinGW 或者是 Cygwin。

对 ， 如果听各位听众有什么呃非常典型的用例 ，不妨告诉我们 ，但是目前来看好像我基本上接触到 Cygwin 和 MinGW 就是在那个什么各种工具的这个兼容列表里面说什么哦 ，有一个 bug 在 MinGW 会 MinGW 里面会会出现 ， 然后已经把它 fix， 然后除此之外再没有再没有接触到活人在使用它的场景 。

**Rio** [1:15:08]
OK。

**吴涛** [1:15:09]
呃 ，但如果你有这个需求的话呢 ， 基本上装了那个 MinGW 之后会有个叫做 MinTTY 的东西 ， 然后它就是一个原生的 Windows 下面的终端仿真器 。

**Rio** [1:15:21]
对 。

**吴涛** [1:15:21]
对 ，而且是跑这个呃跑 shell 专用的 ， 基本上 。

**Rio** [1:15:29]
嗯哼 。

**吴涛** [1:15:29]
你没有办法在它在它里面跑跑一个呃 DOS command line。

**Rio** [1:15:34]
嗯哼 。

**吴涛** [1:15:35]
对 。

### 移动终端

**Rio** [1:15:37]
刚才讲了这个主流的这个桌面系统上面的这个终端仿真器哈 ， 我们现在看一下现在不是移动很火吗 ？

对吧 ，在这个移动设备上有什么方法可以去远程一个服务器的 ？

**吴涛** [1:15:50]
我用了很久的是一个叫做 ISSH 的东西 ， 就是呃 。

**Rio** [1:15:54]
啊 ， 我也有 ， 我之前也有也也有用这个 。

**吴涛** [1:15:58]
OK， 你觉得怎么样 ？

**Rio** [1:16:00]
觉得怎么说呢 ， 就是有点丑 。

**吴涛** [1:16:03]
键盘太小了 。

**Rio** [1:16:05]
反正但但可没办法 ， 你屏幕只有那么大 ， 你这个你有啥有啥法 ，但我觉得它不好看 。

**吴涛** [1:16:11]
我觉得在在手机上跑一个 Terminal emulator 本身就是一个很奇葩的行为 。

**Rio** [1:16:17]
但有时候救急嘛 ， 比如说你在外面那个服务器挂掉了 ， 你要连上去看重启一下怎么办 ？ 但 。

**吴涛** [1:16:23]
对 。

**Rio** [1:16:24]
你就作为一个正常的这个呃这个运维 ， 你不应该让这种事情发生 ， 对吧 ？ 但是它总会发生的吧 ？

**吴涛** [1:16:31]
对 ，在在救火的时候的确可以这样干一干 。

**Rio** [1:16:35]
嗯哼 。

**吴涛** [1:16:36]
我记得有一次我在伦敦的时候 ， 呃 ，在车上面用一个蓝牙的 Mac 的键盘连到手机上， 然后远程登录到服务器上去改什么东西 ， 这个场景我还历历在目 。

**Rio** [1:16:52]
我也试过 。

**吴涛** [1:16:54]
OK， 呃 ，但反过来现在什么 iPad Pro 之类的出来了 ， 然后在一个大屏幕的 iOS 设备上面开一个 Terminal emulator 好像还挺合乎情理的 。

**Rio** [1:17:06]
又找回了当年终端的真正的终端的感觉 。

**吴涛** [1:17:09]
对 ，而且比当年的终端要轻薄便携很多 。

**Rio** [1:17:14]
啊 ， 对 ， 这个还是挺有意思的 。 呃 ， 就 ISSH 我有装过 ，但觉得它这个美观上可能稍微差一点 。 呃 ，其实我要推荐另外一个是这个 Panic 写的 ， 叫做 Prompt， 它出一出二代的 Prompt2。

**吴涛** [1:17:30]
这个好像我也买了 ，但是 。

**Rio** [1:17:32]
你买的是 EU。

**吴涛** [1:17:33]
因为本身对对对对对 ，因为本身很也很少用到这个功能 ，其实就 。

**Rio** [1:17:38]
但我觉得它那个还挺好的 。

**吴涛** [1:17:41]
啊哈 。

**Rio** [1:17:41]
就做的比较简单漂亮 ， 很有那个很有那个 XFACE Terminal 的感觉 ， 就就很有 XFACE Terminal 之于 Linux 的感觉 。

**吴涛** [1:17:51]
OK，有意思 ， 回头我也试一试 。

**Rio** [1:17:54]
嗯哼 。

**吴涛** [1:17:54]
然后呃 ， 我在这里要推荐一个叫做 Server Auditor， 就是审计的这个 。

**Rio** [1:18:02]
服务器审计员 。

**吴涛** [1:18:03]
服务器审计软件 ， 对 ， 虽然名字叫这个名字 ，但它本质上只是一个呃 SSH 客户端加上一个嗯 Terminal emulator。

**Rio** [1:18:15]
啊 。

**吴涛** [1:18:16]
对 。

**Rio** [1:18:17]
嘿 ， 你还别说 ， 刚才我在这个 App Store 里面搜这个 SSH， 现在好像还蛮多这种这个终端仿真器的 ， 之前很少了 ， 基本就那两 ， 基本上就那两款 ISSH。

**吴涛** [1:18:28]
对 。

**Rio** [1:18:28]
刚才我讲那个 Prompt 可以用了 ， 现在还有好几款在上面都有 ， 还看起来截图还不错的样子 。

**吴涛** [1:18:35]
对 ， 说明这个东西的用例还是非常广泛的 ，而且 。

**Rio** [1:18:38]
救火的还是需要经常救火的 。

**吴涛** [1:18:42]
没错 ，而且其实也从另外一个侧面反映了这个 CLI 其实是一个生生不息的东西 ， 就哈哈哈 。 你知道早期的嗯 ， 苹果的开发哲学是就是 CLI 是一个注定要过时要扔进历史垃圾桶的东西 ， 所以在新的这个呃图形界面出来之后， 基本上是不可能有什么 Terminal emulator 这种东西出现在苹果机上 。

但是现在我们有了 OS/10， 然后呃赫然发现除了浏览器呃这个 ITerm2 基本上是一个我一定会开的程序 ， 就还挺 。

**Rio** [1:19:22]
就我我的那个 ITerm2 已经是这个就是系统启动默认启动的 。

**吴涛** [1:19:26]
对对对 ， 我也是 ， 就是开一个 Chrome 然后开一个 ITerm2。 哎 ， 我还有可以有一个小的 tip。

**Rio** [1:19:33]
OK。

**吴涛** [1:19:33]
就是 ITerm2 在启动之后， 呃 ， 它会给每一个 panel 嗯 ， 注意是每个 panel 给一个 environment variable。

**Rio** [1:19:45]
啊 ， 那个那个环境变量 。

**吴涛** [1:19:48]
对对对 ， 给会给一个环境变量 ， 然后这个环境变量根据你的 tab 和 panel 是不一样的 。 呃 ， 然后你就可以在嗯 ， 比如说你的 zshellrc 里面写说 ， 如果当前的这个叫做呃应该是叫 ITermSession。

**Rio** [1:20:04]
嗯哼 。

**吴涛** [1:20:05]
如果当前的 ITermSession 是比如说呃 Windows0、tab0、panel0， 那它就是第一个被启动的啊 。

**Rio** [1:20:17]
对 。

**吴涛** [1:20:17]
Pane， 然后我可以在这个 pane 里面跑一个什么特定的软件 。

**Rio** [1:20:20]
启动都软件都启动好 ， 就里面的命令行都启动好了 。

**吴涛** [1:20:24]
对 ， 我现在就是一上来呃开了 ITerm 之后， 如果我新开一个 tab， 这个新的 tab 将会是 w0t1。

**Rio** [1:20:34]
嗯哼 。

**吴涛** [1:20:34]
然后在这里面我会开 iPython。

**Rio** [1:20:38]
对 ， 就是里面各种就是 layout 和这个里面的程序都启动好了 ， 你开机启动就是默认跟你关机的时候是一样的 。

**吴涛** [1:20:46]
对 ， 这个基本上是 。

**Rio** [1:20:48]
太黑了你这个 。

**吴涛** [1:20:50]
哈哈哈哈 。

**Rio** [1:20:52]
是不是有开的 Tmax 到你们那个服务器上面的 ？

**吴涛** [1:20:56]
没有没有 ， 我是这是家里的电脑 。

**Rio** [1:20:58]
啊 ，OK。

**吴涛** [1:20:59]
对 。

**Rio** [1:21:00]
太 。

**吴涛** [1:21:01]
算是一个小窍门吧 ， 介绍给大家 。

**Rio** [1:21:02]
对对对 ， 这个不错 ， 这个学习了可以有大家可以试一下 。

**吴涛** [1:21:06]
OK。

**Rio** [1:21:08]
呃 ，Android 上面有什么呢 ？

**吴涛** [1:21:11]
安卓上面你你用安卓吗 ？

**Rio** [1:21:13]
我不用啊 ，但是你不是用吗 ？

**吴涛** [1:21:14]
我我现在就是偶尔用一下， 就是还没到那个程度 。

**Rio** [1:21:19]
那你有装什么 Terminal emulator 吗 ？ 完全没有 。

**吴涛** [1:21:22]
没有 ， 对 ， 我其实平时很少用它 。

**Rio** [1:21:25]
好吧 ， 那就欢迎读各位用安卓的读者来听 。

**吴涛** [1:21:29]
就如果你用安卓也也用那个呃那个 Terminal 登录到远程服务器救火的 ， 你一定知道有什么是比较好使的 。

**Rio** [1:21:37]
对 。

**吴涛** [1:21:38]
你说安卓上会不会像 。

**Rio** [1:21:39]
推荐给我们 。

**吴涛** [1:21:40]
会不会像那个那个 Linux 上面一样 ，有有大概 。

**Rio** [1:21:43]
百花齐放 。

**吴涛** [1:21:44]
二三十种吧 ， 大概肯定有 。

**Rio** [1:21:46]
哈哈 ， 对 。 OK， 那么上期的这个补补遗环节 ， 我们就先告一段落了哈 。

**吴涛** [1:21:55]
对 ， 算是本期的一个主题吧 。

**Rio** [1:21:59]
就 。

**吴涛** [1:22:00]
好吧 。

**Rio** [1:22:00]
本期其实没有什么主题 ， 只是想要做一个 follow up， 然后聊聊新闻的 ，但是这一个 follow up 就做了一个多小时 ，也还不错 。

**吴涛** [1:22:08]
行 ， 我们现在开始聊新闻 。

### VS Code 开源

**Rio** [1:22:09]
哈哈 ， 好 。

**吴涛** [1:22:10]
觉得现在就是新闻环节 。

**Rio** [1:22:12]
对 ， 对 。 呃 ， 看插播新闻联播那个那个开场曲 ， 自己脑补一下 。

**吴涛** [1:22:19]
嗯哼 。

**Rio** [1:22:19]
哎 ， 你说那个那个曲子有有你有版权吗 ？

**吴涛** [1:22:23]
肯定有啊 。

**Rio** [1:22:24]
好吧 ，有版权就算了 ， 没版权 。

**吴涛** [1:22:26]
有没有 60 年 ？ 没有 。 哎 ， 中国的版权追溯是多少年 ？

**Rio** [1:22:30]
应该也是一样啊 。 不 ， 这个你不知道那个人是挂没挂 ， 对吧 ？ 这个版权持有者是谁 。

**吴涛** [1:22:35]
哦 ， 对 ， 没错 ， 说的没错 。

**Rio** [1:22:37]
这个很难讲 。 呃 ， 所以第一条新闻是什么 ？

**吴涛** [1:22:42]
第一条新闻是我们之前提到过的 Microsoft Code 啊 ，在上周正式开源了 。

**Rio** [1:22:50]
这个 Code 可能还是要解释一下， 就之前我们也讲过几次了 ，但如果你没听 ， 刚好没听到的话 ，Code 是微软基于那个 GitHub 发布的那个 Atom 做的一款代码编辑器 。

**吴涛** [1:23:03]
Electra。

**Rio** [1:23:03]
对 ，Electra 做的一款代码编辑器 ， 然后 Electra 大概是一个什么呢 ？ 大概是用就是 Web 的一些技术 ， 什么 HTML 啊 、JavaScript 啊 、CSS 啊来写这个客户端软件的一套黑微科技 。

对 ， 大概是这样 。 所以它 Code 这开源了是吧 ？

**吴涛** [1:23:22]
对 ， 全称应该叫做 Visual Studio Code。

**Rio** [1:23:25]
对 。

**吴涛** [1:23:25]
就它不是 Visual Studio，但是它挂了一个 Visual Studio 的名字 ， 它只是一个编辑器而已 。 呃 ， 只不过这个编辑器的功能非常强大 ， 可以 debug， 可以有各种各样的黑功能 ， 比如说你写一个呃 ， 你写一个 CSS， 呃 ， 你写一条 CSS。

**Rio** [1:23:44]
嗯哼 。

**吴涛** [1:23:44]
然后我们把鼠标挪上去 。

**Rio** [1:23:47]
嗯哼 。

**吴涛** [1:23:47]
啊 ， 它会呃给出一个这个 CSS 会选择出一个什么样的元素出来的一个 template。

**Rio** [1:23:54]
啊 ，OK。

**吴涛** [1:23:55]
就如果你比如说你写一个 div 呃 p 点啊 important。

**Rio** [1:24:03]
嗯哼 。

**吴涛** [1:24:03]
然后它就会给你 ， 然后慢慢鼠标挪挪上去 ， 它就会给出一个呃 p tag， 嵌套一个不 ， 呃 div tag， 嵌套一个 p tag， 然后这个 p tag 带一个呃 important class。

**Rio** [1:24:16]
啊 。

**吴涛** [1:24:17]
诸如此类 ， 这样非常逆天的实用的贴心的呃 improvement，但是我还是没有在用它 。

**Rio** [1:24:26]
OK。

**吴涛** [1:24:28]
哎 ， 我也不知道 ， 就是我打开它之后， 基本上编辑一点什么东西就 CPU 利用率就 99%， 然后风扇开始狂转 ， 基本上没有例外的时候 ， 到底是为什么呢 ？

**Rio** [1:24:40]
这个这跟那个什么 Electra 本身没关系吗 ？

**吴涛** [1:24:45]
应该就是因为这个吧 。 我觉得好像用 ITerm 也是这个症状 。

**Rio** [1:24:49]
对啊 ， 所以我觉得这个这个本来就是就是什么来着 ， 就这套技术本来就不是拿来这么玩的 ， 对吧 ？

不是拿来做这个桌面应用用的 ，但是我们把它 3 号把它拿来玩玩成这样了 ， 我觉得是很奇怪的 。

**吴涛** [1:25:02]
嗯 ， 说也是 。

**Rio** [1:25:04]
哎 ，不过说到这个插一句啊 ， 之前我见过一个人写过一个 ， 你说这个算 term 吗 ？ 也不算了 ， 就是他用网页做了一个能够 list 登录远程桌面 ， 然后里面显示那些东西还挺搞笑的 。

比如说我们在命令行里面敲一个 list， 就是 list 这个命令啊 ，ls 这个命令的时候 ， 它会列出一堆这个就符号嘛 ， 表示文件名 、 目录之类的什么 ， 对吧 ？

它会 list 出一堆 icon 来 ， 然后可以点击进去 。

**吴涛** [1:25:33]
OK， 就是如果你用访问它网站的话 ， 你会有一个会会会遇到一个准 CLI 的界面是吧 ？

**Rio** [1:25:42]
就就是算是 GUI 和这个 CLI 的结合嘛 ， 还挺有意思的 ，但我忘了那个叫什么名字 ， 当时我还装过 ， 就还挺神奇的 。

**吴涛** [1:25:52]
好 。

**Rio** [1:25:53]
啊 ， 插一插个话哈 。 呃 ， 下一则新闻 ， 这个这个大新闻了 ， 这个比较重要 。WordPress 这个用用这个世界上最好的语言 PHP 写的 ， 占据着世界上 25% 网站的这个 CMS， 就是内容管理系统 ，他们最近就是那边革命了 ， 维新了 ，他们把那个管理界面用 Node， 就是用 JavaScript 和这个 Node， 就客户端服务器端用 Node 重写了一遍 ， 然后客户端是用 React 来实现的 。

### WordPress 革新

**吴涛** [1:26:28]
对 。 嗯 ， 请问 PHP 去哪了 ？

**Rio** [1:26:31]
呃 ，PHP 还是在保留 ， 保留着他们在 API 的那个层面 ， 就是它这个只是一个管理界面嘛 ， 管理界面就是你你玩 ， 你用过那个 WordPress 管理界面 ， 它其实也是一个网一个网网站嘛 ， 它可以去做这个 ， 比如说编编管理编辑帖子啊 ， 装插件那些东西吧 ， 然后它把这块部分用这个 Node 用 JavaScript 重写了 ， 然后然后服务端是用那个 Node.js 跟那个客户端呃对接 ， 然后那边再去调用

那个 ， 就是它的那个核心部分的 WordPress 还是 PHP 提供那个 API 去这这这上文章管理数据库什么的吧 。

**吴涛** [1:27:07]
等于它把 PHP 完全后台化了 ， 就把 PHP 当成一个 API platform framework。

**Rio** [1:27:14]
他们那个发布的这发布这个消息的时候 ，有有几篇那个博客文章还挺有意思的嘛 ，有一篇是讲他们为什么要这么做 ，但是我觉得很清楚的 ， 说先表扬 ， 先先这当然这这不能不能什么 ，不能自黑嘛 ，是吧 ？

还是说啊 ， 那个我们用这个世界上最好的语言 PHP 写 ， 用了那么多年， 十几年对吧 ？ 然后也做了很多这个贡献 ， 然后做了很多很复杂的功能 ， 我们这个有几千上成千上万的这个 contributor 贡献代码的人啊 ， 非常了不起 ，blah blah 啊 ，但是哈 ， 这都是这个什么都比较沉重的历史包袱啦 ， 阻碍我们 ， 阻碍我们这个拥抱新时代之类之类的说辞 ， 然后说

完了我们现在就重写一遍 。 哈哈 ， 所以很多人就很捉急嘛 ， 就是说啊 ， 我们这个那怎么办 ？

这个最世界上最好的语言要被抛弃了吗 ？ 你怎么看这件事 ？

**吴涛** [1:28:04]
不仅仅不仅仅如此吧 ，因为 PHP 实际上是很多很多人的饭碗 。

**Rio** [1:28:09]
啊 ， 对 。

**吴涛** [1:28:10]
But but sorry，WordPress 实际上是很多很多人的饭碗 。

**Rio** [1:28:13]
如果我没记错的话 ，Type is Beautiful 就是桂桂思 ， 桂桂 CTY 的主要工作也是维护一个 WordPress 站点嘛 。

**吴涛** [1:28:21]
虽然虽然 B 站是非盈利的 ，但是呃这个呃我的这个虚拟的饭碗也还是依赖于 WordPress。

**Rio** [1:28:33]
哈哈哈 。

**吴涛** [1:28:33]
所以于是这样一来就造成了一个问题 ， 就是我 WordPress WordPress 有多少个 plugin？ 有可能有几十万个 plugin。 嗯 ， 几十万也太多了 。

**Rio** [1:28:45]
嗯哼 。

**吴涛** [1:28:46]
我觉得保守估计 5 万可能有吧 。

**Rio** [1:28:48]
嗯哼 。

**吴涛** [1:28:48]
就是这么多 plugin，有很多都是商业的 ， 就是有很多是要付钱买的 。

**Rio** [1:28:54]
对 。

**吴涛** [1:28:54]
那呃假使有一天 WordPress 呃完全把 PHPditch 掉了啊 ， 这些人的这些人的这个财路就断了 ， 对吧 ？

**Rio** [1:29:06]
对 ， 我觉得这可能还不太现实啊 ， 比如刚才看它只是说把这个管理后台那个界面改写了一下， 像之前 。

**吴涛** [1:29:12]
对 ，但这是这无毫无疑问是一个非常重要的信号 。

**Rio** [1:29:16]
啊 ， 对 。

**吴涛** [1:29:17]
存在一个这个把它 ditch 掉的可能性 。

**Rio** [1:29:20]
哈哈哈 ， 这件事情至少已经被被拿上了这个议事日程了嘛 。

**吴涛** [1:29:25]
对 ，而且这个呃人们因此会产生的担心也是可以理解的 ， 我觉得 。

**Rio** [1:29:33]
嗯哼 ， 所以所以你担心吗 ？

**吴涛** [1:29:36]
我我不担心 ， 我又不靠它吃饭 。

**Rio** [1:29:38]
哈哈 ， 你的虚拟饭碗要没了哦 。

**吴涛** [1:29:41]
而且虚拟饭碗其实可以完全转化为之前不是谈聊过吗 ？ 可以完全转化为静态网页生成器啊 。 现在 Web 已经到了这样一个的状况 ， 就是如果你使用 ， 如果你所有的功能都使用 service 的话 ， 比如说你的图片使用 Flickr， 然后你的呃那个评论使用 Discuss， 然后你的什么头像呀 ， 乱七八糟的使用那个叫什么啊 ，Graph Graph。

**Rio** [1:30:09]
Graphicart。

**吴涛** [1:30:09]
叫什么 ？ 对 ， 那其实你是完全不需要在本地提供任何动态功能 。

**Rio** [1:30:15]
对 ， 对 ， 你就只需要提供几个静态页面就可以了 。

**吴涛** [1:30:18]
对 ， 那在这种情况之下， 我们使用一个复杂的 CMS 的呃唯一的动机就就没有了 ， 我觉得 。

**Rio** [1:30:30]
对对 ，因为之前我们有一期讲过这个静态网站生成器 ， 它之于这个像 WordPress 这种这种动态的这种这种 CMS 的一个好处 ， 就是它性能非常好 ，也不不不用怎么维护嘛 ， 基本对吧 ？

**吴涛** [1:30:44]
对 。

**Rio** [1:30:44]
你把网站发上去就不用管 ，不像这个经常很多这种 ，因为很多人架博客 ， 个人博客会用这个 WordPress 来写嘛 ， 然后这个 WordPress 如果你默认就安装 ，也不做什么优化的话 ， 它的性能是非常糟糕的嘛 。

那经常会发现一个现象 ， 就是我们比如常看什么 Hacker News 啊 ，Reddit 啊 ， 或者是以前更老的什么 Slashdot 啊这种网站 ， 你上去一个这个头条吧 ， 前十的话 ， 那个网站你点过去发现哎 ， 怎么打不开 ， 你发现你知道啊 ，WordPress 挂掉了 ，因为受受不了这么多的这个请求过来嘛 。

**吴涛** [1:31:18]
对 。

**Rio** [1:31:19]
啊 ， 所以今天网站没有这个问题啊 ，因为你说服务化之后也基本身对这个内容动态化的要求也比较低了 ， 所以这也是一个 。

**吴涛** [1:31:27]
对 。

**Rio** [1:31:28]
呃大的一个趋势吧 ，而且当然对安全性要求也 。

**吴涛** [1:31:31]
对 ， 动态网站很一方面是安全性 ， 另一方面维护性也也是一个问题 。 就你这你看从工程学的角度类比 ， 就不会动的东西是不会坏的 。

你的如一个什么元件里面没有磨损嘛 ， 可以对可以移动的东西非常多 ， 那它就很容易坏 。 比如说发电机呃是很容易发坏的 ， 对吧 ？

但是那个叫什么 ， 就是使用放射性的那个电池 ， 就是直接把放射性 。

**Rio** [1:31:58]
啊 ， 核电池 。

**吴涛** [1:32:01]
核核光核电池吗 ？

**Rio** [1:32:04]
应该叫核电池 。

**吴涛** [1:32:06]
对 ， 它里面没有动的部件 ， 对吧 ？ 所以它才能被这放在什么那个哦 ， 什么 Voyager 探测器上面 ， 当做整个探测器的呃电电路来源 ，因为它不会坏 ， 它根本就不可能坏啊 。

**Rio** [1:32:21]
OK。

**吴涛** [1:32:21]
那但其实网站也是一样 ， 如果你写一个程序里面根本没有需要动起来的部分 ， 那就维护和出错的可能性都是非常非常低的 。

**Rio** [1:32:33]
对 ， 安全性其实这个问题我们还其实得深究一下 ，因为据我所知 ，WordPress 代码写的好像质量不是太好 。

**吴涛** [1:32:42]
嗯 ， 还是在 P 在所有的 PHP 代码库里面算是不错的 。

**Rio** [1:32:46]
你要求好低啊 。

**吴涛** [1:32:47]
哈哈哈 ，anyway 啊 。

**Rio** [1:32:50]
我们都已经 Load 到 PHP 了 ， 你还要干嘛 ？

**吴涛** [1:32:52]
对啊 ， 当然 PHP 本身的安全性也比较比较糟糕嘛 ， 哈 ， 这个是一个客观存在的事实 。

**Rio** [1:32:59]
而且其实 PHP 和 WordPress 零队都出来过很多次嘛 。

**吴涛** [1:33:05]
他们应该是每天都有一大把吧 。

**Rio** [1:33:08]
对 ， 然后很多时候就有什么一堆 WordPress 网站又被攻陷了 ， 这种新闻出现 。

**吴涛** [1:33:14]
对对对 ， 所以如果能够把这个事情也是当当年那个 AppleFlaws， 我们从那个 MovableType 切过去 ， 当时也是选择 WordPress 嘛 ， 后来实在受不了了 ， 把它做成了一个静态化的网页 。

**Rio** [1:33:26]
哎 ，IT 公论的最新版 blog 不也是在 WordPress 上吗 ？

**吴涛** [1:33:32]
啊 ， 对 ， 那个是用他们那个他们那个 host 的服务嘛 ，但是因为对 ，因为那个没空去搞 ， 然后就用一个现成的方案先用着呗 ，但是也有很多问题 ，以后再想办法慢慢改吧 。

**Rio** [1:33:43]
OK， 所以它有朝一日还是会变成静态网页生成器的 。

**吴涛** [1:33:47]
嗯 ， 这个再说吧 ，不知道 。

**Rio** [1:33:50]
哈哈哈 ， 主要是因为那个是 host 的 ， 我也不用我们去考虑它的安全维护的问题嘛 ， 所以就还可以忍 。

**吴涛** [1:33:58]
好吧 。

**Rio** [1:33:59]
嗯嗯 ， 下一则新闻 ， 最后一则新闻 。

**吴涛** [1:34:04]
下一则新闻是 Raspberry Pi 出了一个新的型号 ， 叫做 Raspberry Pi Zero， 然后它的售价是 。

### 树莓派 Zero

**Rio** [1:34:13]
5 美元 。

**吴涛** [1:34:13]
对 ，5 美元 。

**Rio** [1:34:15]
五六三 。

**吴涛** [1:34:16]
型号是 0 啊 。

**Rio** [1:34:17]
不到 40 块钱人民币嘛 。

**吴涛** [1:34:19]
对 ， 一个不到 40 块钱人民币的全功能的计算机 。

**Rio** [1:34:23]
不是 ， 它这个起名叫 0 还是有点讲究 ，他们不是有个什么杂志吗 ， 叫做 Magpie 嘛 。

**吴涛** [1:34:29]
对 。

**Rio** [1:34:29]
然后你订阅那个杂志 ， 然后这期你就会免费获得一个这个这个 Zero， 就免等于是免费了嘛 ， 对吧 ？

**吴涛** [1:34:37]
OK。

**Rio** [1:34:38]
然后这个就为什么你买杂志会免费获得一个呢 ？ 它是直接把那个 ，因为它很小很薄嘛 ， 它只把那个做到直接贴在杂杂志里面 ， 就让我想起以前订那些什么就 90 年代末了 ，2000 年初的时候订那个什么计算机之类的杂志 ， 它里面送一个光盘嘛 ， 对吧 ？

**吴涛** [1:34:58]
对 。

**Rio** [1:34:58]
有点那种感觉 。

**吴涛** [1:35:00]
没错 ， 就是我记得以前大众软件还可以邮购邮购 3.5 寸版 。

**Rio** [1:35:05]
啊 ，是吗 ？ 那个 。

**吴涛** [1:35:07]
对 ， 那个时代 。

**Rio** [1:35:08]
现在科技已经过了这么十几年了哈 ， 十几二十年 。

**吴涛** [1:35:12]
没错 。

**Rio** [1:35:13]
科技进步到现在杂志里面直接送你一台电脑了 。

**吴涛** [1:35:17]
没错 ，而且这台电脑要比也就 20 年， 嗯 ，20 年太多了 ，也就 15 年前的电脑更加强劲 。 我 15 年前我可用不上什么呃 1GHz 的 CPU 和和 512 兆的内存 ， 虽然硬盘是没有的 ， 就是这个 Zero 上面只有一个呃 MicroSD 的插口 。

**Rio** [1:35:40]
嗯哼 。

**吴涛** [1:35:41]
但是现在的 MicroSD 多便宜啊 ， 对 ， 对 ， 就是以以前的 。

**Rio** [1:35:47]
这果然是德国人，Micro。

**吴涛** [1:35:50]
哦 ，Micro，OK。

**Rio** [1:35:52]
哈哈哈 。

**吴涛** [1:35:53]
Micro，MicroSD。

**Rio** [1:35:54]
哈哈哈 ， 标准的德式发音 。

**吴涛** [1:35:57]
呀 。

**Rio** [1:35:59]
啊 ， 所以这个这个 Zero 它的性能是怎么样子的 ？ 它是一个博通吧 ，Broadcom BCM2835 的处理器 ， 对吧 ？

**吴涛** [1:36:08]
对 ，其实还是比较 。

**Rio** [1:36:11]
它其实比第一代的那个 Pi 要好的 。

**吴涛** [1:36:13]
对 ，其实还是比较强劲的 ， 就它没有那么没有它的价格那么 。

**Rio** [1:36:19]
一 G 的主频 ， 然后是这个 ARM11 的这个指令集 。ARM11 叫做什么 ？ 是 ARMv6， 对吧 ？

**吴涛** [1:36:26]
ARMv6 应该是使用 ARM，ARM11 Core 应该是 。

**Rio** [1:36:29]
ARM11 Core 使用 ARMv6 的指令集 。

**吴涛** [1:36:31]
对对对 ， 这个指令集 。

**Rio** [1:36:33]
这一套命名真是让人绕 。

**吴涛** [1:36:37]
搞不清楚是吧 ？

**Rio** [1:36:38]
对 ， 所以问你个问题 ， 那 A52 和 A73 有什么区别 ？A53 和 A72 有什么区别 ？ 哪个快 ？

**吴涛** [1:36:44]
无可分工 ， 无可分工 。

**Rio** [1:36:46]
哈哈哈 。 呃 ， 这个可能有个问题 ， 就是说你看说那个很多那个 Linux 发行版 ， 它都不支持这个 ARMv6 指令集了嘛 ，因为比较老了 ， 现在都支持这个新的像 ARMv7， 你可以用这个像安卓那些嘛 ， 对吧 ？

**吴涛** [1:37:01]
嗯 。

**Rio** [1:37:02]
啊 ， 所以他们用这个可能还是比较那个过时了 。 然后 1GHz 的主频就还完 ， 这个性能据说是比第一代的 Raspberry Pi 快 40%，也不知道是不是怎么测出来的 。

**吴涛** [1:37:17]
不知道是量哪个 ，以哪个指数量出来的 。

**Rio** [1:37:21]
对 ， 然后内存是 510， 就半个 G 的这个就是低功耗 DDR2 的这个那个那个内存也是 。

**吴涛** [1:37:29]
对 。

**Rio** [1:37:29]
是应该是芯片的那个在里面的吧 ？ 它我看到只有一块芯片 。

**吴涛** [1:37:33]
On the board。

**Rio** [1:37:34]
对 ，OK。 然后有一个这个 MicroSD 卡 ， 一个这个微型的这个 SD 卡插槽 ， 嗯 ， 做它的一个存储设备 。 然后有一个这个 Mini HDMI， 就是微 。

**吴涛** [1:37:47]
为什么 Mini 要念 Mini，而 Micro 要念 Micro 呢 ？

**Rio** [1:37:52]
哈哈哈 ， 这有些不讲逻辑的英国人啊 。

**吴涛** [1:37:56]
没错没错 ， 这些被被法国人统治的英国人。

**Rio** [1:38:00]
我还是念用德语念法 ，Micro 啊 ， 这个 Mini HDMI， 呃 ，HDMI，HDME。

**吴涛** [1:38:10]
啊 ，HDME。

**Rio** [1:38:11]
HDME， 从开始念德语的发音 。 呃 ， 然后这个可以转换 ， 用一个转接头转换成普通的这个 HDME。

**吴涛** [1:38:23]
对 。

**Rio** [1:38:23]
然后你可以接电视 ， 或者是那种带这个这个这个 HDME 的这个这个显示器 。

**吴涛** [1:38:30]
好乱哦 。

**Rio** [1:38:32]
它是支持这个 1080P 的这个这个分辨率的 ， 就还做一个正常的高分屏 ， 哎 ，不是高分屏 ， 就普通那种 ， 这是高分屏吧 ， 全高清屏 。

**吴涛** [1:38:43]
1080P 是 HD Ready 吧 ？ 哎 ，wait，wait a second。

**Rio** [1:38:47]
什么玩意 ？

**吴涛** [1:38:48]
Full，Full HD 是 。

**Rio** [1:38:50]
就是 1080P 吗 ？

**吴涛** [1:38:51]
Full HD 是 1080P 啊 。

**Rio** [1:38:52]
对 ，HD 是 720P 嘛 。

**吴涛** [1:38:54]
OK，OK。

**Rio** [1:38:55]
对 ， 然后它还有一个这个 Micro USB 用于这个供电和数据 ， 这个其实我就有一个问题了啊 。 它还有一个叫 40 帧的这个 GPIO 口 ， 就是 GPIO 是 General Purpose I/O， 对吧 ？

**吴涛** [1:39:07]
General Purpose I/O。

**Rio** [1:39:08]
就是那个这个中文叫什么头来着 ？ 这个叫什么针脚吧 ？

**吴涛** [1:39:13]
GPIO。

**Rio** [1:39:15]
我我不知道中文叫什么 。

**吴涛** [1:39:16]
通用型输出输入输出 。

**Rio** [1:39:20]
OK， 这个名字也太长了吧 。

**吴涛** [1:39:22]
我觉得肯定有个俗名的 。

**Rio** [1:39:23]
就我记得是叫真什么什么针脚的 。Anyway， 然后它还有一个没有接口的那个叫做 Composite Video Header， 就是这个很那些老电视上面有用哈 ， 就是那种叫什么来着 ，有什么分量信号吧 ， 应该是是不是叫这个 ？

哎 ，不对 ，不是分量信号 ，Composite 这个叫符合视频信号 。

**吴涛** [1:39:45]
我天 ， 这么复杂的术语你都记得 ， 算了吧 。

**Rio** [1:39:49]
对 ，但这个就很小啊 ， 这个它应该看起来比那个信用卡好像还要小一半吧 。

**吴涛** [1:39:54]
它比 5 美元的钞票要小 。

**Rio** [1:39:56]
我没想到可以可以装至少横过来 ， 我估计至少能够装四五个吧 。 然后它这个这个这个尺寸是 65 毫米乘以 33 毫米乘以 5 毫米厚 。

**吴涛** [1:40:10]
对 。

**Rio** [1:40:10]
就其实非常非常小巧的一个东西 。

**吴涛** [1:40:12]
65 毫米 ， 对 ，是就比那个小版的 Resident Note 长一点点 。

**Rio** [1:40:17]
哇 ， 你记得这么清楚 。

**吴涛** [1:40:18]
哈哈哈 ，因为 Resident Note 只有两个版本嘛 ， 一个是 6 毫米的 ，不对 ， 一个是 6 厘米的 ， 一个是 10 厘米的 。

**Rio** [1:40:24]
对 ， 所以所以我有一个问题啊 ， 就这个 5 美元的这个 Zero， 它的网络怎么接啊 ？

**吴涛** [1:40:32]
对 ， 这是一个很好的问题 。

**Rio** [1:40:34]
因为你想你这么想吧 ， 就这么一个电脑哈 ， 它自己处理能力 ， 它也不算弱了 ， 就按可能 10 年前的标准 ， 它还是一个挺好的一个电脑 ，而且你可以接一个这个什么做那个呃媒体播放器是没有问题的嘛 。

**吴涛** [1:40:52]
对 ， 我觉得有可能

。 嗯 。

**Rio** [1:40:56]
但我就好奇它这个网络怎么解 ， 怎么一个解决方案 。

**吴涛** [1:41:00]
它也有可能会像那个 Arduino 一样出一些 shell， 或者是 。

**Rio** [1:41:07]
叠叠加的板是吧 ？

**吴涛** [1:41:09]
对 ， 或者是通过 GPIO 连一个蓝牙 ， 还是 。

**Rio** [1:41:14]
这个有蓝牙没有吧 ？ 哦 ， 你说自己再接一个是吧 ？

**吴涛** [1:41:17]
对 ， 自己再接一个蓝牙 。

**Rio** [1:41:19]
那倒是可以的 ， 比如它有那个 USB 的有个口嘛 ， 你加个这个 USB 的网卡 ， 估计也也也能凑 ，但这样的话就没有这个体积优势了嘛 ， 就就 。

**吴涛** [1:41:29]
嗯 ， 我觉得它的应用场景也许还是一些不需 ， 可是现在有什么智能家电 ， 智智能家就是可以逃开网络了是吧 ？

**Rio** [1:41:38]
对 ， 我觉得这没有网络可能是一个很大的一个硬伤 ，因为现在没有网络的话 ， 真的是没有办法玩下去 。

**吴涛** [1:41:45]
对 。

**Rio** [1:41:46]
不过如果它单独做一个这个什么这种呃 ， 哎 ， 这你仔细想想 ， 现在哪些场景是不需要联网的电脑 ？

我还真的一下想不出来了 。

**吴涛** [1:41:59]
基本上没有 ， 除非是一个就是什么监控 。

**Rio** [1:42:03]
监控都要联网啊 ， 监控你要把信号开窗帘 。OK， 啊 ， 就是那种什么呃 ， 通过环境光那种自动控制器的这种东西 。

**吴涛** [1:42:12]
对 ， 就是一个 reactor 那种反应器的东西 。

**Rio** [1:42:15]
就单边机的那些场合它可以用了嘛 ， 对吧 ？ 不过它这个确实便宜 ， 它才卖 5 美元 ， 一个 Arduino 最便宜也得两三美元吧 ， 应该批量买的话 。

**吴涛** [1:42:24]
对 。

**Rio** [1:42:25]
所以它这个已经可以逼近这个 Arduino 的这个价格成成本优势了嘛 。

**吴涛** [1:42:30]
嗯 ， 那反过来 Arduino 其实也有一些比较采用一些比较强力的处理器的版本 。

**Rio** [1:42:36]
OK。

**吴涛** [1:42:37]
嗯 ， 对 ， 两者渐渐在构成直接竞争吧 ， 应该说 。

**Rio** [1:42:43]
但是这个还是就是上次我们聊到这个东西 ， 就是耗电量可能两者还是比较显著的 ，但跟这个性能有直接关系啊 ， 耗电量和性能嘛 。

**吴涛** [1:42:51]
这个玩意应该是只靠一个嗯 ， 电池是驱动不了多久 。

**Rio** [1:42:58]
就一天吧 ， 估计一两天吧 ，因为那个什么现在给那个手机充电那个电池不是很大一坨吗 ？ 它这个动力量估计跑个一两天问题不大 ，但毕竟不是像 Arduino 那种跑一两周 、 两三个月这种情况嘛 。

**吴涛** [1:43:12]
没错 。

**Rio** [1:43:13]
啊 ， 所以你想买一个这个来玩一下吗 ？

**吴涛** [1:43:17]
啊 ， 可能会买吧 ，但 。

**Rio** [1:43:20]
你这么便宜是吧 ？ 老板来一打 。

**吴涛** [1:43:24]
首先得想到要干嘛 ，因为我其实最近在想说要不要做一个做一个什么项目

，但是目前还没想好具体要做什么 ，因为我刚刚完成了那个在线课程 ， 所以 。

**Rio** [1:43:41]
啊 ， 上完了是吧 ？ 那个课 。

**吴涛** [1:43:42]
对 ，而且拿到了 certificate 就嘿嘿 。

**Rio** [1:43:46]
拿到了一个什么 ， 哎 ， 你你是上哪上哪家来着 ？

**吴涛** [1:43:50]
杜克大学的那个 。

**Rio** [1:43:51]
Duke 是吧 ？ 你是上呃杜克大学这个成教学院结业证书 。

**吴涛** [1:43:57]
成教函授学院 。

**Rio** [1:43:58]
啊 ， 成教函授学院的结业证书 ， 恭喜恭喜 。

**吴涛** [1:44:01]
对 ， 没错 。

**Rio** [1:44:02]
还是不错的 。

**吴涛** [1:44:03]
总算有个文凭了 。

**Rio** [1:44:04]
哈哈哈 ， 好好艰辛 。

**吴涛** [1:44:09]
没错没错 ， 就想起了我爸 ， 我在我小时候 ， 我爸一手抱着我 ， 一手在上什么兰州大学的函授课程 ， 最后拿了个学士 。

**Rio** [1:44:20]
不错不错 ， 这个当年他们的精神还是非常非常厉害的 ， 我觉得 。

**吴涛** [1:44:26]
对 ， 嗯 ， 然后业余有点时间可以做点别的 。

**Rio** [1:44:30]
嗯哼 。 啊 ， 我看到它在网站上有一个有一套这个转接头 。

**吴涛** [1:44:36]
OK。

**Rio** [1:44:37]
还有一个 bundle， 就它有一个结合 ，有一个这个 Mini HDMI 转这个普通的 HDMI 的一个转接头 ，有一个这个 Micro USB 转普通 USB 的 5 口的转接头 ， 还有一个那个 40 帧的那个帧 GPIO 的针脚嘛 。

**吴涛** [1:44:53]
GPIO 头 ， 对 ， 那个它板上的那个针脚是没有焊的 ， 就是如果想用 GPIO 的话 ， 你还得把针插进去 。

**Rio** [1:44:59]
它就直接一个洞子嘛 ， 对 。

**吴涛** [1:45:01]
对 。

**Rio** [1:45:02]
啊 ， 所以这个还是挺有意思的 ， 就是我觉得现在哈 ， 我真的觉得就是做这个 maker 这个这个这个 ， 你想玩这个东西的话 ，其实现在小朋友好幸福啊 ，有这么多现成的方案可以自己折腾去搞 ， 对吧 ？

**吴涛** [1:45:16]
对 ， 我觉得 。

**Rio** [1:45:18]
不像我们当年有那个学习这个玩这个的冲动的时候 ， 没有这个东西可以玩 ， 然后也没有什么可以没有什么可以教 ， 感觉 。

**吴涛** [1:45:26]
对 ， 我觉得我们小时候玩的那些东西都特别的

， 呃 ， 机械 ， 就是比较偏土木机械那一块 。

**Rio** [1:45:35]
对 。

**吴涛** [1:45:36]
现在就可以玩一些比较电子的东西 。

**Rio** [1:45:38]
所以嘛 ， 赶快买一打 ，以后存起来给你儿子用 。

**吴涛** [1:45:42]
嗯 。

**Rio** [1:45:43]
或者女儿用 。

**吴涛** [1:45:44]
先跟女朋友商量一下 。

**Rio** [1:45:46]
哈哈 ， 你你买一打也就 60 刀嘛 。

**吴涛** [1:45:49]
嗯 ， 这玩意得先卖到德国来 。

**Rio** [1:45:53]
啊 ， 还不能买吗 ？ 现在 ？

**吴涛** [1:45:55]
我没看 ，但 Raspberry Pi 是美国 。

**Rio** [1:45:58]
啊 ， 对 ， 英国的 ，他们在英国 ， 就 Wales， 威尔士生产制造嘛 。

**吴涛** [1:46:02]
对 。

**Rio** [1:46:03]
它这个其实它的那个分销一直有点问题 ， 就是 。

**吴涛** [1:46:07]
没错 。

**Rio** [1:46:07]
就经常会发现发现这种比较 ， 就之前我买了就出现一个比较窘的情况嘛 ， 就它当时它卖那个 Raspberry Pi 1 还是 2 的时候 ， 它不是 25 美元一个吗 ？

还 35 美元一个 ，也挺便宜的是吧 ？ 我想买一个 ， 运费 35 美元 。

**吴涛** [1:46:22]
没错 ， 就是我觉得这他们的物流真的是太 。

**Rio** [1:46:25]
不 ， 这个也不能怪他们了 ， 这个毕竟不是一个非盈利的东西嘛 ， 就他也不可能说把这个价钱定的很高 ， 然后让那个经销商去帮他们囤货啊 。

**吴涛** [1:46:34]
说也是 。

**Rio** [1:46:34]
所以但是 。

**吴涛** [1:46:36]
Raspberry Pi 一开始是作为一个教育项目出现的 ， 所以天生就带缺了这个商业机 。

**Rio** [1:46:44]
不过它现在这个东西卖卖 5 美元啊 ， 这这一定会出现 ， 就之前已经有这类似的问题了 ， 就但现在你可能连国内买都会出现这个问题 ， 就发现 ， 哎 ， 运费好像都比它贵一些 。

**吴涛** [1:46:56]
有价物市 。

**Rio** [1:46:57]
OK， 就你只能 。

**吴涛** [1:46:58]
运费超过成本 。

**Rio** [1:46:59]
对 ， 你真的只能买一打才合算 。

**吴涛** [1:47:02]
OK， 说的没错 。

**Rio** [1:47:04]
对 ， 现在什么什么 ， 它的 Raspberry Pi 2 就是这这个最新那个 ， 就是不是最新 ， 就是性能最好那一款二代 ， 卖 35 刀嘛 ， 运费你在国外如果你买一个的话 ， 差不多也就是 35 刀了 。

**吴涛** [1:47:15]
哦 ，Raspberry Pi 还可以 ， 现在产能跟上了吧 ， 或者是就那个物流跟上了吧 。

**Rio** [1:47:20]
分销商比较齐嘛 。

**吴涛** [1:47:22]
呃 ，在德国是 38 块 5。

**Rio** [1:47:24]
嗯哼 。

**吴涛** [1:47:25]
包运费 。

**Rio** [1:47:26]
哎 ， 所以它其实它它出了这么几款之后， 它每一个都没有停是吧 ？ 就每一个都可以再还还可以继续购买的 。

**吴涛** [1:47:33]
应该是这样吧 。

**Rio** [1:47:34]
所以它到底现在一共有几个型号了 ？

**吴涛** [1:47:37]
Raspberry Pi 1 可能已经停产了 ， 我觉得 。

**Rio** [1:47:40]
就是最远最古老的那一代是吧 ？

**吴涛** [1:47:42]
然后 2 又有 Model A 和 Model B。

**Rio** [1:47:44]
哎 ，不对 ， 我它那个业野在卖哦 ，Model 就是就没有数字的那一款嘛 ，是 Raspberry Pi Model B、Model A 都还在卖啊 ，A+、B+ 都还在卖 。

**吴涛** [1:47:55]
在卖不一定还在产吧 ， 我觉得 。

**Rio** [1:47:57]
它在卖 ， 它肯定在产啊 ， 你说它一次产一一一百万个 。

**吴涛** [1:48:01]
对 ， 一个 batch， 然后再卖光就 。

**Rio** [1:48:03]
卖完卖光就没了是吧 ？ 也有可能 。 不过还是挺遗憾 ， 它上面有啊 ， 这个这个什么 ， 这个 Zero 上面有一个这个原生的这个网卡就好了 。

**吴涛** [1:48:13]
嗯 。

**Rio** [1:48:14]
我就可以实现我 。

**吴涛** [1:48:15]
上次我们单片机不是提到了一个非常便宜的带网卡的 ， 呃 ，是 Arduino 吧 ， 还是什么 ？

**Rio** [1:48:24]
呃 ， 应该不是 ， 应该是另外的一个什么 board，Bigo board 什么之类的 。

**吴涛** [1:48:29]
但你把那个买来 ， 然后把它接上不就好了吗 ？ 两个拼在一起也没有多大 。

**Rio** [1:48:36]
对 ， 嗯 ， 还有就是刚才讲那个问题 ， 现在很多那个 Linux 发行版 ， 它不支持 Arm Video 这种老旧的指令集了嘛 ， 啊 ， 就是软件支持上会是一个比较大的问题 。

**吴涛** [1:48:48]
对 。 嗯 ，但应该还是可以接上， 或者说它下一代 Zero Plus One 出来的时候就 。

**Rio** [1:48:58]
Hopefully。

**吴涛** [1:48:59]
就对 ， 可以解决 。

**Rio** [1:49:02]
好吧 ， 那今天节目差不多就到这里结束了 。

**吴涛** [1:49:06]
感谢收听 IPN Podcast， 网络起家的 IT 技术与娱乐节目 《 内核恐慌 》。 我们号称 hardcore，但是也没有干货 。 想听的人听 ，不想听的人就别听 。

您可以为本节目捐款 ， 捐款地址是 currentpanic.fm/donate。 捐款金额随意 ， 只要是 8 的正数倍就可以了 。 捐款不会给你带来什么 ，不捐也不会让你失去什么 。

我们的口号是 No Hard Feelings。 如果你有任何反馈 ， 可以发邮件到 currentpanic@ipn.li。 同时也欢迎你收听 IPN 旗下其他节目 《IT 公论 》《 未知道 》《 太一来了 》《 流星通信 》《History》《 硬影像 》《 无次元 》《 薄雾志 》 和 《 玄美 》。

我们下期再会 。

---

本节目库由 PodHood（https://podhood.com）提供支持——播客网站平台。
