在“编程与开发”的视觉盛宴里,有一条画风极其朴素的视频:没有炫酷动画,没有海量剪辑,只有一位白发教授坐在白板前,画了一根竖线,讲了十来分钟——它就是传奇程序员布莱恩·柯尼汉(Brian Kernighan)做客Computerphile的访谈《UNIX Pipeline》。柯尼汉是谁?K&R《C程序设计语言》的"K"、awk的"K"、与皮克合著《UNIX编程环境》的作者。这根他亲手参与推广的竖线——管道(pipe)——是过去五十多年里软件业最重要的一个字符:它让“只做一件事”的小工具像积木一样拼装,催生了整条Unix哲学,也悄悄预定了2026年AI编程代理时代最吃香的设计模式。本文把这条访谈的知识骨架逐层拆开,补齐它没时间讲的历史坐标与争议,让你看完等于看完视频,还多懂一层。
| 项目 | 内容 |
|---|---|
| 视频标题 | UNIX Pipeline(Unix管道),柯尼汉Computerphile访谈系列之一 |
| 频道 | Computerphile(英国诺丁汉大学背景的计算机科普频道) |
| 主讲人 | Brian Kernighan(普林斯顿大学教授、贝尔实验室资深成员、K&R与awk的共同缔造者) |
| 发布时间 | 2021年前后(据频道页面历史数据,未实时核验;同一系列另有《Where GREP Came From》等期,标题与期数以频道页面为准) |
| 时长 | 约10分钟白板访谈 |
| 热度 | 播放量在百万量级上下,为该访谈系列的热门一集(据频道页面历史数据,约数,未实时核验) |
数据与核验说明:本次发布环境未开放实时网络抓取权限,无法在成文时重新核验YouTube页面。以上视频信息与热度数据均来自公开资料的既有记载,数字为约数,可能存在偏差,请以频道页面实际显示为准。本篇属于“经典重读”选题——素材近景中,编程分类的头部样本(C语言课、Unicode、正则、Vim、并发、Git、数据库索引、比特币、光追、面向对象等)已在本站此前各轮中被逐条覆盖,故本轮选择一条角度完全不同、且在AI代理时代重新变得要紧的公认经典。所引文献均为真实发表物,关键主张均注明出处与年份。
这条访谈的叙事是典型的“大师讲古”:从一个问题讲起,讲到一次实现,最后落在一套哲学上。拆开来是六个层次。
管道的故事比Unix还早。道格·麦克罗伊(Doug McIlroy,当时在贝尔实验室)在1964年的一份内部备忘录里提出大意如此的设想:我们应该有办法像接花园水管一样,把程序一段一段串起来——当数据需要换一种方式加工时,直接“续接一段”即可,而不是每次都写一个从头到尾的新程序。这份备忘录被Unix史研究者反复引用,被认为是管道思想的最早书面记录(转引自里奇的回顾文章与麦克罗伊本人的多次口述)。
这个想法在当时的操作系统里没有土壤:主流批处理系统一次跑一个大作业,程序与程序之间没有“流水线”可言。它要等一个愿意为它造土壤的系统。
据丹尼斯·里奇在经典回顾《The Evolution of the UNIX Time-Sharing System》中的记载,麦克罗伊持续游说多年后,肯·汤普逊在1973年前后的Unix第三版里实现了管道:用户在命令行里敲一个竖线 |,操作系统就为两个程序接起一条单向字节流——左边程序的标准输出,直接成为右边程序的标准输入。配合输入输出重定向,shell从“启动程序的启动器”升级成了“拼接程序的胶水”。
柯尼汉在访谈里强调的实现要点,恰恰是它简单到令人发指:管道里流动的就是无结构的字节,不定义格式、不注册接口、不需要中间人。任何能读写标准输入输出的程序,天生就能和任何其他程序协作。
管道之所以能从“一个系统调用”长成“一种世界观”,靠的是麦克罗伊等人提炼、后来被埃里克·雷蒙德在《UNIX编程艺术》(2003)里整理成典的那套Unix哲学。访谈里柯尼汉着重讲了其中三条:
三条原则互相咬合:因为每个程序只做一件事,它才有资格把那一件事做到极致;因为接口是统一的文本流,三流小工具才能拼出千变万化的工作流。
在访谈系列的姊妹篇《Where GREP Came From》里,柯尼汉讲了全系列最出名的故事:同事想在《联邦党人文集》里查找特定句式,汤普逊一个晚上就写出了grep——名字来自ed编辑器的全局正则打印命令 g/re/p。这个小工具从此成为Unix世界的“牙刷”:每天用、离不开、没人注意它多重要。
而管道让grep的威力翻了几十倍:grep | sort | uniq -c | sort -rn | head 一行命令,就完成“筛选—排序—去重计数—再排序—取前几名”的完整分析流水线。每一段都平庸,串起来却能干活。柯尼汉自己参与的awk(1977,与Aho、Weinberger合作)也是为这条流水线补上“字段处理”这一环而生的。
访谈真正的知识内核,是“组合性”这个多数观众第一遍看漏的概念。对比两种扩展模式:面向功能的系统里,每新增一种需求都要造一个更大的新工具,能力按“加法”增长;而在管道世界里,每新增一个小工具,它立刻能和所有存量工具自由组合,能力按“乘法”增长。十个小工具就有上百种两两组合,这就是为什么Unix命令行工具箱五十年不换弹药、新工具(curl、jq、ripgrep、fzf)一出生就自带全家桶能力。
这条2021年的访谈在2026年看,几乎像一则预言。今天的编程代理(coding agent)干活的主战场恰恰是shell:抓日志、筛报错、数token、批量改文件,用的还是 grep | awk | sort 这套老手艺;业界给代理造的各类钩子与工作流,本质上也都是在问同一个问题——中间产物能不能是一段干净的、人和机器都能继续拼接的文本流。麦克罗伊1964年那句“接水管”,成了AI时代人机协作的接口隐喻。柯尼汉在访谈结尾那句轻描淡写的“这套想法用到现在”,在代理时代听来分量十足。
证据最硬的部分:管道的发明史有里奇、麦克罗伊、柯尼汉三方当事人的文字与口述互证,1973年落地、1974年成文、1978年成典的时间线清晰无争议。这是软件史上史料质量最好的段落之一。
需要打折的四处:
grep | awk 就开始出事故。微软的PowerShell(斯诺弗2002年《Monad宣言》、2006年发布)干脆让管道里流动的不再是文本而是对象,直接点名修正了这一代际缺陷;jq(2012年前后问世)则是Unix阵营对JSON时代的一次“补票”。历史证明竖线赢了,但赢得并不完美——这一点访谈里没有展开。grep ERROR app.log | sort | uniq -c | sort -rn | head 就够了。管道的学习曲线是所有编程技能里最陡峭下降的一条:十分钟上手,终身复利。flowchart TD
A[1964年备忘录<br/>程序要像水管串联] --> B[1973年汤普逊<br/>在Unix实现管道]
B --> C[原则一<br/>只做一件事做到极致]
B --> D[原则二<br/>文本流当通用接口]
B --> E[原则三<br/>为使用而写不为重写]
C --> F[grep一夜诞生<br/>小工具小而锋利]
D --> G[左输出即右输入<br/>进程零耦合]
E --> H[存量即资产<br/>新工具全家桶能力]
F --> I[组合性<br/>能力乘法增长]
G --> I
H --> I
I --> J[2010年代复活<br/>jq与ripgrep接棒]
J --> K[2026年新章<br/>AI代理靠文本流协作]
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
