´òÓ¡

[תÌû] UnixÍ´ºÞÕßÊֲᣬѧϰµÄ¹ý³ÌÓ¦¸ÃÊÇÓÐȤµÄ

UnixÍ´ºÞÕßÊֲᣬѧϰµÄ¹ý³ÌÓ¦¸ÃÊÇÓÐȤµÄ

Ò»±¾ºÜÓÐȤµÄÊé, ÊÇÄÇЩÓùßUNIXµÄÈ˶ÔUNIXµÄ¸÷ÖÖÖ¸Ôð,Ú®»Ù,áÂîºÍ³°Ð¦. ÊÇÓɰ®¶øÉúµÄºÞ. ¼´Ê¹µ±³ÉÒ»±¾¸ß¼¶Ð¦»°Êé,Ò²ÊǺÜÓмÛÖµµÄ.
UNIXÍ´ºÞÕßÊÖ²á
By Simson Garfinkel, Daniel Weise, Steven Strassmann
µÚÒ»ÕÂ UNIX
ÊÀ½çÉϵÚÒ»¸öµçÄÔ²¡¶¾
¡°²®¿ËÀûµÄÁ½Ïî×îÖøÃûµÄ²úÆ·ÊÇUNIXºÍLSD (Ò»ÖÖ¶¾Æ·)£¬ÎÒÏëÕâ²»ÊÇÇɺϡ±
²¡¶¾ÒÀÀµÓÚ΢СµÄ¸öÌåºÍÇ¿´óµÄÊÊÓ¦ÐÔµÃÒÔÉú´æ¡£ËüÃDz¢²»¸´ÔÓ£ºËüÃÇûÓÐΪºôÎü£¬Ð³´úл£¬¼¡Ìå»î¶¯µÈ¹¦ÄÜÌṩʲô£¬Ö»ÓÐ×ã¹»µÄDNA»òRNAÒÔ¹©·±ÑÜ¡£±ÈÈ磬·ÎÑײ¡¶¾±ÈÆðËüÃÇÈëÇÖµÄϸ°ûҪСµÃ¶à£¬µ«ËüÃÇÔÚÿ¸ö·ÎÑ×Á÷Ðм¾½Ú¶¼Äܹ»²úÉúеıäÖÖ£¬Ôì³ÉÎÞÊýÈËËÀÍö¡£
Ò»¸öºÃ²¡¶¾µÄÌØµãÊÇ£º
* ¸öͷС
²¡¶¾×öµÄÊÂÇé²»¶à£¬ËùÒÔ²»ÐèÒªºÜ´ó¡£ÓÐÈËÈÏΪ²¡¶¾²»ÊÇÉúÎֻÊÇһЩÓÐÆÆ»µÐÔµÄËáºÍµ°°×ÖÊ¡£
* ¿ÉÒÆÖ²ÐÔ
²¡¶¾¾­³£±äÒ죬ÒÔ±ãÒÔ²»Í¬µÄ·½Ê½¹¥»÷²»Í¬µÄϸ°û¡£¾Ý˵AIDS¾ÍÊÇÓɺï×ÓÉíÉϵIJ¡¶¾±äÒì¶ø³ÉµÄ¡£
* ºÄ¾¡¼ÄÖ÷µÄ×ÊÔ´
* ¿ìËÙ±äÒì
UNIX¾ßÓÐÒÔÉÏËùÓÐÓŵ㡣ÔÚËü¸Õµ®Éúʱ£¬ºÜС£¬¹¦Äܲ»¶à£¬È±·¦ÕæÕý²Ù×÷ϵͳËùÐèÒªµÄ¹¦ÄÜ£¨ÈçÎļþÓ³É䣬¸æËßIO£¬½¡×³µÄÎļþϵͳ£¬Éè±¸Ëø£¬ºÏÀíµÄ½ø³Ì¼äͨѶ£©£¬ËüµÄÒÆÖ²ÐԺܺá£UNIXºÄ¾¡Ö÷»úµÄ×ÊÔ´£¬Ã»ÓÐϵͳ¹ÜÀíÔ±µÄʱʱºÇ»¤£¬UNIX»á²»¶Ï¿Ö»Å(panic)£¬coredump£¬¹ÒÆð¡£UNIX²»¶Ï±äÒ죺ͬһ¸ö²¹¶¡ÔÚÒ»¸ö°æ±¾ÉϹ¤×÷£¬ÔÚÁíÒ»¸ö°æ±¾ÉϾͲ»ÐС£
UNIXÊÇÓÐÓû§½çÃæµÄ¼ÆËã»ú²¡¶¾¡£
±ê×¼»¯ÄÇЩ²»Ò»ÖµÄ
¡°±ê×¼µÄΰ´óÖ®´¦ÔÚÓÚËü¿ÉÒÔÓкܶࡱ --- Grace Murray Hopper
×Ô´ÓUNIX 80Äê´ú¿ªÊ¼Á÷ÐÐÒÔÀ´£¬UNIX³§ÉÌÒ»Ö±ÔÚŬÁ¦½øÐÐUNIX±ê×¼»¯¹¤×÷¡£SUN, IBM£¬HPºÍDECÔÚÕâ¸öËûÃÇ×Ô¼ºÖÆÔìµÄÄÑÌâÉÏÇã×¢ÁËÊý°ÙÍòÃÀÔª¡£
ΪʲôUNIX³§É̲»Ï²»¶UNIX±ê×¼»¯?
Ðí¶àÓû§Êܹ»Á˸´ÔÓ·±¶àµÄUNIX£¬×îÖÕÖ»ºÃʹÓÃWindows£¬ÒòΪËûÃǵÄÕâ¸öUNIXÎÞ·¨Ö§³ÖÄǸöUNIXÉϵÄÓ¦ÓóÌÐò¡£
Èç¹ûUNIX±ê×¼»¯ÁË£¬Ë­»¹»áÂòSUNµÄ»úÆ÷ÄØ
±êÌâ: µÚ¶þÕ »¶Ó­ÐÂÓû§
»¶Ó­ÐÂÓû§ÈçͬÓÃÒ»°ÑÉÏÁËÁù¿Å×Óµ¯µÄ×óÂÖÇ¹Íæ¶íÂÞ˹ÂÖÅ̶Ä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Ôø±»ÎʵÀÈç¹ûËûÄÜÖØÐÂÉè¼ÆUNIXËû½«×öʲôÐ޸ģ¬Ëû»Ø´ð˵£º¡°ÎÒ»áÔÚcreatÃüÁîºó¼ÓÉϸöe¡£¡±£©£¬¿Æ¼¼ÔÚÍØ¿íÎÒÃǵÄÑ¡ÔñµÄͬʱ£¬Ò²ÄÜÏÞÖÆÎÒÃǵÄÑ¡Ôñ£¬´ËÒ»ÀýÒ²¡£
20¶àÄê¹ýÈ¥ÁË£¬»¹ÓÐʲôÀíÓÉÑÓÐøÕâÒ»´«Í³ÄØ£¿ÀíÓɾÍÊÇ¡°ÀúÊ·µÄÎÞ¿ÉÌæ´úµÄÁ¦Á¿¡±£¬ÀúÊ·¾ÍÊÇÄÇЩ´æÔڵĴúÂëºÍ½Ì¿ÆÊé¡£Èç¹ûÒ»¸ö³§ÉÌÓÃremoveÌæ´úÁËrm£¬ÄÇôËùÓÐUNIX½Ì¿ÆÊé¾Í²»ÊÊÓÃÓÚÕâһϵͳÁË£¬Ã¿¸öʹÓÃrmµÄshell½Å±¾¶¼ÐèÒª±»Ð޸ġ£¶øÇÒÕâÒ²²»ºÏPOSIX±ê×¼¡£
Ò»¸öÊÀ¼Íǰ£¬´ò×Ö¸ßÊÖÓÉÓÚ»÷¼ü¹ý¿ì£¬¾­³£°Ñ´ò×Ö¼ü±ú½ÁÔÚÒ»Æð£¬¹¤³ÌʦÉè¼ÆÁË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Äê¾ÍÌá³öÁË¡°»ØÊÕÕ¾¡±µÄÏë·¨£¬¶øTenexÔçÔÚ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.questionsÉϵÄ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: [email=RISKS-%3Ca%20href=]LIST@kl.sri.com[/email]">RISKS-LIST@kl.sri.com
Subject: ¡°Single Keystroke¡±
ÔÚUNIXÉÏ£¬¼´Ê¹ÊÇÓо­ÑéµÄÓû§Ò²»áÎóÓÃrm¡£ÎÒ´ÓÀ´Ã»ÓÐÎóɾ³ý¹ýÎļþ£¬¿ÉÊÇÓÐÒ»Ì죬ÎÒÓÃ!rÖØ¸´Ö´ÐÐÒ»¸öÀúÊ·ÃüÁÎÒ¾ªÑȵط¢ÏÖ±»ÔËÐеÄÊÇ¡±rm ¨Cr *¡±¡£
Ϊʲô²»ÄÜÓиöûÓÐhistory¹¦ÄܵÄshell?
ÎÒ»¹Ìýµ½¹ýÒ»¸öÓû§ÊÔͼɾ³ýÒ»¸öÃû½Ð¡±*¡±µÄÎļþ£¬ºÃÔÚËûûÓÐȨÏÞ¡£
Õâ¸öÓû§»¹ÏëÐÞ¸ÄshellÀ´±ÜÃâ¶Ô*½øÐÐÕ¹¿ª¡£²»ÐÒµÄÊÇ£¬Õâ¸ö²¹¾ÈÈçͬÊÇÔÚÉøË®µÄǽÉÏÔÙË¢Ò»²ãÆá£¬Öα겻Öα¾¡£


