LUPAÊ×Ò³ | ×ÊѶ | ½Ì³Ì | ÏÂÔØ | ÇóÖ° | ·½°¸ | ²©¿Í | ½»Ò× | Ó¢Îİæ
LUPAÂÛ̳


 
±êÌâ: UNIXÍ´ºÞÕßÊÖ²á
ѪɫÑÛÀá (ÃÈÒªËØ)
LUPA¹ó±ö
Rank: 8Rank: 8


ÓÅÐã°ßÖñ½±   ½Ü³ö¹±Ï×½±  
UID 16005
¾«»ª 3
»ý·Ö 7043
Ìû×Ó 2780
LUPA±Ò 5647 µã
ÔĶÁȨÏÞ 100
×¢²á 2006-1-6
·¢±íÓÚ 2006-3-21 10:04  ×ÊÁÏ ¸öÈË¿Õ¼ä ¶ÌÏûÏ¢ 
UNIXÍ´ºÞÕßÊÖ²á

  /*Ò»±¾ºÜÓÐȤµÄÊé, ÊÇÄÇЩÓùßUNIXµÄÈ˶ÔUNIXµÄ¸÷ÖÖÖ¸Ôð,Ú®»Ù,áÂîºÍ³°Ð¦. ÊÇÓɰ®¶øÉúµÄºÞ. ¼´Ê¹µ±³ÉÒ»±¾¸ß¼¶Ð¦»°Êé,Ò²ÊǺÜÓмÛÖµµÄ. */

By Simson Garfinkel, Daniel Weise, Steven Strassmann




ºÜ¶àʱºò
ÄãÎÒÖ®¼äÄDz»¿ÉÓâÔ½µÄÌìÑÄ
½ö½öÖ»ÓÐåë³ß´óС

ÓÃÈðÐÇ?»¹²»ÈçÓÃÖÇ»ÛÐÇ!
2V97-9DKN-F9HC-JCJE
KTB9-N7BP-CR8N-49VX
X1OC2N0GJ1H51W84
¶¥²¿
[¹ã¸æ] ÍÆ¼ö¸ö³¬¿áµÄweb2.0Ïà²á
ѪɫÑÛÀá (ÃÈÒªËØ)
LUPA¹ó±ö
Rank: 8Rank: 8


ÓÅÐã°ßÖñ½±   ½Ü³ö¹±Ï×½±  
UID 16005
¾«»ª 3
»ý·Ö 7043
Ìû×Ó 2780
LUPA±Ò 5647 µã
ÔĶÁȨÏÞ 100
×¢²á 2006-1-6
·¢±íÓÚ 2006-3-21 10:04  ×ÊÁÏ ¸öÈË¿Õ¼ä ¶ÌÏûÏ¢ 
µÚÒ»Õ UNIX¡ª¡ªÊÀ½çÉϵÚÒ»¸öµçÄÔ²¡¶¾

¡°²®¿ËÀûµÄÁ½Ïî×îÖøÃûµÄ²úÆ·ÊÇUNIXºÍLSD (Ò»ÖÖ¶¾Æ·)£¬ÎÒÏëÕâ²»ÊÇÇɺϡ±

²¡¶¾ÒÀÀµÓÚ΢СµÄ¸öÌåºÍÇ¿´óµÄÊÊÓ¦ÐÔµÃÒÔÉú´æ¡£ËüÃDz¢²»¸´ÔÓ£ºËüÃÇûÓÐΪºôÎü£¬ÐÂ
³Â´úл£¬¼¡Ìå»î¶¯µÈ¹¦ÄÜÌṩʲô£¬Ö»ÓÐ×ã¹»µÄDNA»òRNAÒÔ¹©·±ÑÜ¡£±ÈÈ磬·ÎÑײ¡¶¾±È
ÆðËüÃÇÈëÇÖµÄϸ°ûҪСµÃ¶à£¬µ«ËüÃÇÔÚÿ¸ö·ÎÑ×Á÷Ðм¾½Ú¶¼Äܹ»²úÉúеıäÖÖ£¬Ôì³ÉÎÞ
ÊýÈËËÀÍö¡£

Ò»¸öºÃ²¡¶¾µÄÌØµãÊÇ£º

* ¸öͷС
²¡¶¾×öµÄÊÂÇé²»¶à£¬ËùÒÔ²»ÐèÒªºÜ´ó¡£ÓÐÈËÈÏΪ²¡¶¾²»ÊÇÉúÎֻÊÇһЩÓÐÆÆ»µÐÔµÄËá
ºÍµ°°×ÖÊ¡£

* ¿ÉÒÆÖ²ÐÔ
²¡¶¾¾­³£±äÒ죬ÒÔ±ãÒÔ²»Í¬µÄ·½Ê½¹¥»÷²»Í¬µÄϸ°û¡£¾Ý˵AIDS¾ÍÊÇÓɺï×ÓÉíÉϵIJ¡¶¾±ä
Òì¶ø³ÉµÄ¡£

* ºÄ¾¡¼ÄÖ÷µÄ×ÊÔ´

* ¿ìËÙ±äÒì

UNIX¾ßÓÐÒÔÉÏËùÓÐÓŵ㡣ÔÚËü¸Õµ®Éúʱ£¬ºÜС£¬¹¦Äܲ»¶à£¬È±·¦ÕæÕý²Ù×÷ϵͳËùÐèÒªµÄ
¹¦ÄÜ£¨ÈçÎļþÓ³É䣬¸æËßIO£¬½¡×³µÄÎļþϵͳ£¬Éè±¸Ëø£¬ºÏÀíµÄ½ø³Ì¼äͨѶ£©£¬ËüµÄÒÆ
Ö²ÐԺܺá£UNIXºÄ¾¡Ö÷»úµÄ×ÊÔ´£¬Ã»ÓÐϵͳ¹ÜÀíÔ±µÄʱʱºÇ»¤£¬UNIX»á²»¶Ï¿Ö»Å£¬core
dump£¬¹ÒÆð¡£UNIX²»¶Ï±äÒ죺ͬһ¸ö²¹¶¡ÔÚÒ»¸ö°æ±¾ÉϹ¤×÷£¬ÔÚÁíÒ»¸ö°æ±¾ÉϾͲ»ÐС£


UNIXÊÇÓÐÓû§½çÃæµÄ¼ÆËã»ú²¡¶¾¡£


±ê×¼»¯ÄÇЩ²»Ò»ÖµÄ
================

¡°±ê×¼µÄΰ´óÖ®´¦ÔÚÓÚËü¿ÉÒÔÓкܶࡱ --- Grace Murray Hopper

×Ô´ÓUNIX 80Äê´ú¿ªÊ¼Á÷ÐÐÒÔÀ´£¬UNIX³§ÉÌÒ»Ö±ÔÚŬÁ¦½øÐÐUNIX±ê×¼»¯¹¤×÷¡£SUN, IBM£¬
HPºÍDECÔÚÕâ¸öËûÃÇ×Ô¼ºÖÆÔìµÄÄÑÌâÉÏÇã×¢ÁËÊý°ÙÍòÃÀÔª¡£

ΪʲôUNIX³§É̲»Ï²»¶UNIX±ê×¼»¯?

Ðí¶àÓû§Êܹ»Á˸´ÔÓ·±¶àµÄUNIX£¬×îÖÕÖ»ºÃʹÓÃWindows£¬ÒòΪËûÃǵÄÕâ¸öUNIXÎÞ·¨Ö§³Ö
ÄǸöUNIXÉϵÄÓ¦ÓóÌÐò¡£

Èç¹ûUNIX±ê×¼»¯ÁË£¬Ë­»¹»áÂòSUNµÄ»úÆ÷ÄØ




ºÜ¶àʱºò
ÄãÎÒÖ®¼äÄDz»¿ÉÓâÔ½µÄÌìÑÄ
½ö½öÖ»ÓÐåë³ß´óС

ÓÃÈðÐÇ?»¹²»ÈçÓÃÖÇ»ÛÐÇ!
2V97-9DKN-F9HC-JCJE
KTB9-N7BP-CR8N-49VX
X1OC2N0GJ1H51W84
¶¥²¿
[¹ã¸æ] ÍÆ¼ö¸ö³¬¿áµÄweb2.0Ïà²á
ѪɫÑÛÀá (ÃÈÒªËØ)
LUPA¹ó±ö
Rank: 8Rank: 8


ÓÅÐã°ßÖñ½±   ½Ü³ö¹±Ï×½±  
UID 16005
¾«»ª 3
»ý·Ö 7043
Ìû×Ó 2780
LUPA±Ò 5647 µã
ÔĶÁȨÏÞ 100
×¢²á 2006-1-6
·¢±íÓÚ 2006-3-21 10:05  ×ÊÁÏ ¸öÈË¿Õ¼ä ¶ÌÏûÏ¢ 
µÚ¶þÕ »¶Ó­ÐÂÓû§

»¶Ó­ÐÂÓû§ÈçͬÓÃÒ»°ÑÉÏÁËÁù¿Å×Óµ¯µÄ×óÂÖÇ¹Íæ¶íÂÞ˹ÂÖÅ̶Ä

Ken Thompson ×Ô¼ºÉè¼Æ¹ýÒ»Á¾Æû³µ¡£ºÍÆäËû³µ²»Í¬£¬ËüûÓÐËٶȼơ¢ÆûÓͼƣ¬Ò²Ã»ÓÐÄÇ
ЩÓÞ´ÀµÄָʾµÆÌÖ˾»úµÄÑá¡£Èç¹û˾»ú·¸ÁËʲô´íÎó£¬ÒDZíÅÌÉϾͻá³öÏÖÒ»¸ö´ó´óµÄ¡°
£¿¡±¡£¡°Óо­ÑéµÄ˾»ú£¬¡±Thompson˵£¬¡°Ó¦¸ÃÖªµÀÄĶù¸ã´íÁË¡£¡±

¼ÆËã»úϵͳµÄÐÂÊÖÐèÒªÒ»¸öÓѺõÄϵͳ¡£ÖÁÉÙ£¬Ò»¸öµÃÌåµÄϵͳ»áÕâÑùÕдý×Ô¼ºµÄ¿ÍÈË
£º


Ó빦ÄÜÓÐÂß¼­¹ØÏµµÄÃüÁîÃû
¶ÔΣÏÕÃüÁîµÄСÐÄ´¦Àí
Ò»ÖµÄÃüÁîÐÐΪºÍÃüÁîÐвÎÊý½âÎö
Ò׵úÍÒ×¶ÁµÄÔÚÏßÎĵµ
µ±ÃüÁîʧ°Üʱ£¬¸ø³ö¿ÉÀí½âºÍÓÐÓõĴíÎó·´À¡


ÔÚ½¨ÔìUNIXµÄ¹ý³ÌÖУ¬´ÓûÑûÇë¹ýס»§¡£À´·ÃµÄ¶¼ÊÇЩ´÷×Ű²È«Ã±µÄ½¨Öþ¹¤ÈË£¬±»°²²å
ÔÚÕâ¸öÆÆÄ¾°å·¿×ӵĸ÷¸ö½ÇÂä¡£²»ÐÒµÄÊÇ£¬²»½öûÓÐÈËÐÔÒòËØ£¨human factors£©¹¤³Ìʦ
µÄ²ÎÓ룬¶øÇÒס»§µÄÐèÒª¾Í´ÓÀ´Ã»Óб»¿¼Âǹý¡£ËùÒÔ³éË®ÂíͰ¡¢ÖÐÑ빩ů¡¢´°»§µÈÕâЩ
·½±ãÉèÊ©ÔÚºóÆÚ¾ÍºÜÄÑÔÙÌí¼ÓÁË¡£µ«Êǽ¨ÖþʦÃÇÈÔȻΪUNIXµÄÉè¼Æ¶ø½¾°Á£¬ËƺõËûÃDz¢
²»½éÒâÔÚÒ»¸öûÓÐÑÌ»ð̽²âÆ÷µÄÎÝ×ÓÀï˯¾õ¡£

ÔÚÆä·¢Õ¹µÄ´ó²¿·ÖÀúÊ·ÖУ¬UNIXÖ»ÊÇ´óѧºÍ¹¤ÒµÑо¿ÈËÔ±µÄÑо¿¹¤¾ß¡£Ëæ×Å´óÅú±ãÒ˹¤
×÷Õ¾µÄ³öÏÖ£¬UNIX×÷Ϊƽ̨Èí¼þ½øÈëÁËÐÂʱ´ú¡£ÕâÒ»±ä»¯´óÔ¼·¢ÉúÔÚ1990Ä꣬Æä±êÖ¾¾Í
Êǹ¤×÷Õ¾³§Ḛ́ÑC±àÒëÆ÷´ÓUNIX·¢²¼ÖÐÌÞ³ý³öÈ¥£¬ÒÔ½µµÍ³É±¾Âú×ã·Ç¿ª·¢Óû§µÄÐèÇ󡣿É
¼û£¬Ö»ÊÇ×î½ü¼¸ÄêÖÐUNIX³§É̲ſªÊ¼¿¼ÂǷdzÌÐòÔ±Óû§µÄÐèÒª£¬¿ªÊ¼ÎªËûÃÇÌṩshellÒÔ
ÍâµÄͼÐνçÃæ¡£

º¬ºýµÄÃüÁîÃû

UNIXÐÂÊÖ×ÜÊǶÔUNIX¶ÔÃüÁîµÄÃüÃû±íʾ¾ªÑÈ¡£ÔÚDOSºÍMacÉÏÊܵĽÌÓý²»×ãÒÔÈÃËûÃÇÌå»á
µ½cp¡¢rm¡¢lsÕâÀàÁ½×ÖĸÃüÁîµÄ¼ò½àºÍÓÅÃÀ¡£

ÏñÎÒÃÇÕâÑùÓùý70Äê´úÔçÆÚµÄIOÉ豸µÄÈ˶¼ÄÜÀí½â£¬ASR-33 TeletypeÕâÀàÉ豸µÄËÙ¶È¡¢
¿É¿¿ÐÔ£¬ÒÔ¼°ËüµÄ¼üÅÌÊÇÍò¶ñÖ®Ô´¡£ºÍ½ñÌìÕâÖÖ»ùÓÚ·´À¡Ô­Àí¡¢Ö»ÐèÒª¹Ø±ÕÒ»¸ö΢¿ª¹Ø
µÄ¼üÅ̲»Í¬£¬Äã±ØÐëÓÃ×ãÁ¦ÆøÞìÏÂTeletypeµÄ¼üÖÁÉÙ°ëÓ¢´ç£¬ÒÔ·¢¶¯Ò»¸öÀàËÆ×ÔÐгµÉÏ
ÓõÄСÐÍ·¢µç»ú£¬ÔÚÉÏÃæ²Ù×÷Ҫðָ¹Ç¹ÇÕÛµÄΣÏÕ¡£

Èç¹ûµ±Ê±DennisºÍKenÓõÄÊÇSelectric¶ø²»ÊÇTeletype£¬¿ÉÄܽñÌìÎÒÃÇÇõĽ«²»ÊÇ¡±cp
¡±ºÍ¡±rm¡±¶øÊÇ¡±copy¡±ºÍ¡±remove¡±ÁË¡££¨Ken ThompsonÔø±»ÎʵÀÈç¹ûËûÄÜÖØÐÂÉè¼ÆU
NIXËû½«×öʲôÐ޸ģ¬Ëû»Ø´ð˵£º¡°ÎÒ»áÔÚcreatÃüÁîºó¼ÓÉϸöe¡£¡±£©£¬¿Æ¼¼ÔÚÍØ¿íÎÒÃÇ
µÄÑ¡ÔñµÄͬʱ£¬Ò²ÄÜÏÞÖÆÎÒÃǵÄÑ¡Ôñ£¬´ËÒ»ÀýÒ²¡£

20¶àÄê¹ýÈ¥ÁË£¬»¹ÓÐʲôÀíÓÉÑÓÐøÕâÒ»´«Í³ÄØ£¿ÀíÓɾÍÊÇ¡°ÀúÊ·µÄÎÞ¿ÉÌæ´úµÄÁ¦Á¿¡±£¬
ÀúÊ·¾ÍÊÇÄÇЩ´æÔڵĴúÂëºÍ½Ì¿ÆÊé¡£Èç¹ûÒ»¸ö³§ÉÌÓÃremoveÌæ´úÁËrm£¬ÄÇôËùÓÐUNIX½Ì
¿ÆÊé¾Í²»ÊÊÓÃÓÚÕâһϵͳÁË£¬Ã¿¸öʹÓÃrmµÄshell½Å±¾¶¼ÐèÒª±»Ð޸ġ£¶øÇÒÕâÒ²²»ºÏPOSI
X±ê×¼¡£

Ò»¸öÊÀ¼Íǰ£¬´ò×Ö¸ßÊÖÓÉÓÚ»÷¼ü¹ý¿ì£¬¾­³£°Ñ´ò×Ö¼ü±ú½ÁÔÚÒ»Æð£¬¹¤³ÌʦÉè¼ÆÁËQWERTY
¼üÅÌ£¬ÓÚÊÇÎÊÌâµÃµ½Á˽â¾ö£¬ÒòΪûÈËÄÜÔÚÕâÑùµÄ¼üÅÌÉÏ´òµÃ¿ì¡£¼ÆËã»úµÄ¼üÅ̲»ÔÙÓÐ
»úе¼ü±ú£¬µ«QWERTYµÄ¼üÅ̲¼¾ÖÈÔÈ»ÔÚʹÓá£Í¬Àí£¬ÔÚδÀ´µÄÒ»¸öÊÀ¼ÍÖУ¬ÎÒÃÇÈÔÈ»»á
¼ÌÐøÊ¹ÓÃrm¡£

ʹʻᷢÉú

Óû§Ê®·Ö¹ØÐÄ×Ô¼ºµÄÊý¾ÝºÍÎļþ¡£ËûÃÇʹÓüÆËã»úÀ´²úÉú¡¢·ÖÎöºÍ´æ´¢ÖØÒªÐÅÏ¢¡£ËûÃÇ
ÏàÐżÆËã»úÄܹ»±£»¤ËûÃǵÄÖØÒª²Æ²ú¡£Èç¹ûûÓÐÁËÕâÖÖÐÅÈΣ¬ËûÃǺͼÆËã»úµÄ¹ØÏµ¾Í»á
ÃÉÉÏÒõÓ°¡£UNIX¹¼¸ºÁËÎÒÃǵÄÐÅÈΣ¬Ëü¾Ü¾ø¶ÔʹÓÃΣÏÕÃüÁîµÄÓû§Ìṩ±£»¤¡£±ÈÈçrm¾Í
ÊÇÒÔɾ³ýÎļþΪĿµÄµÄΣÏÕÃüÁî¡£

ËùÓÐUNIXÐÂÊÖ¶¼Óв»Ð¡ÐÄÎÞ¿ÉÍì»ØµØÉ¾³ýÖØÒªÎļþµÄ¾­Àú£¬¼´Ê¹ÊÇר¼ÒºÍϵͳ¹ÜÀíÔ±Ò²
Óöµ½¹ý¡£Òò´Ë¶øÃ¿ÄêËðʧµÄʱ¼ä¡¢¾«Á¦¿ÉÄܼÛÖµ¼¸°ÙÍòÃÀÔª¡£ÕâÊǸöÖµµÃ½â¾öµÄÎÊÌ⣻
ÎÒÃDz»Àí½âΪºÎUNIXÒ»Ö±¾Ü¾ø½â¾öÕâÒ»ÎÊÌâ¡£ÄѵÀ½á¹û»¹²»¹»±¯²Òô£¿

UNIX±ÈÆäËû²Ù×÷ϵͳ¸üÐèÒªÌṩ»Ö¸´É¾³ý¹¦ÄÜ£¬Ô­ÒòÊÇ:

UNIXÎļþϵͳûÓа汾¹¦ÄÜ
×Ô¶¯µÄ°æ±¾Î¬»¤Äܱ£ÁôÎļþµÄÀúÊ·°æ±¾£¬·Àֹа汾³åµôÀϰ汾¡£
UNIX³ÌÐòÔ±ÔÚ´íÎó´¦Àí·½Ãæ³ôÃûÕÑÖø
Ðí¶à³ÌÐò²»¼ì²éÊÇ·ñËùÓÐÄÚÈݶ¼±»Ð´ÈëÁË´ÅÅÌ£¬»ò±»Ð´ÈëµÄÎļþÊÇ·ñ´æÔÚ¡£ÓÐЩ³ÌÐò×Ü
ÊÇɾ³ýÊäÈëÎļþ¡£
UNIX shellÀ©Õ¹¡°*¡±£¬¶ø²»ÊÇÆä×ÓÃüÁî
ÓÚÊÇrmÕâÑùµÄÃüÁî¾ÍÎÞ·¨¼ì²é¡°*¡±ÕâЩΣÏյIJÎÊý¡£¼´Ê¹ÊÇDOSÒ²¶Ô¡±del *.*¡±ÓÐЩÌá
ʾ¡£µ«ÔÚUNIXÏ£¬rm * ºÍ rm file1 file2¡­ÊÇûÓÐÇø±ðµÄ¡£
ɾ³ýÊÇÓÀ¾ÃµÄ
UNIXûÓÐundeleteÃüÁî¡£Ðí¶àÆäËû¸ü°²È«µÄϵͳÔòÖ»ÊDZê¼Ç±»É¾³ýÎļþËùÓõĿéΪ¡°¿É
±»Ê¹Óá±£¬È»ºó°ÑËüÒÆµ½Ò»¸öÌØÊâĿ¼Ï¡£Èç¹û´ÅÅÌÂúÁË£¬ÕâЩÎļþ¿é²Å»á±»ÖØÐÂʹÓÃ
¡£ÕâÒ»¼¼Êõ²»ÊÇʲô»ð¼ý¿ÆÑ§£¬MacintoshÔÚ1984Äê¾ÍÌá³öÁË¡°»ØÊÕÕ¾¡±µÄÏë·¨£¬¶øTene
xÔçÔÚ1974Äê¾Í²ÉÓÃÁËÕâÒ»¼¼Êõ¡£Á¬DOSÒ²ÌṩÁ˼òµ¥µÄundelete¹¦ÄÜ£¬ËäÈ»²¢²»×ÜÓÐЧ
¡£


ÕâËĸöÎÊÌ⻥ÏàºÏ×÷£¬ÖÆÔìÁËÎÞÊýÎÞ·¨»Ö¸´µÄÖØÒªÎļþ¡£½â¾öµÄ·½·¨Ôç¾Í´æÔÚ£¬µ«UNIX
¡°±ê×¼¡±°æÖÐÈ´´ÓÀ´Ã»ÓÐÌṩ¡£

»¶Ó­À´µ½Î´À´ÊÀ½ç¡£

¡°rm¡±¾ÍÊÇÖÕ½á

Ðí¶àʵ¼ÊµÄ¿Ö²À¹ÊÊÂ˵Ã÷ÁËÒÔÉϵÄÕâЩԭÔò¡£ÒÔÏÂÊÇalt.folklore.computersÐÂÎÅ×éÉÏ
Á÷´«µÄһϵÁйÊÊÂÖеÄÒ»¸ö£º


Date: Wed, 10 Jan 90
X-Virus: 6
From: djones@megatest.uucp (Dave Jones)
Subject: rm *
Newsgroups: alt.folklore.computers

ÊÇ·ñÓÐÈËÔøÏëÖ´ÐÐÒÔÏÂÃüÁî:
% rm *.o
½á¹ûÈ´´ò³ÉÁË£º
% rm *>o
ÏÖÔÚÄãµÃµ½ÁËÒ»¸ö¿ÕÎļþo£¬ÒÔ¼°´óÁ¿µÄ¿Õ¼äÀ´´æ·ÅËü£¡


ÊÂʵÉÏ£¬Äã¿ÉÄÜÁ¬oÒ²µÃ²»µ½£¬ÒòΪshellµÄÎĵµ²¢Ã»ÓÐ˵oÊÇÔÚ*±»À©Õ¹Ç°»¹ÊDZ»À©Õ¹ºó
±»½¨Á¢µÄ¡£

ÉÏ»ØÊé˵µ½ÈçºÎÓÃrm»ñµÃÒ»¸ö¿ÕÎļþºÍºÜ´óµÄ´ÅÅ̿ռ䣬ÏÂÃæÊÇÁíÒ»ÖÖÓ÷¨£º


Date: Wed, 10 Jan 90
X-Virus: 6
From: ram@attcan.uucp
Subject: Re: rm *
Newsgroups: alt.folklore.computers

ÎÒÒ²±»rm¸ã¹ý¡£ÓÐÒ»´ÎÎÒÏëɾ³ýһЩ/usr/foo/ÏµĶ«Î÷£¬ÎÒÔÚ/usr/fooÏÂÇÃÁËÒÔÏÂÃüÁî
£º
% rm ¨Cr ./etc
% rm ¨Cr ./adm
µ±ÎÒҪɾ³ý./binĿ¼ʱ£¬ÎÒÍüÇÃÁËÄǸöµã¡£ÎÒµÄÏµÍ³ËÆºõ²»Ì«Ï²»¶Õâ¸ö¡£


µ±ÊÜÁËÕâÒ»ÖÂÃüÒ»»÷ºó£¬UNIX¾Í³¹µ×Íêµ°ÁË¡£´ÏÃ÷µÄϵͳ»á¸øÓû§Ò»¸ö»Ö¸´µÄ»ú»á£¨»ò
ÖÁÉÙÌáÐÑÓû§ÕâÒ»²Ù×÷»áµ¼ÖÂϵͳ±ÀÀ££©¡£

UNIXÃÔÈÏΪż¶ûµÄÎļþÎóɾ³ýÊÇÕý³£µÄ¡£±ÈÈ磬¿ÉÒԲο¼ÒÔÏÂÏÂÃæÕâ¸öcomp.unix.quest
ionsÉϵÄFAQ:


6) ÈçºÎ·´É¾³ýÒ»¸öÎļþ£¿

Ò²ÐíÓÐÒ»Ì죬Ä㲻СÐÄÖ´ÐÐÁËÒ»ÏÂÕâ¸öÃüÁ
% rm * .foo
È»ºó·¢ÏÖÄã°Ñ¡°*¡±É¾µôÁË¡£ÄãÓ¦¸Ã°ÑÕâµ±×÷ÈËÉúµÄÒ»¿Î¡£
µ±È»³ÆÖ°µÄϵͳ¹ÜÀíÔ±Ó¦¸Ã¶¨Ê±±¸·Ýϵͳ¡£ËùÒÔÄã×îºÃÎÊÎÊËûÃÇÊÖÖÐÊDz»ÊÇÓÐÄãµÄÎļþ
±¸·Ý¡£


¡°ÈËÉúµÄÒ»¿Î¡±£¿Ã»ÓÐÈκÎÒ»¸öÆäËû³§ÉÌÓÃÕâÑùµÄ̬¶È¶Ô´ýÒ»¸öÓÐȱÏݵIJúÆ·¡£¡°´óÈË
£¬ÎÒÖªµÀÄúµÄÓÍÏäÕ¨ÁË£¬µ«ÕâÊÇÈËÉúµÄÒ»¿Î¡£¡±¡°ÅãÉóÍŵÄÏÈÉúŮʿÃÇ£¬ÎÒÃǽ«Ö¤Ã÷µç
¾â±£ÏÕ¿ª¹ØµÄʧЧ²»¹ýÊǸøÓû§ÉϵÄÈËÉúµÄÒ»¿Î¡£¡±²»´í¡£

¸Ä±ärmµÄÐÐΪҲ²»ÊǸö°ì·¨

±»rmÒ§Á˼¸´Îºó£¬ÍùÍù»áÏëµ½Óá±rm -i¡±Ìæ»»rm£¬»òÕû¸öÌæ»»µôrm£¬°ÑËùÓб»É¾³ýµÄÎÄ
¼þ·Åµ½~/.deletedĿ¼ÖС£ÕâЩС¼¼ÇÉÈÃÓû§ÓÐÁË´íÎóµÄ°²È«¸Ð¡£


Date: Mon£¬16 Apr 90 18:46:33 199
X-Virus: 6
From: Phil Agre <agre@gargoyle.uchicago.edu>
To: UNIX-HATERS
Subject: deletion

ÔÚÎÒÃǵÄϵͳÉÏ£¬¡±rm¡±²¢²»ÕæÕýɾ³ýÎļþ£¬¶øÊǸøÎļþ»»ÁËÃû£¬ÕâÑù¡±undelete¡±(²»
ÊÇunrm)ÕâÑùµÄ¹¤¾ß¾ÍÄָܻ´±»É¾µÄÎļþ¡£

Õâ¸ö¹¦ÄÜÈÃÎÒ²»ÔÙ¶Ôɾ³ýÎļþ¶à¼ÓСÐÄ£¬·´ÕýɾµôÁËÒ²ÄÜÕÒ»ØÀ´¡£¿ÉÊÇ£¬ÎÒ´íÁË¡£Emacs
ÖеÄɾ³ý²¢²»Ö§³ÖÕâ¸ö¹¦ÄÜ£¬DiredÃüÁîÒ²ÊÇÈç´Ë¡£Õ⵱ȻÊÇÒòΪÎļþ»Ö¸´²¢²»ÊDzÙ×÷ϵ
ͳµÄÒ»¸ö¹¦ÄÜ¡£

ËùÒÔ£¬ÏÖÔÚÎÒÄÔ×ÓÀïÓÐÁ½¸ö¸ÅÄһ¸öÊÇ¡±deleting¡±Ò»¸öÎļþ£¬Ò»¸öÊÇ¡±rm¡¯ing¡±Ò»
¸öÎļþ¡£µ±ÎÒµÄÊÖÒªÎÒµÄÄÔ×Óɾ³ýÒ»¸öÎļþʱ£¬ÎÒ×ÜÒª°ÑÕâÁ½¸ö¸ÅÄîÇø·ÖÒ»±é¡£


һЩUNIXר¼ÒÓɴ˵óöÁË»ÄÃýµÄ½áÂÛ£¬ËûÃÇÈÏΪ×îºÃ±ð°Ñrm¸ãµÃ¸üÓѺá£ËûÃÇÕù±ç˵£¬
ÈÃUNIX¸üÓѺõÄŬÁ¦ÍùÍùÊÊµÃÆä·´¡£²»ÐÒµÄÊÇ£¬ËûÃÇÊǶԵġ£


Date: Thu, 11 Jan 90 17:17 CST
X-Virus: 6
From: merlyn@iwarp.intel.com (Randal L. Schwartz)
Subject: Don¡¯t Overload commands! (was Re: rm *)
Newsgroups: alt.folklore.computers

ÇëǧÍò±ðÈÃÈËÓá°°²È«¡±ÃüÁîÈ¥Ìæ»»±ê×¼ÃüÁî¡£
£¨1£© Ðí¶àshell³ÌÐò»á¶Ô¶à×ìµÄrm¸Ðµ½¾ªÑÈ£¬¶øÇÒÒ²²»»áÏ뵽ɾ³ýÁ˵ÄÎļþÈÔȻռÓдÅ
Å̿ռ䡣
£¨2£© ²¢²»ÊÇËùÓÐɾ³ý²Ù×÷¶¼Êǰ²È«µÄ£¬Óл§»áÒò´Ë²úÉúÒ»Çж¼Äָܻ´µÄ´í¾õ¡£
£¨3£© ÄÇЩ²»±ê×¼µÄÃüÁî¶Ôϵͳ¹ÜÀíÔ±À´ËµÓÈÆä¿ÉºÞ¡£
Èç¹ûÄãÏëÓиöÓÐÈ·ÈϹ¦Äܵġ±rm¡±£¬ÓÃÏÂÃæµÄÃüÁî:
% alias del rm -i
ǧÍò±ðÌæ»»rm!


×î½ü£¬comp.unix.questionsÉÏÓйýÒ»´Î¶Ôϵͳ¹ÜÀíÔ±µÄµ÷²é£¬ÈÃËûÃÇ˵³ö×î¿Ö²ÀµÄϵͳ
¹ÜÀí¹ÊÊ¡£72СʱÄÚ£¬¾ÍÓÐÁË300¶àÌõ»ØÓ¦¡£Ðí¶àºÍÎÒÃÇÉÏÃæÃèÊöµÄÎļþɾ³ýÓйء£¿ÉЦ
µÄÊÇ£¬ÕâЩ¿ÉÊÇUNIX¸ßÊÖ¡£È»¶øÕýÊÇËûÃÇÔÚ¶Ô¡°UNIX¶ÔÓû§²»ÓѺá±ÕâÀàÖ¸Ôð½øÐÐ×űç
»¤¡£

¶ÔÓû§²»ÓѺã¿UNIX¶Ôϵͳ¹ÜÀíÔ±ÓÖÓѺùýô£¿Çë¿´


Date: Wed, 14 Sep 88 01:39 EDT
X-Virus: 6
From: Matthew P Wiener <weemba@garnet.berkeley.edu>
To: RISKS-LIST@kl.sri.com
Subject: ¡°Single Keystroke¡±

ÔÚUNIXÉÏ£¬¼´Ê¹ÊÇÓо­ÑéµÄÓû§Ò²»áÎóÓÃrm¡£ÎÒ´ÓÀ´Ã»ÓÐÎóɾ³ý¹ýÎļþ£¬¿ÉÊÇÓÐÒ»Ì죬
ÎÒÓÃ!rÖØ¸´Ö´ÐÐÒ»¸öÀúÊ·ÃüÁÎÒ¾ªÑȵط¢ÏÖ±»ÔËÐеÄÊÇ¡±rm ¨Cr *¡±¡£

Ϊʲô²»ÄÜÓиöûÓÐhistory¹¦ÄܵÄshell?

ÎÒ»¹Ìýµ½¹ýÒ»¸öÓû§ÊÔͼɾ³ýÒ»¸öÃû½Ð¡±*¡±µÄÎļþ£¬ºÃÔÚËûûÓÐȨÏÞ¡£


Õâ¸öÓû§»¹ÏëÐÞ¸ÄshellÀ´±ÜÃâ¶Ô*½øÐÐÕ¹¿ª¡£²»ÐÒµÄÊÇ£¬Õâ¸ö²¹¾ÈÈçͬÊÇÔÚÉøË®µÄǽÉÏ
ÔÙË¢Ò»²ãÆá£¬Öα겻Öα¾¡£

ÔÚÏß°ïÖú

Óû§¶Á´òÓ¡ÎĵµµÄ´ÎÊý±ÈËûÃDzμÓÑ¡¾ÙͶƱµÄ´ÎÊý»¹ÒªÉÙ¡£Ö»Óд¥Êֿɼ°µÄÔÚÏßÎĵµ²Å
ÊÇÓÐÓõġ£ÏÂÃæÎÒÃÇ¿´¿´UNIXµÄmanÊÇÈçºÎÈÃ×îÐèÒªËüµÄÐÂÓû§Ê§ÍûµÄ¡£

²»ÊÇÿ¸öÃüÁî¶¼ÊÇÆ½µÈµÄ£¬ÓÐЩÊÇÍⲿÃüÁÓÐЩÊÇÄÚ²¿ÃüÁî¡£ÓÐЩÓÐman page£¬ÓÐЩ
ûÓС£UNIXÒªÇóÄãÄÜÇø·ÖÕâЩÃüÁî¡£±ÈÈ磬wc, cpºÍlsÊÇÍⲿÃüÁËüÃǶ¼ÓÐman page
£¬¶øfg, jobs, setºÍalias£¨ÕâЩ³¤ÎļþÃûÊÇ´ÓÄÄÀïÀ´µÄ£¿£©ÊÇÄÚ²¿ÃüÁËüÃÇûÓÐman
page¡£

UNIX¸æËßÐÂÊÖÓá±man command¡±ÃüÁî»ñµÃ°ïÖú£¬ËûÃǿɲ»ÖªµÀ²¢²»ÊÇËùÓÐÃüÁî¶¼ÊÇÈç´Ë
¡£ÁíÍ⣬Èç¹ûËûÃǵÄshellÉèÖõÃÓÐЩ²»±ê×¼£¬ËûÃǾÍÖ»ÄÜÇë½Ì¸ßÊÖÀ´»ñµÃ°ïÖúÁË¡£

´íÎóÐÅÏ¢ºÍ´íÎó¼ì²é£¿Ã»ÃÅ!

ÐÂÊÖºÜÈÝÒ×·¸´íÎ󣬱ÈÈçÓôíÃüÁ»òÓôíÑ¡ÏϵͳӦ¸ÃÄÜʶ±ðÕâЩ´íÎ󣬲¢ÇÒ·´À¡
¸øÓû§¡£²»ÐÒµÄÊÇ£¬UNIX³ÌÐò´ÓÀ´²»Âé·³×Ô¼º¡£Ïà·´£¬UNIXÍùÍù°Ñ¸÷ÖÖ´íÎó»ìÔÚÒ»Æð£¬
Ö±µ½²úÉúÖÂÃüµÄ½á¹û¡£

ÉÏÃæÒ»½ÚÎÒÃÇ˵Ã÷ÁËrmÈçºÎÈÝÒ×Ôì³ÉÎóɾ³ý¡£µ«Äã¿ÉÄܲ»ÖªµÀ²»ÓÃrmÒ²ÄܺÜÈÝÒ×µØÎóɾ
³ýÎļþ¡£

Ïëɾ³ýÄãµÄÎļþô£¿ÊÔÊÔ±àÒëÆ÷

һЩcc°æ±¾¾­³£¸ù±¾²»¿¼ÂÇÓû§µÄ¿ÉÄÜÊäÈë´íÎ󣬶øÉ¾³ýһЩԴ´úÂëÎļþ¡£Ò»Ð©±¾¿ÆÉú
³£³£×ÅÁ˵À¡£


Date: Thu, 26 Nov 1992 16:01:55 GMT
X-Virus: 6
From: tk@dcs.ed.ac.uk (Tommy Kelly)
Subject: HELP!
Newsgroups: cs.questions
Organization: Lab for the Foundations of Computer Science, Edinburgh UK

ÎÒ¸Õ²ÅÏëÕâô±àÒë³ÌÐò£º
% cc ¨Co doit doit.c
²»Ð¡ÐÄÇóÉÁË£º
% cc ¨Co doit.c doit
²»ÓÃ˵ÎÒµÄdoit.c±»³åµôÁË¡£ÓÐûÓа취Äָܻ´ÎҵijÌÐò£¿£¨ÎÒ¸ÉÁËÕûÕûÒ»¸öÉÏÎ磩


ÆäËûһЩ³ÌÐòÒ²ÓÐͬÑùµÄÐÐΪ:


