一些奇怪的 unix 指令名字的由來 [ZT]

发表于:2007-05-26来源:作者:点击数: 标签:
一些奇怪的 unix 指令名字的由來 awk="AhoWeinbergerandKernighan" 這個語言以作者AlAho,PeterWeinberger和BrianKernighan的姓來命名。 grep="GlobalRegularExpressionPrint" grep源自ed。用來列印所有符合某pattern的指令 g/re/p "re"代表regularexpression

一些奇怪的 unix 指令名字的由來 
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" 
不過,通用電器的大型系統部門賣給 Honeywell 後, Honeywell 就把 GECOS 的 E 拿掉了。 
目前 Unix 的密碼檔裡面仍保有 "pw_gecos" 這個欄位。這個名字是 從古早的年代沿用過來的。 

Dennis Ritchie 曾經說過: 

"有時候我們會把印表輸出或整批工作丟到 GCOS 機器。密碼檔裡 面的 gcos 欄位是用來隱藏 $IDENT 卡片上的資訊,這樣做不夠優雅"。 4 

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 的訊息,請看 Us.net newsgroup comp.lang.perl。 
Don Libes 的 "Life with Unix" 一書裡有更多這類的珍聞軼事。

 sleepynow 回复于:2004-03-14 08:25:01
不错

 风长风 回复于:2004-03-14 10:08:11
不错不错,,,很久就想知道这些了,,顶。。。。。。。。。。。

 diklong 回复于:2004-03-14 20:32:02
顶…………………………

 zuojian77 回复于:2004-03-15 09:17:02


 wqch 回复于:2004-03-17 11:02:17


 自由飞翔 回复于:2004-03-17 13:47:33
收藏

 随意江湖行 回复于:2004-03-17 16:22:43
C.Arthur,在什么地方淘到的?还真有你的!
:)

 zydudu 回复于:2004-03-17 17:16:09
真是厉害了!平常都在哪里看这些东东

 andyliu 回复于:2004-03-17 17:40:17
收藏收藏,知道了这些对命令记忆也有帮助:)

 jiadingjun 回复于:2004-03-19 16:32:32
很有趣,希望能再介绍多一些有关的知识

 thepro 回复于:2004-03-21 22:48:46
[code:1:9292b4152d]
What does {some strange unix command name} stand for?

    awk = "Aho Weinberger and Kernighan" 

This language was named by its authors, Al Aho, Peter Weinberger and Brian Kernighan.

    grep = "Global Regular Expression Print" 

grep comes from the ed command to print all lines matching a certain pattern

    g/re/p 

where "re" is a "regular expression".

    fgrep = "Fixed GREP". 

fgrep searches for fixed strings only. The "f" does not stand for "fast" - in fact, "fgrep foobar *.c" is usually slower than "egrep foobar *.c" (Yes, this is kind of surprising. Try it.)

Fgrep still has its uses though, and may be useful when searching a file for a larger number of strings than egrep can handle.

    egrep = "Extended GREP" 

egrep uses fancier regular expressions than grep. Many people use egrep all the time, since it has some more sophisticated internal algorithms than grep or fgrep, and is usually the fastest of the three programs.

    cat = "CATenate" 

catenate is an obscure word meaning "to connect in a series", which is what the "cat" command does to one or more files. Not to be confused with C/A/T, the Computer Aided Typesetter.

    gecos = "General Electric Comprehensive Operating Supervisor" 

When GE's large systems division was sold to Honeywell, Honeywell dropped the "E" from "GECOS".

Unix's password file has a "pw_gecos" field. The name is a real holdover from the early days. Dennis Ritchie has reported:

    "Sometimes we sent printer output or batch jobs to the GCOS machine. The gcos field in the password file was a place to stash the information for the $IDENT card. Not elegant."

    nroff = "New ROFF"

    troff = "Typesetter new ROFF" 

These are descendants of "roff", which was a re-implementation of the Multics "runoff" program (a program that you'd use to "run off" a good copy of a document).

    tee = T 

From plumbing terminology for a T-shaped pipe splitter.

    bss = "Block Started by Symbol" 

Dennis Ritchie says:

    Actually the acronym (in the sense we took it up; it may have other credible etymologies) is "Block Started by Symbol." It was a pseudo-op in FAP (Fortran Assembly [-er?] Program), an assembler for the IBM 704-709-7090-7094 machines. It defined its label and set aside space for a given number of words. There was another pseudo-op, BES, "Block Ended by Symbol" that did the same except that the label was defined by the last assigned word + 1. (On these machines Fortran arrays were stored backwards in storage and were 1-origin.) 

The usage is reasonably appropriate, because just as with standard Unix loaders, the space assigned didn't have to be punched literally into the object deck but was represented by a count somewhere.

    biff = "BIFF" 

This command, which turns on asynchronous mail notification, was actually named after a dog at Berkeley.

    I can confirm the origin of biff, if you're interested. Biff was Heidi Stettner's dog, back when Heidi (and I, and Bill Joy) were all grad students at U.C. Berkeley and the early versions of BSD were being developed. Biff was popular among the residents of Evans Hall, and was known for barking at the mailman, hence the name of the command. 

Confirmation courtesy of Eric Cooper, Carnegie Mellon University

    rc (as in ".cshrc" or "/etc/rc") = "RunCom" 

"rc" derives from "runcom", from the MIT CTSS system, ca. 1965.

    'There was a facility that would execute a bunch of commands stored in a file; it was called "runcom" for "run commands", and the file began to be called "a runcom."

    "rc" in Unix is a fossil from that usage.' Brian Kernighan & Dennis Ritchie, as told to Vicki Brown 

"rc" is also the name of the shell from the new Plan 9 operating system.

    Perl = "Practical Extraction and Report Language"

    Perl = "Pathologically Eclectic Rubbish Lister" 

The Perl language is Larry Wall's highly popular freely-available completely portable text, process, and file manipulation tool that bridges the gap between shell and C programming (or between doing it on the command line and pulling your hair out). For further information, see the Usenet newsgroup comp.lang.perl.

Don Libes' book "Life with Unix" contains lots more of these tidbits. [/code:1:9292b4152d]

 nimysun 回复于:2004-03-22 09:01:32
这都是从哪里翻出来的命令。
呵呵。。。。。。

原文转自:http://www.ltesting.net