[ ±¾Ìû×îºóÓÉ JadeBirdII ÓÚ 2007-3-28 17:52 ±à¼­ ]

±ðÍüÁËÎÒÃÇ»¹ÓС¶ Linuxר°æ ¡·

TOP

ÔÚÏß°ïÖú
Óû§¶Á´òÓ¡ÎĵµµÄ´ÎÊý±ÈËûÃ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(SaidBastard)ÈÏΪÈç¹ûÄãÖ»¸øÁËÒ»¸ö²ÎÊý£¬ÄÇôÄã¾ÍÊÇÏëÒª½øÐÐÔÚÏß·ç¸ñת»»¡£²»¹ý±ð׿±£¬Õâ¸öSB¿¼Âǵ½ÁË¿ÉÄÜ´øÀ´µÄÂé·³£¬Ëû±£´æÁËÒ»¸ö±¸·Ýfoo.BAK¡£È»¶øËûÊÇ·ñÖ»ÊǼòµ¥µØ°Ñfoo»»Á˸öÃû×ÖÄØ£¿Ã»ÓУ¬ËûÑ¡ÔñÁË¿½±´(ºÁÎÞÒÉÎÊ£¬ÄǸöдindentµÄ³ÌÐòÔ±ÔÚ×¼±¸±¸·ÝµÄʱºòÒѾ­´ò¿ªÁË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

±ðÍüÁËÎÒÃÇ»¹ÓС¶ Linuxר°æ ¡·

TOP

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Ó¦ÓóÌÐòÖеõ½ÁËÌåÏÖ£¬ÎÒ²»ÏëÁоÙËüÃÇ£¬µ«»¹ÊÇÏëÌáÒ»ÏÂUNIXÉÏ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֮ûÓÐÎĵµ.

±ðÍüÁËÎÒÃÇ»¹ÓС¶ Linuxר°æ ¡·

TOP

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

¡°Ê¹ÓÃUNIX½øÐвÙ×÷ϵͳ½ÌѧµÄÒ»¸öºÃ´¦ÊÇ£¬Ñ§ÉúµÄÊé°üÄÜ×°ÏÂËùÓеÄUNIXÔ´´úÂëºÍÎĵµ¡£¡±

¡ª¡ª John Lions£¬ ÐÂÄÏÍþ¶ûÊ¿´óѧ£¬1976ÄêÔÚ̸ÂÛUNIX°æ±¾6ʱ˵µÄÒ»¶Î»°¡£

¶àÄêÒÔÀ´£¬ÓÐÈý¸ö»ñµÃUNIXÓйØÖªÊ¶µÄ¼òµ¥Í¾¾¶:
ÔĶÁÔ´´úÂë
дһ¸ö×Ô¼ºµÄUNIX
¸øÐ´UNIXµÄ³ÌÐòÔ±´òµç»°£¨»òÊÇ·¢email£©

ºÍºÉÂíʷʫһÑù£¬UNIX±»¿ÚÍ·´«ËÐ×Å¡£Èç¹û²»³ÉΪÄں˺ڿͣ¬Äã¾Í²»¿ÉÄÜÊÇÒ»¸öÑÏËàµÄUNIXÓû§¡ª¡ª»òÕßÖÁÉÙÓ¦¸ÃÔÚÉí±ßÓиö´¥Êֿɼ°µÄÄں˺ڿ͡£ÄǸöȷʵ´æÔÚµÄÎĵµ¡ª¡ªmanÊֲᡪ¡ª²»¹ýÊÇһЩÒѾ­ÖªµÀ×Ô¼ºÔÚ×öʲôÁ˵ÄÈËËùÊÕ¼¯µÄһЩ±¸Íü¼¡£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ÊÖ²á½ö½öÔÚĩβÌṩ¡±SEEALSO¡±Ò»½Ú£¬ÈÃÓû§×Ô¼ºÔÙ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. ÕâÒ»Çо¿¾¹ÊÇÒòΪʲô£¿ÕâÒ»Çо¿¾¹ÊǴӺζøÀ´£¿Ï»طֽ⡣

±ðÍüÁËÎÒÃÇ»¹ÓС¶ Linuxר°æ ¡·

TOP

µÚÈýÕ£ºÈçºÎ²Â²âÃüÁîÑ¡Ïî
ÈçºÎÆÆ½â¹ÖÒìµÄʹÓÃ˵Ã÷
°¸Àý£º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¡£

±ðÍüÁËÎÒÃÇ»¹ÓС¶ Linuxר°æ ¡·

TOP

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Óï·¨ÊÀ½ç¡£

±ðÍüÁËÎÒÃÇ»¹ÓС¶ Linuxר°æ ¡·

TOP

°ëÄêǰµÄÉÏ»ØÊé˵µ½ÄãÈçºÎÈ¥ÍæshellÓÎÏ·£¬¹À¼ÆÏÖÔÚÄãÒѾ­ÍæÄåÁË£¬²»¹ý²»Òª×ż±£¬ÏÂÃæ£¬¸ÃÂÖµ½shellÍæÄãÁË¡£
»¶Ó­À´µ½ÔªÓï·¨(metasyntacitic)¶¯ÎïÔ°
CShellµÄÔªÓï·¨²Ù×÷·û´øÀ´ÁË´óÁ¿ºÍÒýÓÃÓйصÄÎÊÌâºÍ»ìÂÒ¡£Ôª²Ù×÷·ûÔÚÒ»¸öÃüÁî±»Ö´ÐÐǰ¶ÔÆä½øÐÐת»»¡£ÎÒÃǰÑÕâЩ²Ù×÷·û½Ð×öÔª²Ù×÷·ûÊÇÒòΪËüÃDz»ÊôÓÚÃüÁîµÄÓï·¨³É·Ö£¬ËüÃÇ×÷ÓÃÓÚÃüÁî±¾Éí¡£´ó¶àÊý³ÌÐòÔ±¶ÔÔª²Ù×÷·û(ÓÐʱҲ½Ð×öescapeoperators)²¢²»Ä°Éú¡£±ÈÈ磬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¡°×¨¼Ò¡±£¬Ò²ÒªÔβËÁË¡£ÏÂÃæÔÙÀ´¿´¿´MiltEpsteinµÄÕâ¸öÀý×Ó£¬ËûÏëд¸ö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¡£

±ðÍüÁËÎÒÃÇ»¹ÓС¶ Linuxר°æ ¡·

TOP

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

±ðÍüÁËÎÒÃÇ»¹ÓС¶ Linuxר°æ ¡·

TOP

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%

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

±ðÍüÁËÎÒÃÇ»¹ÓС¶ Linuxר°æ ¡·

TOP

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

¡ª¡ªPatrick Sobalvarro

ÔÚÒ»¸öÅÓ´óµÄÎļþϵͳÖÐÒÅʧ¸ö°ÑÎļþÊdz£ÓеÄÊÂ(ÏëÏñһϴóº£ÀÌÕë)¡£ÏÖÔÚÓÉÓÚ¸ü´ó¸ü±ãÒ˵ĴÅÅ̵ijöÏÖ£¬PCºÍAppleÓû§Ò²Óöµ½ÁËÕâÑùµÄÎÊÌ⡣ΪÁ˽â¾öÕâ¸öÎÊÌ⣬ϵͳÍùÍùÌṩһ¸öËÑË÷³ÌÐò£¬¸ù¾Ý¸÷ÖÖÌõ¼þ(±ÈÈçÎļþÃû³Æ£¬ÀàÐÍ£¬´´½¨Ê±¼äµÈµÈ)½øÐÐÎļþËÑË÷¡£AppleMacintoshºÍ΢Èí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Õ¾ÍÔÚ»¶ÉùЦÓïÖÐÕâô½áÊøÁË¡£Ï»ØÊéÎÒÃǾÍÒª¿ªÊ¼±à³ÌÁË£¬»¹¼ÇµÃСʱºòÄǸö¿É°®ÃÔÈ˵Ļ¤Ê¿°¢ÒÌÊÇÔõô¶ÔÄã˵µÄô£¿
¡°Å£Å£±ðÅ£¬²»Ì۵ġ£¡±

±ðÍüÁËÎÒÃÇ»¹ÓС¶ Linuxר°æ ¡·

TOP

µÚ¾ÅÕ ±à³Ì
¡°Å£Å£±ðÅ£¬²»Ì۵ġ£¡±
±ðÈÇ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


±ðÍüÁËÎÒÃÇ»¹ÓС¶ Linuxר°æ ¡·

TOP

εΪ׳¹ÛµÄ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ÌÐòÔ