• 欢迎访问Ppabc博客网站,专注于Linux、CentOS、Apache、Nginx、MySQL、PHP等开源工具安装优化的技术博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入Ppabc博客
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏Ppabc博客吧

一些奇怪的 unix 指令名字的由来

网络文摘 admin 16年前 (2003-03-12) 221次浏览

awk = “Aho Weinberger and Kernighan”
这个语言以作者 Al Aho, Peter Weinberger 和 Brian Kernighan 的
姓来命名。


grep = “Global Regular Expression Print”
grep 源自 ed。用来打印所有符合某 pattern 的指令
g/re/p
“re” 代表 regular expression
fgrep = “Fixed GREP”.
fgrep 祇找固定的字符串。”f” 不是代表 “fast” – 事实上, “fgrep
foobar *.c” 通常比 “egrep foobar *.c” 来得慢(有点意外吧, 不信
的话, 自己试试喽)。
尽管如此,Fgrep 仍然有可取之处,在档案中搜寻字符串的时候,Fgrep
能处理的字符串数目较 egrep 多。
egrep = “Extended GREP”
egrep 用比 grep 更 fancy 的 regular rexpression。许多人只用 egrep,
因为它用的 algorithm 比 grep 或 fgrep 用的要好一些, 而且通常是三个
程序中最快的。
cat = “CATenate”
catenate 是一个满暧昧的字,在这里的意思是”把它连成一串”, 这就是
“cat” 这个指令对一个或多个档案所做的处理。
请不要跟 C/A/T 混淆了,C/A/T 是指计算机辅助排版系统(Computer
Aided Typesetter)。
gecos = “General Electric Comprehensive Operating Supervisor”
不过,通用电器 (GE) 的大型系统部门卖给 Honeywell 的后,
Honeywell 就把 GECOS 的 E 拿掉了。
目前 Unix 的密码文件里面仍保有 “pw_gecos” 这个字段。这个名字是
从古早的年代沿用过来的。
Dennis Ritchie 曾经说过:
“有时候我们会把印表输出或整批工作丢到 GCOS 机器。密码文件里
面的 gcos 字段是用来隐藏 $IDENT 卡片上的信息,这样做不够优雅”。
nroff = “New ROFF”
troff = “Typesetter new ROFF”
这些字都是从”roff”衍生的, roff 是重写 Multics 上的 runoff 程序得来
的 (runoff 的意思就是”印出文件”)。
tee = T
这是管线工人的术语,代表 T 型的管线分叉器。
bss = “Block Started by Symbol” (由符号启始的区块)
Dennis Ritchie 曾说过:
这个缩写也许有其它说法,但事实上我们采用这个缩写的本意是
“Block Started by Symbol”。它是 FAP 上的伪指令,FAP
(Fortran Assembly [-er?] Program) 是指 IBM 704-709-7090-7094
这种机型的组译器。这个指令可定义自己的标号,并且预留一定数目
的字组空间。还有另一个伪指令 BES,是 “Block Ended by
Symbol”,跟 BSS 指令几乎一样,不同点在于标号是定义在预留字组
空间尾端的地址 + 1 的地方。在这些机器上,Fortran 的数组是以反
方向储存,而且数组的索引是从 1 算起。
这种用法是合理的,因为这跟 UNIX 上标准的程序加载器一样,程序
码当中并非真的放入这一整块预留空间,而是先用一个数目表示,在
加载时才真的把所需的预留空间定出来。
biff = “BIFF”
这个指令是用来设定当您有新邮件进来时,是否要通知您。这是柏克
莱大学校园内一只狗的名字。
我可以确定这个名称的起源,如果您有兴趣的话,Biff 是 Heidi
Stettner 养的宠物,想当年 Heidi (还有我,跟 Bill Joy) 都还是
UCB 的研究生时,早期的 BSD 版本还在发展中。Biff 受到流连于
Evans Halls 这些人的喜爱,也因为它会对前来的邮差吠叫而闻名;因
此就以 biff 当作指令的名称。
(这是卡内基美浓大学的 Eric Cooper 证实的)
rc (像是 “.cshrc” 或 “/etc/rc” 中的 rc 这两个字母) = “RunCom”
“rc” 源自麻省理工学院在 1965 年发展的 CTSS 系统中的 “runcom”。
Brian Kernighan 与 Dennis Ritchie 告诉 Vicki Brown 说:
相关文献写着这么一段话: ‘CTSS 具有从档案中取出一系列命令
来执行的功能;这功能称为 “run commands” 又称为 “runcom”,
而这种档案称为一个 runcom (a runcom)。‘
Unix 中的 “rc” 就是这种用法的残迹。
此外 “rc” 也是 Plan 9 操作系统 shell 的名字。
Perl = “Practical Extraction and Report Language”
Perl = “Pathologically Eclectic Rubbish Lister”
Perl 是 Larry Wall 所发展的一种相当受欢迎的语言, Perl 在处文字,
process,与档案时非常便利,可以说是兼得 shell 与 C 之长。想知道
更多关于 Perl 的讯息,请看 Usenet newsgroup comp.lang.perl。
Don Libes 的 “Life with Unix” 一书里有更多这类的珍闻轶事。


Selinux 中国 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:一些奇怪的 unix 指令名字的由来
喜欢 (0)