Date: Thu, 1 July 1993 09:10:50 - 0700
X-Virus: 6
From: Daniel Weise <Daniel@dolores.stanford.edu>
To: UNIX-HATERS
Subject: tarred and feathered

¾­¹ý¼¸´ÎŬÁ¦£¬ÎÒ×ÜËã´ÓÅ·ÖÞµÄÒ»¸ö´àÈõftpÕ¾µãÉÏÏÂÔØÁËÁËÒ»¸ö3.2MµÄÎļþ¡£¸Ãuntar
ËüÁË¡£ÎÒÇÃÁËÒ»ÏÂÃüÁî:
% tar ¨Ccf thesis.tar
¡­Ã»ÓлØÓ¦¡£

ÀÏÌ죡

ÊDz»ÊǸÃÓÃxÑ¡Ïî¶ø²»ÊÇc?
Êǵġ£

tarÊDz»ÊǸø³öÁË´íÎóÐÅϢ˵ûÓÐÖ¸¶¨ÊäÈëÎļþ£¿
ûÓС£

tarÊÇ·ñ¸Ð¾õµ½ÓÐʲô²»¶Ô¾¢£¿
ûÓС£

tarÊDz»ÊÇÕæµÄʲôҲûÓÐtar?
Êǵġ£

tarÊÇ·ñ°Ñthesis.tarÓÃÀ¬»ø¸²¸ÇÁË£¿
µ±È»£¬Õâ¾ÍÊÇUNIX¡£

ÎÒÊDz»ÊÇÐèÒªÔÙ»¨ 30·ÖÖÓ´ÓÅ·ÖÞÏÂÔØÕâ¸öÎļþ£¿
µ±È»£¬Õâ¾ÍÊÇUNIX¡£

ÎҸҿ϶¨Óв»ÉÙÈËÓöµ½¹ýÕâÒ»²»ÐÒ£¬ÓÐÄÇô¶àµÄ½â¾ö°ì·¨£¬±ÈÈ磺´íÎóÐÅÏ¢£¬Îļþ°æ±¾
»¯£¬È·ÈÏÓû§ÊÇ·ñÏ븲¸ÇÒ»¸öÒÑÓÐÎļþ£¬µÈµÈµÈµÈ¡£tarËÆºõÔÚÓÐÒâ¸øÓû§ÕÒÂé·³¡£


¶ÔÓÚ¾­³£ÓÃtar±¸·ÝµÄϵͳ¹ÜÀíÔ±À´Ëµ£¬Õâ¸öbug¸üÊÇΣÏÕ¡£²»ÉÙϵͳ¹ÜÀíÔ±¶¼Ôø¾­ÔÚ±¸
·Ý½Å±¾ÖдíÎóµØÊ¹Óùý¡°tar xf¡­¡±¡£ÔÚÐèÒª»Ö¸´±¸·ÝµÄʱºò£¬²Å·¢ÏÖÔ­À´Ê²Ã´Ò²Ã»×ö
¡£

ÓûÖªÊÇ·ñ»¹ÓÐÆäËûÕâÑùµÄ¿Ö²ÀÃüÁÇëÌýÏ»طֽ⡣


ÉÏ»ØÊé˵µ½cc¡¢tarµÈÃüÁîÊÇÈçºÎ°ïÖúÄãɾ³ýÖØÒªÎļþµÄ¡£UNIXµÄÇ¿´óµ±È»²»¾ÖÏÞÓÚ´Ë¡£


ÒòΪûÓдíÎó¼ì²é£¬ÔÚÖÚ¶à¡°UNIX Ç¿´ó±à³Ì¹¤¾ß¡±µÄÖ§³ÖÏ£¬Óû§Óи÷ÖÖÑ¡ÔñÀ´É¾³ýËû
ÃǵÄÖØÒªÎļþ¡£


Date: Sun, 4 Oct 1992 0:21:49 PDT
X-Virus: 6
From: Pavel Curtis <pavel@parc.xerox.com>
To: UNIX-HATERS
Subject: So many bastards to choose from¡­

ÎÒÓÐÒ»¸ö×ÜÔÚÔËÐеijÌÐòfoo£¬ÓÃÀ´Ìá¹©ÍøÂç·þÎñ£¬²¢ÇÒÿ¸ô24Сʱ¼ì²éϵͳÄÚ²¿×´Ì¬¡£


Ò»Ì죬ÎÒcdµ½fooËùÔÚµÄĿ¼£¬ÒòΪÕâ²»ÊÇ¿ª·¢Ä¿Â¼£¬ÎÒÏë¿´¿´fooµÄ°æ±¾ÊǶàÉÙ¡£´úÂë
ÊÇÓÉRCSÀ´Î¬»¤µÄ£¬ËùÒÔÎÒ×ÔÈ»¶øÈ»µØÊ¹ÓÃÁËÒÔÏÂÃüÁî:

% ident foo

Ïȱð¹ÜRCSµÄÖÖÖÖÁÓ¼££¬Ò²±ð¹ÜidentÈçºÎԭʼ·è¿ñ¡£ÎÒÕâ´ÎµÄÂé·³ÊÇ£¬ÎÒµÄÊÖÖ¸×ÔÐÐÆä
ÊǵØÑ¡ÔñÁ˸üÏñÒ»¸ö´ÊµÄindent¶ø²»ÊÇident:

% indent foo

indentÊÇUNIXµÄÒ»¸öÓÞ´ÀµÄC´úÂë·ç¸ñת»»¹¤¾ß¡£ÄǸöдindentµÄ»ìµ°ÊÇ·ñÅжÏÁËÒ»ÏÂÊä
ÈëÎļþÕæµÄΪC³ÌÐòô (ÌìÄÄ£¬ÖÁÉÙ¿ÉÒÔ¿´¿´ÎļþµÄºó׺ÊÇ·ñΪ.c°É)£¿ÎÒÏëÄãÖªµÀ´ð°¸
¡£¶øÇÒ£¬Õâ¸öSB(Said Bastard)ÈÏΪÈç¹ûÄãÖ»¸øÁËÒ»¸ö²ÎÊý£¬ÄÇôÄã¾ÍÊÇÏëÒª½øÐÐÔÚÏß
·ç¸ñת»»¡£²»¹ý±ð׿±£¬Õâ¸öSB ¿¼Âǵ½ÁË¿ÉÄÜ´øÀ´µÄÂé·³£¬Ëû±£´æÁËÒ»¸ö±¸·Ýfoo.BAK
¡£È»¶øËûÊÇ·ñÖ»ÊǼòµ¥µØ°Ñfoo»»Á˸öÃû×ÖÄØ£¿Ã»ÓУ¬ËûÑ¡ÔñÁË¿½±´(ºÁÎÞÒÉÎÊ£¬ÄǸöдi
ndentµÄ³ÌÐòÔ±ÔÚ×¼±¸±¸·ÝµÄʱºòÒѾ­´ò¿ªÁËfoo£¬¶øÇÒrenameϵͳµ÷ÓÃÊǺóÀ´²ÅÓеÄ)¡£
ÏÖÔÚ£¬Äã¿ÉÄÜÖªµÀ·¢ÉúÁËЩʲôÁË¡­

ÎÒÄÇÕýÔÚÔËÐÐÖеÄfooÔÚ×¼±¸Ò³ÃæÉȳöµÄʱºò£¬·¢ÏÖÔ­À´µÄ¿ÉÖ´ÐÐÎļþÒѾ­²»ÔÚÁË£¬Õâ¿É
²»ÊÇʲôºÃÊ£¬ÓÚÊÇÎÒµÄfoo±ÀÀ£ÁË£¬ÎÒ¶ªµôÁË20СʱµÄϵͳ״̬ÐÅÏ¢¡£

×ÔÈ»ÄÇЩÉè¼Æ£¨¿ÈËÔ£©UNIXµÄ»ìµ°ÃǶԸ´ÔÓµÄÎļþ°æ±¾»¯¹¦Äܲ»¸ÐÐËȤ£¬¶øÕâÒ»¹¦ÄܾÍ
ÄܾÈÎÒµÄÃü¡£µ±È»£¬ÄÇЩ»ìµ°Ò²´ÓδÏëµ½¹ý¶Ô×¼±¸½øÐÐÒ³ÃæÉȳöµÄÎļþ¼ÓËø£¬ÊDz»ÊÇ£¿

ÓÐÄÇô¶à»ìµ°¿É¹©Ñ¡Ôñ£¬ÎªÊ²Ã´²»°ÑËûÃǶ¼Ô×ÁË£¿

Pavel

ÏëÏóÒ»ÖÖÉ¢·¢ÂÈÆøµÄÓÍÆá£¬°´ÕÕ˵Ã÷£¬ÓÃÔÚ»§ÍâÊDz»³ÉÎÊÌâµÄ£¬µ«Èç¹ûÓÃËüË¢ÄãÎÔÊÒµÄ
ǽ±Ú£¬ÄãµÄÄÔ´ü¾ÍÒª´óÁË¡£ÕâÑùµÄÓÍÆáÄÜÔÚÊг¡ÉÏ´æ»î¶à¾ÃÄØ£¿µ±È»²»»á³¬¹ý20Äê¡£

´íÎóÐÅϢЦ»°

µ±Äã¿´µ½·¹¹ÝÅÜÌõİÑÒ»Å̲ËÈöÔڹ˿ÍÄÔ´üÉÏʱ£¬Äã»áЦô£¿UNIXÃÔ»áµÄ¡£µ«ÄÇЩÎÞÖú
µÄÓû§¶Ô×Å´íÎóÐÅÏ¢°Ù˼²»µÃÆä½âµÄʱºò£¬ËûÃÇÊÇ×îÏÈ·¢³öЦÉùµÄ¡£

ÓÐÈËÕûÀíÁËһЩUNIX×îΪ¿ÉЦµÄ´íÎóÐÅÏ¢£¬°ÑËû·¢²¼ÔÚUsenetÉÏ¡£ËûÃÇʹÓõÄÊÇC
shell.


% rm meese-ethics
rm: messe-ethics nonexistent

% ar m God
ar: God does not exist

% ¡°How would you rate Dan Quayle¡¯s incompetence?
Unmatched ¡°.

% ^How did the sex change^ operation go?
Modifier failed.

