![Unix Legendry(以及其他 *nix)](https://linux22.com/image/490930/Unix%20Legendry%EF%BC%88%E4%BB%A5%E5%8F%8A%E5%85%B6%E4%BB%96%20*nix%EF%BC%89.png)
最晦涩/最受赞同的答案将获得答案投票!
大多数 Unix 和类 Unix 系统都有“传统历史”,这些历史会随着每一代人而流传,因此新来者可以看到和理解系统中一些比较深奥的部分。就新管理员应该接触的深奥知识而言,哪些长期使用 *nix 的管理员为“UNIX”的“传奇”做出了贡献?
答案1
我个人最喜欢的是“500 英里电子邮件案例”
http://www.ibiblio.org/harris/500milemail.html
剧透
$ units
2411 units, 71 prefixes, 33 nonlinear units
You have: 3 millilightseconds
You want: miles
* 558.84719
/ 0.0017893979
答案2
对我来说,UNIX 传统中最令人惊奇的是 UNIX 基本上是由一个人编写的 - Ken Thompson 在贝尔实验室工作时。这里有一个有趣的描述:http://www.bell-labs.com/history/unix/
其中一些引言非常有价值:
“我给操作系统、shell、编辑器和汇编程序分别分配了一周时间来自我复制...”,汤普森解释道。
管道:
UNIX 的另一项创新是管道的开发,它使程序员能够将多个进程串联起来以获得特定的输出。
这并不容易。“说‘cat into grep into...’或‘who into cat into grep’很容易,”McIlroy 解释道。“但这些命令有所有这些附加参数;它们只是没有输入和输出参数,但它们有所有这些选项。”
尽管受阻,麦克罗伊并没有放弃这个想法。“在 1970 年至 1972 年期间,我时不时会说,‘做个类似的东西怎么样?’,然后我提出一个又一个的提案。有一天,我想出了一个与管道配合使用的 shell 语法,肯说,‘我要这么做!’”
“他厌倦了听这些东西,”麦克罗伊解释道。“他并没有完全按照我为管道系统调用所提议的那样去做。他发明了一个稍微好一点的,最后又改成了我们今天所用的样子。他确实用了我笨拙的语法。”
“汤普森发现文件参数与这种方案不相符,于是他当晚就修改了所有程序。我不知道他是怎么做到的……第二天早上,我们就看到了一堆乱七八糟的单行代码。”
“他把管道放入 UNIX,把这种符号放入 shell,这一切都是在一夜之间完成的”麦克埃罗伊惊奇地说道。
从技术上来说,这一成就非常出色,但当汤普森创建管道时,他还为 UNIX 注入了其他东西——一种哲学。
正如麦克罗伊所描述的那样,“每个人开始提出的理念是‘编写只做一件事的程序,并做好它。编写程序以协同工作。编写处理文本流的程序,因为那是一个通用接口。’”
答案3
tar 永远不会因错误而退出。永远不会。小心。
来源:UNIX-HATERS 手册,第 31 页(http://simson.net/ref/ugh.pdf)抱歉,没有HTML版本。
这本书恰好充满了其他传奇故事,而且大部分内容仍然适用。在我使用 Linux 的这些年里,我遇到过很多这样的问题……但谢天谢地,没有一个问题需要我重新安装整个驱动器。令我惊讶的是,这本书的大部分内容仍然准确,尽管它是 15 年前写的。
现在说说我自己的 tar 恐怖故事,几乎和 UNIX-HATERS 的故事一模一样。同样的 bug,14 年过去了!
我想让我的无线设备在 eeepc 上工作,为此我必须下载驱动程序、编译并安装它。我下载了所有需要的东西,然后出发去图书馆工作。中途,我意识到是的,我确实需要互联网来做某事,所以我去安装。
tar -cvf somewirelessdriver.tar ./importantcompilerfiles
哦,糟糕。我刚才输入的是不是 -cvf 而不是 -xvf?
是的。
tar 是否只是默默地创建了一个随机垃圾的 tar 文件,并覆盖了我可用的文件?
是的。太好了。我想我还是不用上网吧。幸好文件不是几 GB 的……哦,等等,那是一周前的事了。
说实话,这些神秘的命令行参数和 Linux 程序到底是怎么回事?当对具有适当扩展名的文件进行调用时,它们难道不能自动执行基本操作吗?为什么我需要告诉 tar 如何处理 ARCHIVE?它是否认为我可能想再次将其存档?
我觉得我终于明白了“焦油坑”是什么意思了。这是文件消亡的地方。