Grep 是如何得名的? Grep创作背后的历史

如果您是 Linux 用户,您可能遇到过名称奇怪的 Grep 实用程序来搜索文件中的模式或命令的管道输出。 您可能想知道该程序的名称是从哪里来的。

本文将解释 grep 的起源以及一些关于 Grep 在现代 Linux 文化中的作用的简要信息。

Grep 在贝尔实验室的起源

与许多其他现代 Linux 工具一样,Grep 是 1970 年代贝尔实验室开发的原始 Unix 系统的后代。

当时贝尔实验室的计算机科学家 Brian Kernighan 现在在普林斯顿大学任教,他在 Computerphile 视频中解释了 Grep 的起源。

Kernighan 的同事 Ken Thompson 是 Unix 的发明者之一,他正在帮助一位同事对 联邦党人文件,以化名发表,以确定作者身份。

在 1970 年代初期,贝尔实验室的 Unix 程序员有一台 Digital PDP-11,64 KB 被认为是奢侈的。 他们还使用慢 电传打字机,它利用行编辑器来编辑文本。 Ken 已经编写了自己的程序,该程序允许使用正则表达式进行文本搜索。

Thompson 将这些文本搜索功能打包到他自己的实用程序中。 因为这个实用程序全局搜索正则表达式的行并打印它们,所以它变成了“G大叶 R常规的 表达 rint”或简单的 Grep。

Kernighan 还于 2019 年在 VCF East 采访了 Ken Thompson,而 Thompson 关于 grep 创作的有趣轶事. Thompson 的老板 Doug McIlroy 向他询问是否需要文本搜索实用程序。 Thompson 承诺通宵工作,但实际上只花了大约一个小时修复错误,因为他已经编写了 Grep 并且一直在私下使用它。 第二天,他把它交给了麦克罗伊。 剩下的就是历史。

Grep 在当今 Linux 文化中的作用

即使 Linux 不使用任何 Unix 代码,Grep 对现代 Linux 文化仍然很重要。 GNU grep 是最常用的 Grep 版本,因为它几乎预装在每个 Linux 发行版中。

您可以使用 Grep 在文件中搜索文本模式:

grep pattern file

或者您可以在管道输出中搜索模式:

ps | grep '.*sh' 

ps 命令打印系统上当前正在运行的所有进程。 Grep 将在输出中搜索后跟的行 ,或实际运行 shell。

由于电子文档的规范化,程序员更喜欢使用允许他们在文本文件中搜索模式的实用程序。 他们甚至通过幽默地说“你不能 grep 死树”来提及印刷文档中缺乏搜索。 他们还将物理上寻找事物的行为称为 视觉 grep 或者 vgrep. 这显示了 Grep 在现代 Linux 和整个计算机科学文化中的渗透程度。

出去玩吧!

现在您知道了 Grep 名称的来源,您将能够在扩展 Linux 知识的同时自行使用 Grep 一些很棒的东西。

Grep 是帮助您熟悉 Linux 的众多命令之一。 如果您决定使用 Linux 作为您的主要操作系统,那么学习新命令应该是最重要的。