只是为了好玩......我倾向于通过一整天寻找偶然的谜题来保持警觉。我喜欢linux的一个方面是它所体现的无与伦比的聪明才智,从优雅的简洁到手册页中的评论。
您是否可以阐明规定新命令命名方式的不成文规则,或提供常见命令背后的历史记录?库存Linux发行版缺少什么基本命令 - 它会做什么,你会命名它?
示例:
cat
用于 catenate 文件。在某些发行版中,它已被dog
取代。 ssh
提供了一个安全shell ,但它只是 begs 发音为“ssssshhhhh!”奖金拼图:我们的长期客户之一是MCI,他们的送货地址是1101 Summit Ave.现在,MCI是一家大公司,可能已经选择了任何地址......那么为什么1101呢?令人惊讶的是,我永远不会遇到一个知道这个答案的MCI员工......但他们当时没有SO!
编辑:在此之前失控:请不只列出命令!我正在寻找上面 italics 中问题的答案。谢谢!
答案 0 :(得分:22)
有点开玩笑的答案,但引用http://www.mindspring.com/~blackhart/requium.html:
我只能想出一个用于创建Unix命令名的算法:想出一个好的英文单词来描述你想要做什么,然后想出一个模糊的近似或部分同义词,扔掉所有的元音,任意缩短剩下的东西,然后,最后,作为文学程序员的一个sop,可能重新插入一个缺少的元音。
答案 1 :(得分:20)
罗马数字中的MCI = 1101 ......我直到现在才点击它:)
答案 2 :(得分:8)
vile = VI和Emacs一样
TECO =文字编辑器和COrrector
答案 3 :(得分:7)
tac
以反向顺序列出文件,即向后输出cat
。
答案 4 :(得分:7)
grep
来自ed命令,g / re / p或全球搜索正则表达式和打印。
yacc
当然是Yet Another Compiler Compiler。
perl
是实用提取和报告语言(另见评论)。
roff
是“径流”(一种类似的系统存在于其他非Unix机器上)的简单收缩; troff
是'排列roff'或左右;我猜nroff
是'非排版roff'; tbl
是'table'的简单缩写; eqn
是“等式”的简单收缩; grap
是“图形”的简单收缩(为什么有必要放弃'h'对我来说仍然是一个谜); pic
可能只是“图片”的简单收缩; refer
是“引用”的简单缩写;而chem
是“化学”(或“化学”,或......)的简单收缩。
理想情况下,名称很短,(几乎)可以发音,并且(如果你知道这个秘密)至少是半助记符。在某种程度上,这仍然适用于今天。程序名称是在作者关心的任何基础上选择的。
直接回答问题 - 缺少什么命令(并且有一个异想天开的名字)......
$ dribbler -h
Usage: dribbler [-hV][-s sleep][-f file][-m message][-o openstr]
-V Print version information and exit
-f file Write to named file
-h Print this help message and exit
-m message Write message on each line of output
-o openstr Flags passed to fopen()
-s sleep Sleep for given interval between writes
yes
这是一个不热心的对手。尽管yes
尽可能快地将内容写入输出管道,但dribbler
发送了大量信息,足以使接收端的进程保持活跃,但不足以淹没了系统。
我喜欢的另一个命令是bombard
:
轰炸 - 使用信号轰炸正在测试的程序
bombard [-s sig][-rvV][-t mintime][-T maxtime][-i iterations] -- cmd [args ...]
Bombard运行`cmd [args ...]'指定的测试程序,并使其受到一个或多个信号的影响。它可用于对程序的信号处理特性进行随机测试。
'-s'选项指定发送的信号;默认值为SIGINT。 '-V'选项打印程序版本号并退出。 '-r'选项重复发送信号。 '-i'选项指定信号重复的次数;如果指定了'-r'并且'-i'不是,则默认值为1000。如果未指定'-r'选项,则该标志无效。 '-v'选项打印关于每次运行测试程序的结果的详细信息。 '-t'选项指定信令之前的最小延迟(以秒为单位);默认值为0.'-T'选项指定信令之前的最大延迟(以秒为单位)。强烈建议使用'--
'分隔符将bombard本身的控件与命令及其参数分开。
如果仅指定'-t',则轰击会在指定时间内休眠,然后向进程发送信号。如果同时指定'-t'和'-T',则轰击会在指定范围内随机休眠一段时间,然后向进程发送信号。
显然,所有时间都取决于内核调度算法的特性。
答案 5 :(得分:7)
由于每个页面后面的提示,因此命名了“more”实用程序。 “less”实用程序是另一个寻呼机应用程序,因为“少即是多”而命名。
邮件有着悠久的时髦名字。榆树是“电子邮件”。 Pine是首字母缩略词“松树不再是榆树”。 Balsa意味着重量轻。不是Linux,但将多个单一架构二进制文件粘合到一个多架构二进制文件(又称“胖”二进制文件)中的Mac OS X工具称为“lipo”。
答案 6 :(得分:6)
Unix biff cmd(宣布电子邮件的到来)是以某人的狗的名字命名的。 http://en.wikipedia.org/wiki/Biff
可以在The Jargon File中找到计算早期的许多其他有趣的花絮。 http://en.wikipedia.org/wiki/Jargon_File
答案 7 :(得分:5)
我们不要忘记“ 不是 ”递归命名方案:
pine = P ine 我 s n ot E lm(虽然其中一个原始作者否认这一点,它现在正式代表“ P ine 我 nternet N ews和 E -mail”
wine = W ine n E mulator
当然:
答案 8 :(得分:4)
zsh是其作者Zhong Shao的登录信息
答案 9 :(得分:4)
GNU替换yacc解析器生成器命名为bison。
在相关的说明中,我们最近对tee命令进行了一些小改动,将时间戳插入其输出中以调试令人讨厌的问题。我们称之为新命令? teetime,当然: - )
答案 10 :(得分:3)
许多UNIX命令历史上都有短名称,因此在使用慢速电传时的日子里,不需要输入更少的命令,在某种程度上,传统在今天仍然存在。
至于MCI的事情,他们有几个以1101开头的地址,MCI在罗马数字中是1101。
答案 11 :(得分:2)
awk
以其作者姓名首字母命名:Alfred V. Aho,Peter J. Weinberger和Brian W. Kernighan。
答案 12 :(得分:2)
fsck =文件系统ChecK(注意先前记录的丢弃所有元音和尽可能多的辅音的规则。
我最常用的经验是profanity,我只是用两种不同的方式听到它:“F-S-C-K”(即跛脚)和“F-Suck”(正确)。
答案 13 :(得分:2)
关于mp3编码器LAME,它代表 L ame A in not M p3 E 编码器:)
答案 14 :(得分:1)
The Blit terminal不是贝尔实验室的智能终端,而只是来自bitblt操作。 据称The Mgr Window Manager代表“经理”。当我开始使用它时,仍有人从动词to mung(e)中调出munger。
答案 15 :(得分:1)
VMS样式longwinded'option = mode'命令到'dd'被放入,因为有人抱怨unix命令的短暂神秘选项。
答案 16 :(得分:1)
This answer婚礼蛋糕问题让我对这些名字背后的真正动机有了新的认识....
# DO NOT EDIT THIS FILE - until death
# (/marriage/crontab.XXX installed on Sat Apr 4 11:26:10 2009)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
0 21 * * * unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep
答案 17 :(得分:1)
我知道显然相关的工具越来越少。它们以小块显示文件的内容,以便可以在屏幕上显示。在这种情况下,少即是多。
答案 18 :(得分:0)
sed
= s tream ed itor ...但我不禁想到,那不是我所说的!巧合?