当前位置:首页>Linux>Linux 里的 cat 是猫吗?

Linux 里的 cat 是猫吗?

  • 2026-09-05 16:03:00
Linux 里的 cat 是猫吗?
转眼我接触 Linux 已经两个月了,一直在用的命令,却从来没有深究过。
比如 cat 是猫吗?
今天得空就研究了一下,发现实际上它和动物没有任何关系。
cat 这个命令来源于英文单词 concatenate,意思是“连接”。
在 Unix/Linux 里,它的作用是把文件内容读出来输出到终端,或者把多个文件拼接在一起。
因此,从功能上来说,它更像一个数据搬运工,而不是猫。
不过由于名字刚好是猫,久而久之就成了程序员之间的一个小梗。
有趣的是,这种玩梗式命名在 Unix 世界里并不少见。
比如还有一个命令叫 tac,其实就是把 cat 倒过来写。
它的功能也非常对称:
cat 是从上到下输出文件内容,tac 是从下到上倒序输出。
一个是正着看,一个是反着看,连名字都体现了这种关系。
这种设计体现了 Unix 的一个核心理念:
工具要简单、直接,同时尽量保持一致性。
除了 cat 和 tac,还有很多类似风格的命令,比如 head 和 tail,一个查看文件开头几行,一个查看文件结尾几行。
在常用命令中,grep 的名字格外奇怪。
它既不像一个单词,也看不出明显的含义。
实际上,grep 的来源可以追溯到早期的 Unix 编辑器 ed。
在这个编辑器里,有一个命令写作 g/re/p。
意思是:
在全局范围内查找符合某个正则表达式的内容,并把它们打印出来。
后来,这个功能被单独做成了一个工具,名字就直接沿用了这个缩写,变成了 grep。
所以,grep 并不是一个人为设计的单词,而是历史遗留下来的命令碎片。
类似的命名方式还有 awk。
这个名字并不是功能描述,而是来自三位作者的姓氏首字母:
Alfred Aho、Peter Weinberger 和 Brian Kernighan
这种命名方式在今天看来有点随意,但在当时却很常见。
再比如 sed,其实是 stream editor(流编辑器)的缩写,强调它是对数据流进行处理的工具。
这些看似奇怪的名字,记录了 Unix 的发展历史,也体现了一种独特的工程文化:
不追求花哨,只追求实用,同时也不忘留下一点幽默感。
扩展阅读

Linux 免密登录简明教程
服务器断联后恢复,怎么知道是啥时候断的?
AI 最大的问题不是替你做,而是让你不想做
Tailscale 简明安装/登录/使用教程
胖子百科公众号,即日起开始接投稿,请直接发送稿件到公众号菜单联系方式中的电子邮箱,文章发布后7日内的收入将全部打给投稿人。

最新文章

随机文章