% If I had a ( for every $ the Congress spent, what would I have?
Too many (¡®s

% make love
Make: Don¡¯t know how to make love. Stop.

% sleep with me
bad character

% got a light?
No match

% man: why did you get a divorce?
man: Too many arguments.

% ^What is saccharine?
Bad substitute.

% %blow
%blow: No such job.

ÏÂÃæµÄÕâЩÓÄĬ×÷Æ·À´×ÔBourne Shell:


$ PATH=pretending! /usr/ucb/which sense
no sense in pretending

$ drink <bottle; opener
bottle: cannot open
opener: not found

$ mkdir matter; cat >matter
matter: cannot create


UNIX̬¶È

ÎÒÃÇÕ¹ÏÖÁËÒ»¸ö·Ç³£²Òµ­µÄͼ¾°: ÃÔÒ»°ãµÄÃüÁîÃû£¬²»Ò»ÖºÍÎÞ·¨Ô¤¼ÆµÄÔËÐнá¹û£¬Î£
ÏÕÃüÁîûÓб£»¤£¬ÎÞ·¨½ÓÊܵÄÔÚÏßÎĵµÒÔ¼°ÔÚ´íÎó¼ì²éºÍÈÝ´íÐÔ·½ÃæµÄÏ¡Ëɹ¤×÷¡£ÄÇЩ
²Î¹ÛUNIXµÄÈ˲»ÊÇΪÁ˵õ½ÈÈÇé¿î´ý£¬ËûÃDz»ÊǵÏ˹Äṫ԰ÖеÄÓοͣ¬¸üÏñÊÇÖ´ÐÐÈÎÎñ
ÖеÄÁªºÏ¹úάºÍ²¿¶Ó¡£UNIXÔõô»á¸ã³ÉÕâ¸öÑù×Ó£¿ÈçÎÒÃÇÔøÖ¸³öµÄÄÇÑù£¬ÆäÖÐÓÐһЩÊÇ
ÀúÊ·Ô­ÒòÔì³ÉµÄ¡£µ«ÊÇ»¹ÓÐÆäËûµÄÔ­Òò£ºÄǾÍÊǶàÄêÀ´ÐγɵÄUNIXÎÄ»¯£¬ÕâÖÖÎÄ»¯±»³Æ
Ϊ ¡°UNIXÕÜѧ¡±¡£

UNIXÕÜѧ²»ÊÇÀ´×ÔBellʵÑéÊÒ»òUNIXϵͳʵÑéÊÒµÄÊֲᡣËûÊÇ×ÔÈ»Ðγɵ쬯äÖаüº¬ÁË
Ðí¶àÈ˵űÏס£Don LibesºÍSandy ResslerÔÚ¡¶UNIXÉú»î¡·(Life with UNIX)ÖжÔUNIX
ÕÜѧ×÷Á˺ܺõÄ×ܽ᣺


С¼´ÊÇÃÀ
ÓÃ10%µÄ¹¤×÷½â¾ö90%µÄÈÎÎñ
Èç¹û±ØÐë×÷³öÑ¡Ôñ£¬Ñ¡Ôñ×î¼òµ¥µÄÄǸö¡£


¸ù¾ÝUNIX³ÌÐòºÍ¹¤¾ßµÄʵ¼Ê±íÏÖÀ´¿´£¬¶ÔUNIXÕÜѧ¸üΪ¾«È·µÄ×ܽáÓ¦¸ÃÊÇ:

СµÄ³ÌÐò±ÈÕýÈ·µÄ³ÌÐò¸üºÃ
´ÖÖÆÀÄÔìÊÇ¿ÉÒÔ½ÓÊܵÄ
Èç¹û±ØÐë×÷³öÑ¡Ôñ£¬Ñ¡ÔñÔðÈÎ×îСµÄÄǸö¡£


UNIXûÓÐÕÜѧ£¬UNIXÖ»ÓÐ̬¶È¡£Õâ¸ö̬¶ÈÖ¸³ö¼òµ¥µÄ×öÁËÒ»°ëµÄ¹¤×÷±È¸´ÔÓÍêÕûµÄ¹¤×÷
¸üºÃ¡£Õâ¸ö̬¶ÈÖ¸³ö³ÌÐòÔ±µÄʱ¼ä±ÈÓû§µÄʱ¼ä¸üΪÕä¹ó£¬¼´Ê¹Óû§±È³ÌÐòÔ±Òª¶àµÃ¶à
¡£Õâ¸ö̬¶ÈÖ¸³ö´ïµ½×îµÍÒªÇó¾Í×ã¹»ÁË¡£


Date: Sun, 24 Dec 89 19:01:36 EST
X-Virus: 6
From: David Chapman <zvona@ai.mit.edu>
To: UNIX-HATERS
Subject: killing jobs; the Unix Design Paradigm

ÎÒ×î½üѧ»áÁËÈçºÎÔÚUNIXÉÏɱµôÈÎÎñ¡£ÔÚÕâ¸ö¹ý³ÌÖÐÎÒÌå»áµ½Á˲»ÉÙUNIXµÄÇ¿´óºÍÖÇ»Û
£¬ÎÒÏëÓ¦¸ÃºÍ´ó¼Ò·ÖÏíһϡ£

ÄãÃÇÖеĴó¶àÊýµ±È»²»ÓÃUNIX£¬ËùÒÔÖªµÀÈçºÎUNIXÉÏɱÈÎÎñ¹À¼ÆÃ»Ê²Ã´Óᣵ«ÊÇ£¬ÄãÃÇ
ÖеÄһЩÈË£¬°üÀ¨ÎÒ£¬¿ÉÄܻᾭ³£ÔËÐÐһЩTeXÈÎÎñ£¬ÄÇôѧ»áɱÈÎÎñ¾ÍÏÔµÃÓÈÎªÖØÒªÁË
¡£¡°kill¡±ÃüÁî¼Ì³ÐÁËUNIXµÄÉè¼ÆÔ­Ôò£¬ËùÒÔÏÂÃæµÄһЩÌå»áÓиüΪͨÓõÄÒâÒå¡£

ÔÚUNIXÖÐÄã¿ÉÒÔÓÃ^Z¹ÒÆðÒ»¸öÈÎÎñ£¬»òÕßÓÃ^CÖÕÖ¹Ò»¸öÈÎÎñ¡£µ«ÊÇLaTex×Ô¼º½Ø»ñ^C¡£½á
¹ûÊÇ£¬ÎÒ¾­³£¸ã³öÒ»¶ÑLaTexÈÎÎñ¡£ÎҶԴ˵½²»ÔÚºõ£¬¿É»¹ÊǾõµÃÓ¦¸ÃÏë°ì·¨³ýµôËüÃÇ¡£


Ðí¶à²Ù×÷ϵͳÓС°kill¡±ÕâÑùµÄÃüÁUNIXÒ²²»ÀýÍâ¡£´ó¶àÊý²Ù×÷ϵͳÉϵġ°kill¡±½ö
½öÓÃÀ´É±ËÀ½ø³Ì¡£µ«UNIXµÄÉè¼Æ¸üΪͨÓ㺡°kill¡±±»ÓÃÀ´Ïò½ø³Ì·¢ËÍÒ»¸öÐźţ¬ÕâÌå
ÏÖÁËUNIXµÄÒ»¸öÉè¼ÆÔ­Ôò£º

¾¡Á¿Ê¹²Ù×÷ͨÓ㬸øÓèÓû§Ç¿´óÁ¦Á¿(power)


¡°kill¡±ÃüÁÄܺÜÊÇÇ¿´ó£»ÄãÄÜÓÃËü¸ø½ø³Ì·¢Ë͸÷ÖÖ¸÷ÑùµÄÐźš£±ÈÈ磬9Õâ¸öÐźÅÓÃ
À´É±ËÀ½ø³Ì¡£×¢Òâµ½9ÊÇ×î´óµÄһλÊý£¬ÕâÌåÏÖÁËUNIXµÄÁíÒ»¸öÉè¼ÆÔ­Ôò£º

ʹÓÃÄÜÌåÏÖ¹¦ÄܵÄ×î¼òµ¥µÄÃû×Ö


ÔÚÆäËûÎÒÖªµÀµÄ²Ù×÷ϵͳÉÏ£¬²»´ø²ÎÊýµÄ¡°kill¡±ÓÃÓÚɱËÀµ±Ç°ÈÎÎñ¡£µ¥UNIXµÄ¡°kill
¡±×ÜÊÇÐèÒª²ÎÊý¡£ÕâÌåÏÖÁËUNIXµÄÒ»¸öÃ÷ÖǵÄÉè¼ÆÔ­Ôò£º

¾¡Á¿Ê¹Óó¤²ÎÊý»òÌáʾÀ´·ÀÖ¹Óû§²»Ð¡ÐİÑ×Ô¼º²ÙÁË(screwing himself)


ÕâÒ»Éè¼ÆÔ­ÔòÔÚÐí¶àUNIXÓ¦ÓóÌÐòÖеõ½ÁËÌåÏÖ£¬ÎÒ²»ÏëÁоÙËüÃÇ£¬µ«»¹ÊÇÏëÌáÒ»ÏÂUNI
XÉÏlogoutºÍÎļþɾ³ýµÄʵÏÖ£¬Ï£ÍûÄãÖªµÀÎÒµÄÒâ˼¡£

ÔÚÆäËûÎÒÖªµÀµÄ²Ù×÷ϵͳÉÏ£¬¡°kill¡±½ÓÊܵIJÎÊýÊÇÈÎÎñÃû¡£Õâ²»ÊǺõÄÑ¡Ôñ£¬ÒòΪÄã
¿ÉÄÜÓÐÐí¶àLaTexÈÎÎñͬʱÔËÐУ¬ËüÃǶ¼ÓÐͬÑùµÄÈÎÎñÃû¡°latex¡±¡£ËùÒÔ¡°kill ¨C9
latex¡±¿ÉÄÜ»á²úÉúÆçÒå¡£

ºÍÆäËû²Ù×÷ϵͳһÑù£¬UNIXÌṩһ¸öÁгöÈÎÎñµÄÃüÁî¡°jobs¡±£¬ÏÂÃæÊÇÒ»¸öÀý×Ó£º

zvona@rice-chex> jobs
[1] ¨C Stopped latex
[1] ¨C Stopped latex
[1] + Stopped latex

ÕâÑùÄã¿ÉÒÔÓÃjobºÅ£¨±íʾÔÚ[]ÖУ©±êʶһ¸öÈÎÎñ¡£

Èç¹ûÄãÊܵ½ÄÇЩδ¾­¾«µñϸ¿ÌµÄ²Ù×÷ϵͳµÄÓ°Ï죬Äã»áÏëÓá°kill ¨C9 1¡±À´É±µôµÚÒ»
¸ölatexÈÎÎñ¡£µ«Äã»á·¢ÏÖÏÂÃæµÄ´íÎóÐÅÏ¢£º

zvona@rice-chex> kill -9 1
1: not owner

ÕýÈ·µÄ×ö·¨ÊÇʹÓýø³ÌºÅ£¬±ÈÈç18517¡£ÄãÄÜÓá°ps¡±ÃüÁî»ñµÃËü¡£µ±ÕÒµ½ÁËÏàÓ¦½ø³ÌºÅ
ºó£¬ÄãÖ»Òª£º

zvona@rice-chex> kill -9 18517
zvona@rice-chex>
[1] Killed latex

×¢Òâµ½UNIXÔÚÄãµÄÈÎÎñ±»ÕæÕýɱµô֮ǰ¾Í¸øÁËÄãÌáʾ·û¡£ÕâÓÖÌåÏÖÁËÒ»¸öUNIXÉè¼ÆÔ­Ôò
£º

¶ÔÓÚ¸øÓû§µÄ·´À¡£¬ÄÜÉÙ˵¾ø²»¶à˵£¬ÄÜÍí˵¾ø²»Ôç˵¡£ÒÔÃâ¹ý¶àÐÅÏ¢Ëù¿ÉÄܵ¼ÖµÄÓÃ
»§ÄÔËðÉË¡£


ÎÒÏ£ÍûÕâЩÌå»áÄܶԴó¼ÒÓÐÓá£ÔÚÕâһѧϰ¹ý³ÌÖУ¬ÎÒ×Ô¼ºµ±È»±»UNIXÉè¼ÆÕÜѧËùÉîÉî
ÎüÒýÁË¡£ÎÒÃǶ¼Ó¦¸Ã´ÓUNIX killÃüÁîµÄÑÅÖ¡¢Ç¿´óºÍ¼ò½àÖÐѧµ½Ð©¶«Î÷¡£

µÚ¶þÕ¾ÍÕâôÍêÁË,¾­ÀúÁËÕâô¶à¼èÄÑÀ§¿àµÄÄãÒѾ­²»ÊÇÐÂÊÖÁË,Ï»ØÊ齫½éÉÜUNIXÖ®ÎÄ
µµ,»òÕß˵UNIX֮ûÓÐÎĵµ.




ºÜ¶àʱºò
ÄãÎÒÖ®¼äÄDz»¿ÉÓâÔ½µÄÌìÑÄ
½ö½öÖ»ÓÐåë³ß´óС

ÓÃÈðÐÇ?»¹²»ÈçÓÃÖÇ»ÛÐÇ!
2V97-9DKN-F9HC-JCJE
KTB9-N7BP-CR8N-49VX
X1OC2N0GJ1H51W84
¶¥²¿
[¹ã¸æ] ÍÆ¼ö¸ö³¬¿áµÄweb2.0Ïà²á
ѪɫÑÛÀá (ÃÈÒªËØ)
LUPA¹ó±ö
Rank: 8Rank: 8


ÓÅÐã°ßÖñ½±   ½Ü³ö¹±Ï×½±  
UID 16005
¾«»ª 3
»ý·Ö 7043
Ìû×Ó 2780
LUPA±Ò 5647 µã
ÔĶÁȨÏÞ 100
×¢²á 2006-1-6
·¢±íÓÚ 2006-3-21 10:08  ×ÊÁÏ ¸öÈË¿Õ¼ä ¶ÌÏûÏ¢ 
µÚÈýÕ Îĵµ

OK£¬²»ÊÇÐÂÊÖµÄÄã¿ÉÄÜÏë½øÒ»²½Ñ§Ï°Á˽âUNIX¡£²»´í£¬UNIXÎĵµÕýÊÇÄãÐèÒªµÄ¡£

Îĵµ
ʲôÎĵµ

¡°Ê¹ÓÃUNIX½øÐвÙ×÷ϵͳ½ÌѧµÄÒ»¸öºÃ´¦ÊÇ£¬Ñ§ÉúµÄÊé°üÄÜ×°ÏÂËùÓеÄUNIXÔ´´úÂëºÍÎÄ
µµ¡£¡±
¡ª¡ª John Lions£¬ ÐÂÄÏÍþ¶ûÊ¿´óѧ£¬1976ÄêÔÚ̸ÂÛUNIX°æ±¾6ʱ˵µÄÒ»¶Î»°¡£

¶àÄêÒÔÀ´£¬ÓÐÈý¸ö»ñµÃUNIXÓйØÖªÊ¶µÄ¼òµ¥Í¾¾¶:


ÔĶÁÔ´´úÂë
дһ¸ö×Ô¼ºµÄUNIX
¸øÐ´UNIXµÄ³ÌÐòÔ±´òµç»°£¨»òÊÇ·¢email£©


ºÍºÉÂíʷʫһÑù£¬UNIX±»¿ÚÍ·´«ËÐ×Å¡£Èç¹û²»³ÉΪÄں˺ڿͣ¬Äã¾Í²»¿ÉÄÜÊÇÒ»¸öÑÏËàµÄU
NIXÓû§¡ª¡ª»òÕßÖÁÉÙÓ¦¸ÃÔÚÉí±ßÓиö´¥Êֿɼ°µÄÄں˺ڿ͡£ÄǸöȷʵ´æÔÚµÄÎĵµ¡ª¡ªma
nÊֲᡪ¡ª²»¹ýÊÇһЩÒѾ­ÖªµÀ×Ô¼ºÔÚ×öʲôÁ˵ÄÈËËùÊÕ¼¯µÄһЩ±¸Íü¼¡£UNIXµÄÎĵµÊÇ
Õâô¼ò½à£¬ÄãÄÜÔÚÒ»ÏÂÎç¶ÁÍêËü¡£

ÔÚÏßÎĵµ

man¹¤¾ßÊÇUNIXÎĵµÏµÍ³µÄ»ù´¡¡£man½ÓÊÜÄãÊäÈëµÄ²ÎÊý£¬ÕÒµ½ÏàÓ¦µÄÎĵµÎļþ£¬°ÑËüÊä
³öµ½nroff£¨»¹°üÀ¨Ò»Ð©µØÇòÉÏûÓÐÆäËûµØ·½Ê¹ÓõÄһЩÎı¾¸ñʽºê£©£¬×îºó½á¹û±»·¢ËÍ
µ½pg»òmore¡£

ÆðÏÈ£¬ÕâЩÁãËéÎĵµ±»½Ð×ö¡±manÒ³¡±(man pages)£¬ÒòΪÕâЩÎĵµ¶àΪһҳ×óÓÒ£¨¶àÊý
Çé¿öÊÇÉÙÓÚÒ»Ò³£©¡£

man¶ÔÓÚÄǸöʱ´úÊǸö²»´íµÄÍæÒ⣬µ«ÄǸöʱ´úÔçÒÑһȥ²»¸´·µÁË¡£

¶àÄêÀ´£¬manϵͳ²»¶Ï·¢Õ¹³ÉÊì¡£ÖµµÃ³ÆÔÞµÄÊÇ£¬Ëü²¢Ã»ÓÐÏñUNIXµÄÆäËû²¿·ÖÒ»Ñù¸ãµÃ´ú
Âë»ìÂÒ³ÌÐòÄѶ®£¬¿ÉÊÇËüҲû±äµÃ¸üÓÐÓá£ÊÂʵÉÏ£¬ÔÚ¹ýÈ¥µÄ15ÄêÖУ¬UNIXµÄÎĵµÏµÍ³
Ö»ÓÐÁËÁ½´¦¸Ä½ø:

catman. ³ÌÐòÔ±Ôø¡°¾ªÏ²µØ¡±·¢ÏÖ³ýÁËnroff¸ñʽÒÔÍ⣬ËûÃÇ»¹ÄÜ´æ´¢´¦Àí¹ýµÄÎĵµÎļþ
£¬ÕâÑùÎĵµµ÷³öµÄËٶȾ͸ü¿ìÁË¡£ ¶ÔÓÚ½ñÌìµÄ¿ìËÙ´¦ÀíÆ÷£¬catmanËÆºõ²»ÄÇôÐèÒªÁË¡£
µ«ÊÇÐí¶ànroff´¦Àí¹ýµÄÎĵµÎļþÈÔȻռ¾Ý×ÅÓû§µÄ¼¸Õ×´ÅÅ̿ռ䡣
makewhatis, aproposºÍkey (×îÖÕ¹¹³ÉÁËman ¨Ck¹¦ÄÜ)ÊÇÒ»¸ö¶ÔmanÊÖ²á½øÐÐË÷ÒýµÄϵͳ
£¬ÕâÑù¼´Ê¹²»ÖªµÀ³ÌÐòµÄÈ·ÇÐÃû×ÖÒ²ÄܽøÐвéѯ¡£


Óë´Ëͬʱ£¬µç×Ó³ö°æµÄÊÆÍ·ÔçÒѳ¬¹ýÁËmanÊֲᡣʹÓýñÌìµÄ³¬Îı¾ÏµÍ³ÄãÄÜÓÃÊó±ê´ÓÒ»
ƪÎÄÕÂÌøµ½ÁíһƪÎÄÕ£»ÓëÖ®Ïà±È£¬manÊÖ²á½ö½öÔÚĩβÌṩ¡±SEE ALSO¡±Ò»½Ú£¬ÈÃÓû§
×Ô¼ºÔÙmanÏÂÈ¥¡£ÔÚÏßÎĵµµÄË÷Òý¹¦ÄÜÓÖÊÇÈçºÎÄØ£¿½ñÌìÄã¿ÉÒÔÂòµ½CD-ROMÉϵÄÅ£½òÓ¢Óï
´Êµä£¬Ëü¶ÔÆäÖеÄÿһ¸ö´Ê¶¼¼ÓÁËË÷Òý£»¿ÉÊÇmanÊֲỹÊǽö½ö¶ÔÃüÁîÃûºÍÃèÊöÐнøÐÐË÷
Òý¡£½ñÌìÉõÖÁÁ¬DOS¶¼ÌṩÁËÓÐË÷ÒýµÄ³¬Îı¾Îĵµ¡£¿ÉÊÇmanÊֲỹÊDzÉÓÃÊʺÏDEC´òÓ¡ÖÕ
¶ËµÄ80ÁÐ66Ðеĸñʽ¡£

¹«Æ½µã˵£¬ÓÐЩ³§ÉÌÊÇÔÚ¿´²»ÏÂÈ¥£¬ÌṩÁË×Ô¼ºµÄ³¬Îı¾ÔÚÏßÎĵµÏµÍ³¡£ÔÚÕâЩϵͳÉÏ
£¬manÊÖ²á×ßµ½Á˽ø»¯µÄ¾¡Í·£¬³£³£²»ÊǹýʱÁË£¬¾ÍÊǸù±¾²»´æÔÚ¡£

¡°ÎÒÖªµÀËü¾ÍÔÚÕâÀ¿É¾ÍÊÇÕÒ²»µ½¡±

¶ÔÓÚ½ñÌ컹ÔÚʹÓÃmanÊÖ²áµÄÈËÀ´Ëµ£¬×î´óµÄÎÊÌâÊǸæËßmanÄãÒªµÄmanÊÖ²á¾ÍÔÚÄÇÀï¡£ÔÚ
ÒÔǰ£¬²éÕÒmanÊÖ²áÊǺÜÈÝÒ׵ģºÈ«¶¼ÔÚ/usr/manÏÂÍ·¡£ºóÀ´manÊֲᰴÕ½ڷֳÉÁ˲»Í¬
µÄĿ¼£º/usr/man/man1, /usr/man/man2,/usr/man/man3µÈµÈ¡£ÓеÄϵͳÉõÖÁ°Ñ¡°±¾µØ
¡±manÊÖ²áÒ²·ÅÔÚ/usr/man/man1Ï¡£

µ±AT&T·¢²¼ÏµÍ³VµÄʱºò£¬Çé¿ö±äµÃ·Ñ½âÁË¡£/usr/man/man1Ŀ¼±ä³ÉÁË/usr/man/c_man
£¬Ëƺõ×Öĸ±ÈÊý×Ö¸üºÃ¼Ç¡£ÔÚÓÐЩϵͳÉÏ£¬/usr/man/man1±ä³ÉÁË/usr/local/man¡£ÄÇЩ
ÏúÊÛUNIXÓ¦ÓóÌÐòµÄ¹«Ë¾¿ªÊ¼½¨Á¢×Ô¼ºµÄmanĿ¼¡£

×îÖÕ£¬²®¿ËÀûÐÞ¸ÄÁËman³ÌÐòʹµÃËüÄܶԻ·¾³±äÁ¿$MANPATHÖÐÖ¸¶¨µÄһϵÁÐĿ¼½øÐвéÕÒ
¡£ÕâÊǸöΰ´óµÄÏë·¨£¬Ö»ÓÐÒ»¸öС벡£ºËü²»¹¤×÷¡£(ÒÔÏÂÊ¡ÂÔ100×Ö, ÒòΪÎÒÌ«ÀÁÁË£¬
ÄÚÈÝÒ²ÓÐЩ̫¹ýʱÁË£¬LinuxÉϵÄman»¹ÊDz»´íµÄ£¬³ýÁËÎÞ·¨»ñµÃshellÄÚ²¿ÃüÁîµÄmanÊÖ
²á£¬µ±È»£¬man bashÊÇÒ»¸öÑ¡Ôñ -- me)¡£

Õâ¸ö¾ÍÊÇÄÚ²¿Îĵµ£¿

һЩ´óµÄUNIX¹¤¾ßÒ²Ìṩ×Ô¼ºµÄÎĵµ¡£Ðí¶à³ÌÐòµÄÔÚÏßÎĵµÊÇÒ»ÐнÐÈ˷ѽâµÄ ¡°Ê¹Óá±
£¨usage£©ËµÃ÷¡£ÏÂÃæÊÇawkµÄ¡°Ê¹Óá±ËµÃ÷:

% awk
awk: Usage: awk [-f source | ¡®cmds¡¯] [files]

ÊDz»ÊÇͦÓÐÓõģ¿¸´ÔÓһЩµÄ³ÌÐòÓÐןüÉîÈëµÄÔÚÏßÎĵµ¡£²»ÐÒµÄÊÇ£¬ËüÃÇÓÐʱºòÃèÊö
µÄËÆºõ²»ÊÇÄãÕýÔÚÔËÐеijÌÐò¡£

Date: 3 Jan 89 16:26:25 EST (Tuesday)
X-Virus: 6
From: Reverend Heiny <Heiny.henr@Xerox.COM>
To: UNIX-HATERS
Subject: A conspiracy uncovered (Òõı±»½Ò¶ÁË)

¾­¹ý¼¸¸öСʱµÄרÐÄÑо¿£¬ÎҵóöÁËÒ»¸öÖØÒªµÄ½áÂÛ£º

UNIXÊǹ·Êº (UNIX sucks)

ÏÖÔÚ£¬Äã¿ÉÄܾõµÃºÜ¾ªÑÈ£¬µ«ÕâÊÇÊÂʵ¡£ÕâÏîÑо¿ÒѾ­±»±é²¼È«ÇòµÄÑо¿ÈËÔ±Ëù֤ʵÁË
¡£

¸üÎªÖØÒªµÄÊÇ£¬Õâ²»½ö½öÊÇ̯¹·Êº£¬¶øÊÇÓÖÏ¡ÓÖÕ³µÄ³ô¹·Êº£¬ÊÇ´óдµÄ³ô¹·Êº¡£¿´¿´ÏÂ
ÃæÕâ¸öÀý×Ó£¬Äã¾ÍÖªµÀÁË£º

toolsun% mail
Mail version SMI 4.0 Sat Apr 9 01:54:23 PDT 1988 Type ? for help
¡°/usr/spool/mail/chris¡±: 3 messages 3 new
>N 1 chris Thu Dec 22 15:49 19/643 editor saved ¡°trash1¡±
N 2 chris Tue Jan 3 10:35 19/636 editor saved ¡°trash1¡±
N 3 chris Tue Jan 3 10:35 19/656 editor saved ¡°/tmp/ma9¡±
& ?
Unknown command: ¡°?¡±
&

ʲôÑùµÄϵͳ»·¾³£¨ÌرðÊÇÕâ¸öµ½ÁËÄÜ¿ª³µ¡¢Í¶Æ±¡¢ºÈÆ¡¾ÆÄêÁäµÄ¼Ò»ï£©»á¾Ü¾øÒ»¸öËü
ÈÃʹÓõÄÃüÁ

ΪʲôÓû§ÊÖ²áÊÇÈç´ËÍÑÀëÏÖʵ£¿

ΪʲôÕâЩÉñÃØµÄÃüÁîÊÇÕâôºÍ¹¦Äܲ»·û£¿


ÎÒÃDz»ÖªµÀHeinyµÄÎÊÌâÊÇʲô£»ºÍÎÒÃÇÉÏÃæÌáµ½µÄһЩÎÊÌâÒ»Ñù£¬Õâ¸öbugËÆºõÒѾ­±»
ÐÞÕýÁË¡£»òÕß˵£¬Ëü±»×ªÒƵ½ÁËÆäËû³ÌÐòÖС£

Date: Tuesday, September 29, 1992 7:47PM
X-Virus: 6
From: Mark Lottor <mkl@nw.com>
To: UNIX-HATERS
Subject: no comments needed (ÎÞÐè¶à˵)

fs2# add_client
usage: add_client [options] clients
add_client -i | -p [options] clients
-i interactive mode ¨C invoke full-screen mode

[»¹ÓÐһЩѡÏÕâÀïÊ¡ÂÔÁË]

fs2# add_client -i

Interactive mode uses no command line arguments


ÈçºÎµÃµ½ÕæÕýµÄÎĵµ

ʵ¼ÊÉÏ£¬UNIX×îºÃµÄÎĵµÊǾ­³£ÓÃstrings´¦Àí³ÌÐò¶þ½øÖÆ´úÂ롣ʹÓÃstringsÄãÄܵõ½
ËùÓгÌÐòÖж¨ËÀÁ˵ÄÎļþÃû£¬»·¾³±äÁ¿£¬Î´¹«¿ªµÄÑ¡Ï¹ÖÒìµÄ´íÎóÐÅÏ¢µÈµÈ¡£±ÈÈ磬
Èç¹ûÄãÏëÖªµÀcppÊÇÈçºÎÈ¥²éÕÒÍ·ÎļþµÄ£¬Äã×îºÃʹÓÃstrings¶ø²»ÊÇman:

next% man cpp
No manual entry for cpp.
next% strings /lib/cpp | grep /
/lib/cpp
/lib/
/usr/local/lib/
/cpp
next%

àÅ¡­±ð׿±

next% ls /lib
cpp* gcrt0.o libssy_s.a
cpp-precomp* i386/ m68k/
crt0.o libsys_p.a posixcrt0.o
next% strings /lib/cpp-precomp | grep /
/*%s*/
//%s
/usr/local/include
/NextDeveloper/Headers
/NextDeveloper/Headers/ansi
/NextDeveloper/Headers/bsd
/LocalDeveloper/Headers
/LocalDeveloper/Headers/ansi
/LocalDeveloper/Headers/bsd
/NextDeveloper/2.0CompatibleHeaders
%s/%s
/lib/%s/specs
next%

ÎÒÕæ±¿¡£NEXTSTEPµÄcppʹÓÃÁË/lib/cpp-precomp¡£Äã²»¿ÉÄÜÔÚmanÊÖ²áÖз¢ÏÖÕâЩ¡£

next% man cpp-precomp
No manual entry for cpp-precomp.


OK. ÕâÒ»Çо¿¾¹ÊÇÒòΪʲô£¿ÕâÒ»Çо¿¾¹ÊǴӺζøÀ´£¿Ï»طֽ⡣

ÉÏ»ØÊé˵µ½Ô´´úÂëÊÇ×îºÃºÍΨһµÄÎĵµ£¬¸ù±¾Ô­ÒòÊÇÒòΪUNIXÊÇ...

¸ø³ÌÐòÔ±Óõ쬲»ÊÇÓû§

±ðÒòΪUNIXõ¿½ÅµÄÎĵµ¶øÔð¹ÖKenºÍDennis¡£ UNIX¸Õ¿ªÊ¼½¨Á¢ÎĵµÊ±²¢Ã»ÓÐ×ñÊØÒµ½çÁ÷
ÐеÄÎĵµ±ê×¼£¬Ò»Ð©bugºÍDZÔÚµÄÏÝÚ壬¶ø²»ÊdzÌÐòµÄ¹¦ÄÜ£¬±»¼Ç¼ÁËÏÂÀ´£¬ÕâÊÇÒòΪ¶Á
ÕâЩÎĵµµÄÈËÍùÍù¾ÍÊÇUNIXϵͳ¿ª·¢Õß¡£¶ÔÓÚÐí¶à¿ª·¢ÕßÀ´Ëµ£¬manÊֲ᲻¹ýÊÇÊÕ¼¯bug
±¨¸æµÄµØ·½¡£ÄÇЩÕë¶Ô³õ¼¶Óû§¡¢³ÌÐòÔ±ºÍϵͳ¹ÜÀíÔ±ÌṩÎĵµµÄ¹ÛÄîÊÇÐÂÍæÒâ¡£¿É±¯
µÄÊÇ£¬ÓÉÓÚ70Äê´ú½¨Á¢µÄUNIXÎĵµÏµÍ³£¬ÕâÒ»¹ÛÄîʵÏֵIJ¢²»ÊǺܳɹ¦¡£

UNIXÊÀ½çÈÏʶµ½ÁËÕâЩÎĵµ·½ÃæµÄÏÖ×´£¬µ«²¢²»¾õµÃÓÐʲô´ó²»Á˵ġ£¡¶UNIXÉú»î¡·ºÜ
¿Í¹ÛµØËµÃ÷ÁËUNIX¶ÔÓÚÎĵµµÄ̬¶È:

UNIXÔ´´úÂëÊÇ×îºÃµÄÎĵµ¡£±Ï¾¹£¬ÕâÊÇϵͳÓÃÒÔ¾ö¶¨¸ÃÈçºÎÔËÐÐʱËù²ÎÕÕµÄÎĵµ¡£Îĵµ
ÓÃÀ´½âÊÍ´úÂ룬¾­³£ÊÇһЩ²»Í¬µÄÈËÔÚ²»Í¬µÄʱ¼äд³ÉµÄ£¬¶øÕâЩÈËÍùÍù²»ÊÇд´úÂëµÄ
ÈË¡£ÄãÓ¦¸Ã°ÑÕâЩÎĵµ¿´×÷ÊÇÖ¸ÄÏ¡£ÓÐʱºòÕâЩÎĵµ²»¹ýÊÇЩÆÚÍû¶øÒÑ¡£

µ«ÊÇ£¬¸üÒ»°ãµÄ×ö·¨ÊÇÈ¥Ô´´úÂëÖÐѰÕÒδ±»Îĵµ»¯Ê¹Ó÷½·¨ºÍ¹¦ÄÜ˵Ã÷¡£ÓÐʱºòÄã»á·¢
ÏÖһЩÎĵµÖмǼµÄ¹¦ÄÜÆäʵ²¢Ã»Óб»ÊµÏÖ¡£

Õ⻹ֻÊÇÕë¶ÔÓû§³ÌÐò¡£¶ÔÓÚÄںˣ¬Çé¿ö¾Í¸üΪÔã¸âÁË¡£Ö±µ½×î½ü£¬»¹Ã»Óг§ÉÌÌṩµÄ
É豸Çý¶¯±àдºÍÄں˼¶µ÷Óú¯ÊýµÄÎĵµ×ÊÁÏ¡£ÓÐÈË¿ªÍæÐ¦Ëµ£º¡°Èç¹ûÄã¾õµÃÐèÒªÔĶÁ¹Ø
ÓÚÄں˺¯ÊýµÄÎĵµ£¬ÄÇôºÜ¿ÉÄÜÄã±¾À´¾Í²»ÅäʹÓÃÕâЩº¯Êý¡£¡±

ÕæÏà¿ÖŸüΪа¶ñ¡£Ö®ËùÒÔûÓÐÄÚºËÎĵµÊÇÒòΪAT&T°ÑËüµÄ´úÂë¿´³ÉÊÇÉÌÒµ»úÃÜ¡£Èç¹û
ÄãÏëдһ±¾ËµÃ÷UNIXÄں˵ÄÊ飬ÄÇôÄã¾ÍµÈ×ÅÈë±»¸æÏ¯°É¡£

Ô´´úÂë¾ÍÊÇÎĵµ

ÃüÀï×¢¶¨£¬AT&TµÄ¼Æ»®ÅªÇɳÉ×¾ÁË¡£ÓÉÓÚûÓÐÎĵµ£¬Á˽âÄں˺ÍÓ¦ÓóÌÐòµÄΨһ;¾¶¾Í
ÊÇÔĶÁÔ´´úÂë¡£½á¹ûÊÇ£¬UNIXÔ´´úÂëÔÚÔÚ×î³õµÄ20ÄêÖб»·è¿ñµÄµÁ°æ¡£×ÉѯÈËÔ±£¬³ÌÐò
Ô±ºÍϵͳ¹ÜÀíԱȥ¸ãUNIXÔ´´úÂë²¢²»ÊÇΪÁËÖØÐ±àÒë»òÖÆ×÷³öÊÛ×Ô¼ºµÄUNIX°æ±¾£¬ËûÃÇ
ÐèÒªÎĵµ£¬¶øÔ´´úÂëÊÇΨһµÄÑ¡Ôñ¡£UNIXÔ´´úÂë´Ó´óѧÁ÷ÏòÖܱߵĸ߿Ƽ¼¹«Ë¾¡£Õ⵱Ȼ
ÊÇ·Ç·¨µÄ£¬µ«ÊÇÇéÓпÉÔ­£ºUNIX³§ÉÌÌṩµÄÎĵµ²»¹»Óá£

Õâ²¢²»ÊÇ˵Դ´úÂëÖÐÓÐʲôֵǮµÄÃØÃÜ¡£ËùÓжÁ¹ýUNIX´úÂëµÄÈ˶¼±»ÏÂÃæµÄÒ»Ðдֱ©×¢
Ê;ª´ô¹ý£º

/* you are not expected to understand this */ £¨/* ûָÍûÄãÄÜÃ÷°× */£©

¾¡¹ÜÕâÐÐ×¢ÊÍ×ʼ³öÏÖÔÚUNIX V6ÄÚºËÖУ¬µ«ÊǼ¸ºõËùÓеÄԭʼAT&T´úÂë¶¼²î²»¶à£¬Æä
ÖгäÂúÁËÄÚÁªÊÖ¶¯ÓÅ»¯ºÍ¹ÖÒìµÄºê¡£¼Ä´æÆ÷±äÁ¿±»¹ÚÒÔp, ppºÍpppÕâÀàµÄÃû×Ö¡£¡°Õâ¸ö
º¯ÊýÊǵݹéµÄ¡±ÕâÑùµÄ×¢ÊÍËÆºõ±íÃ÷µÝ¹éµ÷ÓÃÊÇʲôÄÑÀí½âµÄ¸ÅÄî¡£ÊÂʵÉÏ£¬AT&TÔÚÎÄ
µµ·½ÃæºÃΪÈËʦµÄ̬¶ÈÖ»²»¹ýÊÇÆäд´úÂëµÄÂí»¢Ì¬¶ÈµÄÒ»¸ö·´Ó³¡£

Ҫʶ±ðÒ»¸öõ¿½ÅÊÖÒÕÈËÆäʵºÜ¼òµ¥£ºÄã»á¿´µ½ÁÑ·ìÉϵÄÓÍÆá£¬Ò»¸ö½ÓÒ»¸öµÄ²¹¶¡£¬ËùÓÐ
¶«Î÷±»½º´øºÍ¿ÚÏãÌÇÃãÇ¿´ÕºÏÔÚÒ»¿é¶ù¡£±ØÐë³ÐÈÏ£ºÈç¹ûÏë´ÓÍ·½¨Á¢ºÍÖØÐÂÉè¼ÆÊ²Ã´£¬
±ØÐëÒª¶à˼¿¼£¬¶àϹ¦·ò¡£

Date: Thu£¬17 May 90 14:43:28 -0700
X-Virus: 6
From: David Chapman <zvona@gang-of-four.stanford.edu>
To: UNIX-HATERS

ÕâÊÇman manÖеÄÒ»¶Î£¬Í¦ÓÐÒâ˼£º
DIAGNOSITICS
Èç¹ûÄãʹÓÃ-MÑ¡Ïî¶øÇÒ¸ø³öµÄ·¾¶²¢²»´æÔÚ£¬ÄÇôÊä³öµÄ´íÎóÐÅÏ¢¿ÉÄÜÓеã¶ù²»¶Ô¡£±È
Èç/usr/foo/Ŀ¼²»´æÔÚ£¬Èç¹ûÄãÔËÐÐ:

man ¨CM /usr/foo ls

ÄÇôÄãµÃµ½µÄ´íÎóÐÅÏ¢ÊÇ¡°No manual entry for ls¡±£¨¡°Ã»ÓÐlsµÄÊÖ²á¼Ç¼¡±£©¡£Õý
È·µÄ´íÎóÐÅϢʱ¸æËßÄãĿ¼/usr/foo²»´æÔÚ¡£

ÓÐдÕâ¶Î˵Ã÷µÄ¹¦·ò£¬¿ÖÅÂ×ã¹»ÐÞ¸ÄÕâ¸öbugÁË¡£

ÎÞÑÔUNIX£º¿Î³ÌÉèÖý¨Òé


Date: Fri, 24 Apr 92 12:58:28 PT
X-Virus: 6
From: cj@eno.corp.sgi.com (C J Silverio)
Organization: SGI TechPubs
Newsgroups: talk.bizarre
Subject: UNIX Without Words (ÎÞÑÔUNIX)

[ÔÚÒ»³¡¹ØÓÚÎĵµÎÞÓÃÂ۵ļ¤ÁÒ±çÂÛÖУ¬ÎÒÌá³öÁËÏÂÃæÕâ¸ö½¨Òé¡£ÎÒµ¨×ÓС£¬ËùÒÔÏÖÔÚ²Å
¸Ò¹«¿ª£¬¹©´ó¼Ò²Î¿¼¡£]

UNIX Ohne Worter (²»»á·­ ¨C me)

ÎÒ±»ÕâÀïÉ¢²½µÄÎĵµÎÞÓÃÂÛ¹ÛµãÉîÉîÕÛ·þÁË¡£ÊÂʵÉÏ£¬ÎÒ½øÒ»²½ÈÏΪÎĵµ¾ÍÊǶ¾Æ·£¬ÎÒ
¶ÔÓÚËüµÄÒÀÀµÐÔÊÇÈËΪÔì³ÉµÄ¡£ÔÚרҵÈËÊ¿µÄ°ïÖúÏ£¬ÎÒÏëÎÒÄܹ»½äµôËü¡£

¶øÇÒ£¬ÎÒµÄÁ¼ÐĸæËßÎÒ²»ÄÜÔÙ¿¿··ÂôÕâÖÖ¶¾Æ·ÎªÉúÁË¡£ÎÒ¾ö¶¨»Øµ½ÊýѧÑо¿ÔºÍÑÌ¥»»¹Ç
£¬³¹µ×´ÓÕâ¸ö¼ÄÉú³æÒ»ÑùµÄÖ°ÒµÖÐÍÑÉí¡£

ËäÈ»ÏÂÃæÕâ·ÝÎĵµËƺõ±íÃ÷ÁËÎÒÖж¾ÓжàôÉ¿ÉÎÒ»¹ÊǾõµÃÏÂÒ»°æSGIÖÐÓ¦¸Ã°ÑËüÌṩ
¸øÓû§¡£Õâ²»¹ýÊÇÔÝʱ֮¾Ù£¬ÒÔºó»á°ÑËü¸ãµôµÄ¡£

ÕâÊÇÎҵĽ¨Òé:

±êÌ⣺¡°ÎÞÑÔUNIX¡±

¶ÔÏó£ºUNIXÐÂÊÖ

¼ò½é£ºÌṩÔÚûÓÐÎĵµÌõ¼þÏÂʹÓÃUNIXµÄͨÓòßÂÔ¡£Õ¹Ê¾ÔÚûÓÐÎĵµÌõ¼þÏÂÃþÇåÈκβÙ
×÷ϵͳµÄͨÓÃÔ­Ôò¡£

ÄÚÈÝ:

½éÉÜ£º¡°ÎÞÎĵµ¡±ÕÜѧ¼ò½é
ΪʲôÊÖ²áÊǶñħ
ΪʲômanÊÖ²áÊǶñħ
ΪʲôÄ㻹ÊÇÓ¦¸Ã¶ÁÕâ·ÝÎĵµ
¡°Õ⽫ÊÇÄã¶ÁµÄ×îºóÒ»·ÝÎĵµ£¡¡±




ºÜ¶àʱºò
ÄãÎÒÖ®¼äÄDz»¿ÉÓâÔ½µÄÌìÑÄ
½ö½öÖ»ÓÐåë³ß´óС

ÓÃÈðÐÇ?»¹²»ÈçÓÃÖÇ»ÛÐÇ!
2V97-9DKN-F9HC-JCJE
KTB9-N7BP-CR8N-49VX
X1OC2N0GJ1H51W84
¶¥²¿
ѪɫÑÛÀá (ÃÈÒªËØ)
LUPA¹ó±ö
Rank: 8Rank: 8


ÓÅÐã°ßÖñ½±   ½Ü³ö¹±Ï×½±  
UID 16005
¾«»ª 3
»ý·Ö 7043
Ìû×Ó 2780
LUPA±Ò 5647 µã
ÔĶÁȨÏÞ 100
×¢²á 2006-1-6
·¢±íÓÚ 2006-3-21 10:11  ×ÊÁÏ ¸öÈË¿Õ¼ä ¶ÌÏûÏ¢ 
/*¡¶Ï¡·

¸Õ²ÅµÄºÃÏñÊÇÉÏ

Ū²»Çå³þÕâЩ¹Å¶­Îļþ*/

µÚÒ»Õ£ºÈçºÎ²Â²â¿ÉÄÜ´æÔÚÄÄЩÃüÁî

µÚ¶þÕ£ºÈçºÎ²Â²âÃüÁîÃû

UNIXµÄ¹ÖÒìËõÂÔÃüÃû·¨
°¸Àý£ºgrep

µÚÈýÕ£ºÈçºÎ²Â²âÃüÁîÑ¡Ïî

ÈçºÎÆÆ½â¹ÖÒìµÄʹÓÃ˵Ã÷
°¸Àý£ºtar
ÈçºÎÖªµÀʲôʱºò˳ÐòÊÇÖØÒªµÄ
°¸Àý£ºfine

µÚËÄÕ£ºÈçºÎÖªµÀÔËÐÐÕýÈ·£ºÃ»ÓÐÏûÏ¢¾ÍÊǺÃÏûÏ¢

´Ó´íÎóÖлָ´

µÚÎåÕ£º¿ÚÍ·´«Í³£ºÄãµÄÅóÓÑ

µÚÁùÕ£ºÈçºÎ»ñµÃºÍά³ÖÒ»¸ö»îÉúÉúµÄUNIX¸ßÊÖ

ÈçºÎι±¥ÄãµÄ¸ßÊÖ
ÈçºÎÈøßÊÖ¸ßÐË
Ìṩȫ²¿ÐÂÎÅ×éÁ¬½ÓµÄÖØÒªÐÔ
ΪʲôÄãµÄ¸ßÊÖÐèÒª×î¿ìµÄ¼ÆËã»ú
Ãâ·Ñ¿ÉÀÖ£º¸ßÊֵij¤Éú²»ÀÏÒ©
ÈçºÎ±£³Ö¸ßÊÖÉíÌ彡¿µ
¸ßÊÖʲôʱºò˯¾õ?

µÚÆßÕ£º³£¼ûÒÉÄÑ£ºÄãµÄ¸ßÊÖ²»ÀíÄãÁË

ʶ±ðÓÞ´ÀµÄÎÊÌâ
ÈçºÎ°²È«µØÌá³öÓÞ´ÀÎÊÌâ

µÚ°ËÕ£ºÈçºÎ³ÐÊÜѹÁ¦

ÈçºÎ¶Ô´ýʧ°Ü

×¢£º¿ÉÄÜÖ»ÓÐ6¡¢7Õ²ÅÊÇÕæÕýÐèÒªµÄ¡£Êǵģ¬Õâ²ÅÊÇÕý·£ºÎÒ°ÑËü³ÆÎª¡°UNIX¸ßÊÖÑ±ÑøÖ¸ÄÏ¡±¡£

OK, ÔÙҲûÓÐÎĵµÁË¡£Ï»ØÊ齫´øÄã½øÈësendmailµÄÃÀºÃÊÀ½ç£¬ÎªÊ²Ã´¡°Ê¹ÓÃsendmailµÄ¸Ð¾õºÍµÃÁË»¨Áø²¡Ò»Ñù¡£¡±£¿Ï»طֽ⡣

±êÌâ: µÚ°ËÕ csh, pipesºÍfind (part 1)

UNIXÑÝÒåÓÖ¿ªÊ¼ÁË£¬±¾À´Õâ»ØÊéÒª±íÒ»±ísendmailºÍ»¨Áø²¡µÄ¹ØÏµ£¬²»¹ýsendmailËÆºõÒѾ­´ÓÁ¼ÁË£¬´ÓÁ¼¼ËÅ®±ÈÕê½ÚÁÒÅ®¶ÔÎÒÃÇÃñ×åµÄ¹±Ï×Òª´óµÃ¶à£¬ËùÒÔ²»ÏëÔÙÕÒËýÂé·³ÁË£¬¶Ô¼ËÅ®·¢Õ¹Ê·ºÍÐÔ²¡¶·ÕùÊ·¸ÐÐËȤµÄ£¬ÎÒÃÇ¿ÉÒÔ˽Ͻ»Á÷¡£

×÷Ϊ³ÌÐòÔ±¶ø²»ÊǼËÅ®µÄÄ㣬¿ÉÄܶÔUNIXµÄ±à³Ì»·¾³¸ü¸ÐÐËȤ£¬ËùÒÔÕâÒ»½ÚÖнéÉÜÒ»ÏÂUNIX ShellµÄÀúÊ·¡£ÎÒGPL£¬Äãû»¨Ç®£¬ËùÒÔÖ»ÄÜÈÎÎÒ°Ú²¼£¬ÎÒÉÏʲôÄã¾Í³Ôʲô£¬²»Òª·Ï»°¡£

GPLµÄºÃ´¦ÔÚÓÚÄã²»±ØÎª×Ô¼ºµÄ¹¤×÷¸ºÔð£¬Ò²²»±Ø¶ÔÓû§¸ºÔð£¬ËùÒÔsourseforgeÉϳä³â×ÅÁ¼Ý¬²»ÆëµÄ×ÔÓÉÏîÄ¿¡£ÎÒÏ£ÍûÎÒµÄÐÄÉÏÈËÒ²ÄÜÀí½âÕâÒ»µã£¬ÕâÒ»ÇеĿªÊ¼²¢²»ÊÇΪÁËʲô¼ÛÖµ¡¢ÔðÈΡ¢¹ýÈ¥»òÊÇδÀ´£¬ÕâÒ»ÇÐÉõÖÁ²»ÊÇΪÁËÏÖÔÚ£¬ÕâÒ»ÇÐÖ»ÊÇÔ´ÓÚpassion¡£

ÔÚ´óº£Í³öµÄÿ¸öÅÝÄ­ÖÐ
ÔÚÉϰà·ÉÏÎüÈëµÄÿһÁ£³¾°£ÖÐ
ÔÚ¹ýÈ¥ËêÔµÄÿһ´ÎÕóÍ´ÖÐ
ÔÚÒ»´ÎÒ»´Î˯ȥºÍÐÑÀ´ÖÐ
ÔÚÌìÆøÔ¤±¨ºÍÐÂÎÅÁª²¥ÖÐ
ÔÚÆßÔÂÁ÷»ðºÍ¾ÅÔÂÊÚÒÂÖÐ
ÔÚÆßÔ³¤ÉúµîÆßÈÕÖÐ
ÔÚʸ³µ¾ÕºÍÜ½ÈØÖÐ
ÔÚ³¤Éþ¼ÍÈÕÖÐ
ÔÚÌ쳤µØ¾ÃÖÐ
ÔÚÄãÉí±ß
ÔÚÎÒÐÄÀï
ÎÞÐëѰÇóÒâÒå

µÚ°ËÕ csh, pipesºÍfind

Ç¿ÓÐÁ¦µÄ¹¤¾ß¸øÇ¿ÓÐÁ¦µÄɵ¹Ï

¡°ÓÐЩ²Ù×÷ϵͳ´ÓûÓб»ºÃºÃ¼Æ»®£¬ÒÔÖÁÓÚÖ»ºÃÓ÷´Û»µÄÔëÒôÀ´ÃüÃûËüµÄÃüÁawk, grep, fsck, norff£©£¬ÎÒÏëµ½Õâ¸ö¾Í·´Î¸¡£¡±

¡ª¡ª ÎÞÃûÊÏ

UNIX ËùνµÄ¡°Ç¿´ó¹¤¾ß¡±ÊǸöÆ­¾Ö¡£Õâ²»¹ýÊÇUNIXΪÁËÄÇЩ¶«Æ´Î÷´ÕµÄÃüÁîºÍ¹¤¾ßËù´òµÄ»Ï×Ó¡£ÕæÕýµÄÇ¿´ó¹¤¾ß²»ÐèÒªÓû§¸¶³öÌ«¶àŬÁ¦¾ÍÄÜÌṩǿ´óµÄ¹¦ÄÜ¡£Èκλáʹ¸Ä×¶ºÍ×êÍ·µÄÈ˶¼»áÓõ綯¸Ä×¶ºÍµç×ê¡£ËûÃDz»ÐèÒª¸ã¶®µçѧ¡¢µç»ú¡¢×ª¾Ø¡¢µç´Åѧ¡¢É¢ÈÈ»òά»¤¡£ËûÃÇÖ»ÐèÒª°ÑËüͨÉϵ磬´øÉϰ²È«ÑÛ¾µ£¬È»ºó´ò¿ª¿ª¹Ø¡£Ðí¶àÈËÁ¬°²È«ÑÛ¾µÒ²²»Ê¡ÁË¡£ÄãÔÚÎå½ðÉ̵êÀïÕÒ²»µ½ÓÐÖÂÃüȱÏݵŤ¾ß£ºËüÃDz»ÊǸù±¾Ã»ÄÜͶ·ÅÊг¡£¬¾ÍÊDZ»ËßËϸãµÃ½¹Í·Àö

UNIXÉè¼ÆÕßµÄ×î³õÄ¿±êÊÇÌṩ¼òµ¥µÄ¹¤¾ß£¬È»¶øÏÖÔڵŤ¾ßÔò³äÂúÁ˹ý·ÖµÄÉè¼ÆºÍÓ·Ö׵ŦÄÜ¡£±ÈÈçlsÕâ¸öÁÐÎļþµÄÃüÁȻÓÐ18¸öÑ¡ÏÌṩ´ÓÅÅÐòµ½Ö¸¶¨ÏÔʾÁÐÊýµÄÖÖÖÖ¹¦ÄÜ£¬¶øÕâЩ¹¦ÄÜÈç¹ûÓÃÆäËû³ÌÐòʵÏÖ»á¸üºÃЩ£¨ÒÔǰÕýÊÇÕâÑùµÄ£©¡£findÃüÁî³ýÁ˲éÕÒÎļþÒÔÍ⻹Êä³öcpio¸ñʽµÄÎļþ£¨¶øÕâ¸ö¹¦ÄÜÆäʵÓÃUNIX ÃûÉùÀǽåµÄ¹ÜµÀºÜºÃµØÊµÏÖ£©¡£½ñÌ죬ºÍUNIXÀàËÆµÄµç×꽫ÓÐ20¸öÐýÅ¥£¬Á¬×Ų»±ê×¼µÄµçÔ´Ïߣ¬²»Æ¥Åä3/8Ó¢´çºÍ7/8Ó¢´çµÄ×êÍ·£¨¶øÕâÒ»µã»áÔÚÊÖ²áµÄ BUGÒ»ÕÂÖÐ˵Ã÷£©¡£

ºÍÎå½ðµêÀïµÄ¹¤¾ß²»Í¬£¬Ðí¶àUNIXÇ¿´ó¹¤¾ßÊÇÓÐȱÏݵģ¨ÓÐʱ¶ÔÎļþÊÇÖÂÃüµÄ£©£º±ÈÈçtarµÄ²»½ÓÊܳ¬¹ý100 ¸ö×Ö·ûµÄÎļþÃû£»ÓÖ±ÈÈçUNIXµ÷ÊÔÆ÷×ÜÊÇ¿åµô£¬Õ⻹²»¹»£¬ËüµÄcoreÎļþ½«¸²¸ÇÄã×Ô¼ºµÄcore£¬ÈÃÄãÏ´οÉÒÔÓõ÷ÊÔÆ÷È¥µ÷ÊÔµ÷ÊÔÆ÷ÔÚµ÷ÊÔµ÷ÊÔÆ÷ÖÐÉú³ÉµÄcore¡£

ShellÓÎÏ·

UNIXµÄ·¢Ã÷ÈËÓиöΰ´óµÄÏë·¨: °ÑÃüÁî½âÎöÆ÷×÷Ϊһ¸öÓû§³ÌÐòʵÏÖ¡£Èç¹ûÓû§²»Ï²»¶È±Ê¡µÄÃüÁî½âÎöÆ÷£¬Ëû¿ÉÒÔ×Ô¼ºÐ´Ò»¸ö¡£¸üÖØÒªµÄÊÇ£¬shellÄܹ»½ø»¯£¬ÕâÑùshell½«²»¶Ï½ø²½£¬±äµÃÔ½À´Ô½Ç¿´ó£¬Áé»îºÍÒ×Óã¬ÖÁÉÙÀíÂÛÉÏÊÇÕâÑù¡£

ÕâÕæÊǸöΰ´óµÄÏë·¨£¬²»¹ýŪÇɳÉ×¾ÁË¡£¹¦ÄܵÄÖð½¥Ôö¼Ó´øÀ´µÄÊÇÒ»ÍÅÔã¡£ÒòΪÕâЩ¹¦ÄÜûÓо­¹ýÉè¼Æ£¬Ö»ÊÇÔÚ²»¶ÏÑÝ»¯¡£ºÍËùÓбà³ÌÓïÑÔËùÔâµ½¹ýµÄ×çÖäÒ»Ñù£¬ÄÇЩÀûÓÃÕâЩ¹¦Äܵļȴæshell½Å±¾³ÉΪÁËshellµÄ×î´óµÐÈË¡£Ö»ÒªÓÐÐµĹ¦ÄܼÓÈëshell£¬¾Í»áÓÐÈËÔÚ×Ô¼ºµÄ½Å±¾ÖÐʹÓÃËü£¬ÕâÑùÕâ¸ö¹¦ÄܾʹӴ˳¤Éú²»ÀÏÁË¡£»µÖ÷ÒâºÍ³ô¹¦ÄÜÍùÍùÔõôҲËÀ²»µô¡£

ÓÚÊÇ£¬ÄãµÃµ½ÁËÒ»¸ö²»ÍêÕû¡¢²»¼æÈݵÄshellµÄ´óÔӻ⠣¨ÒÔÏÂÿ¸öshellµÄÃèÊö¶¼À´×ÔÓÚËûÃǸ÷×ÔµÄman pages£©£º

sh ÊǸöÃüÁî±à³ÌÓïÑÔ£¬ÓÃÓÚÖ´ÐÐÀ´×ÔÖÕ¶Ë»òÎļþµÄÃüÁî¡£
Jsh ºÍshÒ»Ñù£¬µ«¾ßÓÐcsh·çζµÄ¹¤×÷¿ØÖÆ (job control)
Csh CÀàÐÍÓï·¨µÄshell
Tcsh emacs±à¼­¿ÚζµÄcsh
Ksh KornShell£¬ÄãµÄÁíÒ»¸öÃüÁîºÍ±à³ÌÓïÑÔ
Zsh Z Shell
Bash GUN Bourne-Again Shell (GNU Bourne¸´³öShell)

Îå½ðÉ̵êÀïµÄÂÝË¿µ¶ºÍ¾â×Ó£¬¾¡¹Ü¿ÉÄÜÀ´×Ô3¡¢4¸ö²»Í¬µÄ³§ÉÌ£¬µ«²Ù×÷·½·¨¶¼²î²»¶à¡£µäÐ͵ÄUNIXÔÚ/bin»ò/usr/binÏ´æÁ˳ɰٸö³ÌÐò£¬ËüÃÇÀ´×ÔÖÚ¶à×ÔÒÔΪÊǵijÌÐòÔ±£¬ÓÐ×Å×Ô¼ºµÄÓï·¨¡¢²Ù×÷·¶Àý¡¢Ê¹ÓùæÔò£¨ÕâÒ»¸ö¿ÉÒÔµ±³É¹ÜµÀ£¬¶øÄÇÒ»¸öÔò²Ù×÷ÁÙʱÎļþ£©£¬²»Í¬µÄÃüÁîÐвÎÊýϰ¹ß£¬ÒÔ¼°²»Í¬µÄÏÞÖÆ¡£Äà grepºÍËüµÄ±äÖÖfgrep, egrepÀ´Ëµ£¬ÄÄÒ»¸öÊÇ×î¿ìµÄ£¿ÎªÊ²Ã´ËüÃǽÓÊܵIJÎÊý¶¼²»Ò»Ñù£¬ÉõÖÁ¶ÔÕýÔò±í´ïʽµÄÀí½âÒ²²»¾¡Ïàͬ£¿ÎªÊ²Ã´²»ÄÜÓÐÒ»¸ö³ÌÐòÌṩËùÓй¦ÄÜ£¿¸ºÔðµÄ¼Ò»ïÔÚÄĶù°¡£¿

µ±°ÑÃüÁîÖ®¼äµÄÖÖÖÖ²»Í¬¶¼ÉîÉîÀÓÔÚÄÔº£Öкó£¬Ä㻹²»ÄܱÜÃâ±»¾ª×Å¡£

Shell Crash

ÏÂÃæÕâÌõÏûÏ¢À´×Ô¸çÂ×±ÈÑÇ´óѧ±àÒëÔ­Àí¿Î³ÌµÄBBS¡£

Subject: Relevant UNIX bug
October 11, 1991

W4115x¿Î³ÌµÄͬѧÃÇ£º

ÎÒÃǸÕѧϰÁ˻¼Ç¼(activation record)£¬²ÎÊý´«µÝ(argument passing)ºÍº¯Êýµ÷ÓùæÔò(calling conventions)£¬ÄãÃÇÊÇ·ñÖªµÀÏÂÃæµÄÊäÈ뽫ÈÃÈκÎÒ»¸öcshellÁ¢¿Ì±ÀÀ££¿

£º!xxx%s%s%s%s%s%s%s%s

ÄãÃÇÖªµÀΪʲôô£¿

ÒÔϵÄÎÊÌ⹩ÄãÃÇ˼¿¼£º

ShellÓöµ½ ¡°!xxx¡±»á×öʲô£¿

ShellÓöµ½ ¡°!xxx%s%s%s%s%s%s%s%s¡±»á×öʲô£¿

Ϊʲôcshell»á±ÀÀ£?

Ä㽫ÈçºÎÐÞ¸ÄÓйشúÂëÀ´½â¾öÕâ¸öÎÊÌ⣿

×îÖØÒªµÄÒ»µã£º

µ±Äã(Êǵ쬾ÍÊÇÄã)½«Õâ¸öǰ;Զ´óµÄ²Ù×÷ϵͳÓÃ21¸ö×Ö·ûÖηþµÄʱºò£¬Äã¾õµÃÌìÀíÄÜÈÝô£¿

Äã¿ÉÒÔ×Ô¼ºÊÔÒ»ÊÔ¡£¸ù¾ÝUNIXµÄÉè¼Æ£¬Èç¹ûshell¿åµôÁË£¬ÄãµÄËùÓнø³Ì½«±»É±ËÀ£¬ÄãÒ²»á±»Ìß³öϵͳ¡£ÆäËû²Ù×÷ϵͳÔÚÓöµ½·Ç·¨ÄÚ´æ·ÃÎÊ´íÎóʱ»áµ¯³öµ÷ÊÔÆ÷£¬µ«²»ÊÇUNIX¡£

¿ÉÄÜÕâ¾ÍÊÇΪʲôUNIX shells²»ÈÃÄãÔÚshellµÄµØÖ·¿Õ¼äÀﶯ̬¼ÓÔØ×Ô¼ºµÄÄ£¿é£¬»òÕßÖ±½Óµ÷ÓÃÆäËû³ÌÐòÖеĺ¯Êý¡£Èç¹ûÕâÑù¾Í̫ΣÏÕÁË¡£Ò»²½×ß´í£¬°¦Ó´£¬ÄãÒѾ­±»Ìß³öÃÅÍâÁË¡£ÓÞ´ÀµÄÓû§ÊÇÓ¦¸Ã±»³Í·£µÄ£¬³ÌÐòÔ±µÄ´íÎó¸üÊDz»¿ÉÈÝÈÌ¡£

Ï»ØÊéÀïÎÒÃǽ«½øÈëÉ«²Ê°ßìµµÄUNIXÓï·¨ÊÀ½ç¡£




ºÜ¶àʱºò
ÄãÎÒÖ®¼äÄDz»¿ÉÓâÔ½µÄÌìÑÄ
½ö½öÖ»ÓÐåë³ß´óС

ÓÃÈðÐÇ?»¹²»ÈçÓÃÖÇ»ÛÐÇ!
2V97-9DKN-F9HC-JCJE
KTB9-N7BP-CR8N-49VX
X1OC2N0GJ1H51W84
¶¥²¿
ѪɫÑÛÀá (ÃÈÒªËØ)
LUPA¹ó±ö
Rank: 8Rank: 8


ÓÅÐã°ßÖñ½±   ½Ü³ö¹±Ï×½±  
UID 16005
¾«»ª 3
»ý·Ö 7043
Ìû×Ó 2780
LUPA±Ò 5647 µã
ÔĶÁȨÏÞ 100
×¢²á 2006-1-6
·¢±íÓÚ 2006-3-21 10:19  ×ÊÁÏ ¸öÈË¿Õ¼ä ¶ÌÏûÏ¢ 
°ëÄêǰµÄÉÏ»ØÊé˵µ½ÄãÈçºÎÈ¥ÍæshellÓÎÏ·£¬¹À¼ÆÏÖÔÚÄãÒѾ­ÍæÄåÁË£¬²»¹ý²»Òª×ż±£¬ÏÂÃæ£¬¸ÃÂÖµ½shellÍæÄãÁË¡£

»¶Ó­À´µ½ÔªÓï·¨(metasyntacitic)¶¯ÎïÔ°

C ShellµÄÔªÓï·¨²Ù×÷·û´øÀ´ÁË´óÁ¿ºÍÒýÓÃÓйصÄÎÊÌâºÍ»ìÂÒ¡£Ôª²Ù×÷·ûÔÚÒ»¸öÃüÁî±»Ö´ÐÐǰ¶ÔÆä½øÐÐת»»¡£ÎÒÃǰÑÕâЩ²Ù×÷·û½Ð×öÔª²Ù×÷·ûÊÇÒòΪËüÃDz»ÊôÓÚÃüÁîµÄÓï·¨³É·Ö£¬ËüÃÇ×÷ÓÃÓÚÃüÁî±¾Éí¡£´ó¶àÊý³ÌÐòÔ±¶ÔÔª²Ù×÷·û(ÓÐʱҲ½Ð×öescape operators)²¢²»Ä°Éú¡£±ÈÈ磬C×Ö·û´®Öеķ´Ð±¸Ü()¾ÍÊÇÒ»¸öÔªÓï·¨²Ù×÷·û£»Ëü²»´ú±í×Ô¼º£¬¶øÊÇ¶ÔÆäºóµÄ×Ö·ûµÄ˵Ã÷¡£Èç¹ûÄ㲻ϣÍûÈç´Ë£¬Äã±ØÐëʹÓÃÒýÓûúÖÆÀ´¸æËßϵͳ°ÑÔª²Ù×÷·ûµ±×öÒ»°ã×Ö·ûÀ´´¦Àí¡£»Øµ½¸Õ²ÅC×Ö·û´®µÄÀý×Ó£¬Èç¹ûÏëµÃµ½·´Ð±¸Ü×Ö·û£¬Äã±ØÐëд³É¡£

¼òµ¥µÄÒýÓûúÖÆÔÚC ShellÖкÜÄѹ¤×÷£¬ÕâÊÇÒòΪShellºÍËüÖ´ÐеijÌÐòÖ®¼ä¸÷Ö´Ò»´Ê£¬ÎÞ·¨Í³Ò»¡£ÀýÈ磬ÏÂÃæÊǸö¼òµ¥µÄÃüÁ

grep string filename;

²ÎÊýstring°üº¬ÁËgrep¶¨ÒåµÄ×Ö·û£¬±ÈÈç?, [, ºÍ]µÈµÈ£¬µ«ÕâЩ×Ö·ûÊÇshellµÄÔª²Ù×÷·û¡£ÕâÒâζ×űØÐë¶ÔËüÃǽøÐÐÒýÓá£È»¶ø£¬ÓÐЩʱºò¿ÉÄܲ»ÐèÒªÈç´Ë£¬ÕâºÍÄãʹÓÃʲôÑùµÄshellÒÔ¼°»·¾³±äÁ¿Óйء£

Èç¹ûÏëÔÚ×Ö·û´®ÖÐѰÕÒ°üº¬µã(.)»òÆäËûÒÔºá¸Ü(-)¿ªÍ·µÄģʽ£¬Õâ¾Í¸üΪ¸´ÔÓÁË¡£

Ò»¶¨Òª¼Çס¶ÔÔª×Ö·û½øÐÐÕýÈ·ÒýÓᣲ»ÐÒµÄÊÇ£¬ºÍģʽʶ±ðÒ»Ñù£¬²Ù×÷ϵͳµÄ¸÷¸ö²¿·Ö¶¼³ä³â×Å»¥²»¼æÈݵÄÒýÓñê×¼¡£

C ShellµÄÔªÓï·¨¶¯ÎïÔ°ÀïËÇÑø×ÅÆßÖÖ²»Í¬µÄÔª²Ù×÷·û¼Ò×å¡£¶·×ªÐÇÒÆ£¬×ªÑۼ䶯ÎïÔ°ÀïÒѾ­ÈËÂúΪ»¼ÁË£¬Áý×ÓʹÓõIJ»ÔÙÊǸÖÌú£¬¶øÊÇÓÃÎýÁË¡£¶¯Îï¼äµÄСĥ²Á²»¶Ï¡£ÕâÆßÖÖÕë¶ÔshellÃüÁîÐеÄת»»·½Ê½ÊÇ£º

±ðÃû alias, unalias

ÃüÁîÊä³öÌæ´ú `

ÎļþÃûÌæ´ú *, ?, []

ÀúÊ·Ìæ´ú !, ^

±äÁ¿Ìæ´ú $, set, unset

½ø³ÌÌæ´ú %

ÒýÓÃ ',"

ÕâÒ»¡°Éè¼Æ¡±µÄ½á¹ûÊÇ£¬ÎʺÅ(?)ÓÀÔ¶±»shellµ±³Éµ¥×Ö·ûÆ¥Åä·û£¬ËüÓÀÔ¶ÎÞ·¨±»×÷ΪÃüÁîÐвÎÊý´«¸øÓû§³ÌÐò£¬ËùÒÔ±ðÏëʹÓÃÎʺÅÀ´×÷Ϊ°ïÖúÑ¡Ïî¡£

Èç¹ûÕâÆßÖÖÔª×Ö·ûÓÐ×ÅÇåÎúµÄÂß¼­Ë³ÐòºÍ¶¨Ò壬ÄÇôÇé¿öÒ²²»»áÌ«Ôã¸â¡£¿ÉÊÂʵ²¢·ÇÈç´Ë£º

ÈÕÆÚ: Mon, 7 May 90 18:00:27 - 0700
·¢ÐÅÈË: Andy Beals <bandy@lll-crg.llnl.gov>
Ö÷Ìâ: Re: today's gripe: fg %3 (½ñÌìÖ®²»Ë¬Ê£ºfg %3)
ÊÕÐÅÈË: UNIX-HATERS

Äã¿ÉÒÔʹÓÃ%emacs»òÕß%eÀ´»Ö¸´Ò»¸öÈÎÎñ£¨Èç¹ûΨһµÄ»°£©£¬Ò²¿ÉÒÔʹÓÃ%?foo£¬Èç¹û"foo"³öÏÖÔÚÃüÁîÐÐÖС£

µ±È»£¬!emaºÍ!?fooÒ²¿ÉÒÔÓÃÓÚÀúÊ·ÃüÁîÌæ»»ÉÏ¡£

µ«ÊÇ£¬UCBµÄÖíÍ·(pinheads)ÃÇûÓÐÏëµ½!?fooºóÃæ¿ÉÄܰéËæµÄ±à¼­ÃüÁ

!?foo:s/foo/bar&/:p

¶àÏòǰɨÃèÒ»¸ö±à¼­×Ö·ûÕæµÄÕâôÀ§ÄÑô£¿

ÄÄÅÂÊÇUnix¡°×¨¼Ò¡±£¬Ò²ÒªÔβËÁË¡£ÏÂÃæÔÙÀ´¿´¿´Milt EpsteinµÄÕâ¸öÀý×Ó£¬ËûÏëд¸öshell½Å±¾»ñµÃʵ¼Ê±»ÇÃÈëµÄÃüÁîÐУ¬¶ø²»ÊÇÄǸö¾­shell´¦ÀíºóµÄ½á¹û¡£Ëû×îºó·¢ÏÖÕâ²¢²»ÈÝÒ×£¬ÒòΪshell ΪÃüÁî×öÁËÌ«¶àµÄ¡°ºÃÊ¡±¡£Òª×öµ½ÕâÒ»µã£¬ÐèÒª¸÷ÖÖÏ¡Ææ¹Å¹ÖµÄ±äÐμ¼Êõ£¬Á¬Unixר¼ÒÒ²»áÍû¶øÈ´²½¡£Õâ¾ÍÊÇUnixµÄµäÐÍ×ö·¨£º°Ñ¼òµ¥µÄ¶«Î÷¸ãµÃÒì³£¸´ÔÓ£¬ÕâÖ»ÊÇÒòΪÕâЩ¶«Î÷ÔÚUnixµ®Éú֮ʱ´Óû±»×Ðϸ¿¼Âǹý£º

ÈÕÆÚ: 19 Aug 91 15:26:00 GMT
·¢ÐÅÈË: Dan_Jacobson@att.com
Ö÷Ìâ: ${1+"$@"} in /bin/sh family of shells shell scripts
ÊÕÐÅÈË: comp.emacs.gnu.emacs.help, comp.unix.shell

>>>>> On Sun, 19 Arg 91 18:21:58 - 0500
>>>>> Milt Epstein <esptein@suna0.cs.uiuc.edu>
дµ½£º

Milt> "${1+"$@"}"¾¿¾¹ÊÇʲôÒâ˼£¿ÎÒ¹À¼ÆÕâÊÇÓÃÀ´
Milt> ¶ÁÈ¡ÆäÓàµÄÃüÁîÐвÎÊý£¬µ«ÎÒ²»¸Ò¿Ï¶¨¡£

ÕâÊÇ/bin/shÀïÓÃÀ´ÍêÕû¸´ÖÆÃüÁîÐвÎÊýµÄÒ»ÖÖ·½·¨¡£

ËüµÄÒâ˼ÊÇ£ºÈç¹ûÓÐÖÁÉÙÒ»¸ö²ÎÊý(${1+)£¬ÄÇôÓÃËùÓвÎÊý("$@")À´Ìæ´úÒÔ±£ÁôËùÓеĿհ××Ö·û¡£

Èç¹ûÎÒÃÇֻʹÓÃ"$@"£¬ÄÇôÔÚûÓвÎÊýµÄÇéÐÎÏ»áµÃµ½""¶ø²»ÊÇÎÒÃÇÏëÒªµÄ¿Õ²ÎÊý¡£

ÄÇô£¬ÎªÊ²Ã´²»Ê¹ÓÃ"$*"ÄØ£¿sh(1)µÄmanÊÖ²áÊÇÕâÑù˵µÄ£º

Ë«ÒýºÅÖ®¼äµÄ²ÎÊýºÍÃüÁî»á±»Ìæ»»£¬shell»á¶Ô½á¹û¼ÓÉÏÒýÓã¬ÒÔ±ÜÃâ½âÎö¿Õ¸ñ»òÉú³ÉÎļþÃû¡£Èç¹û$*³öÏÖÔÚË«ÒýºÅÖ®ÖУ¬¸÷¸ö²ÎÊýÖ®¼äµÄ¿Õ¸ñ»á±»¼ÓÉÏÒýÓà ("$1 $2 ...")£¬¶øÈç¹û$@³öÏÖÔÚË«ÒýºÅÖ®ÖУ¬¸÷¸ö²ÎÊýÖ®¼äµÄ¿Õ¸ñ²»»á±»¼ÓÉÏÒýÓÃ("$1""$2" ...)¡£

ÎÒÈÏΪ${1+"$@"}Ò»Ö±¿ÉÒÔ¼æÈݵ½¡°°æ±¾7¡±µÄshell¡£

ÀÏÌ죡һֱ¼æÈݵ½¡°°æ±¾7¡±¡£

Ìý"chdir"µÄ»¹ÊÇÌý"cd"µÄ£¿

UnixÔÚÂþ³¤µÄÑÝ»¯¹ý³ÌÖм¸¾­Ò×ÊÖ£¬ÕâЩUnixϵͳ¿ª·¢Õß°ÑUnixÒýÏòÁ˲»Í¬·½Ïò£¬ËûÃÇÖ®ÖÐûÓÐÒ»¸öÈËÍ£ÏÂÀ´¿¼ÂÇÒ»ÏÂ×Ô¼ºµÄ×ö·¨»á²»»á¶ÔºÍÆäËûÈË·¢Éú³åÍ»¡£

ÈÕÆÚ: Mon, 7 May 90 22:58:58 EDT
·¢ÐÅÈË: Alan Bawden <alan@ai.mit.edu>
Ö÷Ìâ: cd ..: I am not making this up (cd ..: Õâ²»ÊÇÎÒ±àÔì³öÀ´µÄ)
ÊÕÐÅÈË: UNIX-HATERS

ÓÐʲôÃüÁîÄܱÈ"cd"¸üÖ±½ÓÁ˵±µÄÄØ£¿ÈÃÎÒÃÇ¿´Õâ¸ö¼òµ¥µÄÀý×Ó£º"cd ftp"¡£Èç¹ûÎҵĵ±Ç°Ä¿Â¼/home/ar/alanÖÐÓиö×ÓĿ¼½Ð×ö"ftp"£¬ÄÇôËü¾Í±ä³ÉÁËÎÒеĵ±Ç°Ä¿Â¼£¬ÏÖÔÚÎÒÔÚ/home/ar/alan/ftpÏÂÁË¡£¼òµ¥°É£¿

ÏÖÔÚ£¬ÄãÃÇÖª²»ÖªµÀ"."ºÍ".."£¿Ã¿¸öĿ¼¶¼»áÓÐÁ½¸ö¼Ç¼£º"."ÊÇÖ¸¸ÃĿ¼×Ô¼º£¬".."ÊÇÖ¸¸¸Ä¿Â¼¡£ÔÚÉÏÃæµÄÀý×ÓÖУ¬Èç¹ûÎÒÏë»Øµ½/home/ar/alan£¬Ö»ÒªÇÃ"cd .."¾Í¿ÉÒÔÁË¡£

ÏÖÔÚ¼ÙÉè"ftp"ÊÇÒ»¸ö·ûºÅÁ´½Ó¡£¼ÙÉèËüÖ¸ÏòµÄÊÇĿ¼/com/ftp/pub/alan¡£Èç¹ûÖ´ÐÐ"cd ftp"£¬Îҵĵ±Ç°Ä¿Â¼½«ÊÇ/com/ftp/pub/alan¡£

ºÍÆäËûËùÓÐĿ¼һÑù£¬/com/ftp/pub/alanÒ²ÓÐÒ»¸ö½Ð".."µÄ¼Ç¼£¬ËüÖ¸µÄÊǸ¸Ä¿Â¼£º/com/ftp/pub¡£Èç¹ûÎÒÏë½øÈëÄǸöĿ¼£¬ÎÒÇÃÈëÃüÁ

% cd ..

²ÂÒ»ÏÂÎÒÏÖÔÚÔÚÄĶùÄØ£¿ÎÒÓֻص½ÁË/home/ar/alan£¡shell(׼ȷµÄ˵ÊÇÈ˹¤ÖÇÄÜʵÑéÊÒÀïÓõÄtcsh)ÈÏΪÎÒÆäʵÊÇÏë»Øµ½ÄǸö×°ÓзûºÅÁ´½ÓµÄĿ¼¡£ÏÖÔÚÎÒ±ØÐëʹÓÃ"cd ./.."²ÅÄܽøÈë/com/ftp/pub¡£

Shell±à³Ì

Shell³ÌÐòÔ±ºÍ¡¶ÙªÂ޼͹«Ô°¡·ÀïµÄ¿ÖÁúÖÆÔìÕßÓÐЩÀàËÆ¡£ËûÃÇÊÖÉÏûÓÐËùÐèµÄÍêÕû²ÄÁÏ£¬ËùÒÔ²»µÃ²»ÓÃһЩÂÒÆß°ËÔãµÄ²ÄÁÏÌî³ä¡£¾¡¹ÜÓÐ×ÅÎÞÇîµÄ×ÔÐźÍÄÜÁ¦£¬ËûÃÇËÆºõ²¢²»ÊÇ×ÜÄÜ¿ØÖÆ×¡Ôì³öÀ´µÄÄÇÐ©ÍæÒâ¡£

ÀíÂÛÉÏ˵£¬Ê¹ÓÃShell±à³Ì±ÈÓÃCÓïÑÔÒªÓкܶàºÃ´¦£ºShell³ÌÐòÒÆÖ²ÈÝÒס£ÕâÖ¸µÄÊÇʹÓÃshell¡°±à³ÌÓïÑÔ¡±Ð´µÄ³ÌÐòÄܹ»ÔÚ²»Í¬µÄÌåϵ½á¹¹ºÍ²»Í¬µÄ Unix±äÖÖÉÏÔËÐУ¬ÒòΪshell»á½âÎöÕâЩ³ÌÐò£¬¶ø²»ÊǰÑÕâЩ³ÌÐò±àÒë³É»úÆ÷ÂëÔËÐС£¶øÇÒ£¬±ê×¼Unix Shell sh ×Ô´Ó1977ÄêÒÔÀ´¾Í³ÉΪUnixÖв»¿É»òȱµÄÒ»²¿·Ö£¬ËùÒÔÄã¿ÉÒÔÔÚÐí¶à»úÆ÷ÉÏÕÒµ½Ëü¡£

ÈÃÎÒÃÇÀ´ÑéÖ¤Ò»ÏÂÕâ¸öÀíÂÛ£¬Ð´¸ö½Å±¾ÁоÙĿ¼ÏµÄËùÓÐÎļþ£¬²¢Ê¹ÓÃfileÃüÁîÀ´ÏÔʾÎļþµÄÀàÐÍ£º

ÈÕÆÚ: Fri, 24 Apr 92 14:45:48 EDT
·¢ÐÅÈË: Stephen Gildea <gildea@expo.lcs.mit.edu>
Ö÷Ìâ: Simple Shell Programming (¼òµ¥Shell±à³Ì)
ÊÕÐÅÈË: UNIX-HATERS

ͬѧÃǺ᣽ñÌìÎÒÃǽ«Ñ§Ï°"sh"±à³Ì¡£"sh" ÊǸö¼òµ¥£¬ÓÃ;¹ã·ºµÄ³ÌÐò£¬ÈÃÎÒÃÇÏÈ¿´¸ö»ù±¾µÄÀý×Ó£º

´òÓ¡Ò»¸öĿ¼ÏÂËùÓÐÎļþµÄÀàÐÍ

(ÎÒÌýµ½ÄãÃÇÔÚºóÃæËµÊ²Ã´ÁË£¡ÄÇЩÒѾ­»áÁ˵Äͬѧ¿ÉÒÔд¸ö½Å±¾ÔÚÔ¶³ÌÆô¶¯Ò»¸öX11¿Í»§¶Ë£¬²»Òª³³³³£¡)

ÎÒÃÇѧϰsh±à³ÌµÄͬʱ£¬µ±È»Ò²Ï£Íû×Ô¼ºµÄ³ÌÐòÊǽ¡×³£¬¿ÉÒÆÖ²ºÍÓÅÑŵġ£ÎÒ¼ÙÉèÄãÃǶ¼¶Á¹ýÁËÏàÓ¦µÄmanÊֲᣬËùÒÔÏÂÃæÕâ¸öʵÏÖÓ¦¸ÃºÜ¼òµ¥£º

file *

ºÜ²»´í£¬ÊDz»ÊÇ£¿¼òµ¥µÄ´ð°¸¸ø¼òµ¥µÄÎÊÌ⣻·ûºÅ * ÓÃÀ´Æ¥ÅäĿ¼ÏµÄËùÓÐÎļþ¡£àÅ£¬²»Ò»¶¨¡£ÒÔµã(.)¿ªÍ·µÄÎļþ»á±»ºöÂÔ£¬*²»»áÆ¥ÅäËüÃÇ¡£Ò²ÐíÕâÖÖÇé¿öºÜÉÙ·¢Éú£¬µ«¼ÈȻҪд½¡×³µÄ³ÌÐò£¬ÎÒÃǽ«Ê¹ÓÃ"ls"µÄÒ»¸öÌØÊâÑ¡Ï

for file in `ls -A`

do

flie $file

done

¶àôÓÅÑÅ£¬¶àô½¡×³£¡²»¹ý£¬°¦£¬Ò»Ð©ÏµÍ³ÉϵÄ"ls"²»½ÓÊÜ"-A"Ñ¡ÏûÎÊÌ⣬ÎÒÃÇʹÓÃ"-a"Ñ¡ÏȻºóÔÙÈ¥µô"."ºÍ".."£º

for file in `ls -a`

do

if [ $file != . -a $file != ..] then

file $file

fi

done

²»ÊÇÄÇôÓÅÑÅ£¬µ«ÖÁÉÙÊǽ¡×³µÄºÍ¿ÉÒÆÖ²µÄ¡£Äã˵ʲô£¿"ls -a"Ò²²»ÊÇÄÄÀï¶¼ÄÜÓõģ¿Ã»ÎÊÌ⣬ÎÒÃÇÓÃ"ls -f"ºÃÀ²¡£Ëü»¹¿ìÒ»µãÄØ¡£ÎÒÏ£ÍûÄãÃÇÄÜ´ÓmanÊÖ²áÖп´µ½ËùÓÐÕâЩ¶«Î÷¡£

ßí£¬¿ÉÄܲ»ÊÇÄÇô½¡×³¡£UnixÎļþÃûÖгýÁËб¸Ü(/)ÒÔÍâ¿ÉÒÔʹÓÃÈκÎ×Ö·û¡£Èç¹ûÎļþÃûÖÐÓиö¿Õ¸ñµÄ»°£¬Õâ¸ö½Å±¾¾ÍÍêµ°ÁË£¬ÕâÊÇÒòΪshell»á°ÑËüµ±³ÉÁ½¸öÎļþÃû´«¸ø"file"ÃüÁî¡£²»¹ýÕâÒ²²»ÊÇÌ«ÄѶԸ¶¡£ÎÒÃÇÖ»Òª°ÑËü·Åµ½ÒýÓÃÖоͿÉÒÔÁË£º

for file in `ls -f`

do

if [ "$file" != . -a "$file" != ..]

then

file "$file"

fi

done

ÄãÃÇÖпÉÄÜÒѾ­ÓÐÈË¿´³öÀ´ÁË£¬ÎÒÃÇÖ»ÊǼõÉÙÁËÎÊÌ⣬µ«»¹ÊÇûÓÐÍêÈ«½â¾ö¡£ÒòΪ»»ÐзûÒ²ÄÜÓÃÔÚÎļþÃûÖС£

ÎÒÃǵĽű¾²»ÊÇÄÇô¼òµ¥ÁË£¬¿´À´µÃÖØÐÂÆÀ¹ÀÒ»ÏÂÎÒÃÇÓõķ½·¨ÁË¡£Èç¹ûÎÒÃDz»Ê¹ÓÃ"ls"¾Í²»Ó÷Ѿ¢È¥´¦ÀíËüµÄÊä³öÁË¡£Õâ¸öÔõôÑù£º

for file in * .*

do

if [ "$file" != . -a "$file" != ..]

then

file "$file"

fi

done

¿´ÆðÀ´²»´í¡£Äܹ»´¦Àíµã(.)ÎļþºÍÓзǴòÓ¡×Ö·ûµÄÎļþÃû¡£ÎÒÃDz»¶Ï°ÑÒ»Ð©Ï¡Ææ¹Å¹ÖµÄÎļþÃû¼ÓÈëµ½²âÊÔĿ¼Ï£¬Õâ¸ö½Å±¾Ê¼ÖÕ¹¤×÷µÃºÜºÃ¡£È»¶øÓиö¼Ò»ïÓÃËü²âÒ»¸ö¿ÕĿ¼£¬Õâʱºò * ²úÉúÁË"No such file"(ûÓÐÕâ¸öÎļþ)µÄÊä³ö¡£²»¹ý£¬ÎÒÃǵ±È»¿ÉÒÔ¼ÌÐø´¦ÀíÕâÖÖÇé¿ö...

....µ½ÁËÕâÒ»²½uucp¿ÉÄÜ»áÏÓÎÒµÄÕâ·âÓʼþ¿ÉÄÜ£¬¿´À´ÎÒÖ»Äܵ½´ËΪֹÁË£¬Çë¶ÁÕßÈ¥×Ô¼º½â¾öʣϵÄbug°É¡£

Stephen

»¹ÓÐÒ»¸ö¸ü´óµÄÎÊÌâStephenûÓÐÏëµ½£¬ÎÒÃÇ´ÓÒ»¿ªÊ¼¾ÍÓÐÒâÒþ²Ø×Å£ºUnix file ÃüÁî²»¹¤×÷¡£

ÈÕÆÚ: Sat, 25 Apr 92 17:33:12 EDT
·¢ÐÅÈË: Alan Bawden <Alan@lcs.mit.edu>
Ö÷Ìâ: Simple Shell Programming (¼òµ¥Shell±à³Ì)
ÊÕÐÅÈË: UNIX-HATERS

ร¡±ðæ¡£ÔÙ×Ðϸ¿´¿´¡£ÄãÕæµÄÏëÓÃ'file'ÃüÁÈç¹ûË­Ï뿪ÐÄ´óЦһ³¡¿ÉÒÔÂíÉÏÈ¥ÕÒһ̨Unix»úÆ÷£¬ÔÚÓи÷ÖÖ¸÷ÑùÎļþµÄĿ¼ÏÂÇÃÃüÁî"file *"¡£

ÀýÈ磬ÎÒÔÚÓи÷ÖÖCÔ´´úÂëÎļþµÄĿ¼ÏÂÔËÐÐ"file"¡ª¡ªÕâÊÇһЩ½á¹û£º

arith.c: c program text

binshow.c: c program text

bintxt.c: c program text

¿´ÆðÀ´»¹²»´í¡£²»¹ýÕâ¸ö¾Í²»Ì«¶ÔÁË£º

crc.c: ascii text

¿´µ½ÁËô£¿'file'²¢²»ÊǸù¾Ýºó׺".c"È¥Åжϵģ¬Ëü¶ÔÎļþµÄÄÚÈݲÉÓÃÁËһЩÆô·¢Ê½(heuristics)Ëã·¨¡£ºÜÃ÷ÏÔcrc.c¿´ÆðÀ´²»ÄÇôÏóC´úÂ롪¡ª¾¡¹Ü¶ÔÎÒÀ´ËµËü¾ÍÊÇ¡£

gencrc.c.~4~: ascii text

gencrc.c: c program text

¹À¼ÆÎÒÔÚµÚ4°æ±¾ÒÔºó×öÁËһЩÐ޸ģ¬Ê¹µÃgencrc.c¸üÏóÊÇC´úÂëÁË...

tcfs.h.~1~: c program text

tcfs.h: ascii text

ºÜÃ÷ÏÔµÚ1°æ±¾ÒÔºóµÄtcfs.h²»Ì«ÏóÊÇC´úÂëÁË¡£

time.h: English text

û´í£¬time.h¿´ÆðÀ´¸üÏóÓ¢Ó¶ø²»ÊÇÒ»°ãµÄasciiÂë¡£ÎÒ²»ÖªµÀ'file'ÊDz»ÊÇ»¹ÄÜÅжϳöÎ÷°àÑÀÓï»ò·¨Óï¡£(˳±ã˵һÏ£¬ÄãµÄTeXÎĵµ»á±»µ±³É"ascii text"¶ø²»ÊÇ"English text"£¬²»¹ýÕâÓеã¶ùÅÜÌâÁË)

words.h.~1~: ascii text

words.h: English text

Õâ¿ÉÄÜÊÇÒòΪÎÒÔÚµÚ1°æ±¾ÒÔºóÔÚwords.hÖмÓÈëÁËһЩעÊÍ¡£

ÎÒ°Ñ×²ÉµÄÁôÔÚ×îºó£º

arc.h: shell commands

Makefile: [nt]roff, tbl, or eqn input text

¶¼´íµÃÒ»ËúºýÍ¿¡£ÎÒ²»ÖªµÀÈç¹û¸ù¾Ý'file'µÄÅжϽá¹ûȥʹÓÃÕâЩÎļþ»áÔì³Éʲô½á¹û¡£

¡ªAlan

Shell±äÁ¿

µ±È»Alan»¹²»Ëã×ùµÄ£¬ÖÁÉÙËûûÊÔ¹ýshell±äÁ¿¡£

ÎÒÃÇÇ°ÃæËµ¹ý£¬shºÍcsh¶Ôshell±äÁ¿µÄʵÏÖ²»Ì«Ò»Ñù¡£Õâ±¾À´Ã»ÓÐʲô£¬¿ÉÊÇһЩshell±äÁ¿µÄÓïÒå(±ÈÈ綨ÒåµÄʱ¿Ì£¬¸Ä±äµÄÔ­×ÓÐÔµÈ)ûÓб»ºÃºÃ˵Ã÷»ò¶¨Òå¡£×Ü»áÓöµ½Ò»Ð©Ææ¹Ö·´³£¹æµÄshell±äÁ¿£¬Ö»Óз´¸´ÊÔÑéÒÔºó²ÅÄÜÃ÷°×¡£

ÈÕÆÚ: Thu, 14 Nov 1991 11:46:21 PST
·¢ÐÅÈË: Stanley's Tool Works <lanning@parc.xerox.com)
Ö÷Ìâ: You learn something new every day (ÿÌì¶¼ÓÐз¢ÏÖ)
ÊÕÐÅÈË: UNIX-HATERS

ÔËÐÐÒ»ÏÂÕâ¸ö½Å±¾£º

#!/bin/csh
unset foo
if ( ! $?foo ) hen
echo foo was unset
else if ("$foo" = "You lose") then
echo $foo
endif

»á²úÉúÈçÏ´íÎó£º

foo: Undefined variable.

Èç¹ûÒªÈÃÕâ¸ö½Å±¾"ÕýÈ·¹¤×÷"£¬Äã±ØÐëÇóÖúÓÚÒÔÏÂÕâ¸ö½Å±¾£º

#!/bin/csh
unset foo
if ( ! $?foo ) hen
echo foo was unset
set foo
else if ("$foo" = "You lose") then
echo $foo
endif

[×¢Ò⣬ÎÒÃDZØÐëÔÚ·¢ÏÖfooûÓб»¶¨ÒåµÄʱºò'set foo'.] Çå³þÁËô£¿

´íÎóÂëºÍ´íÎó¼ì²é

ÎÒÃÇÉÏÃæµÄÀý×ÓûÓÐÖ¸³öfileÃüÁîÈçºÎ½«´íÎ󷵻ظø½Å±¾¡£ÊÂʵÉÏ£¬Ëü¸ù±¾¾ÍûÓзµ»Ø´íÎó¡£´íÎ󱻺öÂÔÁË¡£Õâ²»ÊÇÒòΪÎÒÃÇ´ÖÐÄ´óÒ⣺Ðí¶àUnix shell½Å±¾(ÒÔ¼°ÆäËû³ÌÐò)ºöÂÔËùµ÷ÓóÌÐòËù·µ»ØµÄ´íÎóÂë¡£Õâ¸ö×ö·¨ÊÇ¿ÉÈ¡µÄ£¬ÕâÊÇÒòΪûÓбê×¼µÄ´íÎóÂë¡£

Ò²ÐíÖ®ËùÒÔ´íÎóÂë±»¹ã·ºµØºöÂÔ£¬ÊÇÒòΪµ±Óû§ÇÃÃüÁîµÄʱºòÕâЩ´íÎóÂëºÜÉÙ±»ÏÔʾ³öÀ´¡£´íÎóÂëºÍ´íÎó¼ì²éÔÚUnixÕóÓªÖÐÊÇÈç´ËÉÙ¼û£¬ÒÔÖÁÓÚÓÐЩ³ÌÐòÉõÖÁ¸ù±¾¾Í²»·Ñ¾¢È¥±¨¸æ´íÎó¡£

ÈÕÆÚ: The, 6 Oct 92 08:44:17 PDT
·¢ÐÅÈË: Bjorn Freeman-Benson <bnfb@ursamajor.uvic.ca>
Ö÷Ìâ: It's always good news in Unix land (UnixÊÀ½çÀï¶¼ÊǺÃÏûÏ¢)
ÊÕÐÅÈË: UNIX-HATERS

¿´¿´Õâ¸ötar³ÌÐò¡£ºÍËùÓеÄUnix"¹¤¾ß"(ËÆºõ²»Ì«×¼È·)Ò»Ñù£¬tarµÄ¹¤×÷·½Ê½·Ç³£Ææ¹ÖºÍÌØ±ð¡£ÀýÈ磬tarÊÇÒ»¸ö¼«ÎªÀÖ¹ÛÏòÉϵijÌÐò£¬ËüÈÏΪ´Ó²»»áÓÐʲô»µÊ£¬ËùÒÔÌ«´ÓÀ´²»·µ»Ø´íÎó״̬¡£ÊÂʵÉÏ£¬ÄÄÅÂÊÇÔÚÆÁÄ»ÉÏ´ò³öÁË´íÎóÐÅÏ¢£¬Ëü·µ»ØµÄÈÔÈ»ÊÇ"ºÃÏûÏ¢" (״̬0)¡£ÔËÐÐÒ»ÏÂÕâ¸ö½Å±¾£º

tar cf temp.tar no.such.file

if ( $status == 0 ) echo "good news! No error."

Ä㽫µÃµ½ÈçϽá¹û£º

tar: no.such.file: No such file or directory
Good news! No error.

ÎÒÃ÷°×ÁË¡ª¡ªÎÒ´ÓÒ»¿ªÊ¼¾Í²»Ó¦¸ÃÉÝÍûʲôһÖ£¬ÓÐÓ㬰ïÖúÁ¼ºÃ£¬¿ìËÙ£¬ÉõÖÁÊÇÕýÈ·µÄ½á¹û...

Bjorn

OK, ±»shellÕÛÌڵúÜˬ°É£¿»¹Ã»¹ý×ãñ«£¿²»Òª½ô£¬Ï»ØÊéÎÒÃÇ»»¸öµØ·½£¬×ê½øUnixÏÂË®µÀ(pipe)ÀïÌåÑéÎÞÇîµÄÍ´¿àºÍ¿ìÀÖ

¹ÜµÀ

UnixÊÜŰ¿ñÃÇ£¬»¶Ó­À´µ½UnixÏÂË®µÀ¡£

¡°ÔÚÎÒÃÇÕâ¸öÊÀ¼Í£¬°ÍÀèÏÂË®µÀÈÔÊÇÒ»¸öÉñÃØµÄ³¡Ëù¡£Èç¹ûÖªµÀ×Ô¼ºµÄÏÂÃæÊǸö¿ÉŵĴó½Ñ£¬°ÍÀè»á¸Ðµ½²»°²¡£¡± ¡ª¡ª Óê¹û ¡¶±¯²ÒÊÀ½ç¡·

ÏÂÃæÖ»ÊÇÎÒ×Ô¼º¶ÔUnixµÄ¿´·¨¡£´óÔ¼ÁùÄêǰ(µ±ÎÒÓÐÁ˵Úһ̨¹¤×÷Õ¾µÄʱºò)£¬ÎÒÓÃÁ˺ܶàʱ¼äѧϰUnix¡£Ó¦¸ÃѧµÃËãÊDz»´íµÄ¡£ÐÒÔ˵ÄÊÇ£¬ÄÔ×ÓÀïµÄÕâЩÀ¬»øÕýËæ×Åʱ¼äµÄÍÆÒÆÂýÂý½µ½â¡£¿ÉÊÇ£¬×Ô´ÓÕâ¸öÌÖÂÛ¿ªÊ¼ÒÔÀ´£¬²»ÉÙUnixÖ§³ÖÕß·¢¸øÎÒÀý×ÓÀ´¡°Ö¤Ã÷¡±UnixµÄÇ¿´ó¡£ÕâЩÀý×Óµ±È»»½ÆðÁËÎÒÐí¶àÃÀºÃµÄ»ØÒ䣺ËûÃǶ¼ÊÇÓÃÒ»ÖÖ×î¹ÖÒìµÄ·½Ê½È¥ÊµÏÖһЩ¼òµ¥¶øÎÞÓõŦÄÜ¡£

Óиö¼Ò»ï·¢ÁËÆªÌù×Ó½²ÊöÒ»¸öshell½Å±¾ÊÇÈçºÎÈÃËû»ñµÃ¡°Ô²Âú¡±µÄ (Õâ¸ö½Å±¾Ê¹ÓÃÁËËĸöÔëÉùÒ»ÑùµÄÃüÁî°ÑËûËùÓеÄ'.pas'ºó׺µÄÎļþ¸ÄÃûΪ'.p' Îļþ)¡£¿ÉÎÒ»¹ÊÇÏë°Ñ×Ô¼ºµÄ×Ú½ÌÈÈÇéÁô¸ø±È¸Ä¼¸¸öÎļþÃû¸üÖØÒªµÄÊÂÇéÉÏ¡£Êǵģ¬Õâ¾ÍÊÇUnix¹¤¾ßÁô¸øÎҵļÇÒ䣺ÄãÓôóÁ¿µÄʱ¼äȥѧÄÇЩ¸´ÔÓÆæÌصύ¼Ü×Ó£¬¿Éµ½Í·À´È´ÊÇÒ»³¡¿Õ¡£ÎÒ»¹ÊÇȥѧЩÓÐÓõÄÕæ¹¦·ò°É¡£

¡ª¡ªJim Giles
Los Alamos¹ú¼ÒʵÑéÊÒ

Unix ÃÔÃǰݵ¹ÔڹܵÀ(pipe)µÄտɯÃÀ֮ϡ£ËûÃÇËûÃǸ質¹ÜµÀ£ºÃ»ÓйܵÀ¾ÍûÓÐUnix¡£ËûÃÇÒì¿ÚͬÉùµØËÌÑï¹ÜµÀ£º¡°¹ÜµÀÄܹ»ÈÃÄãÓüòµ¥µÄ³ÌÐòÈ¥¹¹Ôì¸ü¸´ÔӵijÌÐò¡£¹ÜµÀÄܹ»ÒÔÒâÏë²»µ½µÄ·½Ê½È¥Ê¹ÓÃÃüÁ¹ÜµÀʹµÃʵÏÖ¸üΪ¼òµ¥¡£¡±²»ÐÒµÄÊÇ£¬Ë̸è¶ÔUnixµÄ×÷Óò¢²»±È¶Ôΰ´óÆìÊÖµÄÒªºÃ¶àÉÙ¡£

¹ÜµÀ²¢²»ÊÇÒ»ÎÞÊÇ´¦¡£Ä£¿é»¯ºÍ³éÏó»¯Êǽ¨Á¢¸´ÔÓϵͳÖÐËù±ØÐèµÄ£¬ÕâÊǼÆËã»ú¿ÆÑ§µÄ»ù±¾Ô­Ôò¡£»ù±¾¹¤¾ßÔ½ÊÇÓÅÐ㣬ÓÃÆä½¨Á¢µÄ¸´ÔÓϵͳ¾Í»á¸üΪ³É¹¦£¬¿Éά»¤ÐÔÒ²Ô½¸ß¡£¹ÜµÀ×÷Ϊ¹¹Ô칤¾ß»¹ÊÇÓмÛÖµµÄ¡£

ÒÔÏÂÊǸö¹ÜµÀµÄÀý×Ó£º

egrep '^To:|^Cc:' /var/spool/mail/$USER |

cut -c5- |

awk '{ for (i = 1; i <= NF; i++) print $i}' |

sed 's/,//g' | grep -v $USER | sort | uniq

¿´Ã÷°×ÁËô£¿Õâ¸ö³ÌÐòͨ¹ý¶ÁÈ¡Óû§µÄÓÊÏ䣬µÃµ½Óû§ËùÔÚµÄÓʼþÁбí(²î²»¶àÊÇÕâ¸öÒâ˼)¡£ºÍÄã¼ÒÀïµÄË®¹ÜÒ»Ñù£¬Õâ¸öUnix¹ÜµÀÒ²»áÔÚÌØ¶¨Çé¿öÏÂÉñÃØµØÆÆÁÑ¡£

¹ÜµÀÓÐʱµÄÈ·ºÜÓÐÓ㬵«Ëüͨ¹ýÁ¬½Ó±ê×¼ÊäÈëÊä³öµÄ·½Ê½½øÐнø³Ì¼äͨѶ£¬Õâ¸ö»úÖÆÏÞÖÆÁËËüµÄÓ¦Óá£Ê×ÏÈ£¬ÐÅÏ¢Ö»Äܵ¥ÏòÁ÷¶¯¡£½ø³ÌÎÞ·¨Í¨¹ý¹ÜµÀ½øÐÐË«ÏòͨѶ¡£Æä´Î£¬¹ÜµÀ²»Ö§³ÖÈκÎÐÎʽµÄ³éÏó¡£·¢ËÍ·½ºÍ½ÓÊÕ·½Ö»ÄÜʹÓÃ×Ö·ûÁ÷´«ÊäÐÅÏ¢¡£±È×Ö·ûÉÔ΢¸´ÔÓÒ»µãµÄ¶ÔÏóÊDz»ÄÜͨ¹ý¹ÜµÀÖ±½Ó´«ÊäµÄ£¬±ØÐë´®Ðл¯Îª×Ö·ûÁ÷ÒÔºó²Å³É£¬µ±È»½ÓÊÕ·½±ØÐë¶ÔµÃµ½µÄ×Ö·ûÁ÷½øÐÐÖØÐÂ×é×°¡£ÕâÒâζ×ÅÄãÎÞ·¨´«ÊäÒ»¸ö¶ÔÏóÒÔ¼°ÓÃÓÚ½¨Á¢Õâ¸ö¶ÔÏóµÄ¶¨Òå´úÂë¡£ÄãÎÞ·¨´«ÊäÖ¸Õëµ½ÁíÒ»¸ö½ø³ÌµÄµØÖ·¿Õ¼ä¡£ÄãÎÞ·¨´«ÊäÎļþ¾ä±ú»òsocket¾ä±ú»òÎļþȨÏÞÊôÐÔ¡£

ð×ű»Âî×ö×ÔÒÔΪÊǵķçÏÕ£¬ÎÒÃÇÈÏΪÕýÈ·µÄÄ£ÐÍÓ¦¸ÃÊǹý³Ìµ÷ÓÃ(±¾µØµÄ»òÊÇÔ¶³ÌµÄ)£¬ÓÃÒÔ´«µÝµÚÒ»Àà½á¹¹(first-class structures)(ÕâÊÇCÓïÑÔ´ÓÒ»¿ªÊ¼¾ÍÖ§³ÖµÄ)ºÍº¯Êý×éºÏ(functional composition)¡£

¹ÜµÀ¶Ô¼òµ¥ÈÎÎñÊDz»´íµÄ£¬±ÈÈçÎı¾Á÷´¦Àí£¬µ«ÓÃËüÀ´½¨Á¢½¡×³Èí¼þ¾ÍÏÔµÃÓÐЩ׽½ó¼ûÖâÁË¡£ÀýÈ磬ÔçÆÚ¹ØÓڹܵÀµÄһƪÂÛÎÄÖÐ˵Ã÷ÁËÈçºÎʹÓùܵÀ°ÑһЩС³ÌÐò×éºÏÔÚÒ»ÆðÀ´¹¹³ÉÒ»¸öƴд¼ì²é³ÌÐò¡£ÕâÊÇÌåÏÖ¼òµ¥ÐԵľ­µäÖ®×÷£¬µ«Èç¹ûÕæµÄÓÃÀ´¼ì²éƴд´íÎó¾ÍÔÙÔã¸âûÓÐÁË¡£

¹ÜµÀÔÚshell½Å±¾ÖÐÓо­³£ÄܶһСÊÖ¡£³ÌÐòÔ±ÓÃËüʵÏÖһЩ¼òµ¥¶ø´àÈõµÄ½â¾ö·½°¸¡£ÕâÊÇÒòΪ¹ÜµÀʹµÃÁ½¸ö³ÌÐòÖ®¼ä²úÉúÁËÒÐÀµ¹ØÏµ£¬Èç¹ûÄãÐÞ¸ÄÁËÒ»¸ö³ÌÐòµÄÊä³ö¸ñʽ£¬¾Í±ØÐëͬʱÐÞ¸ÄÁíÒ»¸ö³ÌÐòµÄÊäÈë´¦Àí¡£

´ó¶àÊý³ÌÐòÊÇÒ»²½²½½¨Á¢ÆðÀ´µÄ£ºÊ×ÏÈÖÆ¶¨³ÌÐòµÄÐèÇ󹿷¶£¬È»ºó³ÌÐòµÄÄÚ²¿Öð½¥³ÉÐÍ£¬×îºóдһ¸öÊä³ö´¦Àíº¯Êý¡£¹ÜµÀÔò²»°ÑÕâÒ»Ì×·ÅÔÚÑÛÀֻҪÓÐÈ˰ÑÒ»¸ö°ëÉú²»ÊìµÄ³ÌÐò·Åµ½Á˹ܵÀÖУ¬ÆäÊä³ö¸ñʽ¾Í¶¨ËÀÁË£¬²»¹ÜÊǶàô²»Ò»Ö£¬²»±ê×¼ºÍµÍЧ£¬Äã¶¼Ö»ÄÜÈÏÃüÁË¡£

¹ÜµÀ²»ÊdzÌÐò¼äͨѶµÄΨһѡÔñ¡£Macintosh¾ÍûÓйܵÀ£¬ÎÒÃÇ×îϲ»¶µÄUnixÐû´«ÊÖ²áÊÇÕâÑùдµÄ£º

µ«ÊÇ£¬Macintosh²ÉÓõÄÔòÊǽØÈ»Ïà·´µÄÒ»ÖÖÄ£ÐÍ¡£ÏµÍ³²»ºÍ×Ö·ûÁ÷´ò½»µÀ¡£Êý¾ÝÎļþ¾ßÓиü¸ßµÄ²ã´Î£¬×ÜÊǺÍÌØ¶¨µÄ³ÌÐòÏà¹ØµÄ¡£Äãʲôʱºò°ÑÒ»¸ö Mac³ÌÐòµÄÊä³ö´«¸øÁíÒ»¸ö¹ý£¿(Èç¹ûÄÜÕÒµ½¹ÜµÀ·û¶¼ËãÄãÔËÆø)³ÌÐò×Ô³ÉÒ»Ì壬Äã±ØÐë³¹µ×Ã÷°××Ô¼ºÔÚ¸ÉÂïÄØ¡£ÄãÎÞ·¨°ÑMacFooºÍMacBar¸ãµ½Ò»Æð¡£-¡ª Õª×Ô ¡¶UnixÉú»î¡· LibesºÍresslerÖø

ÊÇѽ£¬ÕâЩ¿ÉÁ¯µÄMacÓû§¡£Èç¹ûÎÞ·¨°Ñ×Ö·ûÁ÷ͨ¹ý¹ÜµÀËÄ´¦ÂÒ´«£¬ËûÃÇÔõôÄÜÔÚÎĵµÖвåÈë»æ»­³ÌÐòÖÆ×÷µÄͼƬ£¿ÔõôÄܲåÈëÒ»¸ö±í¸ñÎĵµ£¿ÔõôÄܰÑÕâ¸ö¶«Æ´Î÷´Õ³ÉµÄÓõç×ÓÓʼþ·¢³öÈ¥£¿½Óµ½ÒÔºóÓÖÔõôÄÜÎÞ·ìµØ¶ÔËü½øÐÐä¯ÀÀºÍ±à¼­£¬Ôٻظ´»ØÈ¥£¿Ã»ÓйܵÀ£¬ÎÒÃDz»ÄÜÏëÏñÕâÒ»ÇÐÔÚ¹ýÈ¥µÄÊ®ÄêÖÐÊÇÈçºÎ±» Macintosh×öµ½µÄ¡£

ÉÏ´ÎÄãµÄUnix¹¤×÷Õ¾ºÍ MacintoshÒ»ÑùÓÐÓÃÊÇʲôʱºò£¿ÉÏ´ÎÄãÄÜÔÚËüÉÏÃæÅܲ»Í¬¹«Ë¾(ÉõÖÁÊÇͬһ¹«Ë¾µÄ²»Í¬²¿ÃÅ)µÄÈí¼þÊÇʲôʱºò£¿¸ü²»ÓÃ˵ÕâЩÈí¼þÄÜ»¥ÏàͨÐÅ¡£Èç¹û UnixÕæ×öµ½ÁËÕâÒ»µã£¬ÄÇÊÇÒòΪMacÈí¼þ¿ª·¢ÉÌÆ´ÁËÀÏÃü°ÑËûÃǵÄÈí¼þÒÆÖ²µ½ÁËUnixÉÏ£¬¼ÄÏ£ÍûÓÚÈÃUnix¿´ÆðÀ´ÏóMacһЩ¡£

UnixºÍMacintosh²Ù×÷ϵͳµÄ¸ù±¾Çø±ðÊÇ£¬UnixÊÇΪȡÔóÌÐòÔ±¶øÉè¼ÆµÄ£¬¶øMacÊÇΪÁËÈ¡ÔÃÓû§¡£(WindowsÒ»ÃÅÐÄ˼ÏëÈ¡ÔõÄÔòÊÇ»á¼Æ£¬²»¹ýÕâÓÐЩÅÜÌâÁË)¡£

Ñо¿±íÃ÷¹ÜµÀºÍÖØ¶¨ÏòÊÇÄÑÓÚʹÓõ쬲»ÊÇÒòΪÏë·¨±¾Éí£¬¶øÊÇÓÉÓÚÆäËæÒâºÍ²»Ö±¹ÛµÄÏÞÖÆ¡£Unix×Ô¼ºµÄÎĵµÔç¾ÍÖ¸Ã÷ÁËÖ»ÓÐUnixËÀµ³²ÅÄÜÌå»á¹ÜµÀµÄÃî´¦¡£

ÈÕÆÚ: thu, 31 Jan 91 14:29:42 EST
·¢ÐÅÈË: Jim Davis <jrd@media-lib.media.mit.edu>
ÊÕÐÅÈË: UNIX-HATERS
Ö÷Ìâ: Expertise (רҵ֪ʶ)

½ñÌìÔçÉÏÎÒ¶Áµ½¡¶ÈË»ú½Ó¿ÚÔÓÖ¾¡·ÉϵÄһƪÎÄÕ¡¶¼ÆËã»ú²Ù×÷ϵͳרҵ֪ʶ¡·£¬ÊÇStephanie M. DoaneºÍÆäËûÁ½Î»×÷ÕßдµÄ¡£²Â²ÂËûÃÇÑо¿µÄÊÇʲô²Ù×÷ϵͳ£¿Doane¶ÔUnixÐÂÊÖ¡¢ÖÐÊÖºÍר¼ÒµÄ֪ʶºÍ±íÏÖ½øÐÐÁËÑо¿£¬ÏÂÃæÊÇһЩժҪ£º

¡°Ö»ÓÐר¼ÒÄܹ»Ê¹ÓÃUnixÌØÓеÄһЩ¹¦ÄÜ(ÀýÈç¹ÜµÀºÍÖØ¶¨Ïò)À´¹¹ÔìÃüÁî×éºÏ¡±

»»¾ä»°Ëµ£¬UnixµÄÿ¸öй¦ÄÜ(³ýÁËÄÇЩ´ÓÆäËûϵͳÉÏÉú°áÓ²Ì×¹ýÀ´µÄ)¶¼ÊÇÈç´Ë¹ÖÒ죬ÒÔÖÁÓÚ±ØÐë¾­¹ý¶àÄêͬÑù¹ÖÒìµÄѧϰºÍʵ¼ù²ÅÄÜÕÆÎÕ¡£

¡°Õâ¸ö·¢ÏÖÓÐЩ³öºõÒâÁÏ£¬ÒòΪÕâЩÕýÊÇUnixµÄ»ù´¡¹¦ÄÜ£¬¶øÇÒÕâЩ¹¦ÄÜÊÇËùÓгõ¼¶¿Î³Ì¶¼»áÉæ¼°µÄ¡±

Ëý»¹ÒýÓÃÁËS. W. DraperµÄһЩÎÄÕ£¬DraperÏàÐÅ£º

¡°ÊÀÉϸù±¾Ã»ÓÐʲôUnixר¼Ò£¬Èç¹ûר¼ÒÖ¸µÄÊÇÕâÑùһЩÈË£¬ËûÃÇÇÁËijרҵµÄËùÓÐ֪ʶ£¬ÎÞÐèÔÙѧϰʲôÁË¡£¡±

ÕâÒ»µãÎÒ²»Äܹ¶Í¬¡£ÔÚѧϰUnix¸÷ÖÖ»ÄÃý¼¼ÊõµÄÕ÷;ÉÏ£¬ÒѾ­ÓÐÎÞÊýÈ˱»¡°Ç¡±ÁË¡£

ÓÐЩ³ÌÐòÉõÖÁ³Ô±¥Á˳ŵģ¬°Ñ¹ÜµÀºÍÎļþÖØ¶¨ÏòÇø±ð¶Ô´ýÁË£º

·¢ÐÅÈË: Leigh L. Klotz <klotz@adoc.xerox.com>
ÊÕÐÅÈË: UNIX-HATERS
Ö÷Ìâ: | vs. < (|¶Ô<)
ÈÕÆÚ: Thu, 8 Oct 1992 11:37:14 PDT

collard% xtpanel -file xtpanel.out < .login
unmatched braces
unmatched braces
unmatched braces
3 unmatched right braces present

collard% cat .login | xtpanel -file xtpanel.out
collard%

Äã×Ô¼º×ÁÄ¥×ÁÄ¥°É¡£

Find

Unix×îΪ¿Ö²ÀµÄÊÇ£¬²»¹ÜÄã±»Ëü¿ª¹ý¶àÉÙ´ÎÆ°£¬Äã×ÜÊÇû·¨Ê§È¥Öª¾õ¡£Ëü¾ÍÕâô¿ªÀ´¿ªÈ¥£¬Ã»ÍêûÁË¡£

¡ª¡ªPatrick Sobalvarro

ÔÚÒ»¸öÅÓ´óµÄÎļþϵͳÖÐÒÅʧ¸ö°ÑÎļþÊdz£ÓеÄÊÂ(ÏëÏñһϴóº£ÀÌÕë)¡£ÏÖÔÚÓÉÓÚ¸ü´ó¸ü±ãÒ˵ĴÅÅ̵ijöÏÖ£¬PCºÍAppleÓû§Ò²Óöµ½ÁËÕâÑùµÄÎÊÌ⡣ΪÁ˽â¾öÕâ¸öÎÊÌ⣬ϵͳÍùÍùÌṩһ¸öËÑË÷³ÌÐò£¬¸ù¾Ý¸÷ÖÖÌõ¼þ(±ÈÈçÎļþÃû³Æ£¬ÀàÐÍ£¬´´½¨Ê±¼äµÈµÈ)½øÐÐÎļþËÑË÷¡£Apple MacintoshºÍ΢ÈíWindows¶¼Ìṩǿ´ó¡¢·½±ã¡¢Îȶ¨µÄÎļþËÑË÷³ÌÐò¡£ÕâЩËÑË÷³ÌÐòµÄÉè¼ÆÖп¼Âǵ½ÁËÓû§Ï°¹ßºÍÏÖ´úÍøÂç¡£UnixµÄËÑË÷³ÌÐò find¿¼ÂǵÄÔò²»ÊÇÓû§£¬¶øÊÇcpio£¬Ò»¸öUnix±¸·Ý¹¤¾ß¡£FindûÄÜÔ¤¼ûµ½ÍøÂçµÄ´æÔÚºÍÎļþϵͳµÄй¦ÄÜ(Èç·ûºÅÁ´½Ó)£¬¼´Ê¹ÊǾ­ÀúÁË·´¸´Ð޸ģ¬Ëü»¹ÊÇÎÞ·¨ºÜºÃ¹¤×÷¡£ÓÚÊÇ£¬¾¡¹ÜËü¶ÔÓÚÒÅʧÎļþµÄÓû§ÒâÒåÖØ´ó£¬find»¹ÊDz»ÄÜÎȶ¨¡¢Õý³£µÄ¹¤×÷¡£

UnixµÄ×÷ÕßÃÇŬÁ¦ÊÇ find¸úÉÏϵͳÆäËû²¿·ÖµÄ·¢Õ¹£¬µ«Õâ²¢²»ÈÝÒס£½ñÌìµÄfindÓи÷ÖÖÌØÊâµÄÑ¡ÏîÓÃÓÚ´¦ÀíNFSÎļþϵͳ£¬·ûºÅÁ´½Ó£¬Ö´ÐгÌÐò£¬½»»¥Ê½µØÖ´ÐгÌÐò£¬ÉõÖÁÖ±½ÓʹÓÃcpio»òcpio-c¸ñʽ¶ÔÕÒµ½µÄÎļþ½øÐй鵵¡£Sun¹«Ë¾ÐÞ¸ÄÁËfind£¬Ìí¼ÓÁËÒ»¸öºǫ́³ÌÐò½¨Á¢ÏµÍ³ÉÏÿ¸öÎļþµÄË÷ÒýÊý¾Ý¿â£¬ÓÉÓÚÒ»Ð©Ææ¹ÖµÄÀíÓÉ£¬µ±Äã²»¼ÓÈκβÎÊýÖ´ÐÐ"find filename"ʱ£¬Õâ¸öÊý¾Ý¿â±»ÓÃÓÚ½øÐÐËÑË÷£¬(¹»°²È«µÄ£¬Êǰɣ¿) ¼´Ê¹ÓиöÕâô¶àÐÞÐÞ²¹²¹£¬find»¹ÊDz»ÄÜÕý³£¹¤×÷¡£

ÀýÈ磬csh¼ûµ½·ûºÅÁ´½Ó»á˳×Å×ßÏÂÈ¥£¬µ«find²»»á£ºcshÊDz®¿ËÀû(·ûºÅÁ´½ÓµÄ·¢Ô´µØ)µÄ¼Ò»ïÃÇдµÄ£¬¿ÉÊÇfindÊÇ´ÓAT&TµÄԭʼʱ´ú¿ªÊ¼¾ÍÓÐÁË¡£¾ÍÕâÑù£¬¶«Î÷·½µÄÎÄ»¯²îÒ켤ÁÒµØÅöײÁË£¬Ôì³ÉÁ˾޴óµÄ»ìÂÒ£º

ÈÕÆÚ: Thu, 28 Jun 1990 18:14 EDT
·¢ÐÅÈË: pgs@crl.dec.com
Ö÷Ìâ: more things to hate about Unix (¸ü¶àºÞµÄÀíÓÉ£¬¾ÍÔÚUnix)
ÊÕÐÅÈË: UNIX-HATERS

Õâ¸öÊÇÎÒµÄ×î°®¡£ÎÒÔÚÒ»¸öĿ¼Ï¹¤×÷£¬ÏëÓÃfindÈ¥ÕÒÁíÒ»¸öĿ¼ÀïµÄÎļþ£¬ÎÒÊÇÕâô×öµÄ£º

po> pwd
/ath/u1/pgs
po> find ~halstead -name "*.trace" -print
po>

¿´À´Ã»ÓÐÕÒµ½¡£²»¹ý±ð棬¿´¿´Õâ¸ö£º

po> cd ~halsead
po> find . -name "*.trace" -print
../learnX/fib-3.trace
../learnX/p20xp20.trace
../learnX/fib-3i.trace
../learnX/fib-5.trace
../learnX/p10xp10.trace
po>

ºÙ£¡Îļþ¾ÍÔÚÄÇÀïѽ£¡Ï´ÎÈç¹ûÄãÏëÕÒÒ»¸öÎļþ£¬¼Ç×¡Ëæ»úµ½¸÷¸öĿ¼ÏÂתת£¬Ëµ²»¶¨ÄãÒªµÄÎļþ¾Í²ØÔÚÄÇÀïÄØ¡£UnixÕâ¸ö·ÏÎï¡£

¿ÉÁ¯µÄHalsteadͬ־µÄ/etc/passwd¼Ç¼һ¶¨ÊÇʹÓÃÁË·ûºÅÁ´½ÓÈ¥Ö¸ÏòÁËÕæÕýµÄĿ¼£¬ËùÒÔÓеÄÃüÁ×÷£¬ÓеIJ»¹¤×÷¡£

Ϊʲô²»¸Ä¸Äfind£¬Ò²ÈÃËü˳×Å·ûºÅÁ´½ÓÄØ£¿ÕâÊÇÒòΪÈκÎÒ»¸öÖ¸Ïò¸ßÒ»¼¶Ä¿Â¼µÄ·ûºÅÁ´½Ó¶¼»á°ÑfindÒýÈëËÀÑ­»·¡£Òª´¦ÀíÕâÖÖÇé¿öÐèÒª¾«ÐĵÄÉè¼ÆºÍСÐĵÄʵÏÖ£¬ÒÔ±£Ö¤ÏµÍ³²»»áÖØ¸´ËÑË÷ͬһ¸öĿ¼¡£Unix²ÉÓÃÁË×î¼òµ¥µÄ×ö·¨£ºË÷ÐÔ²»´¦Àí·ûºÅÁ´½Ó£¬ÈÃÓû§×Ô¼ºÈ¥¿´×Űì°É¡£

ÁªÍøÏµÍ³±äµÃÔ½À´Ô½¸´ÔÓ£¬ÎÊÌâÒ²Ô½À´Ô½ÄÑÒÔ½â¾öÁË£º

ÈÕÆÚ: Wed, 2 Jan 1991 16:14:27 PST
·¢ÐÅÈË: Ken Harrenstien <klh@nisc.sri.com>
Ö÷Ìâ: Why find doesn't find anything (ΪʲôfindʲôҲÕÒ²»µ½£¿)
ÊÕÐÅÈË: UNIX-HATERS

ÎÒ¸Õ¸Õ·¢ÏÖΪʲô"find"²»ÔÙ¹¤×÷ÁË¡£

¾¡¹Ü"find"µÄÓï·¨·Ç³£¶ñÐĹÖÒ죬ÎÒ»¹ÔÚÃãÇ¿ÓÃËü£¬ÒÔÃ⼸СʱÅÝÔÚÔÚÃÔ¹¬ËƵÄÎļþĿ¼ÖÐȥѰÕÒÎļþ¡£

ÔÚÕâ¸öÓÐNFSºÍ·ûºÅÁ´½Ó´æÔÚµÄÓ¸ÒÐÂÊÀ½çÀ"find"ûÓÃÁË¡£ÎÒÃÇÕâÀïµÄËùνÎļþϵͳÊÇÓÉÖÚ¶àÎļþ·þÎñÆ÷ºÍ·ûºÅÁ´½Ó×é³ÉµÄÒ»ÍÅÂÒÂ飬"find"ÄĸöÒ²²»ÏëÈ¥´¦Àí£¬ÉõÖÁÁ¬Ñ¡ÏîÒ²²»Ìṩ... ½á¹ûÊÇ´óÁ¿µÄËÑË÷·¾¶±»ÎÞÉùÎÞÏ¢µØºöÂÔÁË¡£ÎÒ×¢Òâµ½ÁËÕâ¸ö£¬ÊÇÔÚÒ»¸öºÜ´óµÄĿ¼ÏÂËÑË÷ʱ½á¹ûÒ»ÎÞËù»ñ£¬×îºó·¢ÏÖÊÇÒòΪÄǸöĿ¼ÊǸö·ûºÅÁ´½Ó¡£

ÎÒ²»Ïë×Ô¼ºÈ¥¼ì²éÿһ¸ö½»¸øfindµÄËÑË÷Ŀ¼¡ª¡ªÕâËûÂèÓ¦¸ÃÊÇfindµÄ¹¤×÷¡£ÎÒ²»Ïëȥÿ´ÎÕâÀàÇé¿ö·¢Éúʱ¶¼ÒªÈ¥µ÷²éÒ»ÏÂϵͳÈí¼þ¡£ÎÒ²»ÏëÀË·Ñʱ¼äÀ´ºÍSUN»òÕßÕû¸öUnixµ³Í½ÃÇ×ö¶·Õù¡£ÎÒ²»ÏëÓÃUnix¡£ºÞ£¬ºÞ£¬ºÞ£¬ºÞ£¬ºÞ£¬ºÞ£¬ºÞ£¬ºÞ¡£

¡ª¡ªKen (¸Ð¾õºÃЩÁË£¬¿É»¹ÊÇÓеãÄÕ)

Èç¹ûÏëд¸ö¸´ÔÓÒ»µãµÄshell½Å±¾¶ÔÕÒµ½µÄÎļþ½øÐд¦Àí£¬½á¹ûÍùÍù»áºÜÆæ¹Ö¡£ÕâÊÇshell´«µÝ²ÎÊý·½Ê½Ëù²úÉúµÄ±¯²Òºó¹û¡£

ÈÕÆÚ: Sat, 12 Dec 92 01:15:52 PST
·¢ÐÅÈË: Jamie Zawinski <jwz@lucid.com>
Ö÷Ìâ: Q: what's the opposite of 'find?' A: 'lose'
(ÎÊÌ⣺'find'µÄ·´Òå´ÊÊÇʲô£¿ ´ð°¸£º¶ªÊ§)
ÊÕÐÅÈË: UNIX-HATERS

ÎÒÏëÕÒ³öÒ»¸öĿ¼ÏµÄËùÓеÄûÓжÔÓ¦.elcÎļþ´æÔÚµÄ.elÎļþ¡£ÕâÓ¦¸Ã²»Ì«ÄÑ£¬ÎÒÓõÄÊÇfind.

²»¹ýÎÒ´íÁË¡£

ÎÒÏÈÊÇÕâô¸ÉµÄ£º

% find . -name '*.el' -exec 'test -f {}c'
find: incomplete statement

àÞ£¬ÎÒ¼ÇÆðÀ´ÁË£¬ËüÐèÒª¸ö·ÖºÅ¡£

% find . -name '*.el' -exec 'test -f {}c';
find: Can't execute test -f {}c:
No such file or directory

ÕæÓÐÄãµÄ£¬¾¹È»Ã»È¥½âÎöÕâ¸öÃüÁî¡£

% find . -name '*.el' -exec test -f {}c ;

ß×£¬ËƺõʲôҲû×ö...

% find . -name '*.el' -exec echo test -f {}c ;
test -f c
test -f c
test -f c
test -f c
....

Ã÷°×ÁË¡£ÊÇshell°Ñ´óÀ¨ºÅ¸øÕ¹¿ªÁË¡£

% find . -name '*.el' -exec test -f '{}'c ;
test -f {}c
test -f {}c
test -f {}c
test -f {}c

àÅ£¿Ò²ÐíÎҼǴíÁË£¬{}²¢²»ÊÇfindʹÓõÄÄǸö¡°Ìæ»»³ÉÕâ¸öÎļþÃû¡±µÄ·ûºÅ¡£ÕæµÄô£¿...

% find . -name '*.el'
-exec test -f '{}' c ;
test -f ./bytecomp/bytecomp-runtime.el c
test -f ./bytecomp/disass.el c
test -f ./bytecomp/bytecomp.el c
test -f ./bytecomp/byte-optimize.el c
....

ร¬Ô­À´Èç´Ë¡£ÏÂÃæ¸ÃÔõô°ìÄØ£¿ÎÒÏ룬ÎÒËÆºõ¿ÉÒÔÊÔÊÔ"sed..."

¿ÉÎÒÍü¼ÇÁËÒ»¸öÉî¿ÌµÄÕÜÀí£º¡°µ±Óöµ½Ò»¸öUnixÎÊÌâµÄʱºò£¬ÓеÄÈË»áÏë¡®ÎÒ¶®£¬ÎÒ¿ÉÒÔÊÔÊÔsed.¡¯ÕâÏÂËûÃÇÓÐÁ½¸öÎÊÌâÈ¥¶Ô¸¶ÁË¡£¡±

ÊÔÑéÁËÎå´Î£¬ÔĶÁÁËsedÊÖ²áÁ½±é£¬Îҵõ½ÁËÕâ¸ö£º

% echo foo.el | sed 's/$/c/'

ÓÚÊÇ£º

% find . -name '*.el'
-exec echo test -f `echo '{}'
| sed 's/$/c'` ;
test -f c
test -f c
test -f c
....

OK, ¿´À´Ö»ÄÜÈ¥ÊÔÊÔËùÓÐshellÒýÓõÄÅÅÁÐ×éºÏÁË£¬×Ü»áÓÐÒ»¿îºÍÎÒÒâ°É£¿

% find . -name '*.el'
-exec echo test -f "`echo '{}'
| sed 's/$/c'`" ;
Variable syntax.
% find . -name '*.el'
-exec echo test -f '`echo "{}"
| sed "s/$/c"`' ;
test -f `echo "{}" | sed "s/$/c"`
test -f `echo "{}" | sed "s/$/c"`
test -f `echo "{}" | sed "s/$/c"`
....

àË£¬×îºóÒ»¸öËÆºõÓÐÏ·¡£ÎÒÖ»ÐèÒªÕâô¸Éһϣº

% find . -name '*.el'
-exec echo test -f '`echo {}
| sed "s/$/c"`' ;
test -f `echo {} | sed "s/$/c"`
test -f `echo {} | sed "s/$/c"`
test -f `echo {} | sed "s/$/c"`
....

±ð¼±£¬ÕâÊÇÎÒÏëÒªµÄ£¬¿ÉÊÇÄãΪʲô²»°Ñ{}Ìæ»»³ÉÎļþÃûÄØ£¿ÄãÔÙ×Ðϸ³ò³ò£¬{}Á½±ß²»ÊÇÓпոñô£¿Ä㾿¾¹ÏëҪʲô£¿

Ŷ£¬µÈµÈ¡£ÄǸö·´µ¥ÒýºÅ¼äµÄÒýÓñ»µ±³ÉÁËÒ»¸öÔªËØ¡£

»òÐíÎÒÄÜÓÃsed°ÑÕâ¸ö·´µ¥ÒýºÅ¹ýÂ˵ô¡£àÅ£¬Ã»Ï·¡£

ÓÚÊÇÎÒÓÃÁ˰ë·ÖÖÓÈ¥ÏëÈçºÎÄÜÔËÐÐ"-exec sh -c..."Ö®ÀàµÄ¶«Î÷£¬ÖÕÓÚ³öÏÖÁËÊï¹â£¬Ð´ÁËÒ»¶Îemcas-lisp´úÂëÈ¥×öÕâ¼þÊ¡£Õâ²»À§ÄÑ£¬Í¦¿ìµÄ£¬¶øÇÒ¹¤×÷ÁË¡£

ÎÒÕæ¸ßÐË¡£ÎÒÒÔΪһÇж¼¹ýÈ¥ÁË¡£

½ñÌìÔçÉÏÎÒÏ´ÔèµÄʱºòͻȻÏëµ½ÁËÁíÒ»ÖÖ×ö·¨¡£ÎÒÊÔÁËÒ»´ÎÓÖÒ»´Î£¬ÉîÉî×¹ÈëÁËËýµÄÇéÍø£¬ÒâÂÒÇéÃÔ£¬ÎÞ·¨×԰Ρ£×íÁË¡£Ö»Óк±ÅµËþµÄScribeʵÏÖÔø¸ø¹ýÎÒÕâÑùµÄ¿ì¸Ð¡£ÎÒ½öÊÔÁË12´Î¾ÍÕÒµ½Á˽ⷨ¡£¶ÔÓÚÿ¸ö±éÀúµ½µÄÎļþËüÖ»²úÉúÁ½¸ö½ø³Ì¡£Õâ²ÅÊÇUnixÖ®µÀ£¡

% find . -name '*.el' -print
| sed 's/^/FOO-/'|
sed 's/$/; if [ ! -f ${FOO}c]; then
echo $FOO; fi/' | sh

BWAAAAAHH HAAAAHH HAAAAHH HAAAAHH HAAAAHH HAAAAHH HAAAAHH HAAAAHH!!!!

¡ªJamie

OK, ÔÚÏÂË®µÀÀïÍæ×½ÃÔ²ØÍ¦ÓÐÒâ˼µÄ°É£¿µÚ8Õ¾ÍÔÚ»¶ÉùЦÓïÖÐÕâô½áÊøÁË¡£Ï»ØÊéÎÒÃǾÍÒª¿ªÊ¼±à³ÌÁË£¬»¹¼ÇµÃСʱºòÄǸö¿É°®ÃÔÈ˵Ļ¤Ê¿°¢ÒÌÊÇÔõô¶ÔÄã˵µÄô£¿

¡°Å£Å£±ðÅ£¬²»Ì۵ġ£¡±




ºÜ¶àʱºò
ÄãÎÒÖ®¼äÄDz»¿ÉÓâÔ½µÄÌìÑÄ
½ö½öÖ»ÓÐåë³ß´óС

ÓÃÈðÐÇ?»¹²»ÈçÓÃÖÇ»ÛÐÇ!
2V97-9DKN-F9HC-JCJE
KTB9-N7BP-CR8N-49VX
X1OC2N0GJ1H51W84
¶¥²¿
ѪɫÑÛÀá (ÃÈÒªËØ)
LUPA¹ó±ö
Rank: 8Rank: 8


ÓÅÐã°ßÖñ½±   ½Ü³ö¹±Ï×½±  
UID 16005
¾«»ª 3
»ý·Ö 7043
Ìû×Ó 2780
LUPA±Ò 5647 µã
ÔĶÁȨÏÞ 100
×¢²á 2006-1-6
·¢±íÓÚ 2006-3-21 10:20  ×ÊÁÏ ¸öÈË¿Õ¼ä ¶ÌÏûÏ¢ 
±ðÈÇUnix£¬ËüÈõ²»½û·ç£¬¶¯²»¶¯¾ÍͺË(core dump)

¡ª¡ªÎÞÃûÊÏ

Èç¹ûÄãÊÇͨ¹ýÔÚUnixÉÏдC´úÂë¶øÑ§»áµÄ±à³Ì£¬ÄÇô¿ÉÄÜ»á¾õµÃÕâÒ»ÕÂÓÐЩ±ðŤ¡£²»ÐÒµÄÊÇ£¬UnixÈç´Ë¹ã·ºµØ±»Ó¦Óõ½ÁË¿ÆÑнÌÓýÁìÓò£¬ºÜÉÙÓÐѧÉúÄÜÒâʶµ½UnixµÄÐí¶àÉè¼Æ²¢²»ÊÇÑÏ誺ÏÀíµÄ¡£

ÀýÈ磬ÌýÁËÎÒÃǹØÓÚÓÐÐí¶àÓïÑԺͻ·¾³±ÈC/UnixÒªºÃµÄ˵·¨ºó£¬Ò»¸öUnix°®ºÃÕßÊÇÕâôΪUnixºÍC±ç»¤µÄ£º

ÈÕÆÚ: 1991 Nov 9
·¢ÐÅÈË: tmb@ai.mit.edu (Thomas M. Breuel)

Scheme, SmalltalkºÍCommon LispÕâЩÓïÑÔȷʵÌṩÁËÇ¿´óµÄ±à³Ì»·¾³¡£µ«ÊÇUnixÄںˣ¬shellºÍCÓïÑÔÔòÕë¶ÔµÄÊǸüΪ¹ã·ºµÄÎÊÌâ¿Õ¼ä£¬¶øÕâЩÎÊÌâ²»ÊÇÉÏÃæÄÇЩÓïÑÔËùÉó¤µÄ£¨Óеĸù±¾¾ÍÎÞ·¨´¦Àí£©¡£

ÕâЩÎÊÌâ¿Õ¼ä°üÀ¨ÄÚ´æ¹ÜÀíºÍ¾Ö²¿ÐÔ(locality)(ÔÚ½ø³ÌµÄ²úÉúºÍÖÕÖ¹ÖÐʵÏÖ)£¬¡¢³ÖÐøÐÔ(persistency)(ʹÓÃÎļþ´æ´¢Êý¾Ý½á¹¹)£¬²¢ÐÐÐÔ(parallelism)(ͨ¹ý¹ÜµÀ£¬½ø³ÌºÍ½ø³ÌͨѶ»úÖÆÀ´ÊµÏÖ)£¬±£»¤ºÍ»Ö¸´(ͨ¹ý¶ÀÁ¢µÄµØÖ·¿Õ¼äʵÏÖ)£¬ÒÔ¼°¿ÉÖ±¹Û¶ÁÈ¡µÄÊý¾Ý±íÏÖ·½Ê½(ʹÓÃÎı¾ÎļþʵÏÖ)¡£´ÓʵÓõĽǶÈÀ´¿´£¬UnixÄܺܺõش¦ÀíÕâЩÎÊÌâ¡£

Thomas Breuel¿ä½±UnixÄܹ»½â¾ö¸´ÔӵļÆËã»ú¿ÆÑ§ÎÊÌâ¡£ÐÒÔ˵ÄÊÇ£¬Õâ²»ÊÇÆäËû¿ÆÑ§ÁìÓòÓÃÀ´½â¾öÎÊÌâµÄ·½·¨¡£

ÈÕÆÚ: Tue, 12 Nov 91 11:36:04 -0500
·¢ÐÅÈË: markf@altdorf.ai.mit.edu
ÊÕÐÅÈË: UNIX-HATERS
Ö÷Ìâ: Random Unix similes (Ëæ»úµÄUnixЦÁ³)

ͨ¹ý¿ØÖƽø³ÌµÄ²úÉúÓëÖÕÖ¹À´½øÐÐÄÚ´æ¹ÜÀí£¬Õâ¾ÍÈçͬͨ¹ý¿ØÖÆÈ˵ÄÉúËÀÀ´¶Ô¸¶¼²²¡¡ª¡ªÕâºöÊÓÁËÕæÕýÎÊÌâ¡£

ͨ¹ýUnixÎļþ»ñµÃ³ÖÐøÐÔ¾ÍÈçͬ°ÑÄãËùÓеÄÒ·þÈÔ½øÒ¹ñ£¬»ÃÏë×ÅÄÜ´ÓÀïÃæÕÒµ½ÐèÒªµÄÒ·þ£¨²»ÐÒµÄÊÇ£¬ÎÒÕýÊÇÕâôȥ×öµÄ£©¡£

ͨ¹ý¹ÜµÀ£¬½ø³ÌºÍ½ø³ÌͨѶ»úÖÆÀ´ÊµÏÖ²¢Ðл¯£¿Unix½ø³ÌµÄ´ú¼ÛÊÇÈç´ËÖ®¸ß£¬ÒÔÖÁÓÚ²¢Ðл¯µÃ²»³¥Ê§¡£¾ÍÏóÊǹÄÀøÔ±¹¤¶àÉúº¢×Ó£¬ÒÔ½â¾ö¹«Ë¾ÈËÁ¦×ÊÔ´¶ÌȱÎÊÌâ¡£

²»´í£¬Unixµ±È»¿ÉÒÔ´¦ÀíÎı¾¡£Ëû»¹ÄÜ´¦ÀíÎı¾¡£àÅ£¬»¹ÓУ¬ÎÒÓÐûÓÐÌáµ½¹ýUnixÄܹ»ºÜºÃµØ´¦ÀíÎı¾£¿

¡ª¡ªMark

εΪ׳¹ÛµÄUnix±à³Ì»·¾³

Unix¿ñÈÈ·Ö×ÓÃÇ×ÜÔÚÐûÑïUnixµÄËùν¡°±à³Ì»·¾³¡±¡£ËûÃÇ˵UnixÌṩÁ˷ḻµÄ¹¤¾ß£¬Äܹ»Ê¹µÃ±à³Ì¹¤×÷¸üΪÈÝÒס£ÕâÊÇKernighanºÍMasheyÔÚ¡¶Unix±à³Ì»·¾³¡·Ò»ÎÄÖеÄ˵·¨£º

Unix»·¾³×îÄÜÌá¸ß±à³ÌЧÂÊ£¬Õâ¹é¹¦ÓÚÖÚ¶àµÄÓÖСÓÖÓÐÓõijÌÐò¡ª¡ª¹¤¾ß£¬ÕâЩ¹¤¾ßΪÈÕ³£µÄ±à³Ì¹¤×÷Ìṩ°ïÖú¡£ÏÂÃæÁоٵÄÕâЩ³ÌÐò±»ÈÏΪÊÇÆäÖÐ×îΪÓÐÓõġ£ÎÒÃÇÔÚÏÂÎÄÖн«ÒÔËûÃÇΪÀý˵Ã÷ÆäËû¹Ûµã¡£

wc files ¡ª¡ª ͳ¼ÆÎļþÖеÄÐÐÊý£¬×ÖÊýºÍ×Ö·ûÊý¡£
pr files ¡ª¡ª ´òÓ¡Îļþ£¬Ö§³Ö±êÌâºÍ¶àÀ¸´òÓ¡¡£
lpr files ¡ª¡ª ´òÓ¡Îļþ
grep pattern files ¡ª¡ª ÕÒµ½·ûºÏijÖÖģʽµÄÎļþÐС£

Ðí¶à³ÌÐòÔ±µÄ¹¤×÷¾ÍÊÇÓÃËüÃǺÍһЩÆäËûÏà¹Ø³ÌÐòÍê³ÉµÄ¡£ÀýÈ磺

wc *.c

ÓÃÓÚ¶ÔËùÓÐCÔ´´úÂëÎļþ½øÐдúÂëÁ¿Í³¼Æ£»

grep goto *.c

ÓÃÓÚÕÒµ½ËùÓеÄgotoÓï¾ä¡£

ÕâЩ¾ÍÊÇ¡°×îΪÓÐÓõġ±£¿£¡£¿£¡

ÓеÀÀí¡£Õâ¾ÍÊdzÌÐòÔ±µÄÈÕ³£¹¤×÷¡£ÊÂʵÉÏ£¬½ñÌìÎÒ¾ÍÓÃÁ˲»ÉÙʱ¼äÀ´Í³¼ÆÎÒµÄC´úÂëÁ¿£¬ÒÔÖÁÓÚûÓжàÉÙʱ¼äÈ¥×öÆäËûÊÂÇé¡£µÈһϣ¬ÎÒÏëÎÒ»¹µÃÔÙÊýÒ»±é¡£

ͬһÆÚ¡¶IEEE¼ÆËã»ú¡·ÉÏ»¹ÓÐһƪÎÄÕ£¬ÊÇWarren TeitelmanºÍLarry MasinterдµÄ¡¶Interlisp±à³Ì»·¾³¡·.InterlispÊǸö¼«Îª¸´Ôӵıà³Ì»·¾³¡£1981ÄêInterlisp¾ÍÓÐÁËUnix³ÌÐòÔ±µ½ÁË1984»¹ÔÚÃÎÏëµÄ¹¤¾ß¡£

Interlisp»·¾³µÄÉè¼ÆÕßÃÇʹÓõÄÊÇÍêÈ«²»Í¬µÄ·½·¨¡£ËûÃǾö¶¨¿ª·¢Ò»¸ö¸´ÔӵŤ¾ß£¬ÐèÒª»¨²»ÉÙʱ¼äÀ´ÕÆÎÕ£¬ºÃ´¦ÊÇÒ»µ©Ñ§»áÁË£¬¼«´óµØÌá¸ß±à³ÌЧÂÊ¡£ÌýÉÏÈ¥ÓÐЩµÀÀí¡£

±¯°§µÄÊÇ£¬½ñÌìºÜÉÙÓгÌÐòÔ±ÄÜÌå»áʹÓÃÕâÀà»·¾³µÄ¸Ð¾õÁË¡£

ÔÚ°ØÀ­Í¼µÄ¶´Ñ¨Àï±à³Ì

ÎÒ×ÜÓÐÒ»Öָоõ£¬¼ÆËã»úÓïÑÔÉè¼ÆºÍ¹¤¾ß¿ª·¢µÄÄ¿±êÓ¦¸ÃÊÇÌá¸ß±à³ÌЧÂʶø²»ÊǽµµÍ¡£

¡ª¡ªcomp.lang.c++ÉϵÄÒ»¸öÌù×Ó

¼ÆËã»úÒÔÍâµÄÆäËû²úÒµÔç¾ÍÌå»áµ½ÁË×Ô¶¯»¯µÄÒâÒå¡£µ±ÈËÃÇ×ß½ø¿ì²Íµã£¬ËûÃÇÐèÒªµÄÊÇÒ»Ö±ê×¼µÄ¶«Î÷£¬¶ø²»ÊÇʲô·¨¹ú´ó²Ë¡£´ó¹æÄ£µØÌṩһÖµÄÒ»°ãʳÎÕâ±ÈСÅúÁ¿µÄ¾«¸ûϸ×÷Ҫ׬ǮµÃ¶à¡£

¡ª¡ªnetnewsÉÏÒ»¸ö¼¼ÊõÈËÔ±µÄ»Ø¸´

Unix ²»ÊÇÊÀ½çÉÏ×îºÃµÄÈí¼þ»·¾³¡ª¡ªËüÉõÖÁ²»ÊÇÒ»¸öºÃµÄ»·¾³¡£Unix±à³Ì¹¤¾ßÓÖ¼òªÓÖÄÑÓã»Unixµ÷ÊÔÆ÷ºÍPCÉϵÄû·¨±È£»½âÎöÆ÷ (interpreters)ÈÔÈ»ÊǸ»È˵ÄÍæ¾ß£»ÐÞ¸ÄÈÕÖ¾(change log)ºÍÉó¼Ç(audit trail)×ÜÊÇÏëÆðÀ´²ÅÈ¥×ö¡£¿ÉUnixÈÔÈ»±»µ±³É³ÌÐòÔ±µÄÃΡ£Ò²ÐíËüÖ»ÄÜÈóÌÐòÔ±Ãε½ÁËЧÂʵÄÌá¸ß£¬¶ø²»ÊÇÕæµÄÌá¸ßЧÂÊ¡£

Unix ³ÌÐòÔ±ÓеãÏóÊýѧ¼Ò¡£ÄãÄÜ´ÓËûÃÇÉíÉϹ۲쵽һ¸öÉñÃØÏÖÏó£¬ÎÒÃdzÆÖ®Îª¡°¿ÕÍ·±à³Ì¡±(Programming by Implication)¡£Ò»´ÎÎÒÃǺÍÒ»¸öUnix³ÌÐòÔ±ÁÄÌ죬̸µ½ÐèÒªÕâÑùÒ»¸ö¹¤¾ß£¬Äܹ»»Ø´ðÖîÈç¡°º¯Êýfoo±»Ë­µ÷Óùý£¿¡±»òÕß¡°ÄǸöº¯Êý¸Ä±ä¹ýÈ«¾Ö±äÁ¿bar¡±Ö®ÀàµÄÎÊÌâ¡£ËûÒ²ÈÏΪÕâ¸ö¹¤¾ß»áºÜÓÐÓã¬ÌáÒéµ½£¬¡°ÄãÃÇ¿ÉÒÔ×Ô¼ºÐ´Ò»¸ö¡£¡±

¹«Æ½µØËµ£¬ËûÖ®ËùÒÔÖ»ÊÇ˵¡°ÄãÃÇ¿ÉÒÔ×Ô¼ºÐ´Ò»¸ö¡±¶ø²»ÊÇÕæÕýдһ¸ö£¬ÕâÊÇÒòΪCÓïÑÔµÄÒ»Ð©ÌØÐÔºÍUnix¡°±à³Ì»·¾³¡±µÄǿǿÁªÊÖ£¬Ê¹µÃдÕâÑùµÄ³ÌÐòÄÑÓÚÉÏÇàÌì¡£

ʹÓÃyacc½øÐнâÎö(parsing with yacc)

"Yacc"¾ÍÊÇÎÒÓùýyacc(1)Ö®ºóÏ뺰µÄ¡£

¡ª¡ªÄäÃû

"YACC" ÊÇÔÙÒ»¸ö±àÒë±àÒëÆ÷µÄ±àÒëÆ÷(Yet Another Compiler Compiler)µÄÒâ˼¡£Ëü½ÓÊÜÓëÉÏÏÂÎÄÎÞ¹Ø(context-free)µÄÓï·¨£¬¹¹ÔìÓÃÓÚ½âÎöµÄÏÂÍÆ×Ô¶¯»ú(pushdown automaton)¡£ÔËÐÐÕâ¸ö×Ô¶¯»ú£¬¾ÍµÃµ½ÁËÒ»¸öÌØ¶¨ÓïÑԵĽâÎöÆ÷¡£ÕâÒ»ÀíÂÛÊǺܳÉÊìµÄ£¬ÒòΪÒÔǰ¼ÆËã»ú¿ÆÑ§µÄÒ»¸öÖØÒª¿ÎÌâ¾ÍÊÇÈçºÎ¼õÉÙ±àд±àÒëÆ÷µÄʱ¼ä¡£

Õâ¸ö·½·¨ÓиöСÎÊÌ⣺Ðí¶àÓïÑÔµÄÓï·¨²»ÊÇÓëÉÏÏÂÎÄÎ޹صġ£ÕâÑùyaccµÄʹÓÃÕß²»µÃ²»ÔÚÿһ¸ö״̬ת»»µãÉϼÓÉÏÏà¹Ø´úÂ룬ÒÔ´¦ÀíºÍÉÏÏÂÎÄÓйصIJ¿·Ö(ÀàÐͼì²éÒ»°ã¾ÍÊÇÕâô´¦ÀíµÄ)¡£Ðí¶àC±àÒëÆ÷ʹÓõͼÊÇyaccÉú³ÉµÄ½âÎöÆ÷£»GCC 2.1µÄyaccÓï·¨ÓÐ1650ÐÐÖ®¶à (Èç¹û²»ÓÃyacc£¬GCCÓ¦¸ÃÄܳÉΪ×ÔÓÉÈí¼þ»ù½ð»á²»´íµÄ×÷Æ·)¡£ÓÉyaccÉú³ÉµÄ´úÂë¾Í¸ü¶àÁË¡£

ÓÐЩ±à³ÌÓïÑÔµÄÓï·¨±È½ÏÈÝÒ×½âÎö¡£±ÈÈ磬LispÄܹ»ÓÃÒ»¸öµÝ¹éϽµ½âÎöÆ÷½øÐнâÎö¡£¡°µÝ¹éϽµ¡±ÊÇÒ»¸ö¼ÆËã»úÊõÓº¬ÒåÊÇ¡°ºÈ±­¿ÉÀֵŦ·ò¾ÍÄÜʵÏÖ¡±¡£×÷ΪÊÔÑ飬ÎÒÃÇдÁËÒ»¸öLispµÝ¹éϽµ½âÎöÆ÷£¬Ö»ÓÃÁË250ÐÐC´úÂë¡£Èç¹ûÊÇÓÃLispдµÄ£¬ÄÇôһҳֽҲÓò»ÁË¡£

ÔÚÉÏÃæÌáµ½µÄÄǸö¼ÆËã»ú¿ÆÑ§Ô­Ê¼Ê±´ú£¬Õâ±¾ÊéµÄ±à¼­»¹Ã»ÓÐÉú³öÀ´ÄØ¡£¼ÆËã»ú·¿ÊÇ¿ÖÁúµÄÌìÏ£¬¡°ÕæÕýµÄÈË¡±¶¼ÔÚÓÃÒDZíÅÌÉϵĿª¹ØÀ´±à³Ì¡£½ñÌ죬Éç»áѧ¼ÒºÍÀúÊ·¹¤×÷ÕßÏëÆÆÄÔ´üÒ²ÎÞ·¨Àí½âΪʲôÀíÖǵijÌÐòԱȴÉè¼Æ¡¢ÊµÏֺʹ«²¥ÁËÈç´ËÄѽâÎöµÄÓïÑÔ¡£Ò²ÐíËûÃÇÄÇʱºò¼«ÐèÒ»¸öÀ§ÄѵÄÑо¿ÏîÄ¿£¬Éè¼ÆÒ»¸öÄÑÓÚ½âÎöµÄÓïÑÔËÆºõÊǸö²»´íµÄ¿ÎÌâ¡£

Ò»Ö±ÏëÖªµÀËûÃÇÔÚÄǸöʱ´ú³ÔµÄÊÇʲôҩ¡£

ÉÏÃæÌáµ½µÄÄǸö¹¤¾ßÀàËÆÓÚÒ»¸öC±àÒëÆ÷µÄǰ¶Ë¡£C±àÒëÆ÷ǰ¶ËÊǸö¼«Æä¸´ÔӵĶ«Î÷£¬ÕâÊÇCµÄ¸´ÔÓÓï·¨ºÍyaccµÄʹÓÃÔì³ÉµÄ¡£Ã»ÓÐÈËÕæÕý¶¯ÊÖȥдһ¸öÕâÑùµÄ¹¤¾ß£¬Õ⻹ÓÐÊ²Ã´Ææ¹ÖµÄô£¿

ËÀÓ²µÄUnix·Ö×Ó»á˵Äã²»ÐèÒªÕâôһ¸ö³ÌÐò£¬ÒòΪÓÐgrep¾Í×ã¹»ÁË¡£¶øÇÒ£¬Ä㻹ÄÜÔÚshell¹ÜµÀÖÐʹÓÃgrep¡£ÓÐÒ»Ì죬ÎÒÃÇÏëÕÒ³öBSDÄÚºËÔ´ÂëÖÐËùÓÐʹÓÃminº¯ÊýµÄµØ·½¡£ÕâÊÇÆäÖÐÒ»¸ö½á¹û£º

% grep min netinet/ip_icmp.c
icmplen = oiplen + min(8, oip->ip_len);
* that not corrupted and of at least minimum length.
* If the incoming packet was addressed directly to us,
* to the incoming interface.
* Retrieve any source routing from the incoming packet;
%

ͦ²»´íµÄ°É£¬grepÕÒµ½ÁËËùÓеÄminº¯Êýµ÷Ó㬶øÇÒ»¹²»Ö¹ÕâЩ¡£

¡°²»ÖªµÀÔõô×ö°®¡£ÎÒ³·¡£¡±("Don't know how to make love. Stop.")

ÀíÏëµÄ±à³Ì¹¤¾ßÓ¦¸ÃÊÇÕâÑùµÄ£¬ËüÄÜÈüòµ¥µÄÎÊÌâ±£³Ö¼òµ¥£¬Èø´ÔÓµÄÎÊÌâÓнâ¾öµÄ¿ÉÄÜ¡£²»ÐÒµÄÊÇ£¬Ðí¶àUnix¹¤¾ß¹ý·Ö×·ÇóͨÓÃÐÔ£¬¶øºöÊÓÁ˼ò½à¡£

Make ¾ÍÊÇÕâÑùÒ»¸öµäÐÍ¡£´Ó³éÏóÒâÒå¶øÑÔ£¬makeµÄÊäÈëÊÇÒ»¸öÒÐÀµ¹ØÏµµÄÃèÊö¡£ÒÐÀµÍ¼ÉϵÄÿ¸ö½Úµã¶¼¶ÔÓ¦ÕâÒ»×éÃüÁµ±½Úµã¹ýÆÚʱ(ÓÉËüËùÒÐÀµµÄ½ÚµãÀ´¾ö¶¨)£¬ÕâЩÃüÁî»á±»Ö´ÐС£½ÚµãºÍÎļþÏà¹Ø£¬ÎļþµÄÐÞ¸Äʱ¼ä¾ö¶¨Á˽ڵãÊÇ·ñ¹ýÆÚ¡£ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄÒÐÀµ¹ØÏµÍ¼£¬Ò²¾ÍÊÇMakefile:

program: source1.o source2.o
cc -o program source1.o source2.o

source1.o: source1.c
cc -c source1.c

source2.o: source2.c
cc -c source2.c

ÕâÀïprogram, source1.o, source2.o, source1.c,source2.c¾ÍÊǹØÏµÍ¼ÉϵĽڵ㡣½ÚµãprogramÒÐÀµÓÚsource1.oºÍsource2.o¡£

Èç¹ûsource1.o»òsource2.o±ÈprogramҪУ¬make±ã»áÔËÐÐÃüÁîcc -o program source1.o source2.oÖØÐÂÉú³Éprogram¡£µ±È»£¬Èç¹ûÐÞ¸ÄÁËsource1.c£¬ÄÇôsource1.oºÍprogram¶¼»á¹ýʱ£¬ËùÒÔmake»áÖØÐ½øÐбàÒëºÍÁ´½Ó¡£

¾¡¹ÜmakeµÄÄ£ÐͺÜͨÓ㬿ÉϧÉè¼ÆÕß´ÓûÓп¼Âǹý¼òµ¥ÐÔ¡£²»¹ý£¬Ðí¶àUnixÐÂÊÖ¶¼ÄÜÌå»áµ½makeÄܶàô¼òµ¥µØ¡°×ꡱ(screw)ÁËËûÃÇ¡£

¼ÌÐøÎÒÃÇÉÏÃæµÄÄǸöÀý×Ó£¬¼Ù¶¨Óиö³ÌÐòÔ±DennisÏëµ÷ÊÔsource1.c£¬ÓÚÊÇÒª±àÒëʹÓõ÷ÊÔÑ¡Ïî¡£ËûÐÞ¸ÄÁËÒ»ÏÂMakefile:

program: source1.o source2.o
cc -o program source1.o source2.o

# I'm debugging source1.c
source1.o: source1.c
cc -c source1.c
source2.o: source2.c
cc -c source2.c

"#"´òÍ·µÄÄÇÐÐÊÇ×¢ÊÍ£¬»á±»makeºöÂÔ¡£¿ÉÁ¯µÄDennisÔËÐÐÁËÒ»ÏÂmake£¬ÕâÊÇËüµÃµ½µÄ£º

Make: Makefile: Must be a speparator on line 4.
Stop

makeЪ²ËÁË¡£Dennis¶¢×ÅMakefile¿´ÁËÓкü¸·ÖÖÓ£¬ÓÖ¿´Á˼¸Ð¡Ê±£¬»¹ÊDz»Ã÷°×ÄĶù³ö´íÁË¡£Ëû¾õµÃÊÇ×¢ÊÍÐеÄÎÊÌ⣬¿É²»ÊǺܿ϶¨¡£

벡³öÔÚµ±Ëû¼ÓÈë×¢ÊÍÐÐʱ£¬Ëû²»Ð¡ÐÄÔÚµÚ¶þÐпªÊ¼µÄÖÆ±í·û(tab)ǰÇÃÈëÁËÒ»¸ö¿Õ¸ñ¡£ÖƱí·ûÊÇMakefileÓï·¨µÄÒ»¸öÖØÒª²¿·Ö¡£ËùÓеÄÃüÁîÐÐ(Àý×ÓÖÐcc¿ªÊ¼µÄÐÐ)±ØÐëÒÔÖÆ±í·û´òÍ·¡£Õâ¾ÍÊÇDennisµÄMakefile²»¹¤×÷µÄÔ­Òò¡£

¡°ÄÇÓÖÔõÑù£¿¡±Äã¿ÉÄÜ»á˵£¬¡°ÕâÓÐʲô²»¶ÔµÄ£¿¡±

Ëü±¾Éíûʲô²»¶Ô¡£²»¹ýÈç¹ûÄãÏëÒ»ÏÂÆäËûUnix±à³Ì¹¤¾ßµÄ¹¤×÷·½Ê½£¬¾Í»á¾õµÃÖÆ±í·ûÓï·¨¾ÍºÃÏó¡¶µØÀ×Õ½¡·ÀïµÄÍ··¢Ë¿À×£¬¿´ÉÏÈ¥Ò»ÂíÆ½´¨£¬²ÈÉÏÈ¥ÎØºô°§ÔÕ¡£

ÄãÖªµÀ£¬ÖƱí·û¡¢¿Õ¸ñ·ûºÍ»»ÐзûÒ»°ã±»Í³³ÆÎª¡°°××Ö·û¡±(whitespacecharacters)¡£¡°°××Ö·û¡±Òâζ×Å¡°Äã¿ÉÒÔ·ÅÐĴ󵨵غöÂÔËü¡±Ðí¶à³ÌÐòÕýÊÇÕâô×öµÄ£¬¶Ô¿Õ¸ñºÍÖÆ±í·ûÒ»ÊÓͬÈÊ¡£¾Ímake¹Â·¼×ÔÉÍèîæñ²»Ñ±º×Á¢¼¦Èº±ùÇåÓñ½àÖÚÈ˽Ô×íΨÎÒ¶ÀÐÑ¡£ÓÚÊÇÎÒÃÇÕâλDennisÐֵܿÖÅÂÖ»Äܸø×Ô¼ºÄÔ´üÀ´Ò»Ç¹£¬¸æ±ðÕⱯ²ÒµÄUnixÊÀ½ç¡£

¿ÉÁ¯µÄDennis×îÖÕҲûÓÐÕÒµ½×Ô¼ºÄǸöMakefileµÄ벡£¬ËûÏÖÔÚÂäÆÇµ½Ö»ºÃÈ¥¸øÒ»¸öÖÐÎ÷²¿ÖÝÁ¢´óѧά»¤sendmailÅäÖÃÎļþ¡£Ä¬°§Èý·ÖÖÓ¡£

Í·Îļþ

CÓïÑÔÓиö¶«Î÷½ÐÍ·Îļþ£¬ÀïÃæÊÇһЩ˵Ã÷ÐÅÏ¢£¬ÔÚ±àÒëʱ±»Ô´ÎļþʹÓ᣺ÍUnixÉÏµÄÆäËûÍæÒâÒ»Ñù£¬Èç¹ûÖ»ÓÐÒ»¸öÁ½¸ö£¬¿ÉÒÔ¹¤×÷µÃºÜºÃ£¬¶àÁ˾ÍûϷÁË¡£

ÒªÖªµÀÄãµÄÔ´Îļþ¸ÃʹÓÃÄǸöÍ·Îļþ£¬Õâ¿É²»ÊǼþÈÝÒ×Ê¡£Í·ÎļþÊÇCÔ¤´¦ÀíÆ÷(preprocessor)¸ù¾Ý#includeÖ¸Áî(directive)¼ÓÔØµÄ¡£Õâ¸öÖ¸ÁîÓÐÁ½¸öÓ÷¨£º

#include <header1.h>

ºÍ

#include "header2.h"

ÕâÁ½ÖÖÓ÷¨µÄÇø±ðºÍ¸÷¸öCÔ¤´¦ÀíÆ÷µÄʵÏÖÓйأ¬Ò²¾ÍÊÇ˵£¬ÈκÎʵÏÖ¶¼¿ÉÒÔ´ó×ŵ¨×ÓÈö×Å»¶¶ùÓÉ×ÅÐÔ×ÓÂÒÀ´¡£

ÈÃÎÒÃÇÀ´¿´¿´DennisµÄÅóÓÑJoey£¬JoeyÒ²ÊǸöUnixÐÂÊÖ¡£JoeyÓиöC³ÌÐòfoo.c£¬Ê¹ÓÃÁËfoo.hÖж¨ÒåµÄһЩÊý¾Ý½á¹¹£¬ foo.cºÍfoo.h·ÅÔÚÁËͬһ¸öĿ¼Ï¡£Äã¿ÉÄÜÒѾ­ÖªµÀ"foo"ÊdzÌÐòÔ±³£ÓõÄÃû×Ö¡£Joey»úÆ÷ÉϵÄϵͳ³ÌÐòÔ±Ò²×öÁËÒ»¸öfoo.hÎļþ£¬²¢°ÑËü·Åµ½ÁËȱʡϵͳͷÎļþĿ¼/usr/include

µ¹Ã¹µ°Joey±àÒëÁËfoo.c£¬µÃµ½Ò»¶ÑÓï·¨´íÎó¡£ËûÃԻ󲻽⣬±àÒëÆ÷×ÜÔÚËû¶¨ÒåµÄһЩÊý¾Ý½á¹¹´¦±¨´í£¬¿ÉÊÇÕâЩÊý¾Ý½á¹¹ÔÚfoo.hÀï±»¶¨ÒåµÄºÃºÃµÄѽ¡£

ÄãÎÒ¹À¼ÆÄܲµ½JoeyµÄÎÊÌâÔÚÄĶù£¬ËûÒ»¶¨ÊÇÕâô¼ÓÔØÍ·ÎļþµÄ£º

#include <foo.h>

¶ø²»ÊÇд³É£º

#include "foo.h"

¿ÉJoey²»ÖªµÀÕâ¸ö¡£Ò²¿ÉÄÜËûȷʵÊÇÓõÄÒýºÅ·½Ê½£¬Ö»ÊÇËûµÄ±àÒëÆ÷µÄ²éÕÒ·½Ê½ÓÐÐ©ÌØ±ð¡£²»¹ÜÔõÑù£¬JoeyÊDZ»¸ÉµôÁË£¬ºÜÎÞ¹¼µØ±»¸ÉÁË¡£

ά»¤ºÜ¶àÍ·ÎļþÊǼþͦͷÌÛµÄÊ£¬²»ÐÒµÄÊÇ£¬Èç¹ûÄãд¸öÓÐÓõã¶ùµÄC³ÌÐò£¬ÕâÊDz»¿É±ÜÃâµÄ¡£Í·ÎļþÒ»°ã ÓÚ¶¨ÒåÊý¾Ý½á¹¹£¬Ò»¸öÍ·ÎļþÍùÍùÒÐÀµÓÚÆäËûÒ»?Í·Îļþ¡£È¥°ÑÄÇЩͷÎļþµÄÒÐÀµ¹ØÏµÕûÀíһϣ¬ÄãÕâ»Ø¿É²»³îûʶù×öÁË¡£

µ±È»£¬±àÒëÆ÷»á°ïÄãµÄ¡£Èç¹ûÄã°ÑÒÐÀµ¹ØÏµ¸ã´íÁË£¬±àÒëÆ÷»áºÁ²»ÁôÇ鵨֏³öÓï·¨´íÎó¡£¼Çס£¬±àÒëÆ÷ÊǸöºÜæºÜÓÐÉí·ÝµÄ³ÌÐò£¬Ëüûʱ¼äÈ¥Çø·Ö䶨ÒåµÄÊý¾Ý½á¹¹ºÍÊäÈë´íÎóµÄÇø±ð¡£ÊÂʵÉÏ£¬¼´Ê¹ÄãÖ»ÊÇÍüÁËÇøö·ÖºÅ£¬C±àÒëÆ÷Ò²»áÄÕÐß³ÉÅ­£¬Á¢ÂíÁÌÌô×Ó²»¸ÉÁË¡£

ÔÚ±àÒëÆ÷ÉçÇø£¬ÕâÒ»ÏÖÏó±»³ÆÎª¡°´íÎóÑ©±À¡±£¬»òÕß°´ÕÕ±àÒëÆ÷×Ô¼ºµÄ˵·¨£º¡°ÎÒÍêµ°ÁË£¬Æð²»À´ÁË¡£¡± ȱ¸ö·ÖºÅ»á°Ñ½âÎöÆ÷³¹µ×¸ãÔΣ¬¿ñͲ»Ö¹¡£Õâ¸ö½âÎöÆ÷ºÜ¿ÉÄÜÊÇÓÃyaccд³ÉµÄ£¬yacc¶ÔÓï·¨ÕýÈ·µÄ³ÌÐò(ºÜÉÙ¼ûµÄÒ»ÖÖÇé¿ö)´¦ÀíµÃºÜºÃ£¬µ«ÒªÈÃËüÉú³É½¡×³ÈÝ´í×Ô¶¯»Ö¸´µÄ½âÎöÆ÷£¬Õâ¾ÍÓеã¶ùÃãΪÆäÄÑÁË¡£Óо­ÑéµÄC³ÌÐòÔ±¶¼ÖªµÀÖ»ÓеÚÒ»Ìõ½âÎö´íÎó²ÅÊÇÓÐÒâÒåµÄ¡£

¹¤¾ß³ÌÐòºÍManÊÖ²á

Unix¹¤¾ßÊÇ×Ô³ÉÒ»ÌåµÄ£»¿ÉÒÔÈÎÒâ½âÊÍÃüÁîÐвÎÊý¡£ÕâÑùµÄ×ÔÓÉÓÐЩ·³ÈË£»±ðÒÔΪѧ»áÁËÒ»Ì×ÃüÁîÐйæÔò¾ÍÒ»ÀÍÓÀÒÝÁË£¬Äã±ØÐëÈ¥¶Áÿ¸öÃüÁîµÄManÊֲᣬ²ÅÄÜÖªµÀÈçºÎȥʹÓá£

ÖªµÀÓÐÄÇô¶àÇå³þÃ÷°×µÄManÊֲṩÄã²Î¿¼£¬ÄãÒ»¶¨ºÜ¿ªÐİɡ£

¿´Ò»ÏÂÏÂÃæÕâ¸öÀý×Ó¡£¡°ÕªÒª¡±Ò»À¸×ܽáµÃͦ²»´íµÄ£¬ÊDz»ÊÇ£¿

LS(1) Unix³ÌÐòÔ±ÊÖ²á LS(1)

Ãû³Æ
ls - ÁгöĿ¼ÄÚÈÝ

ÕªÒª
ls [ -acdfgilqrstu1ACLFR ] Ãû³Æ ...

ÃèÊö
¶ÔÓÚÿ¸öĿ¼²ÎÊý£¬lsÁоÙÄǸöĿ¼µÄÄÚÈÝ£»¶ÔÓÚÿ¸öÎļþ²ÎÊý£¬
ls ¸ø³öÎļþÃûÒÔ¼°ÒªÇóµÄÆäËûÐÅÏ¢¡£È±Ê¡Çé¿öÏ£¬Êä³ö½«°´ÕÕ×Ö
ĸ˳ÐòÅÅÁС£Èç¹ûûÓвÎÊý£¬ÔòÁоٵ±Ç°Ä¿Â¼µÄÄÚÈÝ¡£Èç¹ûÓв»Ö»
Ò»¸ö²ÎÊý£¬ÕâЩ²ÎÊýÊ×ÏȻᱻÊʵ±ÅÅÐò£¬µ«ÊÇÎļþ²ÎÊý×ÜÊǻᱻÅÅ
ÔÚĿ¼²ÎÊýÇ°Ãæ¡£

lsÓкܶàÑ¡Ï

[ ... ]

BUGS
ÎļþÃûÖеĻ»ÐзûºÍÖÆ±í·û»á±»¿É´òÓ¡×Ö·û

Êä³öÉ豸»á±»¼ÙÉèÓÐ80Áпí

Êä³ö»á¸ù¾ÝÊä³öÉ豸µÄ²»Í¬¶ø²»Í¬£¬±ÈÈç"ls -s"µÄ½á¹ûºÍ"ls -s| lpr"µÄ½á¹û²»Ò»Ñù¡£ÕâÊDz»ÕýÈ·µÄ£¬È»¶øÈç¹û²»Õâô×ö£¬Ò»Ð©ÒÐÀµÕâ¸ö¹¦ÄܵľÉÓÐshell½Å±¾¾Í»áÍêµ°¡£

Èç¹ûÄãÏëÍæ¸öÓÎÏ·£¬²»·Á¶ÁÒ»ÏÂÿ¸öManÊÖ²áµÄBUGS²¿·Ö£¬È»ºóÏëÏñÒ»ÏÂÿ¸öbugÊÇÈçºÎÔì³ÉµÄ¡£¿´Ò»ÏÂÕâ¸öshellµÄmanÊֲ᣺

SH(1) Unix³ÌÐòÔ±ÊÖ²á SH(1)

Ãû³Æ
sh, for, case, if, while, :, ., break, continue, cd,
eval, exec, exit, export, login, read, readonly, set,
shift, times, trap, umask, wait - ÃüÁîÓïÑÔ

ÕªÒª
ls [ -ceiknrstuvx ] [²ÎÊý] ...

ÃèÊö
ShÊÇÒ»¸öÃüÁî³ÌÐòÓïÑÔ£¬ËüÖ´ÐÐÀ´×ÔÖÕ¶Ë»òÎļþµÄÃüÁî¡£ÏÂÃæÊǸ÷
¸öÑ¡ÏîµÄ˵Ã÷¡£

[ ... ]

BUGS

Èç¹û°ÑʹÓÃ<<ÌṩµÄ±ê×¼µÄÊäÈëÌṩ¸øÊ¹ÓÃ&ÔËÐÐÆðÀ´µÄ·Çͬ²½µÄ½ø³Ì£¬shell»á¸ã²»Çå³þÊäÈëÎĵµµÄÃû×Ö¡£»áÉú³ÉÒ»¸öÀ¬»øÎļþ/tmp/sh*£¬shell»á±§Ô¹ÕÒ²»µ½Ê¹ÓÃÁíÍâÒ»¸öÃû×ÖµÄÎĵµ¡£

ÎÒÃÇÓÃÁ˺ü¸·ÖÖÓҲû¸ãÃ÷°×Õâ¸öbug¾¿¾¹ÊÇËûÂèʲôÒâ˼¡£Ò»¸öUnixר¼Ò¿´¹ýÖ®ºó˵£º¡°Îұ߿´±ßÄÓÄÔ´ü£¬ÓÐдÕâ¶ÎBUGSµÄ¹¦·ò£¬¹À¼Æ×ã¹»Õâ¼Ò»ï¸ÄµôÕâ¸öµõÍæÒâÁË¡£¡±

²»ÐÒµÄÊÇ£¬ÐÞ¸Äbug¼¸ºõÊDz»¿ÉÄܵģ¬ÒòΪËü»áËæ×Åÿ¸öз¢²¼µÄ²Ù×÷ϵͳ¶ø¾íÍÁÖØÀ´¡£ÔÚ80Äê´úÔçÆÚ£¬ÔÚÕâЩbug»¹Ã»Óб»UnixÐÅͽ·îΪÉñÊ¥ÒÔǰ£¬Ò»¸öBBNµÄ³ÌÐòÔ±ÕæµÄÐÞ¸ÄÁ˲®¿ËÀûmakeµÄÕâ¸öÖÆ±í·ûbug¡£Õâ²»ÊǺÜÄÑ£¬Ò²¾ÍÊǼ¸ÐдúÂëµÄʶù¡£

ºÍËùÓÐÔðÈθеĹ«ÃñÒ»Ñù£¬BBNµÄº§¿ÍÃǰѲ¹¶¡·¢¸øÁ˲®¿ËÀû£¬Ï£ÍûÄܰÑËü¼ÓÈëÖ÷Unix´úÂëÖС£Ò»Äê¹ýºó£¬²®¿ËÀû·¢²¼ÁËа汾µÄUnix£¬makeµÄÕâ¸öbug»¹ÊÇ´æÔÚ¡£BBNµÄº§¿ÍµÚ¶þ´Î×öÁËÐ޸ģ¬ÓְѲ¹¶¡½»¸øÁ˲®¿ËÀû¡£

....È»¶ø²®¿ËÀûµÄµÚÈý´Î·¢²¼»¹ÊÇÀÏÑù×Ó£¬BBNµÄ³ÌÐòÔ±³¹µ×ʧÍûÁË¡£ËûÃÇûÓÐÔÙÌá½»²¹¶¡£¬¶øÊǰÑËûÃÇËùÓеÄMakefileÖпոñ´òÍ·µÄÐÐÌæ»»³ÉÁËÖÆ±í·û¡£±Ï¾¹BBN¹ÍÓ¶ËûÃÇÊÇÀ´Ð´Ð³ÌÐòµÄ£¬¶ø²»ÊÇ·´¸´ÐÞ¸Äͬһ¸öbug¡£

(¾Ý˵£¬Stu Felman(makeµÄ×÷Õß)Ò»¿ªÊ¼¾Í²é¾õµ½ÁËÕâ¸öÎÊÌ⣬ËûûÓÐÐ޸ģ¬ÒòΪÄÇʱÒѾ­ÓÐ10¸öÓû§¿ªÊ¼ÓÃÁË¡£)

Ô´Âë¾ÍÊÇÎĵµ¡£ÍÛ~~ Å£±Æ!

Èç¹ûÎÒд×Ų»ÈÝÒ×£¬ÄÇôÄãÀí½âÆðÀ´¾Í²»Ó¦¸ÃÈÝÒס£

¡ª¡ª Ò»¸öUnix³ÌÐòÔ±

ÎÒÃÇÔÚ¡¶Îĵµ¡·Ò»ÕÂÀïÌáµ½Unix³ÌÐòÔ±ÈÏΪ²Ù×÷ϵͳµÄÔ´´úÂëÊÇ×îºÃµÄÎĵµ¡£Ò»¸öÖøÃûµÄUnixÀúʷѧ¼ÒÔø¾­Ö¸³ö£º¡°±Ï¾¹£¬²Ù×÷ϵͳ×Ô¼ºÒ²ÊÇ¿¿¶ÁÔ´´úÂëÀ´ÖªµÀÏÂÒ»²½¸Ã¸ÉÂïµÄ¡£¡±

¿ÉÊÇͨ¹ýÔĶÁÔ´´úÂëÀ´Àí½âUnix£¬Õâ¾ÍÈçͬ¿ª×ÅKen ThompsonµÄÀÏÒ¯³µ(¶Ô£¬¾ÍÊÇÉÁ×Å´óºìÎʺŵÄÄÇÁ¾)ÖÜÓÎÊÀ½ç¡£

Unix ÄÚºËÔ´Âë(¸ü׼ȷµÄ˵£¬ÊÇftp.uu.netÉÏ·¢²¼µÄ²®¿ËÀûÍøÂç´Å´ø2°æµÄ´úÂë)¼¸ºõûÓÐ×¢ÊÍ£¬³ä³âÕâ´ó"¶Î"ûÓпÕÐеĴúÂ룬goto Ëæ´¦¿É¼û£¬½Ê¾¡ÄÔÖ­¸øÍýͼ¶Á¶®ËüµÄÈËÖÆÔìÂé·³¡£Óиöº§¿Í¸Ð̾µ½£º¡°ÔĶÁUnix´úÂë¾ÍºÃÏó×ßÔÚÉìÊÖ²»¼ûÎåÖ¸µÄÏï×ÓÀï¡£ÎÒ×ÜÊÇÍ£ÏÂÀ´ÃþÃþ¿Ú´ü£¬ÄÔ×ÓÀï»ØÏì×ÅÒ»¸öÉùÒô¡®ÀÏÌ죬ÎÒ¾ÍÒªÔâ½ÙÁË¡£¡¯¡±

µ±È»£¬Äں˴úÂëÓÐËü×Ô¼ºµÄ¾¯±¨ÏµÍ³¡£ËÄ´¦É¢²¼×ÅÕâÑùµÄССעÊÍ£º

/* XXX */

Òâ˼ÊÇÓÐʲô¶«Î÷²»Ì«¶Ô¾¢¶ù¡£ÄãÓ¦¸ÃÖªµÀÄĶù³öʶùÁË¡£

Õâ¾ø²»¿ÉÄÜÊÇbug£¬ÎÒµÄMakefileÐèÒªËü£¡

BBNµÄ³ÌÐòÔ±Ó¦¸ÃËãÊÇÁíÀà¡£´ó²¿·ÖUnix³ÌÐòÔ±ÊDz»È¥ÐÞ¸ÄbugµÄ£ºËûÃÇûÓÐÔ´´úÂë¡£¼´Ê¹ÐÞ¸ÄÁËÒ²ÓÚÊÂÎÞ²¹¡£Õâ¾ÍÊÇΪʲôUnix³ÌÐòÔ±Óöµ½bugµÄµÚÒ»¸ö·´Ó¦²»ÊÇÐÞÁËËü£¬¶øÊÇÈÆ¹ýËü¡£

ÓÚÊÇÎÒÃÇ¿´µ½Á˱¯²ÒµÄһĻ£ºÎªÊ²Ã´²»Ò»ÀÍÓÀÒݵؽâ¾öÎÊÌ⣬¶øÊÇÒ»´íÔÙ´í£¿Ò²ÐíÔçÆÚµÄUnix³ÌÐòÔ±ÊÇÄá²É¡°ÓÀºãÂֻء±Ë¼ÏëµÄÐÅͽ¡£

¶ÔÓÚµ÷ÊÔ·½·¨£¬´æÔÚ×ÅÁ½¸ö½ØÈ»²»Í¬µÄÅɱð£ºÒ»¸öÊÇ¡°Íâ¿ÆÊÖÊõÅÉ¡±£¬°üÀ¨Á÷ÐÐÓÚÔçÆÚITSºÍLispϵͳ£¬³ÌÐòÔËÐйý³ÌÖÐʼÖÕÓе÷ÊÔÆ÷²ÎÓ룬Èç¹û³ÌÐò±ÀÀ£ÁË£¬µ÷ÊÔÆ÷(Ò²¾ÍÊÇËùνÍâ¿Æ´ó·ò)»á¶ÔÎÊÌâ½øÐÐÕï¶ÏÒ½ÖΡ£

UnixÊÇÊôÓÚ¸ü¹ÅÀϵġ°Ê¬Ìå½âÆÊÅÉ¡±¡£UnixÏÂÈç¹ûÒ»¸ö³ÌÐò±ÀÀ£ÁË£¬»áÒÅÁôÏÂÒ»¸öcoreÎļþ£¬´Ó¸÷¸ö·½Ãæ¿´Õâ¶¼ºÍʬÌåûʲôÁ½Ñù¡£Unixµ÷ÊÔÆ÷È»ºó»áÕÒ³öËÀÒò¡£ÓÐȤµÄÊÇ£¬Unix³ÌÐò³£³£ºÍÈËÒ»Ñù£¬ËÀÓÚ±¾¿ÉÖÎÁƵļ²²¡¡¢Ê¹ÊÒÔ¼°Êèºö¡£

¶Ô¸¶Core

Èç¹ûÄãµÄ³ÌÐòͺË(core)ÁË£¬ÄãÊ×ÏÈÒª×öµÄÊÇÕÒµ½Ëü¡£Õâ²»¸ÃÌ«À§ÄÑ£¬ÒòΪcoreÎļþ×ÜÊǺܴ󡪡ª4, 8, ÉõÖÁ12Õס£

coreÎļþÖ®ËùÒÔÕâô´ó£¬ÊÇÒòΪËü°üÀ¨ÁËËùÓÐÓÃÀ´µ÷ÊÔµÄÐÅÏ¢£º¶ÑÕ»£¬Êý¾Ý£¬´úÂëÖ¸ÕëµÈµÈ£¬ÎÞËù²»°ü£¬³ýÁ˳ÌÐòµÄ¶¯Ì¬×´Ì¬¡£Èç¹ûÄãÔÚµ÷ÊÔÒ»¸öÍøÂç³ÌÐò£¬ÔÚÄãµÄ³ÌÐòͺ˵Äʱºò£¬ÒѾ­ÎªÊ±Ì«ÍíÁË£»³ÌÐòµÄÍøÂçÁ¬½ÓÒѾ­Ã»ÓÐÁË£¬¸üÖÂÃüµÄÒ»»÷ÊÇ£¬ËùÓдò¿ªµÄÎļþÏÖÔÚ¶¼±»¹ØÉÏÁË¡£

²»ÐÒµÄÊÇ£¬ÔÚUnixÉÏÖ»ÄÜÈç´Ë¡£

ÀýÈ磬²»Äܰѵ÷ÊÔÆ÷×÷ΪÃüÁî½âÎöÆ÷£¬»òÕßÔÚÄں˷¢ÉúÒ쳣ʱ°Ñ¿ØÖƽ»¸øµ÷ÊÔÆ÷¡£Èç¹ûÏëÈõ÷ÊÔÆ÷ÔÚ³ÌÐò±ÀÀ£Ê±½øÐнӹܣ¬ÄÇÄãÖ»ÄÜÔÚµ÷ÊÔÆ÷ÀïÃæÔËÐÐËùÓгÌÐò(Êǵģ¬ÓеÄUnix°æ±¾ÈÃÄãÓõ÷ÊÔÆ÷½Ó¹ÜÒ»¸öÔËÐÐÖеĽø³Ì£¬µ«ÊÇÄãÊֱ߱ØÐëÓÐÒ»¸ö»¹ÓзûºÅµÄ³ÌÐòÎļþ)¡£Èç¹ûÄãÏëµ÷ÊÔÖжϴúÂ룬ÄãµÄµ÷ÊÔÆ÷±ØÐë½Ø»ñÿ¸öÖжϣ¬È»ºó°ÑºÏÊʵÄÖжϷµ»Ø¸ø³ÌÐò¡£ÄãÄÜÏëÏñemacsÀïÿÇÃÒ»¼ü¶¼·¢Éú3¸ö½ø³ÌÇл»(context switch)µÄ¸Ð¾õô£¿ÏÔÈ»£¬Àý³Ìµ÷ÊÔ(routine debugging)˼ÏëºÍUnixÕÜѧÊǸñ¸ñ²»ÈëµÄ¡£

ÈÕÆÚ: Wed, 2 Jan 91 07:42:04 PST
·¢ÐÅÈË: Michael Tiemann <cygint!tiemann@labrea.stanford.edu>
ÊÕÐÅÈË: UNIX-HATERS
Ö÷Ìâ: Debuggers (µ÷ÊÔÆ÷)

Ïë¹ýUnixµ÷ÊÔÆ÷ΪʲôÕâôõ¿½Åô£¿ÕâÊÇÒòΪÈç¹ûËüÏëÌṩʲô¹¦ÄÜ£¬ÄÇÒ»¶¨»á¸úÀ´Ò»¶Ñbug£¬Èç¹ûÓÐbug£¬ËüÒ»¶¨»áͺË(dump core)£¬Èç¹ûËüͺˣ¬¿¿£¬ÄãÓÃÀ´µ÷ÊÔµÄÄǸöcoreÎļþ¾Í»á±»¸²¸Ç¡£Èç¹ûÄÜÈóÌÐòÀ´¿ØÖÆÈçºÎͺˣ¬ºÎʱͺˣ¬ÒÔ¼°ÍÂÔÚÄÄÀÄǾÍÌ«ºÃÁË¡£

bug¹Ç»ÒºÐ

ºÍÆäËû²Ù×÷ϵͳ²»Í¬£¬Unix°Ñbug¹©·îΪ±ê×¼²Ù×÷¡£Ö®ËùÒÔÄÇô¶àUnix bugsµÃ²»µ½ÐÞÕý£¬ÕâÀïÓиö²»¿É¸æÈ˵ÄÔ­Òò¡ª¡ªÈç¹ûÐÞÕýÁË£¬ÄÇôÒÑÓеÄһЩ³ÌÐò¾Í»áËÀ±ÆÁË¡£È»¶ø£¬»ÄÌÆµÄÊÇ£¬Unix³ÌÐòÔ±ÔÚÔö¼Óй¦ÄÜʱȴ´ÓÀ´²»È¥¿¼ÂÇÏòϼæÈÝ¡£

¿¼Âǵ½ÕâЩ£¬Michael Tiemann¸ø³öÁËUnixµ÷ÊÔÆ÷¸²¸ÇcoreÎļþµÄ10¸öÀíÓÉ£º

ÈÕÆÚ: Thu, 17 Jan 91 10:28:11 PST
·¢ÐÅÈË: Michael Tiemann <tiemann@cygnus.com>
ÊÕÐÅÈË: UNIX-HATERS
Ö÷Ìâ: Unix Debuggers (Unixµ÷ÊÔÆ÷)

David Letterman (ÃÀ¹úÖøÃûÍí¼äÍÑ¿ÚÐãÖ÷³ÖÈË)µÄ10¸ö×î¼ÑÀíÓÉÊÇ£º

10. Õâ»áÆÆ»µÒÑÓдúÂë¡£
9. ÕâÐèÒªÐÞ¸ÄÎĵµ¡£
8. Ì«ÄÑʵÏÖÁË¡£
7. ÕâÔõôÊǵ÷ÊÔÆ÷µÄ»î¶ù£¿ÎªÊ²Ã´²»Ð´¸ö¡°¹¤¾ß¡±×öËü£¿
6. Èç¹ûµ÷ÊÔÆ÷ÍÂÁ˺ˣ¬ÄãÓ¦¸Ã¶ª¿ªÄã×Ô¼ºµÄ³ÌÐò£¬¿ªÊ¼µ÷ÊÔµ÷ÊÔÆ÷¡£
5. Ì«ÄÑÀí½âÁË¡£
4. ÄĶùÓбý¸É£¿
3. Ϊʲô·ÇµÃÏÖÔÚ×ö£¿
2. UnixÒ²²»ÊÇÉñÏÉ¡£
1. ÄĶùÓÐÎÊÌ⣿

Unix ³ÌÐòÔ±×ÜÊÇ´ò×Å¡°Õâ»áÆÆ»µÒÑÓдúÂ롱µÄ»Ï×Ó£¬²»Ô¸ÒâÐÞÕýbug¡£¿ÉÕâÀïÃæ»¹ÓÐÄÚÄ»£¬ÐÞÕýbug²»µ«»áÆÆ»µÒÑÓдúÂ룬»¹±ØÐëÐ޸ļòµ¥ÍêÃÀµÄUnix ½Ó¿Ú£¬¶øÕâÕýÊÇUnix½ÌÖÚÃǵÄÃü¸ù×Ó¡£ÖÁÓÚÕâ¸ö½Ó¿ÚÊÇ·ñ¹¤×÷£¬Õâ²¢²»ÖØÒª¡£Unix½ÌÖÚÃDz»È¥Ìá³ö¸üºÃµÄ½Ó¿Ú£¬Ò²²»È¥ÐÞÕýbug£¬¶øÊÇÆëÉù¸ß³ª ¡°Unix½Ó¿ÚºÃ¼ò½à£¬ºÃ¼ò½à¡£Unix½Ó¿Ú¾ÍÊÇÃÀ£¬¾ÍÊÇÃÀ£¡UnixÎÞ×UnixÓÐÀí£¡¡±¡£

²»ÐÒµÄÊÇ£¬ÈƹýbugÊǸöºÜ¶ñÁÓµÄÐÐΪ£¬ËüʹµÃ´íÎó³ÉΪÁ˲Ù×÷ϵͳ¹æ·¶µÄÒ»²¿·Ö¡£ÄãÔ½Êǵȣ¬¾ÍÔ½ÄÑÒÔÐÞÕý£¬ÒòΪԽÀ´Ô½¶àµÄ³ÌÐò»á¾¡Á¦Èƹýbug£¬ÒÔÖÁÓÚûÓÐÁËbug·´¶ø»î²»ÁËÁË¡£Í¬Àí£¬Ð޸IJÙ×÷ϵͳ½Ó¿Ú´øÀ´µÄÓ°Ïì¸ü´ó£¬ÒòΪ¸ü¶àµÄ³ÌÐò±ØÐë¸ù¾ÝÕâ¸öÕýÈ·µÄнӿڽøÐÐÐ޸ġ£(Õâ½âÊÍÁËΪʲôlsÓÐÄÇô¶àµÄÑ¡ÏîÀ´Íê³É¼¸ºõÒ»ÑùµÄ¹¤×÷)¡£

Èç¹ûÄã°ÑÒ»Ö»ÇàÍÜÈÔµ½¿ªË®ÀËü»áÂíÉÏÌø³öÀ´¡£ËüÖªµÀ¿ªË®ºÜÌÌ¡£¿ÉÊÇ£¬Èç¹ûÄã°ÑÇàÍܷŵ½ÀäË®ÀÔÙÂýÂýµØ¼ÓÈÈ£¬ÇàÍܸоõ²»µ½Ê²Ã´£¬Ö±µ½×îºó±»ÌÌËÀ¡£

Unix ½Ó¿ÚÒѾ­¿ª¹øÁË¡£ÒÔǰ£¬ÊäÈë/Êä³öµÄÈ«²¿½Ó¿ÚÖ»°üÀ¨open, close, readºÍwrite¡£ÍøÂçÖ§³Ö¸øUnixÌíÁËÒ»´ó°Ñ²ñºÌ¡£ÏÖÔÚ£¬ÖÁÉÙÓÐÎåÖÖ·½·¨ÏòÒ»¸öÎļþ¾ä±úÊäÈëÊý¾Ý£ºwrite, writev, send, sendtoºÍsendmsg¡£Ã¿¸ö¶¼ÔÚÄÚºËÖÐÓв»Í¬µÄʵÏÖ£¬ÕâÒâζ×ÅÓÐÎå±¶µÄ¿ÉÄܳöÏÖbug£¬ÓÐÎåÖÖ²»Í¬µÄÐÔÄܽá¹ûÐèÒª¿¼ÂÇ¡£¶ÁÎļþÒ²Ò»Ñù(read, recv, recvfromºÍrecvmsg)¡£µÈËÀ°É£¬ÇàÍÜÃÇ¡£

ÎļþÃûÀ©Õ¹

Unix¡°ËùÓгÌÐò×Ô³ÉÒ»Ì塱µÄ¹æ¶¨ÓÐÒ»¸öÀýÍâ¡£Unix³ÌÐò¾­³£Òª´¦ÀíÒ»¸ö»ò¶à¸öÎļþ¡£Unix shellsÌṩÁËÃüÃûÒ»×éÎļþµÄ·½·¨£¬shell»á°ÑÕâ×éÎļþÕ¹¿ª£¬×öΪһ¸öÎļþÁÐ±í´«µÝ¸ø¸÷¸öÃüÁî¡£

ÀýÈ磬¼ÙÉèÄãµÄĿ¼ÏÂÓÐÎļþA, BºÍC¡£Èç¹ûÏóɾ³ýËùÓÐÕâЩÎļþ£¬Äã¿ÉÒÔÔËÐÐrm *¡£shell»á°Ñ"*"À©Õ¹³ÉΪ"A B C"£¬²¢°ÑËûÃÇ×öΪrmµÄ²ÎÊý´«µÝ¸øËü¡£Õâ¸ö·½·¨Óв»ÉÙÎÊÌ⣬ÕâÔÚÉÏÒ»ÕÂÒѾ­Ìáµ½¹ýÁË¡£²»¹ý£¬ÄãÓ¦¸ÃÖªµÀÈÃshellÀ´À©Õ¹ÎļþÃû²»ÊÇżȻµÄ£º¶øÊǾ«ÐÄÉè¼ÆµÄ½á¹û¡£ÔÚKernighanºÍMashey·¢±íµÄ¡¶Unix±à³Ì»·¾³¡·Ò»ÎÄÖÐ(IEEE¼ÆËã»úÔÓÖ¾£¬1981ÄêËÄÔÂ)£¬ËûÃÇÖ¸³ö£º¡°°ÑÕâ¸ö×÷Ϊ shellµÄÒ»¸ö»úÖÆ£¬Õâ±ÜÃâÁ˸÷¸ö³ÌÐòµÄÖØ¸´ÀͶ¯£¬¶øÇÒ±£Ö¤ÁËΪËùÓгÌÐòÌṩһÖµÄÊäÈë¡£¡± (UnixµÄÒ»¸öÀíÏëÊÇÈÃÈκÎÈËÄܹ»ÔËÐÐÈκÎshell¡£ÏÖÔÚÄãû·¨ÔËÐÐÈκÎshell£»ÄãµÄshell±ØÐëÌṩÎļþÃûÀ©Õ¹)¡£

±ðæ¡£±ê×¼ÊäÈë/Êä³ö¿â(UnixËùνµÄstdio)²»¾ÍÄÜ¡°ÎªËùÓгÌÐòÌṩһÖµÄÊäÈ롱ô£¿Ìṩһ¸öÓÃÓÚÀ©Õ¹ÎļþÃûµÄ¿âº¯Êý²»¾Í³ÉÁË£¿ÕâЩ¼Ò»ïûÓÐÌý˵¹ýÁ´½Ó¿âô£¿ÄÇЩ¹ØÓÚÐÔÄܵÄ˵·¨Ò²ÊÇÎÞ»ü̸֮£¬ÒòΪËûÃÇÎÞ·¨ÌṩÈκεÄÐÔÄÜÊý¾Ý£¬ËûÃÇÉõÖÁûÓÐ˵Ã÷¡°ÐÔÄÜÖ¸±ê¡±ÊÇʲô¡£Ö¸µÄÊÇ¿ª·¢Ò»¸öС³ÌÐò»á¿ìһЩ£¿»¹ÊÇÖ¸ÄܸßÐÔÄܵذÑÒ»¸öÐÂÊÖµÄËùÓÐÎļþһɨ¶ø¹â£¿

´ó¶àÊýÇé¿öÏ£¬ÈÃshell½øÐÐÎļþÃûÀ©Õ¹Ò²ÎÞËùν£¬ÒòΪÕâºÍ³ÌÐò×Ô¼ºÀ©Õ¹µÄ½á¹ûûʲô²»Í¬¡£¿ÉÊÇ£¬ºÍUnixÉϵÄÐí¶àÍæÒâÒ»Ñù£¬ËüÔçÍí»áÒ§ÄãÒ»¿Ú£¬¶øÇÒ²»Çá¡£

¼ÙÉèÄãÊǸöUnixÐÂÊÖ£¬Ä¿Â¼ÏÂÓÐÁ½¸öÎļþA.mºÍB.m¡£Äãϰ¹ßÁËMS-DOS£¬Ïë°ÑËüÃǵÄÃû×Ö»»³ÉA.cºÍB.c¡£àÅ~~ ûÕÒµ½renameÃüÁ²»¹ýmvÃüÁîËÆºõ²î²»¶à¡£ÓÚÊÇÄãÖ´ÐÐmv *.m *.c¡£shell½«Õâ¸öÃüÁîÀ©Õ¹Îª mv A.m B.m£¬ÄãÐÁÐÁ¿à¿àдÁ˼¸Ð¡Ê±µÄB.m¾ÍÕâô±»¸ÉµôÁË¡£

ÔٺúÃ˼¿¼Ò»ÏÂÉÏÃæÕâ¸öÎÊÌ⣬Äã¾Í»á·¢ÏÖÀíÂÛÉÏÄãÍêÈ«²»¿ÉÄÜÌṩһ¸öºÍMS-DOS "rename"Ò»ÑùµÄ¹¦ÄÜ¡£¶ÔÓÚÈí¼þ¹¤¾ß£¬¾Í³¶Õâô¶à°É¡£

½¡×³ÐÔ£¬»òÕß˵¡°ËùÓÐÊäÈëÐбØÐëСÓÚ80¸ö×Ö·û¡±

1990 Äê11Ô·ݵġ¶ACMͨѶ¡·ÉϵÇÁËMiller FredriksenµÈÈËдµÄһƪ¾«²ÉÎÄÕ£¬ÌâÄ¿ÊÇ¡¶Unix¹¤¾ßµÄÎȶ¨ÐԵľ­ÑéÐÔÑо¿¡·¡£ËûÃÇʹÓÃÒ»Ð©Ëæ»úÊý¾Ý×÷ΪUnix¹¤¾ßµÄÊäÈ룬·¢ÏÖÓÐ24- 33%(²»Í¬µÄUnix·¢²¼½á¹ûÓÐËù²»Í¬)µÄ¹¤¾ß±ÀÀ£ÁË¡£ÓÐʱºòÉõÖÁÕû¸öϵͳ¶¼Íêµ°ÁË¡£

ÎÄÕÂÊÇÒÔÒ»¸öЦ»°¿ªÍ·µÄ¡£ÆäÖÐһλ×÷ÕßÔøÊ¹ÓÃÒ»¸ö¼«²îµÄµç»°Á¬½Ó¹¤×÷£¬·¢ÏÖÐí¶à¹¤¾ß¶¼¿åµôÁË¡£ÓÚÊÇËû¾ö¶¨Õë¶ÔÕâÒ»ÏÖÏó½øÐиüϵͳµÄµ÷²éÑо¿¡£

Ðí¶àbug¶¼¿ÉÒÔ¹éÒòÓÚCÓïÑԵij¹æÂªÏ°¡£ÊÂʵÉÏ£¬UnixµÄÐí¶àÄÚÔÚÄÔËðÉ˶¼ÊÇCÓïÑÔÔì³ÉµÄ¡£UnixµÄºËÐÄÒÔ¼°ËùÓеŤ¾ß³ÌÐò¶¼ÊÇÓÃCÓïÑÔдµÄ¡£ÖøÃûÓïÑÔѧ¼ÒBenjamin Whorf˵¹ý£ºÓïÑÔ¾ö¶¨Ë¼Ïë¡£UnixÓÐÉîÉîµÄCÀÓÓ¡¡£CÓïÑÔʹµÃ³ÌÐòÔ±¸ù±¾ÎÞ·¨ÏëÏñÄÜд³ö½¡×³µÄ³ÌÐò¡£

CÓïÑÔÊǼ«Ð¡µÄ¡£Ëü±»Éè¼Æ³ÉÄÜÔÚ¸÷ÖÖÓ²¼þÉÏ¿ìËٵؽøÐбàÒ룬ËùÒÔËüÓÐןÍÓ²¼þÀàËÆµÄ½á¹¹¡£

Unixµ®ÉúÖ®³õ£¬Ê¹Óø߼¶ÓïÑÔ±àд²Ù×÷ϵͳÊǸö¸ïÃüÐÔµÄÏë·¨¡£ÏÖÔÚÔòÓ¦¸Ã¿¼ÂÇʹÓÃÒ»ÖÖÓдíÎó¼ì²éµÄÓïÑÔÁË¡£

C ÊǸö×îΪµ×²ãµÄÓïÑÔ£¬µ®ÉúÓÚÓ²¼þ¸üΪµ×²ãµÄʱ´ú¡£PDP-11ûÓеģ¬CÓïÑÔÒ²²»»áÓС£¹ýÈ¥¼¸Ê®ÄêµÄ±à³ÌÓïÑÔÑо¿±íÃ÷£¬ÓïÑÔÖмÓÈë´íÎó´¦Àí£¬×Ô¶¯ÄÚ´æ¹ÜÀíºÍ³éÏóÊý¾ÝÀàÐ͵ȹ¦ÄÜ£¬»áʹµÃ¿ª·¢³öµÄ³ÌÐò¸üΪ½¡×³¿É¿¿¡£ÄãÔÚCÀïÃæÕÒ²»µ½ÕâЩ¶«Î÷¡£CÓïÑÔÌ«Á÷ÐÐÁË£¬Ã»ÈËÈ¥¿¼ÂǸøËüÔö¼ÓÖîÈçÊý¾Ý±ê¼Ç»òÓ²¼þÀ¬»ø»ØÊÕÖ§³ÖµÈ¹¦ÄÜ¡£¼´Ê¹Ó²¼þÌṩÁËÀ¬»ø»ØÊÕ¹¦ÄÜ£¬Ò²Ö»ÊǶà·ÑÁËһЩ¹èƬ°ÕÁË£¬ÒòΪÐí¶àCÓïÑÔ±àдµÄ³ÌÐò¸ù±¾ÎÞ·¨Ê¹ÓÃËü¡£

»ØÏëһϣ¬CÊÇÎÞ·¨´¦ÀíÕûÊýÒç³öµÄ¡£½â¾ö·½·¨ÊÇʹÓó¬¹ýÎÊÌâÐèÒªµÄÕûÊý´óС£¬Ï£ÍûÕâ¸ö´óСÔÚÄãÓÐÉúÖ®Äê×ã¹»Óá£

C ҲûÓÐÕæÕýÒâÒåÉϵÄÊý×飬ËüÓиöÏóÊÇÊý×éµÄ¶«Î÷£¬Êµ¼Ê²»¹ýÊÇÒ»¸öÖ¸ÏòÒ»¿éÄÚ´æµÄÖ¸Õë¡£Êý×鶨λ±í´ïʽ(array[index])²»¹ýÊDZí´ïʽ (*(array+index))µÄ¼òд°æ¡£ËùÒÔÄãÉõÖÁ¿ÉÒÔ˵index[array]£¬ÕâºÍ±í´ïʽ(*(array+index))ÊÇÒ»¸öÒâ˼¡£´ÏÃ÷°É£¿ÔÚ×Ö·û´¦Àíʱ¾­³£Äܼûµ½Õâ¸öÓ÷¨¡£Êý×é±äÁ¿ºÍÖ¸Õë±äÁ¿¾­³£¿ÉÒÔ»¥»»¡£

¾Ù¸öÀý×Ó£¬¼ÙÉèÄãÓУº

char *str = "bugy";

ÓÚÊÇÏÂÃæµÄÕâЩÓï¾ä¶¼ÊÇÒ»ÑùµÄ£º

0[str] == 'b'
*(str+1) == 'u'
*(2+str) == 'g'
str[3] == 'y'

CÓïÑÔ¹»Î°´óµÄ°É£¿

Õâ¸ö×ö·¨µÄÎÊÌâÊÇC¸ù±¾²»×öÈκÎ×Ô¶¯Êý×é±ß½ç¼ì²é¡£ÎªÊ²Ã´¸ÃCÈ¥×öÄØ£¿Êý×éÔÚCÀïÖ»ÊǸöÖ¸Õë¶øÒÑ£¬Äã¿ÉÒÔ°ÑÖ¸ÕëÖ¸ÏòÄÚ´æµÄÈκεط½£¬ÊDz»ÊÇ£¿²»¹ý£¬Ò»°ãÄã²»ÏëÔÚÄÚ´æÀïÂÒдÂÒ»­£¬ÌرðÔÚÊÇһЩ¹Ø¼üµÄµØ·½£¬±ÈÈç³ÌÐòµÄ¶ÑÕ»¡£

Õâ°ÑÎÒÃÇÒýµ½ÁËMillerµÄÎÄÕÂÀïÌáµ½µÄÒ»Ààbug¡£Ðí¶à³ÌÐòÊÇÔÚ¶ÁÈ¡ÊäÈëµ½¶ÑÕ»ÉϵÄÒ»¿é×Ö·û»º³åÇøÊ±±ÀÀ£µÄ¡£Ðí¶àC³ÌÐòÊÇÕâô×öµÄ£»ÏÂÃæµÄC³ÌÐò°ÑÒ»ÐÐÊäÈë¶Áµ½¶ÑÕ»ÉϵÄÒ»¸öÊý×éÀȻºóµ÷ÓÃdo_itº¯Êý½øÐд¦Àí¡£

a_function()
{
char c, buff[80];
int i = 0;

while ((c = getchar()) != 'n')
buff[i++] = c;
buff = '00';
do_it(buff);
}

ÕâÀà´úÂë°ÑUnix¸ãµÃ³ô²»¿ÉÎÅ¡£ÖªµÀΪʲô»º³åÇø±»¶¨Îª80¸ö×Ö·ûô£¿ÕâÊÇÒòΪÐí¶àUnixÎļþÿÐÐ×î¶àÓÐ80¸ö×Ö·û¡£ÖªµÀΪʲôûÓб߽ç¼ì²é£¬Ò²Ã»ÓÐÎļþβ¼ì²éô£¿ÕâÊÇÒòΪÕâ¸ö³ÌÐòԱϲ»¶°Ñc = getchar()ÕâÑùµÄ¸³ÖµÓï¾äǶÈëµ½whileÑ­»·ÖС£ÐŲ»ÐÅ£¬ÓÐЩÈË»¹ÍƳçCµÄÕâÖÖËõ¼òд·¨£¬¹ÜËûÂèʲô¿É¶ÁÐÔ¿Éά»¤ÐÔ¡£×îºó£¬µ÷ÓÃdo_it ()£¬Êý×éÒ¡ÉíÒ»±ä³ÉÁËÖ¸Õ룬×÷ΪµÚÒ»¸ö²ÎÊý´«Á˽øÈ¥¡£

×÷ΪÁ·Ï°£ºÈç¹ûÔÚÒ»Ðе±Öе½´ïÁËÎļþ⣬Õâ¸ö³ÌÐòµÄ½á¹ûÊÇʲô£¿

µ±Unix Óû§²é¾õµ½Õâ¸öÄÚÖõÄÏÞÖÆºó£¬ËûÃÇÏëµ½µÄ²»ÊÇÈ¥ÐÞÕýÕâ¸öbug£¬¶øÊÇÏë·½Éè·¨¶ã¹ýËü¡£±ÈÈ磬UnixµÄ´Å´ø±¸·Ý¹¤¾ß(tape archiver)tar²»ÄÜ´¦Àí³¬¹ý100¸ö×Ö·ûµÄ·¾¶Ãû(°üÀ¨Ä¿Â¼)¡£½â¾ö·½·¨ÊÇ£º²»Òª±¸·ÝĿ¼µ½´Å´ø£¬»òÕßʹÓÃdump¡£¸üºÃµÄ°ì·¨ÊÇ£º²»Òª½¨Á¢Ì«ÉîµÄĿ¼£¬ÕâÑùÎļþµÄ¾ø¶Ô·¾¶¾Í²»»á³¬¹ý100¸ö×Ö·û¡£

2038Äê1ÔÂ18ÈÕÉÏÎç10µã14·Ö07Ã룬UnixÂí»¢±à³Ì½«ÔÚÕâÒ»¿ÌÉÏÑݾ«²ÉµÄһĻ£¬ÄÇʱUnixµÄ32λtimeval½«ºÄ¾¡...

Ôٻص½ÎÒÃÇÇ°ÃæÄǸöÀý×Ó£¬¼ÙÉèÊäÈëÐÐÓÐ85¸ö×Ö·û¡£Õâ¸öº¯ÊýºÁÎÞÎÊÌâµØ½ÓÊÜÁËÕâ¸öÊäÈ룬¿ÉÎÊÌâÊÇ×îºóÄÇ5¸ö×Ö·û»á±»·Åµ½ÄÄÀïÄØ£¿´ð°¸ÊÇËüÃÇ»áÕ¼¾ÝÈκÎÅÅ·ÅÔÚÊý×éºóÃæµÄ5¸ö×Ö½Ú¡£Ö®Ç°ÄÇÀï·Å×ŵÄÊÇÊ²Ã´ÄØ£¿

cºÍiÕâÁ½¸ö±äÁ¿¿ÉÄܻᱻ·ÖÅäÔÚ×Ö·ûÊý×éÖ®ºó£¬ËùÒÔÓпÉÄܻᱻ85×Ö·û³¤µÄÊäÈë³å¿å¡£Èç¹ûÊäÈëÁË850¸ö×Ö·ûÄØ£¿Ôò¿ÉÄÜ»á»Ùµô¶ÑÕ»ÉϵÄÖØÒªµÄCÔËÐл·¾³ÏµÍ³ÐÅÏ¢£¬±ÈÈç·µ»ØµØÖ·µÈ¡£»ÙµôÕâЩÐÅÏ¢µÄ×îºÃ½á¹ûÊdzÌÐò¿ÉÄܱÀÀ£¡£

ÎÒÃÇ˵¡°¿ÉÄܱÀÀ£¡±ÊÇÒòΪ³ÌÐòµÄ±àдÕß´ÓûÏëµ½¹ýÄã¾¹Äܻٵô¶ÑÕ»¡£ÏëÏñÒ»ÏÂÎÒÃǵÄÕâ¸ö³ÌÐò¶ÁÈëÁ˺ܳ¤µÄÒ»ÐУ¬Ô¼ÓÐ2,000¸ö×Ö·û£¬ÕâÐÐ×Ö·û±»ÓÃÀ´¸²¸Ç¶ÑÕ»Éϵķµ»ØµØÖ·ÒÔ¼°ÆäËû»·¾³ÐÅÏ¢£¬Ëü½«µ÷ÓÃ2,000¸ö×Ö·ûÀïÂñ²ØµÄÒ»¶Î´úÂë¡£Õâ¶Î´úÂë¿ÉÄÜ»á×öһЩºÜÓÐÓõÄÊÂÇ飬±ÈÈçÖ´ÐÐ(exec)³öÒ»¸ö shell£¬ÔËÐÐһЩÃüÁî¡£

Robert T. MorrisµÄÖøÃûUnixÈ䳿²¡¾ÍÊÇʹÓÃÁËÕâ¸ö»úÖÆ(ÒÔ¼°ÆäËûһЩ¼¼ÇÉ)ºÚ½øUnixÖ÷»úµÄ¡£ÎÒ²»ÖªµÀÆäËûÈËΪʲô»¹»áÕâô×ö£¬ÕæµÄ²»ÖªµÀ£¬ÎûÎû¡£

ÈÕÆÚ: Thu, 2 May 91 18:16:44 PDT
·¢ÐÅÈË: Jim McDonald <jlm%missoula@lucid.com>
ÊÕÐÅÈË: UNIX-HATERS
Ö÷Ìâ: how many fingers on your hands? (Äã¹²Óм¸¸ùÊÖÖ¸£¿)

icon_sad.gif ÏÂÃæÊǸøÎÒµÄÉÏ˾µÄÒ»¸ö±¨¸æ£º

Ò»¸öÓÃÀ´¸üÐÂMakeÎļþµÄ³ÌÐòʹÓÃÁËÒ»¸öÖ¸Õ룬¶ÔËüµÄ·ÃÎʻٵôÁËÒ»¸ö´æ·ÅÒÐÀµ¹ØÏµµÄÊý×飬Õâ¸öÒÐÀµ¹ØÏµ±»ÓÃÀ´Éú³ÉMakefile¡£Ö±½Óºó¹ûÊÇÉú³ÉµÄ´íÎó Makefile²»ÄÜÓÃÓÚ±àÒëÈκζ«Î÷£¬Ã»ÓÐÉú³ÉËùÐèµÄ¶ÔÏóÎļþ(.o)£¬ËùÒÔ±àÒë×îÖÕʧ°ÜÁË¡£Ò»ÌìµÄ¹¤×÷¾ÍÕâô¸¶Ö®¶«Á÷ÁË£¬Ö»ÊÇÒòΪһ¸öɵ¹ÏÈÏΪ10¸öÍ·Îļþ×ã¹»ËùÓÐÈËʹÓÃÁË£¬È»ºó¶ÔËü½øÐÐÁ˼«ÆäΣÏÕµÄÓÅ»¯ÒÔÔÚ1ºÁÃëÄÚÉú³ÉËùÓеÄMakeÎļþ£¡

ÍøÂ绯µÄ»µ´¦ÊÇ£¬Äãû·¨ÔÙ´³½øÄ³È˵İ칫ÊÒÀï°ÑËûµÄÐĸøÍÚ³öÀ´¡£

(¹ØÓÚ¶ÑÕ»Òç³ö¹¥»÷£¬¿É²Î¿¼¾­µäÂÛÎÄhref=http://www.phrack.org/phrack/49/P49-14>

Smashing The Stack For Fun And Profit --me)

Òì³£´¦Àí

±àд½¡×³³ÌÐòµÄ×î´óÌôÕ½ÊÇÈçºÎÕýÈ·´¦Àí´íÎóºÍÆäËûÒì³£¡£²»ÐÒµÄÊÇ£¬C¼¸ºõûÓÐΪ´ËÌṩʲô°ïÖú¡£½ñÌìÔÚѧУÀïѧ»á±à³ÌµÄÈËÀïºÜÉÙÓÐË­ÖªµÀÒì³£ÊÇʲô¡£

Òì³£ÊǺ¯ÊýÎÞ·¨Õý³£ÔËÐÐʱËù²úÉúµÄÒ»¸ö״̬¡£Òì³£¾­³£·¢ÉúÔÚÇëÇóϵͳ·þÎñʱ£¬±ÈÈç·ÖÅäÄڴ棬´ò¿ªÎļþµÈ¡£ÓÉÓÚCûÓÐÌṩÒì³£´¦ÀíÖ§³Ö£¬³ÌÐòÔ±±ØÐë×Ô¼ºÔÚ·þÎñÇëÇóʱ¼ÓÈëÒì³£´¦Àí´úÂë¡£

ÀýÈ磬ÏÂÃæÊÇËùÓÐCÓïÑԿα¾ÖÐÍÆ¼öµÄʹÓÃmalloc()·ÖÅäÄÚ´æµÄ·½·¨£º

struct bpt *another_function()
{
struct bpt *result;

result = malloc(sizeof(struct bpt));
if (result == 0) {
fprintf(stderr, "error: malloc: ???n");

/* recover gracefully from the error */
[...]
return 0;
}
/* Do something interesting */
[...]
return result;
}

another_functionº¯Êý·ÖÅäÁËÒ»¸öÀàÐÍΪbptµÄ½á¹¹£¬·µ»ØÁËÒ»¸öÖ¸ÏòÕâÒ»½á¹¹µÄÖ¸Õë¡£Õâ¶Î´úÂë˵Ã÷ÁËÈçºÎ·ÖÅäÄÚ´æ¸øÕâ¸ö½á¹¹¡£ÒòΪCûÓÐÏÔʽµÄÒì³£´¦ÀíÖ§³Ö£¬C³ÌÐòÔ±±ØÐë×Ô¼ºÈ¥×öÕâ¼þÊÂ(¾ÍÊÇ´ÖÌåµÄÄÇЩ´úÂë)¡£

µ±È»Äã¿ÉÒÔ²»Õâô¸É¡£Ðí¶àC³ÌÐòÔ±ÈÏΪÕâÊÇСÊÂÒ»×®£¬´ÓÀ´²»×öÒì³£´¦Àí¡£ËûÃǵijÌÐòÍùÍùÊÇÕâÑùµÄ£º

struct bpt *another_function()
{
struct bpt *result = malloc(sizeof(struct bpt));

/* Do something interesting */
[...]
return result;
}

¶àô¼òµ¥£¬¶àô¸É¾»£¬´ó¶àÊýϵͳ·þÎñÇëÇó¶¼»á³É¹¦µÄ£¬ÊDz»ÊÇ£¿ÕâÑùµÄ³ÌÐòÔÚ´ó¶àÊý³¡ºÏÔËÐÐÁ¼ºÃ£¬Ö±µ½ËüÃDZ»Ó¦Óõ½¸´ÔÓÌØÊâµÄµØ·½£¬ÍùÍù¾Í»áÉñÃØµØÊ§Ð§¡£

LispµÄʵÏÖ×ÜÊǰüÀ¨Ò»¸öÒì³£´¦Àíϵͳ¡£Òì³£Ìõ¼þ°üÀ¨OUT-OF-MEMORYÕâÑùµÄÃû³Æ£¬³ÌÐòÔ±¿ÉÒÔÎªÌØ¶¨µÄÒì³£ÌṩÒì³£´¦Àíº¯Êý¡£ÕâЩ´¦Àíº¯ÊýÔÚÒì³£·¢Éúʱ±»×Ô¶¯µ÷Ó᪡ª³ÌÐòÔ±²»ÐèÒª½éÈ룬Ҳ²»ÐèÒª×öÌØÊâµÄ¼ì²é¡£Êʵ±µØÊ¹Ó㬿ÉÒÔÈóÌÐò¸üΪ½¡×³¡£

CLUÕâÑùµÄ±à³ÌÓïÑÔÒ²ÓÐÄÚÖõÄÒì³£´¦Àí¡£Ã¿¸öº¯Êý¶¨Òå¶¼ÓÐһϵÁпÉÒÔ·¢³öµÄÒì³£Ìõ¼þ¡£¶ÔÒì³£µÄÏÔʽ֧³Ö¿ÉÒÔ°ïÖú±àÒëÆ÷¼ì²éÄÇЩδ±»´¦ÀíµÄÒì³£¡£CLU³ÌÐò×ÜÊÇÊ®·Ö½¡×³£¬ÒòΪ±àÒëÆ÷±Æ×ÅCLU³ÌÐòԱȥ¿¼ÂÇÒì³£´¦ÀíÎÊÌâ¡£C³ÌÐòÊǸöʲôÑù×ÓÄØ£º

ÈÕÆÚ: 16 dec 88 16:12:13 GMT
Ö÷Ìâ: Re: GNU Emacs
·¢ÐÅÈË: debra@alice.UUCP

£¼448£Àmyab.se> lars@myab.se (Lars Pensy)>дµ½£º
... ËùÓеijÌÐò¶¼Ó¦¸Ã¼ì²éϵͳµ÷ÓÃ(Èçwrite)µÄ·µ»Ø½á¹û£¬Õâ·Ç³£ÖØÒª¡£

ͬÒ⣬¿É²»ÐÒµÄÊǺÜÉÙÓгÌÐòÔÚ½øÐжÁ(read)д(write)ʱÕâô×ö¡£

Unix¹¤¾ß³ÌÐòÒ»°ã»á¼ì²éopenϵͳµ÷Óõķµ»ØÖµ£¬¼ÙÉèËùÓÐËæºóµÄread£¬writeºÍclose×Ü»á³É¹¦¡£

Ô­ÒòºÜÃ÷ÏÔ£º³ÌÐòÔ±ºÜÀÁ£¬²»×ö´íÎó´¦Àí³ÌÐò»áÏԵøüС¸ü¿ì¡£(ÕâÑùÄãµÄϵͳ»áÓиüÓÅÒìµÄÐÔÄܱíÏÖ)¡£

Õâ·âÐŵÄ×÷Õß¼ÌÐøÖ¸³ö£¬ÓÉÓڴ󲿷Öϵͳ¹¤¾ß²»¶Ôwrite()µÈϵͳµ÷Óõķµ»ØÖµ½øÐмì²é£¬ÏµÍ³¹ÜÀíÔ±¾Í±ØÐë±£Ö¤Îļþϵͳʱʱ¿Ì¿Ì¶¼ÓÐ×ã¹»µÄ¿Õ¼ä¡£ÕýÊÇÈç´Ë£ºÐí¶àUnix³ÌÐò¼ÙÉèËüÃÇ¿ÉÒÔдÈκγɹ¦´ò¿ªµÄÎļþ£¬Ïëд¶àÉÙ¾Íд¶àÉÙ¡£

¶Áµ½ÕâÀïÄã¿ÉÄÜ»áÖåüͷ£¬"àÅ~~¡±Ò»Ï¡£×îΪ¿ÉŵÄÊÇ£¬¾ÍÔÚ¡¶Unix¹¤¾ßµÄÎȶ¨ÐԵľ­ÑéÐÔÑо¿¡·ÕâÆªÎÄÕµÄǰ¼¸Ò³£¬µÇÔØÁËÒ»·Ý±¨¸æ£¬ËµÃ÷ÐÝ˹¶ÙÍâ²ã¿Õ¼äÖÐÐĵķɴ¬¿ØÖÆÊµÊ±Êý¾Ý²É¼¯ÏµÍ³ÊÇÈçºÎתÐÍΪUnixϵͳµÄ¡£"àÅ~~¡±

²¶×½bugÊÇÉç»áËù²»ÄܽÓÊÕµÄ

²»È¥¼ì²éºÍ±¨¸æbug£¬Õâ»áÊ¹ÖÆÔìÉÌÉú²úµÄϵͳÏÔµÃËÆºõ¸üΪ½¡×³ºÍÇ¿´ó¡£¸üÖØÒªµÄÊÇ£¬Èç¹ûUnixϵͳ±¨¸æÃ¿Ò»¸ö´íÎó£¬ÄÇô¾Í¸ù±¾²»»áÓÐÈËÈ¥ÓÃËü£¡ÕâÊÇ»îÉúÉúµÄÏÖʵ¡£

ÈÕÆÚ: Thu, 11 Jan 90 09:07:05 PST
·¢ÐÅÈË: Daniel Weise <daniel@mojave.stanford.edu>
ÊÕÐÅÈË: UNIX-HATERS
Ö÷Ìâ: Now, isn't that clear? (ÏÖÔÚÃ÷°×ÁËô£¿)

»ÝÆÕ×öÁËһЩ¹¤×÷£¬ÕâÑùÎÒÃÇµÄ»ÝÆÕUnixϵͳÄܹ»±¨¸æÒ»Ð©¿ÉÄÜ»áÓ°ÏìËüµÄÍøÂç´íÎó¡£ÕâЩ»ÝÆÕϵͳºÍSUN, MIPS, DEC¹¤×÷Õ¾¹²ÏíÒ»¸öÍøÂç¡£ÎÒÃǾ­³£»á·¢ÏÖÆäËû»úÆ÷ËùÒý·¢µÄÎÊÌ⣬¿ÉÊǵ±ÎÒÃÇ֪ͨ¸øÄÇЩ»úÆ÷µÄÖ÷ÈËʱ(ÒòΪÕâЩϵͳ²»±¨¸æ´íÎó£¬ËûÃDz»ÖªµÀ×Ô¼ºµÄ»úÆ÷ÓÐÒ»°ëʱ¼äÊÇÓÃÔÚÖØ·¢Êý¾Ý°üÉÏÁË)£¬ËûÃÇÍùÍù·´³ÆÊÇÎÒÃÇÕâÀïµÄÎÊÌ⣬ÒòΪֻÓÐÎÒÃÇÕâÀﱨ³öÁË´íÎó¡£

¡°Á½¹úÏàÕù£¬²»Õ¶À´Ê¹¡±£¬²»¹ýÔÚUnixÊÀ½çÀÄã×îºÃ±ðµ±ÐÅʹ¡£

ÐÞ²»ÁË£¿ÖØÆô£¡

Èç¹ûij¸ö¹Ø¼üÈí¼þ²»ÄÜÊʵ±´¦Àí´íÎóµÄÊý¾ÝºÍ²Ù×÷Ìõ¼þ£¬ÄÇôϵͳ¹ÜÀíÔ±¸ÃÈçºÎÊǺÃÄØ£¿àÅ~~£¬Èç¹ûËüÄÜÔÚÒ»¶Îʱ¼äÀïÕý³£¹¤×÷£¬Äã¾ÍÄÜͨ¹ý²»¶ÏÖØÆôËüÀ´´ÕºÏ×ÅÔËÐС£Õâ¸ö·¨×Ó²»ÊǺܿɿ¿£¬Ò²²»¾ßÓÐÀ©Õ¹ÐÔ£¬²»¹ý×ã¹»ÈÃUnix¹¶ Ӳд Ò»Õó×ÓÁË¡£

ÏÂÃæ¾ÍÊÇÕâôһ¸öÀý×Ó£¬ËµÃ÷ÈçºÎÔÚnamed³ÌÐò²»Îȶ¨µÄÇé¿öÏÂÌṩÓʼþ·þÎñ£º

ÈÕÆÚ: 14 May 91 05:43:35 GMT
·¢ÐÅÈË: tytso@athena.mit.edu (Theodore Ts'o) (ÖøÃûµÄTed Ts'o? --me)
Ö÷Ìâ: Re: DNS performance metering: a wish list for bind 4.8.4
(DNSÐÔÄܲâÊÔ£ºbind 4.8.4µÄÆÚ´ý¹¦Äܱí)
ÊÕÐÅÈË: comp.protocols.tcp-ip.domains

ÎÒÃÇÏÖÔÚÊÇÕâô½â¾öÕâ¸öÎÊÌâµÄ£ºÎÒдÁËÒ»¸ö½Ð"ninit"µÄ³ÌÐòÒԷǾ«Áé(deamon)ģʽ(nofork)ÔËÐÐnamed£¬È»ºóµÈ´ýËüÍ˳ö¡£µ± namedÍ˳öʱ£¬ninitÖØÐÂÆô¶¯Ò»¸öеÄnamed¡£ÁíÍ⣬ÿ¸ôÎå·ÖÖÓ£¬ninit»áÐÑÀ´Ò»´Î·¢¸ønamedÒ»¸öSIGIOTÐźţ¬named½Óµ½Õâ¸öÐźźó»á°üһЩ״̬ÐÅϢдÈë/usr/tmp/named.statsÎļþÖС£Ã¿¸ô60ÃëÖÓ£¬ninit»áÓñ¾µØnamed½øÐÐÒ»´ÎÓòÃû½âÎö¡£Èç¹û¶Ìʱ¼äÄÚûÓеõ½½á¹û£¬Ëü»áɱµônamed£¬ÖØÐÂÆô¶¯Ò»¸öеġ£

ÎÒÃÇÔÚMITµÄÃû³Æ·þÎñÆ÷ÉϺÍÎÒÃǵÄÓʼþÍø¹Ø(mailhub)ÉÏÔËÐÐÁËÕâ¸ö³ÌÐò¡£ÎÒÃÇ·¢ÏÖËüºÜÓÐÓã¬Äܹ»²¶×½namedµÄÉñÃØËÀÍö»ò½©ËÀ¡£ÕâÔÚÎÒÃǵÄÓʼþÍø¹ØÉϸüÊDz»¿ÉȱÉÙ£¬ÒòΪ¼´Ê¹ÓòÃû½âÎöÖжÏһС»á¶ù£¬ÎÒÃǵÄÓʼþ¶ÓÁÐÒ²»á¸ø³ÅÕ¨ÁË¡£

µ±È»£¬ÕâÀà°ì·¨»áÒý·¢ÕâÑùµÄÎÊÌ⣺Èç¹ûninitÓÐbug£¬ÄÇô¸ÃÔõô°ìÄØ£¿ÄѵÀҲҪдһ¸ö³ÌÐò²»¶ÏÖØÆôninitô£¿Èç¹ûдÁË£¬ÄãÓÖÈçºÎ±£Ö¤ÄǸöÕý³£¹¤×÷ÄØ£¿

¶ÔÓÚÈí¼þ´íÎóµÄÕâÖÖ̬¶È²¢²»ÉÙ¼û¡£ÏÂÃæÕâ¸ömanÊÖ²á×î½ü³öÏÖÔÚÎÒ×ÀÉÏ¡£ÎÒÃÇ»¹²»Äܿ϶¨ÕâÊDz»ÊǸöÍæÐ¦¡£BUGS²¿·ÖºÜÊÇ·¢ÈËÉîÊ¡£¬ÒòΪÄÇÀïÁоٵÄbugÊÇUnix³ÌÐòÔ±×ÜÒ²ÎÞ·¨´Ó´úÂëÖÐÌÞ³ýµÄ£º

NANNY(icon_cool.gif Unix³ÌÐòÔ±ÊÖ²á NANNY(icon_cool.gif

Ãû³Æ
nanny - ÄÌÂ裬ÔËÐÐËùÓзþÎñµÄ·þÎñ

ÕªÒª
/etc/nanny [switch [argument]] [...switch [argument]]

ÃèÊö
Ðí¶àϵͳ¶¼ÎªÓû§Ìṩ¸÷ÖÖ·þÎñ(server)¹¦ÄÜ¡£²»ÐÒµÄÊÇ£¬ÕâЩ·þÎñ¾­³£²»Ã÷²»°×µØ°Õ¹¤£¬Ôì³ÉÓû§ÎÞ·¨»ñµÃËùÐèÒªµÄ·þÎñ¡£Nanny(ÄÌÂè)µÄ×÷ÓþÍÊÇÕÕ¿´(babysit)ºÃÕâЩ·þÎñ£¬±ÜÃâ¹Ø¼ü·þÎñµÄʧЧ£¬¶ø²»ÐèҪϵͳ¹ÜÀíÔ±µÄËæÊ±¼àÊÓ¡£

ÁíÍ⣬Ðí¶à·þÎñʹÓÃÈÕÖ¾Îļþ×÷ΪÊä³ö¡£ÕâЩÊý¾Ý³£»áºÜÌÖÑáµØ³äÂú´ÅÅÌ¡£¿ÉÊÇ£¬ÕâЩÊý¾ÝÓÖÊÇÖØÒªµÄ¸ú×ټǼ£¬Ó¦¸Ã¾¡Á¿±£´æ¡£Nanny»á¶¨ÆÚ°ÑÈÕÖ¾Êý¾ÝÖØ¶¨Ïòµ½ÐÂÎļþ¡£ÕâÑù£¬ÈÕÖ¾Êý¾Ý±»»¯ÕûΪÁ㣬¾ÉµÄÈÕÖ¾Îļþ¾ÍÄܱ»ÈÎÒâ×ªÒÆ×ߣ¬¶ø²»¶Ô·þÎñ¹¹³ÉÓ°Ïì¡£(ÏÖÔÚÕâ³ÉÁËlogrotateµÄÈÎÎñ --me)

×îºó£¬nanny»¹ÌṩÁËһЩ¿ØÖƹ¦ÄÜ£¬Ê¹µÃϵͳ¹ÜÀíÔ±Äܹ»¶ÔnannyÒÔ¼°ËüËùÕÕ¿´µÄ·þÎñ½øÐÐÔËÐÐʱ²Ù×÷¡£

Ñ¡Ïî
...

BUGS
Óиö·þÎñÔÚnannyÖÐ×ö·ÖÀëfork(detaching fork)¡£nanny»á´íÎóµØÈÏΪÕâ¸ö·þÎñËÀµôÁË£¬²»¶ÏÖØÆôËü¡£

µ½Ä¿Ç°ÎªÖ¹£¬nanny»¹²»ÄÜÈÝÈÌÅäÖÃÎļþµÄ´íÎó£¬Èç¹ûÅäÖÃÎļþµÄ·¾¶²»¶Ô»òÕßÄÚÈÝÓдíÎó£¬nanny±ØËÀÎÞÒÉ¡£

²»ÊÇËùÓеÄÑ¡Ïî¶¼±»ÊµÏÖÁË¡£

NannyÒÐÀµÏµÍ³ÌṩµÄÍøÂ繦ÄܽøÐнø³Ì¼äͨѶ¡£Èç¹ûÍøÂç´úÂëÓдíÎó£¬nanny½«ÎÞ·¨´¦ÀíÕâЩ´íÎ󣬿ÉÄܽ©ËÀ»òÊÇËÀÑ­»·¡£

¶Ô²»Îȶ¨Èí¼þ¾­³£ÖØÆô£¬ÕâÒѾ­³ÉÁËMITÑŵäÄȼƻ®(Project Athena)µÄÈÕ³£¹¤×÷£¬ÏÖÔÚËûÃÇÿÐÇÆÚÌìµÄÁ賿4µã¶¼»áÖØÆôAFS(Andrew File System, Ò»ÖÖÍøÂçÎļþϵͳ)·þÎñÆ÷¡£µ«Ô¸Ã»ÓÐÈËÖÜÄ©°¾Ò¹¸ÏдÏÂÖÜÒ»Òª½»µÄ×÷Òµ...

ÔõôÑù£¬Unix±à³ÌºÜÓÐȤ°É£¿¾ªÏÕ£¬´Ì¼¤£¬Í´²¢¿ìÀÖ£¡¸Ã»Ø¼ÒÁË£¬ÐÝϢһϣ¬´óÂéû¾¢ÁË£¬Óк£ÂåÓ¢£»CÓÃÄåÁË£¬ÎÒÃÇ»¹ÓÐC++£¡·ÅÐÄ£¬ÀëËÀ²»Ô¶ÁË¡£

µÚʮՠC++
90Äê´úµÄCOBOL

ÎÊ£º"C"ºÍ"C++"µÄÃû×ÖÊÇÔõôÀ´µÄ£¿
´ð£ºÕâÊÇËûÃǵijɼ¨

¡ª¡ªJerry Leichter

ÔÙûÓбÈC++¸üÄÜÌåÏÖUnix¡°¾ø²»¸øÓû§ºÃÁ³¡±µÄÕÜѧ˼ÏëµÄÁË¡£

ÃæÏò¶ÔÏó±à³Ì¿ÉÒÔ×·Ëݵ½60Äê´úµÄSimulaÓïÑÔ£¬ÔÚ70Äê´úµÄSmalltalkÓïÑÔÉϵõ½¼«´ó·¢Õ¹¡£Ðí¶àÊé»á¸æËßÄãÃæÏò¶ÔÏóÓïÑÔÈçºÎÄÜÌá¸ß±à³ÌЧÂÊ£¬Ê¹´úÂë¸ü½¡×³£¬ºÍ¼õÉÙά»¤·ÑÓᣲ»¹ýÄã±ÂÏëÔÚC++ÀïµÃµ½ÕâЩ¡£

ÕâÊÇÒòΪC++¸ù±¾¾ÍûÀí½âÃæÏò¶ÔÏóµÄʵÖÊ¡£·Çµ«Ã»Óмò»¯Ê²Ã´£¬·´¶øÔö¼ÓÁ˸ü¶àµÄ¸´ÔÓÐÔ¡£ºÍUnixÒ»Ñù£¬C++´Óû±»ºÃºÃÉè¼Æ¹ý£¬Ëü´ÓÒ»¸ö´íÎó×ßÏòÁíÒ»¸ö´íÎó£¬ÊǼþ´òÂú²¹¶¡µÄÆÆÒ·þ¡£Á¬×Ô¼ºµÄÓï·¨¶¼Ã»ÓÐÑϸñ¶¨Òå(ûһ¸öÓïÑÔ¸ÒÕâÑù)£¬ËùÒÔÄãÉõÖÁÎÞ·¨ÖªµÀÒ»ÐдúÂëÊDz»ÊǺϷ¨¡£

°ÑC++±È×öCOBOL£¬ÆäʵÊǶÔCOBOLµÄÎÛÈè¡£COBOLÔÚÄǸöʱ´úµÄ¼¼ÊõÌõ¼þÏ£¬ÊÇ×ö³öÁ˺ܲ»Í¬·²ÏìµÄ¹±Ï׵ġ£Èç¹ûÓÐË­ÓÃC++×ö³É¹ýʲôÊ£¬ÄǾÍËãÊǺܲ»Í¬·²ÏìÁË¡£ÐÒÔ˵ÄÊÇ£¬ºÜ¶à²»´íµÄ³ÌÐòÔ±ÖªµÀ±ØÐ뾡Á¿±ÜÃâC++µÄÉ˺¦£¬ËûÃÇÖ»ÓÃC£¬¶ÔÄÇЩ»ÄÌÆ·Ñ½âµÄ¹¦Äܾ´¶øÔ¶Ö®¡£Í¨³££¬ÕâÒâζ×ÅËûÃDZØÐë×Ô¼ºÐ´¸ö·ÇÃæÏò¶ÔÏóµÄ¹¤¾ß£¬ÒÔ»ñµÃ×Ô¼ºÏëÒªµÄ¹¦ÄÜ¡£µ±È»£¬ËûÃǵĴúÂë»áÏԵü«Îª¹ÖÒ죬ʧȥ¼æÈÝÐÔ£¬ÄÑÓÚÀí½âºÍÖØÓᣲ»¹ýÖ»ÒªÓÐÒ»µã¶ùC++µÄζµÀ£¬¾Í×㹻˵·þÍ·Í·Åú×¼ËûÃǵÄÏîÄ¿¡£

Ðí¶à¹«Ë¾ÒѾ­±»¶àÄêÒÅÁôÏÂÀ´µÄ»ìÂÒÄѶ®µÄCOBOL´úÂë¸ãµÃ½¹Í·ÀöîÁË¡£ÄÇЩת¶øÊ¹ÓÃC++µÄ¹«Ë¾¸Õ¸ÕÒâʶµ½×Ô¼ºÉÏÁ˵±¡£µ±È»£¬ÕâÒѾ­Ì«ÍíÁË¡£Èí¼þÔÖÄѵÄÖÖ×ÓÒѾ­²¥ÏÂÁË£¬½½Ë®Ê©·Ê£¬µÃµ½Ï¤ÐÄÕÕÁÏ£¬¾ÍµÈ×ÅÊ®¼¸Äêºó³¤³É²ÎÌì´óÊ÷ÁË¡£µÈ×ÅÇÆ°É£¡

ÃæÏò¶ÔÏóµÄ»ã±àÓïÑÔ

C++ûÓÐһ˿һºÁ¸ß²ã´ÎÓïÑÔµÄÌØÐÔ¡£ÎªÊ²Ã´Õâô˵£¿ÈÃÎÒÃÇ¿´¿´¸ß²ã´ÎÓïÑÔÓ¦¸Ã¾ß±¸ÄÇÐ©ÌØÐÔ£º

ÓÅÑÅ£ºÔÚ±íʾ·½Ê½¼°ÆäËù±í´ïµÄ¸ÅÄîÖ®¼äÓÐ׿òµ¥Ò×¶®µÄ¹ØÏµ
³éÏ󣺸߲ã´ÎÓïÑÔµÄÿ¸ö±í´ïʽֻ±íʾһ¸ö¸ÅÄî¡£¸ÅÄîÄܹ»±»¶ÀÁ¢±í´ï²¢ÄÜ×ÔÓÉʹÓÃ
Ç¿´ó£º¸ß²ã´ÎÓïÑÔµÄÄܹ»¶ÔÈκξ«È·ÍêÕûµÄ³ÌÐòÐÐΪ½øÐÐÌṩֱ½ÓÁ˵±µÄ±íÊö·½Ê½
¸ß²ã´ÎÓïÑÔʹ³ÌÐòÔ±Äܹ»²ÉÓÃÎÊÌâ¿Õ¼äµÄ·½Ê½ÃèÊö½â¾ö·½°¸¡£¸ß²ã´ÎµÄ³ÌÐòºÜÈÝÒ×ά»¤£¬ÒòΪËüÃǵÄÄ¿µÄÐÔ(intent)Ê®·ÖÃ÷È·¡£¸ù¾ÝÒ»Ðи߲ã´Î³ÌÐò´úÂ룬ÏÖ´ú±àÒëÆ÷Äܹ»Îª¸÷ÖÖÆ½Ì¨Éú³É¸ßЧµÄ´úÂ룬ËùÒԸ߲ã´Î³ÌÐòµÄ¿ÉÒÆÖ²ÐԺͿÉÖØÓÃÐÔ×ÔÈ»»áºÜÇ¿¡£

ʹÓõͲã´ÎÓïÑÔÔòÐèÒª¶Ô¿¼ÂÇÎÞÊýϸ½Ú£¬ÆäÖд󲿷ÖÊǺͻúÆ÷ÄÚ²¿²Ù×÷ÓйصĶ«Î÷£¬¶ø²»ÊÇÒª½â¾öµÄÎÊÌâ±¾Éí¡£Õâ²»µ«Ôì³É´úÂëÄÑÓÚÀí½â£¬¶øÇÒºÜÈÝÒ×¹ýʱ¡£ÏÖÔÚ¼¸ºõÿ¸ô½ñÄê¾ÍÒª¸üÐÂϵͳ£¬¹ýʱµÄ±ØÐ뻨·ÑºÜ¸ß´ú¼ÛÐ޸ĵͲã´úÂë»òÕß³¹µ×ÖØÐ´¡£

¶Ô²»Æð£¬ÄãµÄÄÚ´æÐ¹Â©ÁË

¸ß²ã´ÎÓïÑÔ¶ÔÓÚ³£¼ûÎÊÌâÓÐÄÚÖýâ¾ö·½°¸¡£ÀýÈ磬ÖÚËùÖÜÖªÄÚ´æ¹ÜÀíÊDzúÉú´íÎó×î¶àµÄµØ·½¡£ÔÚʹÓÃÒ»¸ö¶ÔÏó֮ǰ£¬Äã±ØÐëΪËü·ÖÅäÄڴ棬Êʵ±½øÐгõʼ»¯£¬Ð¡Ðĸú×ÙʹÓ㬲¢ÕýÈ·ÊÍ·Å¡£µ±È»£¬Ã¿¼þʶù¶¼Òì³£·¦Î¶¶øÇÒºÜÈÝÒ׳ö´í£¬¼«Ð¡µÄÒ»¸ö´íÎó¿ÉÄܻᵼÖÂÔÖÄÑÐÔºó¹û¡£¶¨Î»ºÍÐÞ¸ÄÕâÀà´íÎóÊdzôÃûÕÑÖøµÄÀ§ÄÑ£¬ÒòΪËüÃǶÔÓÚÅäÖûòʹÓ÷½Ê½µÄ±ä»¯¼«ÆäÃô¸Ð¡£

ʹÓÃδ·ÖÅäÄÚ´æµÄ½á¹¹Ö¸Õë»áÔì³É³ÌÐò±ÀÀ£¡£Ê¹ÓÃδÕýÈ·³õʼ»¯µÄ½á¹¹Ò²»áʹÄãµÄ³ÌÐò±ÀÀ££¬²»¹ý²»Ò»¶¨Á¢¿ÌÍêµ°¡£Èç¹ûδÄܺúøú×ٽṹµÄʹÓÃÇé¿ö£¬ÔòºÜ¿ÉÄÜÊÍ·ÅÒ»¿é»¹ÔÚʹÓÃÖеÄÄÚ´æ¡£»¹ÊDZÀÀ£¡£×îºÃÔÙ·ÖÅäһЩ½á¹¹ÓÃÀ´¸ú×ÙÄÇЩ½á¹¹¶ÔÏó¡£²»¹ýÈç¹ûÄãÌ«±£ÊØ£¬²»È¥ÊÍ·ÅÄÇЩ²»ºÜ¿Ï¶¨Î´ÔÚʹÓõÄÄڴ棬ÄÇôÄã¿ÉҪСÐÄÁË¡£ÄÚ´æÖкܿì¾Í»á³ä³â×ÅÎÞÓõĶÔÏó£¬Ö±µ½ÄÚ´æºÄ¾¡£¬³ÌÐò±ÀÀ£¡£Õâ¾ÍÊǿֲÀµÄ¡°ÄÚ´æÐ¹Â©¡±¡£

Èç¹ûÄãµÄÄÚ´æ¿Õ¼äËéÆ¬Ì«¶à£¬ÄǸÃÔõô°ìÄØ£¿½â¾ö°ì·¨ÊÇͨ¹ýÒÆ¶¯¶ÔÏó¶ÔÄÚ´æÖØÐ¹éÕû£¬²»¹ýÔÚC++ÀïûϷ¡ª¡ªÈç¹ûÄãÍüÁ˸üжÔÏóµÄËùÓÐÒýÓÃ(reference)£¬ÄÇôÄã¾Í»á¸ãÂÒ³ÌÐò£¬½á¹û»¹ÊDZÀÀ£¡£

ºÜ¶àÕæÕýµÄ¸ß²ã´ÎÓïÑÔÌṩÁ˽â¾ö°ì·¨¡ª¡ªÄǾÍÊÇÀ¬»ø»ØÊÕ(garbage collector)¡£Ëü¼Ç¼¸ú×ÙËùÓеĶÔÏó£¬Èç¹û¶ÔÏóÓÃÍêÁË»á¼ÓÒÔ»ØÊÕ£¬ÓÀÔ¶²»»á³ö´í¡£Èç¹ûÄãʹÓÃÓÐÀ¬»ø»ØÊÕ¹¦ÄܵÄÓïÑÔ£¬»áµÃµ½²»Éٺô¦£º

´óÁ¿µÄbugÁ¢ÂíÎÞÓ°ÎÞ×Ù¡£ÊDz»ÊǺÜˬѽ£¿

´úÂë»á±äµÃ¸ü¶ÌС¸üÒ×¶Á£¬ÒòΪËü²»±ØÎªÄÚ´æ¹ÜÀíµÄϸ½Ú²ÙÐÄ¡£

´úÂë¸üÓпÉÄÜÔÚ²»Í¬Æ½Ì¨ºÍ²»Í¬ÅäÖÃϸßЧÔËÐС£

°¦£¬ C++Óû§±ØÐë×Ô¼º¶¯ÊÖÈ¥¼ðÀ¬»ø¡£ËûÃÇÖеÄÐí¶àÈ˱»Ï´ÁËÄÔ×Ó£¬ÈÏΪÕâÑù»á±ÈÄÇЩר¼ÒÌṩµÄÀ¬»ø»ØÊÕ¹¤¾ß¸üΪ¸ßЧ£¬Èç¹ûÒª½¨Á¢´ÅÅÌÎļþ£¬ËûÃǹÀ¼Æ²»»áʹÓÃÎļþÃû£¬¶ø¸üÔ¸ÒâºÍ´ÅµÀÉÈÇø´ò½»µÀ¡£ÊÖ¶¯»ØÊÕÀ¬»ø¿ÉÄÜ»á¶ÔÒ»Á½ÖÐÅäÖÃÏԵøü¸ßЧЩ£¬²»¹ýÄ㵱Ȼ²»»áÕâôȥʹÓÃ×Ö´¦ÀíÈí¼þ¡£

Äã²»±ØÏàÐÅÎÒÃÇÕâÀï˵µÄ¡£¿ÉÒÔÈ¥¶ÁÒ»ÏÂB. ZornµÄ¡¶±£ÊØÀ¬»ø»ØÊյĴú¼Û²âÁ¿¡·(¿ÆÂÞÀ­¶à´óѧBoulder·ÖУ£¬¼¼Êõ±¨¸æCU-CS-573-92)£¬ÎÄÖжԳÌÐòÔ±ÓÃCÊÖ¶¯ÓÅ»¯µÄÀ¬»ø»ØÊÕ¼¼ÊõºÍ±ê×¼À¬»ø»ØÊÕÆ÷½øÐÐÁËÐÔÄܱȽϣ¬½á¹û±íÃ÷C³ÌÐòÔ±×Ô¼ºÐ´µÄÀ¬»ø»ØÊÕÆ÷ÐÔÄÜÒª²îһЩ¡£

OK£¬¼ÙÉèÄãÊǸöá¦È»ÐÑÎòµÄC++³ÌÐòÔ±£¬ÏëʹÓÃÀ¬»ø»ØÊÕ¡£Äã²¢²»¹Âµ¥£¬ºÜ¶àÈËÈÏΪÕâÊǸöºÃÖ÷Ò⣬¾ö¶¨Ð´Ò»¸ö¡£ÀÏÌìÒ¯£¬²Â²ÂÔõô×Å£¿Äã»á·¢ÏÖ¸ù±¾Ã»·¨ÔÚC ++ÖÐÌṩÆäËûÓïÑÔÄÚÖõÄÄÇÑùºÃµÄÀ¬»ø»ØÊÕ¡£ÆäÖÐÒ»¸öÔ­ÒòÊÇ£¬(¾ªÑÈ£¡)C++ÀïµÄ¶ÔÏóÔÚ±àÒëºóºÍÔËÐÐʱ¾Í²»ÔÙÊǶÔÏóÁË¡£ËüÃÇÖ»ÊÇÒ»¿éÊ®Áù½øÖƵÄÀÃÄà°Í¡£Ã»Óж¯Ì¬ÀàÐÍÐÅÏ¢¡ª¡ªÀ¬»ø»ØÊÕÆ÷(»¹Óе÷ÊÔÆ÷)û·¨ÖªµÀÈκÎÒ»¿éÄÚ´æÀïµÄ¶ÔÏ󾿾¹ÊÇʲô£¬ÀàÐÍÊÇʲô£¬ÒÔ¼°ÊÇ·ñÓÐÈË´ËʱÕýÔÚʹÓÃËü¡£

ÁíÒ»¸öÔ­ÒòÊÇ£¬¼´Ê¹ÄãÄÜд¸öÀ¬»ø»ØÊÕÆ÷£¬Èç¹ûÄãÓÃÁËÆäËûδʹÓÃÀ¬»ø»ØÊÕ¹¦ÄܵĴúÂ룬Ä㻹Êǻᱻ¸Éµô¡£ÒòΪC++ûÓбê×¼µÄÀ¬»ø»ØÊÕÆ÷£¬¶øÇÒºÜÓпÉÄÜÓÀÔ¶Ò²²»»áÓС£¼ÙÉèÎÒдÁËÒ»¸öʹÓÃÁËÎÒµÄÀ¬»ø»ØÊÕ¹¦ÄܵÄÊý¾Ý¿â³ÌÐò£¬ÄãдÁËÒ»¸öʹÓÃÄã×Ô¼ºµÄÀ¬»ø»ØÊÕ¹¦ÄܵĴ°¿Úϵͳ¡£µ«Äã¹Ø±ÕÒ»¸ö×°ÓÐÎÒµÄÊý¾Ý¼Ç¼µÄ´°¿Ú£¬ÄãµÄ´°¿Ú²»»áȥ֪ͨÎÒµÄÊý¾Ý¼Ç¼£¬¸æËßËüÒѾ­Ã»ÓÐÈËÒýÓÃËüÁË¡£Õâ¸ö¶ÔÏ󽫲»»á±»ÊÍ·Å£¬Ö±µ½ÄÚ´æºÄ¾¡¡ª¡ªÄÚ´æÐ¹Â©£¬ÀÏÅóÓÑÓÖ¼ûÃæÁË¡£

ѧÆðÀ´À§ÄÑ£¿Õâ¾Í¶ÔÁË

C++ºÍ»ã±àÓïÑÔºÜÏàÏ󡪡ªÄÑѧÄÑÓã¬ÒªÏëѧºÃÓúþ͸üÄÑÁË¡£

ÈÕÆÚ: Mon, 8 Apr 91 11:29:56 PDT
·¢ÐÅÈË: Daniel Weise <daniel@mojave.stanford.edu>
ÊÕÐÅÈË: UNIX-HATERS
Ö÷Ìâ: From their cradle to our grave (´ÓËûÃǵÄÒ¡Àºµ½ÎÒÃǵķØÄ¹)

Ôì³ÉUnix³ÌÐòÈç´Ë´àÈõµÄÒ»¸öÔ­ÒòÊÇC³ÌÐòÔ±´ÓÆôÃÉʱÆÚ¾ÍÊÇÕâô±»½ÌÓýµÄ¡£ÀýÈ磬Stroustrup(C++Ö®¸¸)µÄ¡¶C++±à³ÌÓïÑÔ¡·µÚÒ»¸öÍêÕû³ÌÐò (¾ÍÊÇÄǸö300K´óСµÄ"hello world"³ÌÐòÖ®ºóµÄÄǸö)ÊÇÒ»¸öÓ¢ÖÆ/¹«ÖÆ×ª»»³ÌÐò¡£Óû§Óýáβ"i"±íÊ¾Ó¢ÖÆÊäÈ룬Óýáβ"c"±íʾ¹«ÖÆÊäÈë¡£ÏÂÃæÊÇÕâ¸ö³ÌÐòµÄ¸ÅÒª£¬ÊÇÓÃÕæÕýµÄ Unix/C·ç¸ñдµÄ£º

#include <stream.h>

main() {
[±äÁ¿ÉùÃ÷]
cin >> x >> ch;
;; A design abortion.
;; ¶ÁÈëx£¬È»ºó¶ÁÈëch¡£

if (ch == 'i') [handle "i" case]
else if (ch == 'c') [handle "c" case]
else in = cm = 0;
;; ºÃÑùµÄ£¬¾ö²»±¨¸æ´íÎó¡£
;; Ëæ±ã×öµã¶ùʲô¾Í³ÉÁË¡£

[½øÐÐת»»]

Íùºó·­13Ò³(µÚ31Ò³)£¬¸øÁËÒ»¸öË÷Òý·¶Î§´Ónµ½mµÄÊý×é(¶ø²»ÊÇ´Ó0µ½m)µÄʵÏÖÀý×Ó¡£Èç¹û³ÌÐòԱʹÓÃÁ˳¬³ö·¶Î§µÄË÷Òý£¬Õâ¸ö³ÌÐòÖ»ÊÇЦæÒæÒµØ·µ»ØÊý×éµÄµÚÒ»¸öÔªËØ¡£UnixµÄÖÕ¼«ÄÔËÀÍö¡£

Óï·¨µÄ͸ùÌǽ¬(Syrup of Ipecac£¬Ò»ÖÖ¶¾Ò©)

Óï·¨ÌÇÃÛ(Syntactic sugar)ÊǷֺŰ©Ö¢µÄ×ï¿ý»öÊס£

¡ª¡ªAlan Perlis

ÔÚʹÓÃC±à³ÌÓïÑÔÖÐËùÄÜÓöµ½µÄËùÓÐÓï·¨´íÎ󼸺õ¶¼Äܱ»C++½ÓÊÜ£¬³É¹¦±àÒë¡£²»ÐÒµÄÊÇ£¬ÕâЩÓï·¨´íÎó²¢²»×ÜÄÜÉú³ÉÕýÈ