next up previous
Next: "comp.unix.questions" 和 "info-unix" mailing Up: 一般性的問題 Previous: 當有人提及 'rn(1)' 或 'ctime(3)'

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


next up previous
Next: "comp.unix.questions" 和 "info-unix" mailing Up: 一般性的問題 Previous: 當有人提及 'rn(1)' 或 'ctime(3)'
Tan Koan-Sin
1999-03-02