Linux Shell ¼ò½é
°æÈ¨ÐÅÏ¢
                                ×÷Õß                                             δ֪
                                ÎÄÕ³ö´¦                                                                                               »Æ×ì ó¶ ÂÛ̳                                                                          flaboy ÐÖתÌù
                                Îĵ ÖÆ×÷                                                                                               ¾Ü øÕý°æ

                                  ±¾Îĵ ÚÈÝÀ´Ô Ó                          MUO µÄ Basics ²¿·Ö                                               ÆäÔ-ʼӢÎİæ¿ÉÒ ´ ÕâÀï»ñµÃ                            http://www.
   mandrakeuser.org/docs/ ÖÐÎİæÀ´×ÔâÏþ¹µ                                                                                                 CMUO http://dummy.linux.net.cn/~xgwu/c
   muo/ MUO ÊÇ                                            Mandrake Linux http://www.mandrakelinux.com/ ΪÓû§ÌṩµÄÈëÅÊÖ
²á            ÆäÄÚÈÝʵÓò¢ÇÒ±¸üР                                              ·Ç³£ÊºÏõѧÕß×öÈëÃŲο¼                                                                Óë³£¼ûµÄ¸÷Ö Linux ½Ì ³Ì²»Í¬
   MUO ½éÉܸø                                       Linux ³õѧÕßµÄÊÇϰ                                 Linux µÄ·½¨¶øÇÔ³¸öÏ͵ÄÃèÊ                                                  Õâ¶Ô¸÷Ö ÓÐ×Åǧ
   ²îÍò±ðµÄ                                      Linux ·¢ аæµÄѧÏÓÈÎªÖØÒ                                  ±¾ÎÄàÒëÕûÀíʶÔϹØÂ½Ú×öÁËÓ¦µÉ¸´
   È¥µôÁËÕë¶Ô                                      Mandrake Linux µÄ²¿·ÖÚÈÝ

                                              ʹÓà                                                   Shell
                                              ÒÔϽ« éÉܲ¢ âÊÍ»ù±¾µÄ                                                                                                                                                                                                                                                             shell ÃüÁîºÍ»úÖÆ
                                        µÚһƪ                                                                                                                    ³¬¼¶¹¤¾ß                                                                                                               Terminals xterms ºÍ                                                                                                                            Shells
                                              ³¬¼¶¹¤¾ß
                                              Äú»òÐíÌý¹ÕâÑùµÂÛ÷                                                                                                                                                                                                                                                            ÃüÁîÐ                      (the mommand line)Ôç ¾ÍÒÑ-¹ýʱÁË                                                                                                                                                                                                                         ÄǶ«Î÷ÉñÃØÙâµ
                                        µÈ                                                                      ÓÐ ©ÈËÉõÖÁ¾ µÃ²Ù×÷Ï Í³ ÐÓ¦¸ » Õâ ©ÃüÁî²Åº
                                                                Ê µ ÇÉÏ                                                                                                         Äú¿ÉÒÔ²»¶®Èκ                                                                                                                                     shell                                          ¾ÍÄÜʹÓà                                                         Linux                                                                                   ÄúÆô¶¯ÏµÍ³ºó¿ÉÒÔÖ±½Ó øÈë                                                                              X Wi
                                                                     ndow                                                                                  ×îºóÔÚ                                                        X Window Ϲػú
                                                                ÎÒ¼áÐÅ                                                                                            Óà                           Linux ¶ø²»®                                                                                                                        shell                   ¾ÍÏ󿪳µÖ» áÓà ·                                                                                                                                                                  (first gear)Ò»Ñù                                                                 µ±È»  ×î³õ¿´Æð
                                        À´                                                Ö±½Ó¶ø¼òµ¥                                                                                                                      ÔÚ´ó¶àÊýÇé¿öÏ ¼¹ÜÓà                                                                                                                                                                                 µ«ËÙ¶ÈÂý                                                                         ¶øÇÒÎÞ·¨Õæ ýÌåÑé¼ÝÊ»µÄÀÖȤ
                                           ¶Ô                                  ÃüÁîкÜÓȤ                                                                                                                                                               ¾ÍÏóÓÃÒ»´¶ÑÊÕ¼¯µ½Äý                                                                                                                                                                                                  ¾¹¿ÉÒÔÍê³Ðí¶àâÏë²»µ½Ä´Ù                                                                                                                                        һЩ            ¼«
Æä¸´ÔӵŤ×÷                                                                                                                                                                                         Ö»Ð輸ÃüÁî¾Í¿ÉÒÔ½âö                                                                                                                                                                                              ÕâÊÇÒòΪ                                                                        ÔÚ Unix ÖÐ                                                                                 shell ¿É²»ÊǼòµ¥ÄÃü
                                           Áî½âÊÍÆ÷                                                                                                                              µäÐÍ ÄÓ                                                                                                  Windows ÖÐµÄ                                                                                     DOS                                                       ¶øÊÇÒ»¸öÈ«¹¦Äܵ ±à³Ì ·¾
                                                                Õâ²¢ »Ò ζ×Å                                                                                                                     shell ·Ç³£ÈÝÒ×ѧͨ                                                                                                                                                        ÄúÖªµÀ                                                        ºÃʶàÄ¥                                                                                                                   Õ⻹ÊÇÒª ¨µã ¤·ò Ä                                            ;-) µ«ÇëÏà
                                                                ÐÅÎÒ                                  Õâ¾ø¶Ôֵà                                                                                                                                                             ÄúÔںܶÌʱ¼ä                                                                                                   ¾ÍÄܱ»Ò´ó°ïÃÅ⺵õΪ                                                                                                                                                                                  Unix wizard Ææ²Å
                                           *grin*
                                           ΪÁË µÃ÷                                                                                                                        shell                                                  ÕâÀïÐèÒª » ©±³¾°Ö ʶ
             Terminals, xterms Óë                                                                                                                                                                                                                                                          Shells
                                 ×·Ëݵ½                                                                                                                   Unix µ®ÉúÄǸöê´                                                                                                                                                             µ±Ê»¹ÃÓÐÏÖÔÚÁ÷Ä                                                                                                                                                "¸öÈ˼Æã»ú                                                                                " ±»³ÆÎª¼ËãúµÄ÷
                                           »¹ÊÇÍÌ Â´Å øÓë                                                                                                                                                                magnetic memory                                                                                                                                                                       ÓÃÊõ ï                             'core'À´±íʾϵͳ                                                                                                                            memory µÄÅÓÈ»´óÎï                                                D
                                                                EC ¹«Ë¾                                                                                                     ÚÔÖÏ                  ĵ                                                   Compaq ÍÆ³öµÄ                                                                                                                       PDP-11 Ìå»ýС                                                                                                                                                                               ±»³ÆÎª  mini ¶øÇÒ¼Û¸ñµ×                                    ÔÚ´ó
             ѧÖÐÒýÆðÁ˾޴óµÄ·Ïì                                                                                                                                                                                                                                                            ºÜ¶àѧУֱµ½ÄÇʲÅÂòÃÆðһ̨¼Ëãú                                                                                                                                                                                                                                                                     PDP-11 ÎïÃÀ¼ÛÁ®                                         Ö»ÓÐ
                                                                             10000$

ÕâЩ»úÆ÷µÄ²Ù×ÏͳÓÉã±àïÑÔ                                                                                                                                                                                                                         »úÆ÷ÓïÑÔд³É                                                                                                    ËùÒÔÐÆðÀ´§ÂÊºÜ¸ß                                                                                                                                                                µ«¶¼ÎÞ·¨ÒÆÖ²                                                                                      (u
nportable)                                                                               ÿ¼Ò ÆËã»ú¹« ¾¶ ¸ø×Ô¼ºµÄ Æ÷ÅäÉ϶ÀÓÐ ²Ù× µÍ³                                                                                                                                                                                                                                                                                                                                                            È»ºóÔÙÏúÊÛ

ÕâÖ±¿×¾µÄ÷·¨ºÜìÍ»ÈËÃÇÒʶ½Á                                                                                                                                                                                                                                                                  ÓÚÊǾͿª¼Ð˽¨Ò»¸öÉÔ²¬Æ·Åú÷ϵÄ
²Ù×÷ϵͳ                                                                         1969 Äê                                                                      Ken Thompson ¿ªÊ¼Ð´ºóÀ³ÉÎ                                                                                                                                                                                                                           Unix µÄÚһдúÂë                                                                                                                                                            Thompso


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          1
n Ôø¾-²Î¼ÓÁËÒ»¸öÏîÄ¿                                                                                                                                                                                                              MULTICS                                                    Unix ÊÇÓëÕâйصÄÒ»¸öÍæ¦´Ê                                                                                                                                                                                                               Æäʵ                                                   Dennis Rit
                                                    chie ΪÕâ¸öеIJÙ×÷ÏͳÉè¼ÆÁËÒ»ÖеıàÌÓïÑÔ                                                                                                                                                                                                                                                                                                                                                         -- C ÓïÑÔºó                                                                      ÊÂÇé²ÅÕæ ý¿ª ¼

ËäÈ»                                                                                               Unix µÄЧÂʲ»¼°Ô-À´Ù×÷Ïͳ                                                                                                                                                                                                                                                                 µ«ÓÐÈý¸öÍ»³ÄÅã                                                                                               ¿ÉÒÔÈÎâÆÖ²µ½äËû»ú÷
                                                                ÆäÖÐµÄ                              C ÓïÑÔ´ó ¼ò»¯Á˱à³Ì                                                                                                                                                                                   ¶øÇÒÕâЩ ¼                                                                                                       free                            ºÜ¿ì              È«ÃÀ¹úµÄ´óѧ¶¼ ¦×Å¿ªÊ Î »ú
                                                                Æ÷°²×                                Unix

                                                                ÖÕ¶Ë                                   Terminals

                                                                Unix ÊÇ¿ÉÒÔÚÐí¶àÖ»úÆ÷Ï˵IJÙ×ͳ                                                                                                                                                                                                                                                                                                                             µ«ÈËÃÇÓÖ çºÎʹ ÕâЩ»úÆ÷ÄØ                                                                                                                                                                                ËûÃÇÊͨ¹ý
                              ÑÆÖÕ¶ËÀ´Á¬½ÓµâЩ»ú÷                                                                                                                                                         Ò²¾ÍÊÇÓüüÅÌ       ÏÔʾÆ÷¼°×ã¹»µÄ                                                                                                                                                                                                                                 electronics                                                                                                          µç×ÓÔª¼þ                                              ×é³É
             µÄ»úÆ÷ÓëÖÐѼËã                                                                                                                                                                        (central computer)ÏàÁ¬                      ÔÚÕâЩֶËÉÏ                                                                                                                                                                                                                   Óû§¿ÉÒÔÇ×Ö·û                                                                                                                                                      teletypy
                                                                Õâ¾ÍÊÇ×Ö·û´®                                                                       'tty'±íʾÖÕ¶ËÉ豸Îļþ                                               ºÍ 'getty'ÃüÁîµÄÃû³ÆÀ´ú

             Äú¿É Ü»áÎÊ                                                                                                                            ÏÖÔÚÕâЩ¶«Î÷ ¼ Ä ù                                                                                                                                                                                     ÕâÐ©Ö ¶ËµÄ³§¼ÒÎÞ·¨´ï É »Ïî× ÖÕ±ê                                                                                                                                                                                                                  ×¼                                              Õâµ¼ÖÂÿ
             ÖÅÆ×ÓµÄն˼и÷Ôü̲¾                                                                                                                                                                                                                                                                                           ¸÷×ÔµÄÚÆÁ»ÉÏʾַû½¨                                                                                                                                                                                                                        ·¢ËÍ»ò½ÓÊղôÐź
                                 ±íʾ ²Ã´×Ö·û                                                                                                                            ¿ØÖÆ´úÂëµÈ

             ΪÁ˱ÜÃâÕ Ð©»ìÂÒ                                                                                                                                                                      ¾Í´ ½¨ÁËÒ»¸öº¬ÓÐ ù ² Í ÖÕ¶ËÌØ Ô                                                                                                                                                                                                                                      µÄ (capability)Îļþ                                                                                                                                Õâ¾ÍÊÇ                                      'termc
             ap' ÓÃÒ»¸ö¹¤¾ß´ò¿ª                                                                                                                                                                                                      '/etc/termcap'ÇÆÇ                                                                                                                                                        ¿É±ðÏÅ× ÁË                                          ;-)

                                                                Linux ÖÕ¶Ë´óàÊýÓà                                                                                                                  'vt100'»ò                                                                              'linux'×÷ΪÖÕ¶ËÀàÐÍ
                                                                xterms

ÔÚ°ËÊ®Äê´ú³õÆ                                                                                                                                                                         ²úÉ ÁËÒ»¸ö                                                                                            Unix µÄͼÐÎ×Óϳ                                                                                                                                            -- the X Window System ¾ÅÊ®Äê´ú
ÔçÆÚ                                                                                                   ΪÁ˸üºÃµØÊ ÏÖ»ùÓÚ                                                                                                                                                                Intel µÄ           Unix ÀàÏµÍ³É                                                                                                                                    Èç FreeBSD NetBSD Linux                                                                                                                                                                                       µÄ
Ó¦ à                                                                                                   ²úÉ ÁËÒ»¸öϵͳ·Ö §                                                                                                                                                              -- XFree86

         X Window ÖÐÒ»¸öºÜ´óµÄæÊÇ¿ÉÒÔËжà¸öéÄâ                                                                                                                                                                       (virtual)ÖÕ¶Ë                                                                                                                                                                                                                                                                                            ÉõÖÁÔÚ                                                           X Window ϾÍ
ÓÐÕâô¸ö ¦ ³Ì ò                                                                                                                                                            --'xterm' Äú½«·¢ÏÖ         'xterm'ºÍ 'virtual terminal'ÔںܶàÇé¿öϼÊÒ»ÑùµÄ
ÓÐµÄØ·½Ë           '´ò¿ªÒ»¸ö                                                                                                                                                    xterm' ÆäʵÄú²»Ç·ÒªÓà              'xterm'³ÌÐò             ÆäËûµÄÖÕ¶£â÷                                                                                                                                                                                                                                                                                                                                                                                          (terminal
         emulator) Èç                                                                                                                                                   rxvt konsole aterm eterm wterm µÈ                           Ò»ÑùÓÐ §

                                                    ÖÕ¶ËÄ£âÆ÷                                                                      ÓÖ³ÆÎªÐéÄâÕ¶Ë                                                                                                                                                 ͨ¹ýα                                           (pseudo) tty É豸                                                                                                 -- pty ÓëϵͳàÁ¬                                                                                                                        ²¢ÇÒʹÓÃ×Ô¼º
                              µÄÏÔʾ±ê×¼                                                                                    -- xterm                                                                                                   Õâµ¼Ö²»Í¬Ä¶Ë£Æ÷¿ÉÜÔÚÒЩ°´üò³ÌÏæ¸¡î±ð
                                                                ÕâÈ¡¾öÓÚÄ£ Æ÷¶à´ó³Ì ÈÉÏ×ñÊØÁË                                                                                                                                                                                                                          'xterm'µÄÏÔʾ±ê×¼

             Shells

             ΪÁËÔÚÖնгÌò                                                                                                                                                                                                                                                     ÐèÒª            shell                                                 shell ÊDzÙ×÷ϵͳÄÒ»¿·Ö                                                                                                                                                                              ÓÃÀ´ë»§ò½µ                                                                                                            ²¢
             ÇÒ¿É ÔÓÃÀ´Ð-µ÷¸ ö üÁî

µÚÒ»¸öÕæýÄ                                                                                                                                                              Unix shell -- 'sh' Òà³ÆÎª                                                                                                                                                                  'Bourne shell' µ®ÉúÓÚ    1975 Äê   ×÷ÕßÊÇ                                                                                                                                                                                                                                                           Steve
                                                                                                Bourne                      ºÜ¿ì                                           ³öÏÖÁËÆä û    shell                                                                                                                                                          Èç»ùÓÚÔ-ʼ          'Bourne shell'µÄ 'ksh' 'zsh'                                                                                                                                                                                                                                         ºóÕß³£ÓÃ


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    2
×÷ ¨Êô    Unixes ϵͳÖÐıê×¼                                                                                                                                                                                                                                   shell                                                                                            Ò²ÓÐ » ©´                                                                                                                            C ÓïÑÔÖÐ ÜÉú³öÀ´µÄ                                                 shell                                         Èç      'csh'
                                           »ò 'tcsh'

     ÔÚ                                                                                      Linux ÖÐ                                           ±ê×¢µÄ                      shell ÊÇ                                                                                                                     'bash'                                                                        ¼´                                                                                         the GNU Bourne-Again Shell  ÓеãÍæ ¦ Äζ
                                                                µÀ                                                               Õâ¸ö                                 shell ¹¦Äܷdz£¿´ó                                                                                                                                                                             ÉõÖÁÓÐÈ˾µÃÌ«Å´ó                                                                                                                 ѹËõµÄ  man page ¾ÍÓÐ
                                                                                            50 KB

                                           Shell Æð²½

                       Ê×ÏÈ               ÓÐÒ»µã ¡Ë Ã÷                                                                                                                                                                                                           ÔÚÆ½³£Ó¦ ÃÖÐ                                                                                                               ½¨ÒéÄú²» ªÓà                                                                                                                                             'root'ÕʺÅÔËÐ                               shell                    Èç¹ûÄú» ÊÇÐÂ
                       ÊÖ   ÕâÒ»µãÓÈÆäª×¢                                                                                                                                                                                                                                       ×÷ΪÆÕͨÓû§                                                                                                                                                        ²»¹ÜÄúÓÐÒâÊÇÎÞ                                                                                                             ¶¼ÎÞ·¨Æ»µÏͳ                                                             µ«Èç¹û                   ÊÇ
                       'root' ÄǾͲ»¬ÁË                                                                                                                                                                                             Ö»ÒªÇü¸ ö× Ä                                                                                                                                                           ¾Í¿ÉÄܵ¼ÖÂÔ ÑÐ ºó¹û

                                           µ±ÄúÇÈëÏͳ»ò´¿ªÒ¸ö                                                                 xterm ´°¿Ú                                                                                                                                                                                                                                                                                          Ê×ÏÈ¿´µ½ÄÇÌá¾·û                                                                                                                     (prompt) Red Hat Linux µÄ
                            ±ê×¼Ìáʾ·û°üÀ¨ÁËÄúµ Óû§                                                                                    µÇÈë ÄÖ÷»úÃû                                                                                                                                                                                                                                                                                                                                                  ûÓÐÉèÖ µÄ °                                                        ÊÇ 'localhost' µ±Ç°ËùÔÚ
                            µÄ ¿Â¼                                                                         (working directory) Ìáʾ·ûºÅ

                                           [tom@belbo tom]$

ÎÒ ÔÓû§ û                                                                                                                              'tom'µÇÈëÃûΪ                                                                                                                                          'belbo'µÄÖ÷»ú                                                                                                                                                         µ±Ç°ÔÚÎÒ Ä                                                                           home Ŀ¼                           --'/home/tom'ÖÐ                                                         'root'µÄ
Ìáʾ·û

     [root@belbo root]#

     ³ýÁ˲»Í¬µÄÓçûâ                                                                                                                                                                                                                                Ìáʾ·ûºÅÓÉ                                                                                        '$'±ä³ÉÁË                                                                                                                   '#' ¸ù¾Ý                                                              Bourne shell µÄ´«Í³                                                              ÆÕͨÓû§µÄÌá
                            ʾ·ûÒÔ                                                                         '$'½áβ                                       ¶ø³¬¼ Óû§                                                                                                                                    '#'

                                                                Ìáʾ·ûµÄÿ¸ö² Ö¶¼ ÉÒÔ ¨ Æ                                                                                                                                                                                                                      ÄúÔÚºóÃæ½«ÓиüÉîµ ÁË â

                       ÒªÔËÐ ÃüÁîµÄ»°                                                                                                                                                ÄúÖ»ÒªÔÚÌáʾ·ûºóÇýø üÁî                                                                                                                                                                                                                                                                                          È»ºóÔÚ°´                                                      <ENTER> ¼ü                                        shell ½«ÔÚÆä·
                       ¾¶ÖÐ                                                                     ÏêÇé¼ûºó                                                               ËÑ÷Õâ¸öÃüÁî                                                                                                                                                      ÕÒµ½Ôºó¾ÍËÐ                                                                                                                                                                  ²¢ÔÚÖÕ¶ËÀïÊä³öÏàÓ¦µÄ½á¹û                                                                                                           Èç¹ûÓÐ                   µÄ
                       »°                                                                                  ÃüÁî½áÊøºó                                                                                            ÔÙ¸ø³öеÄÌáʾ·û

     [tom@belbo tom]$ whoami
     tom
     [tom@belbo tom]$

     ˳´øÖ¸ö                                                                                                            µ±ÄúÇà                                                                                  ENTER ʱ                                                                                                     ¹â±ê                                 (cursor)ÔÚ                                                                                                             ÄÀï²¢»Òª½ô                                                                     ÒòΪ                     shell ×ÜÊÇ»áÕûеضÁ
È¡

                                           »ù±¾µÄÃüÁîÓÐ                                                                                          'ls' list directory ÁгöĿ¼ÚÈÝ                     'cp' copy ¸´ÖÆ                                'mv' move
                                           / rename                                                                                        ÒÆ¶¯       ÖØÃüû                    'cd ' change directory ¸Ä±ä¿Â¼                      ÕâЩÃüÁîºóæ¶¼¿É
                                           ÒÔ¸úÉÏ »°ï¿ Ñ¡ î                                                                                                 Õâ·½Ãæ man page ÓÐÏ긵ĽéÉÜ                man ls, man mv µÈ
                            ÔÚÄú¶¯ÉíǰÍù                                                                                                        shell ÁìµØÇ°       ÕâÀïÓм¸öÊõ             (terminology)µÄ ¼ò¶Ì˵Ã÷ ÃüÁî¿ÉÄÜ´øÒ»Ð©


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      3
Ñ¡Ïî                                            options                                                                                                           ²ÎÊý                                                             arguments

              mv -i file dir

   ÆäÖÐ            '-i'ÊÇÃüÁî                                                                                                                    'mv'µÄÒ»¸ö¿ÉÑ¡Ïî                                                                                                          ¶ø 'file'ºÍ 'dir'ÔòÊDzÎý                                                                                          ËùÓпÉÑ¡ÏîÔڸà üÁ µÄ                                                                                                                      man pag
e ¶¼ÖÐÓ Ïê ¸µÄ½éÉÜ                                                                                                                                                                                                                 ´ËÀýÖÐÓà                                man mv                   ¶ø²ÎÊýÔòÓÉÄúÌṩ                                                                                                                                                                       ¿ÉÑ¡Ïî¾ö¶¨ÃüÁ ÈçºÎ¹¤
×÷                 ¶ø²ÎÊýÔòÓà ÚÈ· ¨ üÁî×÷ µÄ ¿±ê

                              µ½Ä¿Ç°ÎªÖ¹                                                                                ½éÉܵÃÓÐãÏóí¶àÈËÑáñÇÊÄ                                                                                                                                                                                             DOS shell                                                                               µ«°éËæ×ÅÏÂÃĽÉÜ                                                                                        Äú½«»á
              ÓРµÄÌåÑé

              µÚ¶þƪ                                                                            ×Ô¶¯²¹Æë                                                                               ÃüÁîÐ µÄÀúÊ·¼Ç                                                                                             ±à¼-ÃüÁîÐ                                                                        ¿ÉÓÃµÄ                                                                                 Shell ¿ì½Ý·Ê

                                           Unix                                      ¼°ºóÌÕß                                                                                   Linux ÔÚÃüÁîÐÏÂæµ®Éú                                                                                                                                 Òò´Ë               Unix ÖеÄÃüÁîÓí¶à·Ç³£Ê¹¦
         ÄÜ                                       ÔÚ±¾ÆªÖÐ                                                                                                ÎÒÃǽ«À´×÷ »Ð©ÁË â

                     ×Ô¶¯²¹Æë

              ÈçºÎÓà 'cd'                                                                                    ¸Ä±ä ¿Â¼                                                                                                                         change directory                                                 ×î¿ìµØ´ÓÄú ±Ç°ËùÔÚ                                                                                                                                                                                 home Ä¿Â¼Ìøµ½                    '/usr/sr
              c/redhat/'ÄØ

                     cd /u<TAB>sr<TAB>r<TAB>

                     Õâ³ÆÎª                                  'ÃüÁîÐ×Ô¶¯²¹Æë                                                                                                                                                                   '(automatic command line completion) ÕâÔÚÆ½³£Ó¦ÃÖÐÊDz»¿Éȱ
              ÉÙµÄ                                           ÈÃÎÒ Ç×Ðϸ¿´ Õâ öÀý Ó

              cd /u<TAB>

              À©Õ¹³ÉÁË                                                                                     cd /usr/                                                                                      ºÜ¼òµ¥°É                                                 ÏÂÃæµÄ

cd /u<TAB>sr<TAB>

À©Õ¹Îª                                                                                         cd /usr/src/                                                                                                         Èç¹ûÄúÖ»ÇÃÁË                              cd /u<TAB>s<TAB> '/usr'Ï                                                                                                                                                                                           Æ¥ÅäµÄ                                          'cd /u*/s*' Èý
              ¸ö×ÓĿ¼½«Áг ¹© úÑ¡Ôñ                                                                                                                                                                                                               '/usr/sbin' '/usr/share'ºÍ '/usr/src'

              Òò´Ë                         <TAB> ¼ü¿ÉÒԺܷ½±ãµØÓÃÚ¸ù¾Ýǰö×ÖÄ                                                                                                                                                                                                                                                                                À´²éÕÒÆ¥ÅäµÄμþ»ò×Ó¿Â                                                                                                                                                                  ±Èç
              ls /usr/bin/zip<TAB> ½«ÁгöËùÓ                                                                                                                                                                                                                               '/usr/bin'ÏÂÃæ                                                   ÒÔ×Ö·û´®                                                                'zip'¿ªÍ·µÄμþ»ò×Ó¿Â                                                                                                                 µ±È»
              Íê³ÉÕâÀàÈÎ ñ»¹Óиü ÷º¦µÄà Áî                                                                                                                                                                                                                                   µ«Õâ¸ö·½ ¨È Ê ºÜ¹ ÓÃ

         ÁíÍâ   Åöµ½³¤ÎļþÃûʱ¾ÍÏÔ ÌØ ð·½ ã                                                                                                                                                                                                                                                   ¼ÙÉèÄúÒª°²× »¸öÃûÎ                                                                                                                                                             'boomshakalakwhizbang-
         4.6.4.5-i586.rpm'µÄ                                          RPM °ü                                                                                                                                                                             ÄúÊäÈë                             rpm -i boom<TAB>                                                                                                                                         Èç¹ûĿ¼ÏûÓÐÆäËÎþÜ
         ¹»Æ¥Åä                             ÄÇ shell ¾Í»á×Ô¶¯°ïæ²¹Æë

                                           cd /u<TAB>sr<TAB>l<TAB>


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                4
½«À©Õ¹³É                        cd /usr/src/linux                                                                                                                                                 ²¢µÈ´ý¼ÌÐø                                                              '/usr/src'ÖÐÓÁ½¸öÆ¥ÅäµÄ¿Â¼                                                                                                                     '/usr/src/linux-[...]
                                ' '/usr/src/linux' ÈçºÎ¸æËß                                                                                                                                                                       shell ÄúÏëÒªºóÃæµÇ¸öØ                                                                                                                                   Ö»Òª¸ú öбÏß                                                       /   slash
                                         ¾Í¿ÉÒÔÑ¡ ñºóÃæµÄ ǸöÁË

                ¼ÙÈçÄú²» ·¶¨ÊÇ                                                                                                                        '/usr/src/linux/Documentation'»¹ÊÇ                                                                                                                                                                           '/usr/src/linux/documentation'                                                                            ¶øÄúÖª
                µÀ                                             Linux ÊÇø·Ö´óСµÄ                                                                                     Èç¹ûÒѾ-×Ðϸ¶Á ýÇ°Ãæ²¿·ÖµÄ»                                                                                                                                                                                   ÄúÏëµ½¿ÉÒÔÓÃ

                cd /u<TAB>sr<TAB>l<TAB>/d<TAB>

                À©Õ¹³ÉÁË                                                                 '/usr/src/linux/drivers/'                                                                                                                                                      Òò´ËÓ¦¸ÃÊÇ                                                                          'Documentation'(´óдµÄ                                         'D')

                                       ÕâÖ ²¹Æë¶ÔÃüÁîÒ ÓÐ §

                [tom@belbo tom]$ gre<TAB>

                grecord grefer grep

                [tom@belbo tom]$ gre

                ÔÚÕâÀï                                                               shell ½«ÁгöËùÓÒÔ×Ö·û´®                                                                                                                                                                         'gre'¿ªÍ·µÄÒÑÖÃüÁî

                ÃüÁîÐ µÄÀúÊ·¼ÇÂ

                ͨ¹ý°´ÏòÉ·½¼ü                                                                                                                              Äú¿ÉÒÔÏòºó±éÀ½ü´Ú¸ÃØÖÆÌ¨ÂÊäÈëµÁî                                                                                                                                                                                                              ÓÃÏò·½¼ü¿ÉÒÔǰ
                                ±éÀú                                Óë                                              SHIFT ¼üÁ¬Óõϰ                                                                                                     Äú»¹¿ÉÒÔ±éÀÍùÚ¸ÃØÖÆÌ¨ÐµÊä³ö                                                                                                                                                                     ÄúÒ²¿ÉÔ±à¼-¾µ
                ÃüÁî                                                     È»ºóÔÙ ËÐ

                                       °´                     <CTRL r> ºó                                                                                 shell ¾Í½øÈë                                                                                                 "reverse-i(ncremental)-search" ÏòºóÔöÁ¿ËÑ÷                                                                                                                                                     ģʽ                        ÏÖ
                                ÔÚÊäÈëÄúÒªÕ µ ÃüÁî Ê× Öĸ

                                       (reverse-i-search)`':. ÇÃÈë                                                                                                                                  'i'¿ÉÄÜ»á±ä³

                                       (reverse-i-search)`i': isdnctrl hangup ippp0

                Èç¹ûÄúÔÙ°´                                                                                               <ENTER> ¼ü                                                                           ÉÏÃæµÄüÁÔÙ´ÎÖÐ                                                                                                                                        ¶øÈç¹ûÄú°´ÁËÏòÓÒ                                                                   Ïò×ó·½¼ü»                                    <
                ESC>                                                                      ÉÏÃæµÄ üÁ»Ø ÆÕͨ à Р                                                                                                                                                                                                               ÕâÑùÄú¾Í¿ÉÒÔ½øÐ Ê µ± à¼-

±à¼-ÃüÁîÐ

ͨ¹ýâ±êº¦Äܼü                                                                                                                                                                                 Home End µÈ¼ü                                                                                               Äú¿ÉÒÔä¯À²¢±à¼-ÃüÁîÐ                                                                                              Èç¹ûÄúÐèÒª                                                »¹¿É   ÒÔ
                ÓüüÅ̵Ŀì½Ý· Ê À´Íê³ÉÒ»°ãµÄ±à¼-

                                            l <CTRL k>                                                                       ɾ³ý´Ó¹â±êµ½Ð β Ä ¿·Ö


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       5
l <CTRL u>                                                                                                                                         ɾ³ý´Ó¹â±êµ½Ð Ê× Ä²¿·Ö

     l <ALT d>                                                                                                ɾ³ý´Ó¹â±êµ½ ǰ ¥ Ê áβ Ä ¿·Ö

l <CTRL w>                                                                                                                                                                       ɾ³ý´Ó¹â±êµ½ ǰ ¥ Ê¿ªÍ· IJ Ö

     l <CTRL a>                                                                                                                                         ½«¹â±êÒÆµ Ð Ê×

     l <CTRL e>                                                                                                                                         ½«¹â±êÒÆµ Рβ

     l <ALT a>                                                                                                ½«¹â±êÒÆµ ǰ ¥´ÊÍ·²¿

                               l <ALT e>                                                                      ½«¹â±êÒÆµ ǰ ¥´Êβ ¿

                               l <CTRL y>                                                                                                     ²åÈë×î½üɾ³ýµÄ ¥´Ê

l <!$>                                                                      ÖØ¸´Ç°Ò» öÃüÁî× ºóµÄ²ÎÊý

   ÀýÈç                                                           ÄúÓÃüÁî                                                                                                                                       mkdir peter/pan/documents/tinkerbell н¨ÁËÒ»¸öÄ¿¼                                                                                                                                                                ÏÖÔÚÄúòÓÃüÁî
'cd'½øÈë¸ÃĿ¼                                                                                                                                                                                                  Äú¿ÉÒÔÓà cd !$ shell ½«°ÑÇÒ»¸öÃüÁî                 'mkdir'µÄ²ÎÊýÌí¼Óµ½ÏÖÔÚ                                                                                                                                                                            'cd'ºó
Ãæ

     µ±Äú¸üÉîÈëÁË½â                                                                                                                                                                                             Linux ºó       ½«¿´µÕâЩìÝ·ÊÔÚÆäËûӦóÌòÏÂÈë±                                                                                                                                                                                    ÓÐʱҲ§                       ±È
Èç                                        ÔÚä¯À Æ÷ÖеÄÊ Èë¿ò

¿ÉÓÃµÄ                                                                      Shell ¿ì½Ý·Ê

Red Hat Linux ´øÓв»ÉÙ¿ì½Ý·Ê                                                                                                                                                                                                                                                                                               ÆäÖÐÒ»²¿· ÊÇ                                    bash Ô-À´¾ÍÓÐµÄ                      ¶ø»¹ÓÐÒ ©ÔòÊÇΪ
ÄúÔ¤ÏÈÉèÖõ   ÔÚºóÃæÄú½«¿´µ Èç ÎÉèÖ

ÓÉ Ú                                                           home Ŀ¼ÊÇÃλӧµî¶¯ÖÐÄ                                                                                                                                                                                                                                                    Ðí¶à               Unix ¶Ô´ËÓÐÌØÊâµÄ¿ì½Ý·

'~'¾Í                             ÊÇÄúµ                                                                      home Ŀ¼µòдÎʽ                                                                                                                                                                         ÎÒÃǼÙÉèÄúÔÚÆäËû¿Â                                                                         Ïë°ÑÒ»¸öÃûΪ                                              'sometext'µÄÎ
¼þ¸´ÖƵ½Äú                                                                                                   home Ŀ¼ϵ                                                                                                                                            'docs'×ÓĿ¼ÖÐ                                                               ³ýÁËÊäÈë

     cp sometext /home/myusername/docs

     Äú»¹¿ÉÒÔÓüòд

                      cp sometext ~/docs

                      ÀíÂÛÉÏ                                                                ÕâÒ²¿ÉÔÓ¦ÃÚüÁî                                                                                                                                                       'cd'ÉÏ            ÎÞÂÛµ±Ç°·¾¶ÔÚÄÀï                                                                                          cd ~ ½«»Øµ                Äúµ                                   home Ŀ¼
     Æäʵ»¹¿ÉÒÔ¼ò ¯                                                                                                                                                                                               Ö»Òª¼üÈë                                      cd      ¾Í¿ÉÒÔ·µ»Ø                                                                          home Ŀ¼ÁË


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    6
Red Hat Linux ΪÄúÌṩÁËÒ»ÐÔ¤ÏÈÉèÖõĿì½Ý·Ê                                                                                                                                                                                                                                                                                                                                                                       ³ÆÎª                                                                                       '±ðÃû   '   aliases                                                               ±È ç

l ll                                                     ½«Ö´Ð                                    'ls -l -k'                                                                ÒÔ³¤¸ñʽÁÐ öĿ¼ ÚÈÝ                                                                                                                                                              °üÀ¨Ò»Ð©ÎļþÊô Ô                                                                                                                                                          ²¢ÒÔ                                                   KB ¶ø²»ÊÇ                  byt
e Ϊµ¥ »ÏÔʾ ļþ´óС

l ls                                                             ½«Ö´Ð                            'ls -F --color=auto'                                                                                                                                    ÁгöĿ¼ ÚÈÝ                                                                                                                ¼ÓÉÏÎÄ þÀàÐͱêʶ                                                                                                                                                             ²¢Ê¹ÓÃÑÕÉ«

ÏÖÔÚ                                                                     ÄúÓ¦¸Ã¶Ô                    shell ¼°Ò»Ð©¿ì½Ý·ÊÓÁËøÒ»²µÄ½â                                                                                                                                                                                                                                                                                                                                                              ÏÂÃæÎÒ ÇÀ´¿ ³ýÁËÓ¦ à »Ð©
¼òµ¥ ÄÃüÁî                                                                                        shell »¹ÄÜ×÷ʲô

µÚÈýƪ                                                                                ÃüÁîµÄÅ Ð                                                             ÃüÁîµÄÈÎ ñ ÷¶                                                                                                                                                                        ÃüÁîµÄÌæ»

                       ÃüÁîµÄÅ Ð

                       ÏÖÔÚÄú½«¿´µÒ»Ð©³£ÓÃüÁîÅ                                                                                                                                                                                                                           Äú¿ÉÜÏëÔÚÒ»ÐÖ¸ø³öËùÓÃüÁî                                                                                                                                                                                                                                              È»ºó¾Í¿ÉÒÔ°Ñ×¢âÁ¦
×ªÒÆµ½äËûØ·                                                                                                                          ûÎÊÌâ                                                            shell ÔÊÐíÄúÚ²»Í¬µÃüÁîÖ®¼ä                                                                                                                                                                                                                                             ·ÅÉÏÌØÊâµÄÁÐ×Öû                                                                                                                       (queuing
              characters)                                                                            Õâ¶ù½« éÉÜ×î³£ÓõÄÁ Ö

              Çë×¢Òâ                                                        ΪÁË¿´ÆðÀ¸üÇå³þ                                                                                                             ÎÒÔÚÕâЩ×Ö·ûÁ½Å¼ÓË¿¸ñ                                                                                                                                                                                                                                  ¶øÔÚʵ¼Ó¦ÃÖÐ                                                                                                                       Äú²»Ò¶¨ª                Õâ
ô×ö                                                                     'ls -a ; du -hs'ºÍ                                                                                                        'ls -a;du -hs'µÄЧ¹ûÊÇÒ»Ñùµ

                       command1 ; command2

                       ÏÈÖ´Ð                                                        command1                                                         ²»¹Ü                                                     command1 ÊÇ·ñ³ö´í                                                                                                                                                                          ½ÓÏÂÀ´Ö Ð                                                                                                                 command2

                       ÀýÈç

                       ls -a ; du -hs

                       ½«ÏÈÔÚÆÁÄ»É Ð³ö ¿Â¼Ö µ ËùÓ ÄÚÈÝ                                                                                                                                                                                                                                                      È»ºóÁгöËùÓ Ä¿Â¼ °Æä× ËùÕ ´Å Ì óС

              command1 && command2

              Ö»Óе±                                                                command1 ÕýÈ·ÔËÐÍê±Ïºó                                                                                                                                                                                          ²ÅÖ´Ð                                                    command2

                       ÀýÈç

                       ls -a bogusdir && du -hs

½«·µ»Ø ls: bogusdir: No such file or directory                                                                                                                                                                                                                                                                                                                                   ¶ø                                  'du'Ôò¸ù±¾Ã»ÓÐÔË                                                                                                                                           ÕâÊÇÒòΪÄúû                              ÓÐ
'bogusdir'Ŀ¼   Èç¹ûÄú½«· ºÅ» ³ÉÁË  ';' 'du'½«±»Ö´Ð

                       ΪÁ˽øÒ»² µÃ÷                                                                                         ';'ºÍ            '&&'µÄÇø±ð                                                                            ¼°Ò» ãÃüÁîŠеÄÓ ´¦                                                                                                                                                                                 ÏÂÃæ¾ÙÒ»¸ö -µä ÄÀý×Ó                                                                                                                                                          Linux


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               7
Äں˵ ±àÒë Ͱ²×

                               Òª±à ë °²× Linux                         ÄúÐèÒªÖ´ » ®ÃüÁî                                           'make dep' 'make clean' 'make bzImag
e' 'make modules' 'make modules_install'ºÍ 'make install' Èç¹ûÒªµ»¸öÃüÁîÍê³Éºó
                  ÔÙÊäÈëÏÂÒ»¸ö             ÔÙµÈ      ÔÙÊäÈë                                           ÄǾÍÌ«Âé·³ÁË                              ÁíÒ»·½Ãæ                  ÿ¸öüÁîÖ»Óе±Ç°æÄ
Áî¶¼ÕýÈ·Ö´ÐÍê±Ïºó                                           ²ÅÄÜ¿ªÊ¼Ö´Ð                                            Èç¹ûÄúÓà         ';'À´ÅÁÐÃüî          Ôò¼´Ê¹ÓÐÃüÁîÖ§°Ü                                ºó
ÃæµÄÒ²Õ ³£ÔËÐ                                   ×îºó                                     Äú¿É ÜÔÚ '/boot'Ŀ¼ϵýһ¸öÓÐÎÊÌâÄں˳Ïñ                                                          (image) ¶øÓà    '
                  &&'

                                                         make dep && make clean && make bzImage && make modules && make modules
                                                         _install && make install

                                                         ²»ÐèÒªÖ Í¾´ò¶Ï                                                       ¾Í¿ÉÒÔ±à ëÄں˼°Æä £¿é                                                                                                                                                                                                                               ²¢Íê³ÉºóÃæµÄ° ×

                         ÃüÁîµÄÈÎ ñ ÷¶

                         µ±ÄúÔÚÖÕ¶ËÀïÐÒ»¸öÃüÁîò¿ªÆô³ÌÊ                                                                                                                                                                                                                                                                                                                                               ÖÕ¶ËÒªµÈ½ÃüÁî»ò³ÌÐÔÍê±Ïºó                                                                      ²ÅÄÜÔÙ
                    ±»Ê¹Óà                                                                          ÔÚ              Unix ÖÐ                                                                 ÎÒÃdzÆÕâÑùµÄ üÁî»ò ÌÐ ÔÚǰ ¨                                                                                                                                                                                                                  (foreground)ÔËÐ               Èç¹ûÄúÏëÔÚÖÕ¶Ë
                    ÏÂÔËÐ ÁíÒ»¸öÃü î                                                                                                                   ÔòÐèÒª Ù´ ¿ »¸ö µÄÖÕ¶Ë

                         µ«ÕâÀﻹÓÐÒ ¸ö ü ÅÑ µÄ°ì·¨                                                                                                                                                                                                                                    ³ÆÎªÈ ñµ÷¶                                                                                  (jobbing)»òºǫ́                                                (backgrounding)                        µ±ÄúÔËÓÃ
                         ÈÎñµÄ÷¶»ò½«ÃüÁîÖÓÚºǫ́                                                                                                                                                                                                                       Öն˾ÍÁ¢¼´½â·Å                                                                                                     ÕâÑùÒ»À´                                                  ÖÕ¶ËÁ¢¼´¾Í¿ÉÒÔ½ÓÊÜеÄä
                    Èë                                                    ΪʵÏÖÕâÑù Ä ¿                                                                                                                                                   ÄúÖ»ÐèÔÚÃüÁîºó æÌí¼ÓÒ»¸ö                                                                                                                               &

                                                         gqview &

                                                         ¸æËß                              shell ½«Í¼Æ¬²é¿´÷                                                                                                                                        'GQview'·Åµ½ºǫ́ȥִР                                                                                                                                                       ¼´µ±³É          job À´ÔËÐ

                                                         ÃüÁî                              jobs ½«¸æËßÄú                                                                         ÔÚÕâ¸öÖ ¶Ë´°¿ Ð                                                                                                                                                    ÔËÐ ×ÅÄ ©ÃüÁîÓë³Ì ò

jobs

[1]+ Running gqview &

µ±ÄúÒª¹ØÕÖ¶Ë´°¿ÚÊ                                                                                                                                                                                                          ÕâÒ»µã¾ÍºÜÖØª                                                                               ÒòΪ¹Ø±Õֶ˽«µ¼ÂùÓÐÔÚÆäÄÈñ
                    ±»ÖÐ ¹                                                                               ÔÚ´ËÀýÖÐ                                      Èç¹ûÄú رÕÁËÖ ¶                                                                                                                              ÓÉÕâ¸öÖ ¶Ë¿ªÆôµÄ                                                                                                                             GQview ³ÌÐòÒ²½«±»¹ØÕ

µ«ÈçºÎ½ ǰ̨ÔËÐ ÄÒ»¸ö³ ò·Åµ½ºǫ́ȥ                                                                                                                                                                                                                                                                                                                                        ûÎÊÌâ

                                                         gqview

                                                         <CTRL z>

                                                         [2]+ Stopped gqview


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             8
bg

         [2]+ gqview &

         ×éºÏ¼ü                                              <CTRL z> ½«¹ÒÆðÖÕ¶ËÐýÔڵijÌò                                                                                                                                                                                             È»ºóÄú¾Í¿ÉÒÔÓà                                                                                                             bg ÃüÁÆä·Åµºǫ́
         È¥Ö´Ð

                               Çë×¢Òâ                         ÔÚºǫ́ËÐͼÎӦóòʱǴµÄ                                                                                                                                                                                                                   ÕâÑù¿ÉÒÔÚÖ¶ËÏÂʾ¸ö³ÌÐòµÄ
´íÐÅÏ¢                                                                                 ËäÈ»Õâ¶ÔÄú¿ÉÜÃÓÐÖ±½µ°ï                                                                                                                                             µ±Èç¹ûÅö½ÁËÂé·³                                                                                                               Ïò±ðÈËѯÎÊ                                        ÕâЩ³ö´í    Ìá
ʾ ÍÓÐ ÃÎäÖ®µØÁË

                  һЩͼγÌò                                                                                                                                      ºÜ¿ÉÄ»¹´¦ÔÚ²âÊÆ                                            (Beta) ¾¡¹ÜÔÚºǫִ́Р                                                                                             Ò²»áÔÚÖÕ¶ËÐÊä³ö©ÅÏ¢
         Èç¹ûÄú¶Ô´Ë²»Â                                                                                                                                                                 ¿ÉÒÔÓÃÏ æ üÁî

                               command &>/dev/null &

Õâ²»½ö«³ÌÐòË͵ºó¨Ö´                                                                                                                                                                                      »¹½«Æäʳö·¢µ                                                       '/dev/null'Îļþ                                                  '/dev/null'ÊÇ                                                                        ÏµÍ³Ä   "ËéÖ½»ú    " (s
hredder)                                                                                                        ËùÓР͵½ÄÇÀï ÅÏ¢¶¼ « ûʧ´ù¾¡

                               ÃüÁîµÄÌæ»

                               ÃüÁîÌæ»                        (Command substitution)ÊÇÒ»ÏîºÜʵÓÃŦ                                                                                                                                                                                                                               ÎÒÃǼÙÉè                                                              ÄúÏë¿´                            XFree86 ÎÄ
µ ÖÐ Ä                                                       'README.mouse'Îļþ      µ«Äú²»Öª ÀÕâ¸öÎ ¼þµ à                                                                                                                                                                                                                                                           µ«ÄúÊÇλ Áé Óà §                                                           ÒѾ-
Ìý˵Á                                                      'locate'ÃüÁî Ò²° × ÁË 'slocate'°ü                                                                                                                                                 Äú¾Í¿ÉÒÔÓÃ

                                         locate README.mouse

                                         ·¢ÏÖÄǸöμþÔÚ                                                                                                                              '/usr/X11R6/lib/X11/doc' ÏÖÔÚÄú¾Í¿ÉÒÕ¶ËÀïÓà                                                                                                                                                                      'less'»òÔÚÎļþ¹ÜÀíÆ÷ÖÐ
½øÈëÄǸö ¿Â¼ »ºó¶Á ¡Î þ                                                                                                                                                                           ¶øÃüÁîÌæ» ¿ÉÒÔ¸ Äú´øÀ Щ±ã½Ý

         less $(locate README.mouse)

Ò»²½µ Î                                                         ÃüÁî                                                                                                                'locate README.mouse'µÄÊä³ö                                                                  (= /usr/X11R6/lib/X11/doc/README.mou
se)×÷Ϊ                                                     'less'µÄ²ÎÊý                                                                                                                  È»ºó¾Í¿ÉÒÔÏ Ê Îļþ ÚÈÝÁË

                               ÕâÖ »ú ƵÄÓï·¨ÊÇ

                  command1 $(command2)

                  ³ýÁË                                   '$( )'                                                                                Äú»¹¿ÉÒÔÓúó ý Å                                                         (backquote)

         command1 `command2`



                                                                                                                                                                                                                                                                                                                                                                                                                                                           9
ÕâÑùËäÈ»¿ÉÒÔ¼õÙÊë                                                                                                                                                  µ«¿É¶ÁÐÔ²î                                                                               ¶øÇÒºÜÈÝ×¾ÍûÓÐÌæ¹¦Äµ°ã¥ýÅìÏ                                                                                                                                                                                                                            ÎÒ
¸üÐÀÉÍÇ°Ò»Ö ·½ ¨                                                                                                                   µ«Õâ×îÖ Æð¾öÓÚÄú

ÕâÀïÓÐÁíÍ Ò»¸ö ý×                                                                                                     ÎÒÃǼÙÉè                                                                                                         Äú´òËã½áÊøÒ»¸öÃûΪ                                                                                     'rob'µÄ³ÌÐò                                                              ÄúÏȵÃÓ üÁî                                                                      'pidof'ÕÒ
³öÏàÓ¦µÄ½ø ̺Š                                                                                                 (Process ID)                                                                          È»ºóÒÔÕâ¸ö                                                                                              PID Ϊ²Êý                          ÔËÐ                                                     'kill'ÃüÁî                             ÕâÑù¾Í¿ÉÒÔ½áÊø                                                           'r
ob'³ÌÐò                                                          ³ýÁËÓÃ

                    pidof rob

                    567

                    kill 567

                    Äú»¹¿ÉÒÔÊ

                    kill `pidof rob`

                    ÔõôÑù                      ЧÂÊÓ ËùÌá¸ß°É

ÔÚÏÂһƪÖÐ                                                                                 ÎÒ½« Ó×Å éÉÜ                                                                                      shell µÄÁíÍâ½ÖÊÓûúÆ                                                                                                                                                     ÎļþÃûÆ¥Åä                                                                                 Êä³öÖØ¶¨Ïò

                    µÚËÄÆª                      ÎļþÃûÆ¥Åä                                                                                            Êä³öÖØ¶¨Ïò

                    ÎļþÃûÆ¥Åä

                    ÎļþÃûÆ¥Åäʹµú²»±ØÒд³ö                                                                                                                                                                                                                                                ¾Í¿ÉÒÔÖ¸¶¨àöÎļþ                                                                        Äú½«ÓÃµÒ»Ð©ÌØÊâ×Ö·û                                                                                                              ³Æ
ΪͨÅä·û                                        (wildcards)

¼ÙÉèÄúÏëÓà                                                                'rm'ÃüÁîɾ³ýĿ¼ÏËùÓÐÒÔ×Ö·û´®                                                                                                                                                                                                         '.bak'½áβµÄ¼þ                                                                              ³ýÁËÔÚ                   'rm'ºó¸úÉÏËùÓÐÎļþ
Ãû×÷Ϊ² Êý                                                                   Äú»¹¿ÉÒÔÓÃͨÅä·û                                                                                                                      '*'

                    rm *.bak

                    '*'¿ÉÆ¥ÅäÒ»¸öò¶à×Ö·û                                                                                                                                          ÔÚ±¾ÀýÖÐ                                                                                                 Äú¸æËß                shell ½«ÃüÁî                                       'rm'µÄ²ÎÊýÀ©Õ¹µ½                                                                                                          "ËùÓÐÒÔ      '*.bak'
                    ½áβµÄ ¼þ                                             "                               shell ¾Í½«À©Õ¹ºóµÄ²ÎÊý¸æËß                                                                                                                                                                          'rm'ÃüÁî

Äú½«¿´µ                                          shell ÔÚÃüÁîÖ´Ðǰ                                                                                                                                                  ¾Í½«¶ÁÈ¡²¢âÊÃüîÐ                                                                                                                  ÕýÊÇÒòΪâ¸ö                                                                                                             Äú²Å¿ÉÒÔ½«Í¨ä
·ûÓÃ Ú                                        shell ÃüÁîµÄ²ÎÊýÖÐ

ÈÃÎÒ Ç¸ü½ø »² µØÀ´ÈÏʶͨÅä·û                                                                                                                                                          '*' ¼Ù¶¨ÄúÓиö¿Â                                                                                                                           ÆäÖк¬Îļþ                                                                          '124.bak' '346.bak'¼°                                                                               '5
83.bak' ÄúÏëÖ»±£Áôμþ                                                                                                                                                           '583.bak' ¿ÉÒÔÓÃ

rm *4*.bak



                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         10
shell ¾Í½«                                                                               '*4*.bak'À©Õ¹³É                                                                                                                                                  "ËùÓк¬                                                                '4'²¢ÒÔ                                                                  '.bak'½áβµÄ×Ö·û´®                                                                                                                                                 "

                 ×¢Òâµ½                                   rm 4*.bak ÎÞ·¨¹¤×÷                                                                                                                                                                                                                             ÒòΪÕâÆ¥ÅäµÄÊÇ Ô                                                                                                                                                                        '4'¿ªÍ·µÄμþ                                                                                                       ÓÉ ÚĿ¼ÖÐû ÕâÑùµ Î
                 ¼þ                                    shell ½«Õâ¸öÄ£ÊÀ©¹Îª¿µ×Ö·û´®                                                                                                                                                                                                                                                                                                                                                            ¹Ê    'rm'½«·µ»Ø³ö´íÐÅÏ¢

                 rm: cannot remove `4*.bak': No such file or directory

                 Èç¹ûÄúÏë±£Áôμþ                                                                                                                                                                                                               '345.bak' ¶øÉ¾³ý                                                                                                                   '124.bak'ºÍ                                                                                                   '583.bak' Õâ                                                                                      ¿´ÆðÀÓЩÄÑ¶È                                                                                  ÒòΪ±»É¾Ä
¼þµÄÃû³Æ ýÁ˺ó× ä ¶¼²»Í¬                                                                                                                                                                                                                                                                                                             µ«ÐÒÔË ÄÊÇ                                                                                                           Äú¿ÉÒÔÓò»º¬ ÐÀ´Ö¸¶¨Îļþ

rm *[!6].bak

Õ⽫±»¶ÁΪ                       ³ýÁËÒÔ                                                                                                                                                                                                                '6.bak'½áβµÄ¼þ                                                                                                                                                        ɾ³ýÆäËû ùÓÐÒÔ                                                                                                                             '.bak'½áβµÄ¼þ                                                                                          Äú±ØÐ뽫ȡ·´
ºÅ (negation sign)ÓëÈ¡·´×Öû                                                                                                                                                                                                                                                                                                 ÕâÀïÊÇ                                                                                        6 ·Åµ½À¨ºÖÐ    ²»ÈµÄ°     shell »á½«¾ªÌºÅ   (excl
  amation mark)½âÊͳÉÀú·¼ÇÂÌæ»µÄ¿ª                                                                                                                                                                                                                                                                                                                                                                                          (the beginning of a history substitution) È¡·´
ºÅÔÚ±¾Æª½éÉܵÄËùÓÐ ¥Åä £Ê Ö ¶¼ §

                                   Çë×¢Òâ                                  ͨÅä·û                                                                                                                                            '*'ÓëÈ¡·´ºÅÁ¬Óà                                                                                                        ºÜÈÝÒײúÉ ÎÊÌâ                                                                                                                                                                   ²Â

                 rm *[!6]*.bak

                 ±íʾ ²Ã´                                                                                                                        Õâ¸öÃüÁɾ³ýËùÓÐÎļþ                                                                                                                                                                                                                               ÉõÖÁ°üÀ¨Ãû³Æ Ð º¬                                                                                                                              '6'µÄμþ                                                                                    Èç¹ûÄú½«Í¨Åä·                                                            '*'
                 ·Åµ½ÁËÈ¡ ´º Ç°Ãæ Í ó                                                                                                                                                                                                                                                ʵ¼ ÉÏÈ¡·´ºÅ½« §Ð                                                                                                                                                                                                                       ÒòΪ                 shell ½«ÆäâÊÍΪ                                                                                                "ËùÓÐÃû³ÆÖÈκ
                 λÖö¼² º¬¸ × ·ûµÄÎ þ                                                                                                                                                                                                                                    " ÔÚÎÒÃǵÄÀý×Ó ï                                                                                                                                                                                           Ö»ÓÐÎļþ                                                    '666.bak'²»·ûºÏ¸Ãģʽ

µÚ¶þ¸öͨÅä·ûÊÇÎ º                                                                                                                                                                                                                                      (question mark)                                                                                                                                                    '?' ÔÚÆ¥Åäʱ                                                                                                       Ò»¸öÎʺÅÖ ÄÜ´ú±í × ·û                                                                                                                                          ΪÁË
ʾ·¶ÆäÓÃÍ                                                                                                                                                                                 ÎÒÃÇÔÚÉÏÀýµÄ¼Ù èÖÐÌí ÓÁ½¸ö ÂÎļþ                                                                                                                                                                                                                                                                                                                '311.bak~'ºÍ                                                                                     'some.text' ÏÖÔÚ                                                        Áгö
ËùÓÐÔÚµãºÅ ó ĸö×Ö·û Î ¼þ

                 ls *.????

                 ÎʺÅͨ ä·ûÄܹ»ÓÐ §µØ± ÃâÉÏ æÌá ½ Ä                                                                                                                                                                                                                                                                                                                                                   'È¡·´ºÅÏÝÚå                                                                                                                   '(negation trap)

rm *[!4]?.*

½«À©Õ¹³É                                                                   "ËùÓгýÁ˵ãºÅǰ¹ÊÚ¶þ¸ö×Ö·ûΪ                                                                                                                                                                                                                                                                                                                                             '4'µÄμþ                                                                               "      Ò²¾ÍÊÇÖ»±£ÁôÎļþ                                                                                                               '346.bak'

Äú¿ÉÜ»áÎÊ                                                                                                                                                                 ÓÐûÆäËû¥Å·½Ê                                                                                                                                                                              µ½Ä¿Ç°ÎªÖ¹                                                                                                                  ÄúÖ»¿´µ½ÁËÔÚ¸¶¨ÎÃÆ¥ÅäÒ×·û
            ·¨                                        µ«ÆäÊ ÄúÒ²¿É ÔÕâÑù

ls [13]*

½«ÁгöËùÓ ÒÔ×Ö·û                                                                                                                                                                                                                               '1'»ò       '3'¿ªÍ·µÄμþ                                                                                                              ÔÚÎÒÃǵÄÀý×ÓÖÐ                                                                                                                                                                              Îļþ                            '124.bak' '311.bak~'ºÍ '346.
bak'Æ¥Åä                                                                                                  ×¢Òâµ½Äú±ØÐëÓÃÖ À¨ºÅ «Æ¥ äµÄ £Ê½ ðÀ´                                                                                                                                                                                                                                                                                                                                                                                                                       ·ñÔòģʽֻƥÅäÒ × ·û´®                                         '13'¿ªÍ·


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            11
µÄÎ ¼þ

       ½ÓÏÂÀ´                                                       Äú½«¸ßÐ˵ؿ´ »¹ ÉÒÔ¶¨ 寥ÅäµÄ· Χ

       ls *[3-8]?.*

       ½«ÁгöËùÓµãºÅǰ¹ÊýÚ¶þ¸×Ö·ûÂäÔ                                                                                                                                                                                                                  '3'µ½         '8'·¶Î§µÄ¼þ   ÔÚÎÒÃǵÄÀý×ÓÖÐ                                                                  Æ¥ÅäµÄμþÊÇ
       '346.bak'ºÍ                                                                                      '583.bak'

       ÒýÓà                      shell µÄÌØÊâ×Ö·û

µ«ÊÇ                               ÉÏÃæµÄÇЩ»úÖÆ´ÔÚÒ¸ö鱋                                                                                                                                                                                             shell ×ÜÔÚÃüÁîÖ´Ðǰ                                ÊÔ׎øÐÀ©Õ¹                                                            ÓÐʱºò   »á
       ±äµÃºÜ¼¬ÊÖ

       l ÎļþÃû°üº¬ÌØÊâ×Ö·                                                                                                                                    ¼ÙÉèÄúÔÚ Ç¸ö ¿Â Öл¹Ó Ò ÃûΪ                                                                                                         '!56.bak'µÄμþ                                           ÏÂÃæÊÔͼ½øÐ
       ģʽƥÅä

       rm !*

       rm

       rm: too few arguments

       shell ½«                                             '!*'½âÊͳÉÀú·¼ÇµÄÌæ»                                                                                                                                         ¼ÓÈëǰһ¸öÃüÁîµÄËù вÎÊý                                                                                           ¶ø²»ÊÇÆ¥Åä·½

l ÃüÁî±¾Éí´øÌØÊâ×Ö·û ÷²Î ý                                                                                                                                                                          һЩ                                             Linux ϵÄÃüÁîй¤¾ß     ±È ç                                                            (e)grep sed awk                                   f
ind ¼°                                                      locate                                           ¶¼Ê¹ÓÃ×Ô ºµÄÕý ò±í´ïʽ                                                                                                                       (regular expressions)                                        ÕâЩ±í´ïʽÓëÄ£ Æ¥Åä
¿´ÆðÀ ¾ªÈ˵ØÏà                                                                                                                        µ«ÔÚijЩ Ø·½ÓÖ Ëù²»Í¬

       µ«ÎªÁËʹÕâÐ©ÌØ Ãü îÉú §                                                                                                                                                               shell ¾Í²»ÄÜÏȽ«Æäµ±×÷£Ê¥ÅÀ´½âÍ

       find . -name [1-9]* -print

       find: paths must precede expression

       Ó¦¸ÃÊÇ

find . -name '[1-9]*' -print

./346.bak

./124.bak

./583.bak


                                                                                                                                                                                                                                                                                                                                                                                              12
./311.bak~

     Äú¿ÉÒÔͨ¹ý·´Ð±Ïß                                                                                                                     (back slash)À´ÒýÓÃÌØÊâ×Ö·û                                                                                                                                                                                              ±È ç            !                                   $                            ? »ò¿Õ¸ñ

     ls !*

     !56.bak

     »òÕßÓà                                                                              µ¥                                  ÒýºÅ

            ls '!'*

            !56.bak

            Çë×¢Òâ                                                                       Òª¿´Çå³þ ýºÅÓ¦¸Ã· ÔÚʲ ´Î»Ö                                                                                                                                                                                                     ÃüÁî                                     ls '!*' ½«²éÕÒÃûΪ                                                                          '!*'µÄμþ                                ÕâÊÇÓÉ Úͨ
            Åä·ûÒ²ÔÚ ýº ¼                                                                                                                 ËùÒÔÖ»ÄÜ ÀÕ × Ãæ ´½âÊÍ

     Êä³öÖØ¶¨Ïò

        Unix µÄÀíîÊǻ㼯жࡳÌò                                                                                                                                                                                                         ÿ¸ö¶« ¼ÓÐÌØÊâµÄר³¤                                                                                                                                                          ¸´ÔÓµÄÈÎ ñ²»ÊÇ É óÐÍ í¼þ ê
     ³É     ¶øÊÇÔËÓà                                                                                                                shell µÄ»úÖÆ                                ×éºÏÐí¶à ¡³Ì ò¹²Í¬ ê É                                                                                                                                                                                 ÖØ¶¨Ïò¾ÍÔÚÆä з¢»Ó×ÅÖØÒªµÄ ÷
ÓÃ

            ÔÚ¶à¸öÃüÁî¼äÖØ ¨Ïò

            ÕâҪͨ¹ý ܵÀ                                                                                                     (pipe)                                ÓɹܵÀ·ûºÅ                                                                                                                À´±êʶ                             Óï·¨ÊÇ

command1 | command2 | command3 µÈ

ÕâÖ ¸ñʽÄúÒ»¶¨ Ѿ-¼ûµ ¹ýÁË                                                                                                                                                                                ¹ÜµÀ¾-³£½«Ò»¸ö ÌÐò ÄÊä Ë͵½                                                                                                                                                                                                              'more'»ò                          'less'À´ÔĶÁ

     ls -l | less

     ÆäÖÐ                                                       µÚÒ»¸öÃüÁîÌṩĿ¼ ÚÈÝ                                                                                                                                                                         µÚ¶þ¸öÔò½«ÆäÒ ·- ³µÄ Ê ÏÔ ¾                                                                                                                                                                          ¸ü ´ÔÓµÄÀý× Èç

            rpm -qa | grep ^x | less

     µÚÒ»¸öÃüÁî ø³ ËùÓРѰ²× µÄ                                                                                                                                                                          RPM °ü                                                                                       µÚ¶þ¸öÔò½«Æä¹ýÂË                                                                                                (filter                                 'grep')                       ֻʣÏÂÒÔ                             '^x'¿ª
     Í·µÄ°ü                                                                              µÚÈý¸öÃüÁîÔò½« á¹ûÒ ·- ³µÄ Ê ÏÔ ¾

     ÖØ¶¨Ïò ÁÎļþ

     ÓÐʱ                         ÄúÏ£Íû½«ÃüÁîµÊä³öá¹±´æÎ¼þÖÐ                                                                                                                                                                                                                                                                            »òÒÔÎļþÚÈÝ×÷ªÃüÁîµ²Êý                                                                                                                                                     Õâ¿ÉÒÔͨ¹ý


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          13
'>'ºÍ                             '<'À´ÊµÏÖ

command > file

½«                                                      command µÄÊä³ö±£´æ½                                                                                                                                            file ÖÐ                                                                        Õ⽫¸² Ç          file ÖеÄÚÈÝ

          ls > dirlist

          ½«µ±Ç°Ä¿Â¼ ÚÈÝ £´æµ½                                                                                                                                                   'dirlist'Îļþ

     command < file

     ½«                                                 file ÄÚÈÝ×÷Ϊ                                                    command µÄÊäÈë

                                      sort < dirlist > sdirlist

                                      ½«Îļþ                           'dirlist'µÄÚÈÝË͵½ÃüÁî                                                                                           'sort' È»ºóÔÙ½«ÅÐòµÄá¹ûËÍμþ                                                                                                                                                       'sdirlist' µ±È»              ÄúÒ²¿É
          ÒÔ »²½µ Î

          ls | sort > sdirlist

          Ò»ÖÌØÊâµÄ·½Ç                                                                                                    'command 2> file' Õ⽫                                                                                                                                                                 command ִеijöíÅÏ¢Ëͽ                                                      file ÖÐ                    Õâ¸ö
          Äúµ½Ê±ºò»áÐèÒª

                         ÁíÒ»Ö ²Ù×÷·ûÊÇ                                                                            '>>'                       Õ⽫Êä³öÌí¼Óµ ÒÑ´æÔÚ ÄÎ þÖÐ

          echo "string" >> file

          ½«                                            string ¼Óµ½ÎÄþ                                                           file ÖÐ                                                 ÕâÊDz»´ò¿ªÎļþ¶øÍê³É±à -µ ºÃ°ì·¨

     µ«ÊÇ                                                              '<'ºÍ           '>'²Ù×÷·û¶¼ÓÐÒ»¸öÖØªµÄÏÞÆ

                                               command < file1 > file1

                                               ½«É¾³ý                      file1 µÄÚÈÝ                                                                                      ¶ø

                         command < file1 >> file1

                         È´¿ÉÒÔºÜ ÃµØ¹¤×÷                                                                                        ½«¼Ó¹¤ ýµÄ                                                                                                                                          file1 ÄÚÈݼӻص½ÎþÖÐ

          ÊDz» Óеã¶à                                                                                              ;-) ²»±Ø¾ªÅ                                                                                              ÄúÍêÈ«¿ÉÒÔ°´Õ × ¼ºµÄËÙ¶È                                                                                      Ò»²½ µØÀ´Ñ§Ï°                                        ±ðÍüÁË                          ʵ
          ¼ùÊÇ×îºÃµÄѧϰ·½ ¨

                         ÊìÖªÁËÐí¶à                                                               shell µÄ»úÖÆºó                                                                                                                                       Äú¿Éܼ±×ÅÏëÖªµÀÈçºÎ´¶¨Æ»·¾³                                                                        ÔÚºóÃæµÄÁ½ÆªÖÐ                                         Äú½«


                                                                                                                                                                                                                                                                                                                                                                                                                                    14
µÃ½Õâ·æÄÆôʾ                                                                                                                                                                                 ÔÚ×îºóһƪÖÐ                                                                                                                                                          »¹ÓÐÒ¶ÎÈ纴¦Àí                                                                                                                                                                        shell ³ö´íÐÅÏ¢µÄ£¼ûÎÊð                                                                     (FAQ)
              ¼°Ò»Ð©ÅäÖà ÇÉ

                             µÚÎåÆª                                                   bash ÅäÖÃÎļþ                                                                                                                                                                                                                                   Ìáʾ·û                              ¸Ä±ä                                                                              $PATH

bash ÅäÖÃÎļþ

                                                                       ÔÚÄúµ        home Ä¿Â¼Ï                                                                                                                                                                                                        ÔËÐ

ls .bash*

Äú½«¿´µ ÕâЩΠ¼þ

                                                   l .bash_history                                                                                                                ¼Ç ÁËÄúÒÔ °ÊäÈëµ Ãü î

                                                   l .bash_logout                                                                                                      µ±ÄúÍ˳ö                                                                                                                                                                 shell ʱ                                                                              ÒªÖ´Ð µÄÃüÁî

                                                   l .bash_profile                                                                                                     µ±Äú ÇÈë                                                                                                                                                                 shell ʱ                                                                              ÒªÖ´Ð µÄÃüÁî

                                                   l .bashrc                                       ÿ´Î ò ªÐ嵀                                                                                                                                                                                                                                shell ʱ                                                                ÒªÖ´Ð µÄÃüÁî

                                                   Çë×¢ÒâºóÁ½¸öµÄø±ð
                                        '.bash_profile'Ö»ÔÚá°¿ªÊ¼±¶ÁȡҴΠ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ¶ø   '.bashrc'Ôòÿ´ÎªÐÂ
µÄÖÕ¶Ë           ÈçÐ嵀            xterm ´°¿Ú      ʱ       ¶¼Òª±»ÁÈ¡                                                                                                                                                                                                                                                                                                                                                                                                                                                       °´Õ«Í³                                                     ÄúµÃ½«¶¨Òå±äÁ¿                                                        Èç    PATH
          ·Åµ½ '.bash_profile'ÖÐ              ¶øÏó      aliases                                                                                                                                                                                                                                                                                                                                                                                      ±ðÃû                                                      ºÍ ¯ÊýÖ®Àà                                                                               Ôò·Å Ú                            '.bashrc' µ«ÓÉÚ            '.ba
       sh_profile'¾- ³£±»ÉèÖÃÏȶÁ¡                    '.bashrc'µÄÚÈÝ                                                                                                                                                                                                                                                                                                                                                                                                                          ÄúÈç¹ûͼʡµ»°                                                                                                          ¾Í°ÑËùÓÐÅäÖö¼·½ø                                 '.
       bashrc'

ÕâЩÎļþÊÇÿһ Ó §µ ÉèÖ                                                                                                                                                                                                                                                                                                                              ϵͳ¼¶ ÄÉèÖÃ´æ ¢ÔÚ                                                                                                                                                                                           '/etc/profile' '/etc/bashrc'¼°Ä¿Â¼                                                                '/etc/
profile.d'Ï                                                                             µÄμþÖÐ                                                                                                                          µ«ÄúÃϰ¹ßÓ¸÷×ÔÅäÖμþ                                                                                                                                                                                                                                                                                                                      ±à¼-²»ÐèÒª                'root'ȨÏÞ »¹¿ÉÒÔÊÄú                                                     µÄ
ÉèÖøüÓÐ ö Ô                                                                                                                          µ±Ï ͳ¼¶Óë û§ ÄÉèÖ ·¢ ú³åÍ Ê±                                                                                                                                                                                                                                                                                                                                                                                                           ½«²ÉÓà »§µÄ èÖ

                                                                       ¶ÁÈ¡    '.bashrc'µÄÚÈÝ                                                                                                                                                    ÄúÈç¹ûҪʡµã  »°                                                                                                                                                                                                   ¾Í°ÑÄúËùÓе ÅäÖö¼· ½ø                                                                                                                                                '.bashrc'

ÉÏÃæµÄÕâЩΠ¼þÊÇ ¿ »Óà §µÄÉèÖ                                                                                                                                                                                                                                                                                                                                                                     ϵͳ¼¶ ÄÉèÖÃ´æ ¢ÔÚ                                                                                                                                                        '/etc/profile' '/etc/bashrc'¼°Ä¿Â¼                                                               '
/etc/profile.d'ϵÄμþÖÐ                                                                                                                                                                                                                                                                                     Äú×îºÃϰ¹ßÊÓ¸÷ÔµÅäÖμþ                                                                                                                                                                                                                                             ±à¼-²»ÐèÒª                    'root'ȨÏÞ »¹¿ÉÒÔ
ʹÄúµ ÉèÖøü¾ß öÐÔ                                                                                                                                                                                                                                                   µ±Ï ͳ¼¶Óë û§ ÄÉèÖ ·¢ ú³åÍ Ê±                                                                                                                                                                                                                                                                                        ½«ÓÅÏÈ²É Ã »§µÄ èÖ

                             Ìáʾ·û

                             ÿ´Îµ±ÄúòªÒ»¸öØÖÆÌ¨                                                                                                                                                                                                                                                            (console)»ò                                                                                                xterm ʱ                                                                                                      ×îÏÈ¿´µ½Ä¾ÍÊÇÌá·û                                                                                       (prompt) ÀàËÆÓÚ

account@hostname ~ $

ÔÚĬÈÏÉèÖà                                                                                                      Ìáʾ·û½«ÏÔÄúµÓû§                                                                                                                                                                                                                                                                                                                         Ö÷»úÃû                                                                                       ĬÈÏÊÇ                 'localhost'                                                   µ±Ç°ËùÔÚĿ¼             ÔÚ


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            15
Unix ÖÐ                       '~'±íʾÄúµ                                                                               home Ŀ¼

                             °´Õ «Í³                                                                   ×îºóÒ»¸ö Ö·û¿É Ô±êʶÄú ÇÆÕͨÓû§                                                                                                                                                                                      $                                                    »¹ÊÇ      'root'    #

                             Äú¿ÉÒÔͨ¹ý                                                                                                   $PS1 ±äÁ¿À´ÉèÖÃÌáʾ·û                                                                                                                              ÃüÁî

                             echo $PS1

                             ½«ÏÔʾµ±Ç° ÄÉ趨                                                                                                                           ÆäÖпÉÓÃ× ·ûµÄº¬ÒåÔÚ                                                                                                                     man bash µÄ                                                             'PROMPTING'²¿·ÖÓÐ˵Ã÷

     ÈçºÎ²ÅÄÜÍê³ÉÀíÏëµèÖÃØ                                                                                                                                                                               ¶ÔÓÚ½¡ÍüµÄ³õѧÕßÀ´²                                                                                                                                   ĬÈÏÉ趨ÓЩ²»ÑºÃ                                    ÒòΪÌáʾ·ûÖ»
                             ÏÔʾµ±Ç°Ä¿Â¼ ×îºóÒ»² ·Ö                                                                                                                                                                           Èç¹ûÄú¿´µ½ÏóÕâÑù Ìáʾ·û

                                                     tom@localhost bin $

                                                     Äúµ ±Ç° ¿Â¼ É ÜÊ                                                                                                    '/bin' '/usr/bin' '/usr/local/bin'¼°                                                                                                                                                  '/usr/X11R6/bin'                             µ±È»                               Äú¿ÉÒÔÓÃ

                                                     pwd                           Êä³öµ±Ç°Ä¿Â¼                                                                                                print working directory

                             Äܲ» ½Ð                                                              shell ×Ô¶¯¸æËßÄúµ±Ç°¿Â¼Ø

µ±È»¿ÉÒÔ                                                                                              ÕâÀïÎÒ½«Ìáµ ÄÉ趨                                                                                       °üÀ¨Ìáʾ·û                                                                                             ´ó¶¼°üº¬ÔÚÎÄ þ                                                             '/etc/bashrc'ÖÐ                                           Äú¿ÉÒÔͨ
¹ý±à¼-¸÷×Ô                                                                                                                                home Ŀ¼ϵ                                                   '.bash_profile'ºÍ                                                                                        '.bashrc'À´¸Ä±äÉèÖÃ

ÔÚ                                                                        man bash ÖÐµÄ                                                                                 'PROMPTING'²¿·Ö                                                                                                             ¶ÔÕâЩ²ÎÊý                                               (parameter)ÓÐÏê¸ËµÃ÷                                                 Äú¿ÉÒÔ¼ÓÈë
                             һЩ ¡Íæ â                                           È粻ͬ¸ñʽµÄ ±Ç° ¼ä                                                                                                                                                                     ÃüÁîµÄÀúÊ·¼Ç ºÅ                                                                         ÉõÖÁ²»Í¬µÄÑÕ «

     ÔÚ                                                                  '~/.bashrc'ÖÐ                                                                 ÎÒϲ»¶µÄÉè ¨ÊÇ

PS1="[033[1m][w][033[0m] "

'root'ÔÚ                                                                          '~/.bashrc'ÖеÄÉ趨                                                                                              ÊÇ

                             PS1="[033[0;31m][w][033[0m] "

                             ÕâÑùÎҵà ½ ÄÌáʾ·û Í Ç

     [/usr/bin]

     µ±Óà                                                                   'root'ʱ                                                          ±ä³É

                             [/usr/bin]

                             ÎÒѾ-³ýµôÁËÖ÷»úÃûºÍÓ§                                                                                                                                                                                                       ÒòΪÓò»×ÅÕâЩ                                                        µ«ÎÒÊ×ÏÈë»ÑÛ¾ÍÄÜ¿´³öÉí·ÝÇÆÕ


                                                                                                                                                                                                                                                                                                                                                                                                                                                                     16
ͨÓû§ ¹ÊÇ                'root' ×¢Òâµ½      ÆÕͨÓû§µÄÌáʾ·û¿ÉÒÔ ÇºÚ ×° Ö                              »ò°×µ ºÚ Ö

ÒªÔÚÖÕ¶ËÉÏ»ñµÃÇ¡±ÄÑ«÷Åä                                                      Äú¿ÉÒÔ±à¼-ÏÂÃæÕâ¸ö½Å¾   color           ¸³ÓèÖ´ÐȨÏÞ   chmo
d +x color                       È»ºóÔÙ ËÐ

#!/bin/bash

#

# This file echoes a bunch of color codes to the

# terminal to demonstrate what's available. Each

# line is the color code of one forground color,

# out of 17 (default + 16 escapes), followed by a

# test use of that color on all nine background

# colors (default + 8 escapes).

#

T='gYw' # The test text

echo -e "n 40m 41m 42m 43m

44m 45m 46m 47m";

for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' 

'1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' 

' 36m' '1;36m' ' 37m' '1;37m';

do FG=${FGs// /}

echo -en " $FGs 033[$FG $T "

for BG in 40m 41m 42m 43m 44m 45m 46m 47m;

do echo -en "$EINS 033[$FG033[$BG $T 033[0m";

done


                                                                                                                                     17
echo;

                                             done

                                             echo

                                             Ò»Ö ¸üÊ µ± ÄÉ趨

                                                                PS1="u: w$ "

                                                                ÕâÑù                                                                 Ìáʾ·û ͱä³É

                                                                               user_name: /usr/bin$

                                                                               Äú¿ÉÒÔͨ¹ýÃüÁî                                                                                                     export À´²âÊԻͬµÄÉèÖà                                                                                                           ±È ç                                                    export PS1="u: w$ "                                                                                                                                                 Èç¹ûÕÒµ½
                                                                ÁËʺϵÄÌá¾·û                                                                                                                       ¾Í½«ÉèÖ÷ŵÄú                                                                                '.bashrc''ÖÐ                                                                        ÕâÑù      ÿ´ÎòªØÖÆÌ¨»Õ¶Ë°Úʱ                                                                                                                                                                                ¶¼
                         »áÉúЧ

                                                                               ÄúÉõÖÁ¿ ÒÔ¸øÌáʾ·û 趨Ö÷ â                                                                                                                                                                              (theme)              Ò²¾ÍÊÇ´îÅä » ¬µÄÑÕÉ«                                                                                                                                                                             ʹÆä¿´ ðÀ ÏóºÜ°ôµÄ                                                            ol
µÄ                                                                                C64 Ìáʾ·û   Èç¹ûÄú¶Ô´Ë¸Ð ¤    ¿ÉÒÔ ´ »ÏÂ
                                                                               Bashish http://hem.passagen.se/arnognulf/index2.html

                                             ¸Ä±ä                                                                                    $PATH

                                             '$PATH'Óë                                                                                              '$PS1'Ò»Ñù                                                                           Ò²ÊÇ»·¾³±äÁ¿                                                ÊäÈë

                                             set

                                             ½«ÁгöËùÓ µ±Ç°¶¨Òå Ä»·¾³ äÁ¿

                                             Äú¿´µ½ ÕâЩ»·¾³±äÁ ÔÚ                                                                                                                                                                                           shell µÄÅäÖÃμþж¨Òå                                                                                                                                  ¿ÉÄÜÊÇÓû§×Ô¼ºµ ÅäÖ ÎÄ þ                                                                                                                                   Ò²¿ÉÄÜ
                                             ÊÇÓÉ                                                           'root'ͨ¹ý                                                              '/etc'ÏÂÃæµÄÏͳ¼¶Îþ¨Òå                                                                                                                                Èç¹ûÄúÊ Óà                                                                                                         X                          ¸ü¶àµÄһЩ±äÁ¿½«ÓÉ                                                                             X
                                             Äúµ ´°¿Ú¹ÜÀíÆ÷»ò× Ãæ ·¾³µÄ ô¶¯Î ¼þÅäÖÃ

Èç¹û¶ÔÕâЩÉèÖò»ºÜÇå³þ                                                                                                                                                                                                                                          ÄúÔÝʱ×îºÃ²»ÒªËæã¸¶¯                                                                                                                                                          Á˽âÈçºÎ¸Ä±ä                                                                        $PATH ±äÁ¿ºÜÓÐÃ
                                             ÒòΪÕâ¸ö±äÁ¿¾¶¨Ë                                                                                                                                                                  shell ½«µÄЩ¿Â¼ÖѰÕÒÃüÁî»ò³Ì                                                                                                                                                                                                      Èç¹ûҪִеÄÃüÁî¿Â¼ÔÚ
                                                                $PATH ÖÐ                                                                               Äú¾Í²»±ØÊäÈëÕâ¸öÃüÁîµêû·¶                                                                                                                                                                             Ö±½ÓÊäÈëÃüÁî¾Í¿ÉÒÔË                                                                                                                                                                  һЩµÚÈý·½í¼þ
                         ûÓн«¿ÉÖ´Îļþ·Åµ                                                                                                                                                                                                        Linux µÄ ±ê׼ĿÂÖÐ                                                                                   Òò´Ë                                ½«ÕâЩ·Ç±ê×¼µÄ°²¿ÂÌíÓ                                                                                                                                                                       $PA
                                             TH ÊÇÒ»Ö½â¾öµÄ°ì·¨                                                                                                                                                                                    ´ËÍâ    ÄúÒ²½«¿´µ ÈçºÎ ¦Àí »°ã Ä ·¾³±äÁ¿

Ê×ÏÈ                                                                                                                                 ×÷Ϊ¹ßÀý                                                           ËùÓл·¾³±äÁ¿Ãû¶¼ÊÇ´ó                                                                             ÓÉ Ú Linux Çø·Ö´óС                                                                                                                                                                                                          ÕâµãÄúÒªÁô                                            µ±
È»                                                                                                          Äú¿ÉÒÔ× ¼º¶¨ å »Ð©±äÁ¿                                                                                                                                                       Èç   '$path' '$pAtH' µ«  shell ²»áÀíÇÕâЩ±äÁ¿



                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      18
µÚ¶þãÊDZäÁ¿ÃûÓкòÒÔ                                                                                                                                                                                                        '$'¿ªÍ·                                                                  µ«ÓÐʱֲ»Ç                                              µ±ÉèÖÃÒ»¸öäÁ¿Ê                                                                                                                                      ÄúÖ±½ÓÃû³Æ                                                                     ¶ø²»
     ÐèÒª¼Ó                                                                                   '$'

                 PATH=/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin

                 Òª»ñÈ¡±äÁ¿Öµ Ä °                                                                                                                                                             ¾ÍÒªÔÚ±äÁ¿Ãûǰ¼Ó                                                                                                                                     '$'

            echo $PATH

            /usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin

            ·ñÔòµÄ»°                                                                                      ±äÁ¿Ãû¾Í»á µ ×÷ÆÕ ¨Îı ÁË

     echo PATH

     PATH

     ´¦Àí                                                                                  $PATH ±äÁ¿Òª×¢âµÄÚÈýãÊÇ                                                                                                                                                                                                                                 Äú²» ÜÖ Ìæ ±äÁ¿                  ¶øÊÇÒª½«ÐµÄ×Ö·û´®Ìí¼Ó Ô-
     À´µÄÖÐ                                                                                    ÔÚ´ó¶àÊýÇé¿öÏ                                                                                                                                                         Äú²»ÜÓà                                                                     'PATH=/some/directory' ÒòΪÕ⽫ɾ³ý                                                                                                                                                                                                                 $PATH ÖÐ
            ÆäËûµÄùÓп¼                                                                                                                                                ÕâÑùÄúÔÚ¸ÃÖ¶ËгÌòʱ                                                                                                                                                                        ¾Í²»µÃ¸ø³öêÕû·¶                                                                                                                                                           ËùÒÔ                                       Ö»ÄÜ×÷Ìí¼Ó

            PATH=$PATH:/some/directory

            ÕâÑù                                                                              PATH ±»É賵ǰÄÖ                                                                                                                                                                          ÒÔ                                                      $PATH À´±íʾ                                                                                        ÐÂÌíµÄ ¿ ¼

                                                  µ½Ä¿Ç°ÎªÖ¹                                                                          ÄúֻΪµ±Ç°Õ¶ËÉèÃÁР                                                                                                                                                                                                  $PATH ±äÁ¿                                                                                          Èç¹ûÄú´ò¿ªÒ»¸öеÖÕ¶Ë                                                                                                                     ÔËÐ
            echo $PATH                                                                                                                                      ½«·µ»Ø¾ÉÄ                                                                                                 $PATH Öµ                                                                              ¶ø¿´²»µ½Äú¸ÕÅÌí¼ÓР                                                                                                                                                                                       ÒòΪÄúÏÈǰ¶¨å
            µÄÊÇÒ»¸ö¾Ö²¿ · ³±äÁ                                                                                                                                                                                                             ½öÏÞÓÚµ±Ç° ÄÖÕ¶Ë

            Òª¶¨ å »¸öÈ«¾Ö±äÁ¿                                                                                                                                                                                   ʹÔÚÒ ºó´ò¿ªµÄÖÕ¶Ë ÐÉú §                                                                                                                                                     ÄúÐèÒª½«¾Ö²¿±äÁ Ê ³ö                                                                                                                                                                     (export) ¿ÉÒÔ
            Óà                                                                        'export'ÃüÁî

                                                               export PATH=$PATH:/some/directory

            ÏÖÔÚÈç¹ûÄú´ò¿ªÒ»¸öе ÖÕ¶Ë                                                                                                                                                                                                                                          ÊäÈë                                                             echo $PATH                                                                       Ò²ÄÜ¿´µ½ÐÂÉèÖà                                                                                                        $PATH ÁË                                                       Çë
            ×¢Òâ                                                                              ÃüÁî        'export'Ö»Äܸ±äµÇ°Öն˼ÒÔºóеÄÀï±äÁ¿                                                                                                                                                                                                                                                                                                                                                             ¶ÔÓÚÒѾ- ËÐ µÄÖÕ Ã»
            ÓÐ×÷ Ã

                                                               ΪÁ˽«Ä¿Â¼ÓÀ¾ÃÌí µ ú                                                                                                                                                                                 $PATH                                                                          Ö»Òª½«            'export'µÄÇÐÌí¼Óµ½ú                                                                                                                                                             '.bash_profile'Îļþ
ÖÐ

                                       Çë²»ÒªÔÚ                                               '.bashrc'ÖÐÉèÖà                                                                                                                                                  PATH                                                               ·ñÔò»áµ¼Ö                           PATH ÖÐĿ¼µÒâÍÔö³¤                                                                                                                                                              Äúÿ´ÎòªÒ»¸ö
     Ð嵀                                                                                  shell '.bashrc'¶¼»á×÷Óà                                                                                                                                                                          ËùÒÔÈç¹ûÚ¸ÃÎļþÖÐÌíÓ¿Â                                                                                                                                                                      Äúÿ´ÎòªÒ»¸öÖÕ¶Ë                                                                                                                    Ä¿
            ¼ÓֻᱠÌí                                                                               Õ⽫µ¼Ö                                                                                                                                                  PATH ±äÁ¿ÓÉÚ֯                                                                                                                                   ²»¶ÏµØÔö³¤


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 19
µÚÁùƪ                                                                                                                       ÃüÁîµÄ±ð û                                                                   Shell º¯Êý                                                                          ´ÓÕâÀï³ö·¢                                                                                  Shell ³£¼ûÎÊÌâ

                                                                                                            ÃüÁîµÄ±ð û                                                                                    Shell º¯Êý

¼ÇסËùÓеÄÃüÁî°¸÷Ô´ø¿ÉÑÏ                                                                                                                                                                                                                                                                                                                                           È»ºóÿ´ÎÒÊäë                                                                                        ÕâȷʵÓÐã¿ÝÔï                                                   µ«ÐÒÔËÄÊÇ                               Äú
                           ¿ÉÒÔΪ³£ÓÃüÁåì½Ý·Ê                                                                                                                                                                                                                                ÕâЩ¿ì½Ý·ÊÉÒÔÓÃϼòµ¥ÄüÁî±ðû                                                                                                                                                                                                                       (alias) »ò¸´ÔÓÒЩ
                                                   µÄ                                                                                    shell º¯ÊýµÄÓï·¨À´¶Òå

                                                   ÃüÁîµÄ±ð û

                                                   ÀýÈç                                                                                             ÎÒÓÃÏ æµÄ üÁîÀ´É «                                                                                                        MUO ÖеÄμþ

                                                   rsync -e ssh -z -t -r -vv --progress /home/tom/web/muo/rsmuo/docs muo:/www/mand
                                                   rakeuser/docs

                                                   ÏÔÈ»                                                                                             Èç¹ûÿ´Î¶¼ÒªÖð »ÊäÈë                                                                                                                                      ÄÇÎÒÔçÍí»á±ä³É ¾ ·                                                                                                                             Òò´ËÎÔÚ                                                '~/.bashrc'Öж¨ÒåÁ˱ðÃû

                                                   alias upmuo='rsync -e ssh -z -t -r -vv --progress /home/tom/web/muo/rsmuo/docs m
                                                   uo:/www/mandrakeuser/docs'

                                                   ÏÖÔÚ                                                                                             ÎÒÖ» ªÊäÈë                                                                                upmuo ¾Í¿ÉÒÔê³Ï´«ÈÎñÁË

                                                        ¶¨Òå±ðÃûµÄÓï· ÊÇ

                                                                            alias shortcut='command'

                                                   ÃüÁîÖÐÓ ¿Õ¸ñµÄ»°                                                                                                                                                                                ¾ÍÐèÒªÓà ýºÅ                                                                                                                   ÈçÔÚÃüÁîÓë¿ÉÑ¡Ï ¼ä¾Í Ð Õ¸ñ                                                                                                                         Çë×¢           Òâ         Äú¿ÉÒÔÓÃ
                                                   µ¥ÒýºÅ»òË«                                                                                                                                                              µ«ËûÃÇÊ ÓÐ ø±ð Ä

                                                                            µ¥ÒýºÅ½«°þ¶áÆäÖÐÄËùÓ×·ûÌØÊâ¬å                                                                                                                                                                                                                                                                                                                          ¶øË«ÒýºÅÖÐµÄ                                        '$' ²ÎÊýÌæ»                                          ºÍ   '`' ÃüÁîÌæ»
                                                        ÊÇÀýÍâ                                                                                                             ÕâÒζ×Å                              Èç¹ûÄúÏëÔÚ±ðÃÖÐÓ¦äÁ¿»òüîµÌæ                                                                                                                                                                                                                                                           ¾ÍµÃÓË«ÒýºÅ                                    ¿´Ò»ÏÂÉ              Ãæ
µÄÀý×Ó                                                                                                                                                                               ÎÒÔÚ                 '.bashrc'Öж¨ÒåÁË»¸ö³ÆÎª                                                                                                                                                                                                MUOHOME µÄ±äÁ¿

                                                                                                            export MUOHOME=$HOME/web/muo/rsmuo/docs

                                                                                                            ÒªÔÚÉÏÃæµÄ±ð ûÖÐÓ Õâ¸ö äÁ¿                                                                                                                                                                                             ÎҾͱØÐëÓÃË« ýºÅ

                                                                                                            alias upmuo="rsync -e ssh -z -t -r -vv --progress $MUOHOME muo:/www/mandrake
                                                                                                            user/docs"

                                                                                                            ·ñÔò                                    ±ðÃû½«²éÕÒ »¸ö Ϊ                                                                                                    '$MUOHOME'µÄ¿Â¼»òÎþ

                                                                 Äú¿ÉÒÔÓà                                                                                                            'alias'ÔÚÃüÁîпìËٵش½¨±ðû                                                                                                                                                                                                »ò½«ÃüÁî·Åµ¸÷×ÔÄ                                                                      '~/.bashrc' »ò·Åµ½Ïͳ¼¶Ä


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    20
'/etc/profile.d/alias.sh'ÖÐ                                                                                                                                                                                 ¶øÔÚ      Mandrake Linux 8 ÒÔǰµÄæ±¾Àï                                                                                                                                                                                                            ÓõÄÊÇ                                           '/etc/bashrc'
                       Ҫɾ³ý»¸ö±ðÃû        Ö»ÒªÊäÈë                                                                                                                                                                                       unalias alias ÔËÐ alias ½«ÁгöÄúϵÍÖËùÓ¶¨Òå±ðÃû

     Èç¹û¿´Ò»Ï                                                                                                                           '~/.bashrc'ºÍ                                                                        '/etc/profile.d/alias.sh' Äú»á·¢ÏֵͳÒѾ-¶¨åÁËЩ±ðÃû                                                                                                                                                                                                                                                                        Äú¿ÉÒÔ
Ϊͬһ¸öÃüÁåà±ðû                                                                                                                                                                                                                                       µ±È» ÄúµÃÏÈ·±ðûÓëÆä˳ÌÐò²»Í¬                                                                                                                                                                                                                                 ±ÈçÏó                           alias rm=
'ls -l' ÕâÑùµÄ¾Í²»Ü¹¤×÷                                                                                                                                                                                                           Äú¿ÉÒÔÚÃüÁîÐÊäÈëÕâ©ì½Ý·                                                                                                                                                                                           ²âÊÔһϠ                                                                  Èç¹û                   shell ÕÒ²»
µ½ÏàͬÃû³Æ Ä üÁî                                                                                                                                                         ÄÇ ú¾Í¿ÉÒÔ½«ÆäÓÃ×÷±ð ûÁË

                       ÒÔϱðÃû¿ÉÄÜÓÐ                                                                                                                                    ²»ÒªÍüÁË ýºÅ

                       l alias rpmq='rpm -qa | grep'                                                                                                                                                                                                                  ÏÖÔÚ                                                 rpmq string ¾Í½«ÁгöËùÓÃûÆÖº¬                                                                                                                                                                                             string µÄÒÑ
                       °²×   RPM °ü

                                                  l alias ls='ls -ho --color | more'                                                                                                                                                                                                                ls ½«ÒÔ²ÊÉ·Ö³ÁÐöÎļþ                                                                                                                                                                      Îļþ´óСÒÔ                                                                KB Ϊµ¥
                  λ

                       l alias use='du --max-depth=1 | sort -n | more'                                                                                                                                                                                                                                                                                                                                  use ½«×ÓĿ¼°´óСźà                                                                                                                            ²¢ÒÔ·Ö ³
                       ·½Ê Áгö

     Ŀ¼µ ±ðÃûÒ² É ÔÊÇ Æ¶¯µÄ½éÖ                                                                                                                                                                                                                                                                     alias dlm='/mnt/cdrom/RedHat/RPMS/'

                       Ìáʾ                                     ½«ÓÐ                                            ÏàËÆ¹¦Äܵ±ðÃûÒÔͬ×Ö¸¿ª·                                                                                                                                                                                                                          ±È罫ËùÓÐĿ¼µðÃûÒÔ                                                                                                                       'd'×÷¿ªÍ·                                         ÕâÑùÓÐÖú
ÓÚ¼ÇÒä

                                                  ÎÒÏàÐÅ                                   Äú½«»áÓõ ÕâЩ¹¦ Ü

                  Shell º¯Êý

д                                                   shell º¯ÊýÉæ¼°µ½ÁË                                                                                                                                                        shell ½Å±¾                                    ÕⳬöÁËÎÒÃÇÌÖÂ۵ķ¶§                                                                                                                                  Ò²»ÔÚεÄÕÆ·¶§Ö®                                                                                                                                 ;
                                                  -)           Ê µÉÏ                                                                         shell º¯ÊýôÓÚ                                                                                     shell ½Å±¾                                                                                                     µ«¿ÉÒÔ Úͬ »                                                    shell ϱ»Ô¤¼ÓØ                                                                                         (preload)ºÍÖ´
                                                  Ð   ¶øÒ»°ãµÄ                                                                                shell ½Å±¾ÖÁÉÙÒª´ò¿»¸ö                                                                                                                                                                                          sub-shell

                                                  ͨ¹ý         shell º¯Êý                                                                                 Äú¿ÉÒÔ×öºÜ¶à                                                                              aliases ÎÞ·¨Íê³ÉµÄÊÂÇé                                                                                                                                                       ÏÂÃæ¾ÍÊÇÒ»¸öÀý×Ó

function apros() { apropos $1 | egrep -v '(3|(n)'; }

¶¨ÒåÁË »¸öÐÂÃü î                                                                                                                                                         ³ÆÎª                                                    'apros' apros name ½«ÏÈÖ´Ð                                                                                                                                                               'apropos name' ¼´ÔÚ                                                                                                           man pag
e ÖÐËÑ ÷ÃüÁî                                                                                    È»ºó½«µÃ ÄÊä³öËÍ ¹Ü À                                                                                                                                                                                                                                                                  |                ½Ó×Å Ã                'egrep'¹ýÂË            Å ³ýµÚ                                                                                             '3'ºÍµÚ 'n'
ÕÂ½ÚµÄ                                                                                  man page                                                                                                    Õâ¸öÃüÁî¿ÉÄÜ »Ê² ´ óÓ ¦                                                                                                                                                                µ«¿ÉÒÔÕûÀí                            'apropos'ÃüÁîµÄÊä³ö

                              º¯ÊýÔÐíÄúÚ²¿ÈλÖà                                                                                                                                                                                                       ʹÓÃÔËбµÄ²Îý                                                                                                                                              ¶ø±ðÃû                                        ÔòÖ»ÊÐíÚÃüÁîβ·ÅÒ¸ö
     ²ÎÊý                                                              ±È çÇ°ÃæµÄ ð û                                                                                                                                         'rpmq'

                  '$1'¾ÍÊÇλÖòý                                                                                                                     (positional parameter)                                                                                                                                                     ±íʾº¯ ýµÚÒ»¸ö²Î Ä Öñêʶ·û                                                                                                                                                                               ÒÀ´Ë àÍÆ


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  21
»¹ÓÐ                     '$2'µÈ

               function apros() { apropos $1 | egrep -v "($2"; }

               Èç¹ûÄúÕâÑùÔËÐ                                                                                                 'apros'ÃüÁî

                                                  apros name man_section_number

                                                  Õâ¸öÃüÁËÑ ÷±êÌ Öк¬                                                                                                                                               name µÄ                                                           man pages             µ«Å ³ý                                             man_section_number ²¿·Ö

                                apros menu 3

                                ½«ËÑ÷±êÌ⺬                                                                            'menu'µÄ                                                                              man page                                                                    µ«Å³ýÚ       ÈýÕÂ½Ú                                        ¹Ø ÓÚ±à³ÌµÄ                                              ×¢Òâµ½ÄúÃýÓ                      q
                                                  uote                          Á½´Î                                    ¶øÇÒ»¹Óõ½ÁË « ýºÅ

                                                  l Äú±ØÐëÒýÓà                                                        'egrep'µÄËÑ÷£Ê½                                                                                                       ÕâÑù¿ÉÒÔ²»ÖÁÓÚ±                                                                            shell Îó½â

                                l Äú±ØÐëÓÃË«ÒýºÅ                                                                                                           ÕâÑùµÚ¶þ¸ö²ÎÊý ÅÄܱ»Õ È·½â Í

                                                  l Äú±ØÐëÒýÓÃÔ²À¨ºÅ                                                                                                                      ÕâÑùʹ                         'egrep'°´×ÖÃæÒâ˼¶Ôý²ÎÊ

               ÊDz» ÓеãÒâ˼                                                                                                                            ;-)

                                                  shell º¯ÊýµÄ´¦ÀíàËÆÓÚ±ðÃû                                                                                                                                                    ½«Æä·Åµ Äú                                                          '.bashrc'Îļþ                                                  ÕâÑù¾ÍÄÜÓÀ ÃÉúЧÁË

´ÓÕâÀï³ö·¢

ÎÒÃÇ̸µ½ÄÖ»Ê                                                                                                                                 shell µÄÒ»¸ö¿ªÍ·                                                                                                                    ÕÆÎÁË            shell ½Å±¾                                      Äú¾Í¿ÉÒÔ×öºÜ¶àÊÂÇé                                                       ±È罫Îñ
                                ×Ô¶¯»                                                  ¾ÀÕý±ðÈ˽ŠÖеĴíÎó                                                                                                                                                    °´Õ Äúµ Ï ¹ß¶¨ÖÆ                                                                  Linux ϵͳ                             Èç¹ûÄú´òËãѧϰ ³Ö ¸
                                Ôӵıà³Ì ïÑ                                                                                  ÄÇ                          shell ½Å±¾Ò²ÊÇ»¸öºÜõĿª¶Ë                                                                                                                                     ÒòΪ»ù±¾¸ÅÄî¶¼ÊÇÀàËÆµ

                                                  BASH Programming - Introduction HOW-TO

                                                  http://www.ibiblio.org/mdw/HOWTO/Ba...ntro-HOWTO.html

                                ½«¸üÉîÈëÕâЩÖ÷Ì
                                ²¢ÇÒ½«°ÑÄú´øµ                                                                                                                                                                                                                                      shell ±à³ÌµÄÊÀ½ç     È»ºó¿ÉÒÔ¼ÌÐøÄ¶ÁÎÇÍÆöµ
               Advanced Bash-Scripting Guide                                                                                                                                                                                                                                     http://www.ibiblio.org/mdw/LDP/abs/....html)                                                                                                        ×÷ÕßÊÇ
               Mendel Cooper

               Èç¹ûÄúÆ«ºÃÖ½Êé                                                                                                                ÄÇÎÒÍÆ¼ö                                                                   S. Veeraraghavan µÄ     Teach Yourself Shell Programming
               Sams ³ö°æÉç                                                                                                        ÎÒµ¹¾õ à                                                                             O'Reilly ¹«Ë¾ÓÉ Newham/Rosenblatt дµÄ     Learning the bas
               h Shell                                                                                       ²»¹ý¶û                                                                                µ«Õâ¿ÉÄÜÖ»ÓÐÎÒ Ã´                        ;-]




                                                                                                                                                                                                                                                                                                                                                                                                                                              22
³ýÁËÕâЩ                  ¾ÍÊÇÁ·Ï°   Á·Ï°    ÔÙÁ·Ï°    ÔĶÁÆäËûÈ Ð´µ       shell ½Å±¾ ¿´ ËûÃÇÔÚ×öʲ
Ôõô×ö     ΪʲôÄÇÑù×ö                     Çë²»ÒªÓà   'root'²âÊÔÄúµ½Å±¾      Have fun                Íê




                                                                                                           23

More Related Content

PDF
Web standards
PDF
Img 0001
PDF
HTML standards
PDF
Img
PDF
Img
PPT
When You Are Angry
PDF
Mark-up languages
PPS
S A D H A N A G A N D H A Folio
Web standards
Img 0001
HTML standards
Img
Img
When You Are Angry
Mark-up languages
S A D H A N A G A N D H A Folio
Ad

Linux shell

  • 1. Linux Shell ¼ò½é °æÈ¨ÐÅÏ¢ ×÷Õß Î´Öª ÎÄÕ³ö´¦ »Æ×ì ó¶ ÂÛ̳ flaboy ÐÖתÌù Îĵ ÖÆ×÷ ¾Ü øÕý°æ ±¾Îĵ ÚÈÝÀ´Ô Ó MUO µÄ Basics ²¿·Ö ÆäÔ-ʼӢÎİæ¿ÉÒ ´ ÕâÀï»ñµÃ http://www. mandrakeuser.org/docs/ ÖÐÎİæÀ´×ÔâÏþ¹µ CMUO http://dummy.linux.net.cn/~xgwu/c muo/ MUO ÊÇ Mandrake Linux http://www.mandrakelinux.com/ ΪÓû§ÌṩµÄÈëÅÊÖ ²á ÆäÄÚÈÝʵÓò¢ÇÒ±¸üР·Ç³£ÊºÏõѧÕß×öÈëÃŲο¼ Óë³£¼ûµÄ¸÷Ö Linux ½Ì ³Ì²»Í¬ MUO ½éÉܸø Linux ³õѧÕßµÄÊÇϰ Linux µÄ·½¨¶øÇÔ³¸öÏ͵ÄÃèÊ Õâ¶Ô¸÷Ö ÓÐ×Åǧ ²îÍò±ðµÄ Linux ·¢ аæµÄѧÏÓÈÎªÖØÒ ±¾ÎÄàÒëÕûÀíʶÔϹØÂ½Ú×öÁËÓ¦µÉ¸´ È¥µôÁËÕë¶Ô Mandrake Linux µÄ²¿·ÖÚÈÝ Ê¹Óà Shell ÒÔϽ« éÉܲ¢ âÊÍ»ù±¾µÄ shell ÃüÁîºÍ»úÖÆ µÚһƪ ³¬¼¶¹¤¾ß Terminals xterms ºÍ Shells ³¬¼¶¹¤¾ß Äú»òÐíÌý¹ÕâÑùµÂÛ÷ ÃüÁîÐ (the mommand line)Ôç ¾ÍÒÑ-¹ýʱÁË ÄǶ«Î÷ÉñÃØÙâµ µÈ ÓÐ ©ÈËÉõÖÁ¾ µÃ²Ù×÷Ï Í³ ÐÓ¦¸ » Õâ ©ÃüÁî²Åº Ê µ ÇÉÏ Äú¿ÉÒÔ²»¶®Èκ shell ¾ÍÄÜʹÓà Linux ÄúÆô¶¯ÏµÍ³ºó¿ÉÒÔÖ±½Ó øÈë X Wi ndow ×îºóÔÚ X Window Ϲػú ÎÒ¼áÐÅ Óà Linux ¶ø²»® shell ¾ÍÏ󿪳µÖ» áÓà · (first gear)Ò»Ñù µ±È» ×î³õ¿´Æð À´ Ö±½Ó¶ø¼òµ¥ ÔÚ´ó¶àÊýÇé¿öÏ ¼¹ÜÓà µ«ËÙ¶ÈÂý ¶øÇÒÎÞ·¨Õæ ýÌåÑé¼ÝÊ»µÄÀÖȤ ¶Ô ÃüÁîкÜÓȤ ¾ÍÏóÓÃÒ»´¶ÑÊÕ¼¯µ½Äý ¾¹¿ÉÒÔÍê³Ðí¶àâÏë²»µ½Ä´Ù һЩ ¼« Æä¸´ÔӵŤ×÷ Ö»Ð輸ÃüÁî¾Í¿ÉÒÔ½âö ÕâÊÇÒòΪ ÔÚ Unix ÖÐ shell ¿É²»ÊǼòµ¥ÄÃü Áî½âÊÍÆ÷ µäÐÍ ÄÓ Windows ÖÐµÄ DOS ¶øÊÇÒ»¸öÈ«¹¦Äܵ ±à³Ì ·¾ Õâ²¢ »Ò ζ×Å shell ·Ç³£ÈÝÒ×ѧͨ ÄúÖªµÀ ºÃʶàÄ¥ Õ⻹ÊÇÒª ¨µã ¤·ò Ä ;-) µ«ÇëÏà ÐÅÎÒ Õâ¾ø¶Ôֵà ÄúÔںܶÌʱ¼ä ¾ÍÄܱ»Ò´ó°ïÃÅ⺵õΪ Unix wizard Ææ²Å *grin* ΪÁË µÃ÷ shell ÕâÀïÐèÒª » ©±³¾°Ö ʶ Terminals, xterms Óë Shells ×·Ëݵ½ Unix µ®ÉúÄǸöê´ µ±Ê»¹ÃÓÐÏÖÔÚÁ÷Ä "¸öÈ˼Æã»ú " ±»³ÆÎª¼ËãúµÄ÷ »¹ÊÇÍÌ Â´Å øÓë magnetic memory ÓÃÊõ ï 'core'À´±íʾϵͳ memory µÄÅÓÈ»´óÎï D EC ¹«Ë¾ ÚÔÖÏ Äµ Compaq ÍÆ³öµÄ PDP-11 Ìå»ýС ±»³ÆÎª mini ¶øÇÒ¼Û¸ñµ× ÔÚ´ó ѧÖÐÒýÆðÁ˾޴óµÄ·Ïì ºÜ¶àѧУֱµ½ÄÇʲÅÂòÃÆðһ̨¼Ëãú PDP-11 ÎïÃÀ¼ÛÁ® Ö»ÓÐ 10000$ ÕâЩ»úÆ÷µÄ²Ù×ÏͳÓÉã±àïÑÔ »úÆ÷ÓïÑÔд³É ËùÒÔÐÆðÀ´§ÂÊºÜ¸ß µ«¶¼ÎÞ·¨ÒÆÖ² (u nportable) ÿ¼Ò ÆËã»ú¹« ¾¶ ¸ø×Ô¼ºµÄ Æ÷ÅäÉ϶ÀÓÐ ²Ù× µÍ³ È»ºóÔÙÏúÊÛ ÕâÖ±¿×¾µÄ÷·¨ºÜìÍ»ÈËÃÇÒʶ½Á ÓÚÊǾͿª¼Ð˽¨Ò»¸öÉÔ²¬Æ·Åú÷쵀 ²Ù×÷ϵͳ 1969 Äê Ken Thompson ¿ªÊ¼Ð´ºóÀ³ÉÎ Unix µÄÚһдúÂë Thompso 1
  • 2. n Ôø¾-²Î¼ÓÁËÒ»¸öÏîÄ¿ MULTICS Unix ÊÇÓëÕâйصÄÒ»¸öÍæ¦´Ê Æäʵ Dennis Rit chie ΪÕâ¸öеIJÙ×÷ÏͳÉè¼ÆÁËÒ»ÖеıàÌÓïÑÔ -- C ÓïÑÔºó ÊÂÇé²ÅÕæ ý¿ª ¼ ËäÈ» Unix µÄЧÂʲ»¼°Ô-À´Ù×÷Ïͳ µ«ÓÐÈý¸öÍ»³ÄÅã ¿ÉÒÔÈÎâÆÖ²µ½äËû»ú÷ ÆäÖÐµÄ C ÓïÑÔ´ó ¼ò»¯Á˱à³Ì ¶øÇÒÕâЩ ¼ free ºÜ¿ì È«ÃÀ¹úµÄ´óѧ¶¼ ¦×Å¿ªÊ Î »ú Æ÷°²× Unix ÖÕ¶Ë Terminals Unix ÊÇ¿ÉÒÔÚÐí¶àÖ»úÆ÷Ï˵IJÙ×ͳ µ«ÈËÃÇÓÖ çºÎʹ ÕâЩ»úÆ÷ÄØ ËûÃÇÊͨ¹ý ÑÆÖÕ¶ËÀ´Á¬½ÓµâЩ»ú÷ Ò²¾ÍÊÇÓüüÅÌ ÏÔʾÆ÷¼°×ã¹»µÄ electronics µç×ÓÔª¼þ ×é³É µÄ»úÆ÷ÓëÖÐѼËã (central computer)ÏàÁ¬ ÔÚÕâЩֶËÉÏ Óû§¿ÉÒÔÇ×Ö·û teletypy Õâ¾ÍÊÇ×Ö·û´® 'tty'±íʾÖÕ¶ËÉ豸Îļþ ºÍ 'getty'ÃüÁîµÄÃû³ÆÀ´ú Äú¿É Ü»áÎÊ ÏÖÔÚÕâЩ¶«Î÷ ¼ Ä ù ÕâÐ©Ö ¶ËµÄ³§¼ÒÎÞ·¨´ï É »Ïî× ÖÕ±ê ×¼ Õâµ¼ÖÂÿ ÖÅÆ×ÓµÄն˼и÷Ôü̲¾ ¸÷×ÔµÄÚÆÁ»ÉÏʾַû½¨ ·¢ËÍ»ò½ÓÊղôÐź ±íʾ ²Ã´×Ö·û ¿ØÖÆ´úÂëµÈ ΪÁ˱ÜÃâÕ Ð©»ìÂÒ ¾Í´ ½¨ÁËÒ»¸öº¬ÓÐ ù ² Í ÖÕ¶ËÌØ Ô µÄ (capability)Îļþ Õâ¾ÍÊÇ 'termc ap' ÓÃÒ»¸ö¹¤¾ß´ò¿ª '/etc/termcap'ÇÆÇ ¿É±ðÏÅ× ÁË ;-) Linux ÖÕ¶Ë´óàÊýÓà 'vt100'»ò 'linux'×÷ΪÖÕ¶ËÀàÐÍ xterms ÔÚ°ËÊ®Äê´ú³õÆ ²úÉ ÁËÒ»¸ö Unix µÄͼÐÎ×Óϳ -- the X Window System ¾ÅÊ®Äê´ú ÔçÆÚ ΪÁ˸üºÃµØÊ ÏÖ»ùÓÚ Intel µÄ Unix ÀàÏµÍ³É Èç FreeBSD NetBSD Linux µÄ Ó¦ à ²úÉ ÁËÒ»¸öϵͳ·Ö § -- XFree86 X Window ÖÐÒ»¸öºÜ´óµÄæÊÇ¿ÉÒÔËжà¸öéÄâ (virtual)ÖÕ¶Ë ÉõÖÁÔÚ X Window ÏÂ¾Í ÓÐÕâô¸ö ¦ ³Ì ò --'xterm' Äú½«·¢ÏÖ 'xterm'ºÍ 'virtual terminal'ÔںܶàÇé¿öϼÊÒ»ÑùµÄ ÓÐµÄØ·½Ë '´ò¿ªÒ»¸ö xterm' ÆäʵÄú²»Ç·ÒªÓà 'xterm'³ÌÐò ÆäËûµÄÖÕ¶£â÷ (terminal emulator) Èç rxvt konsole aterm eterm wterm µÈ Ò»ÑùÓÐ § ÖÕ¶ËÄ£âÆ÷ ÓÖ³ÆÎªÐéÄâÕ¶Ë Í¨¹ýα (pseudo) tty É豸 -- pty ÓëϵͳàÁ¬ ²¢ÇÒʹÓÃ×Ô¼º µÄÏÔʾ±ê×¼ -- xterm Õâµ¼Ö²»Í¬Ä¶Ë£Æ÷¿ÉÜÔÚÒЩ°´üò³ÌÏæ¸¡î±ð ÕâÈ¡¾öÓÚÄ£ Æ÷¶à´ó³Ì ÈÉÏ×ñÊØÁË 'xterm'µÄÏÔʾ±ê×¼ Shells ΪÁËÔÚÖնгÌò ÐèÒª shell shell ÊDzÙ×÷ϵͳÄÒ»¿·Ö ÓÃÀ´ë»§ò½µ ²¢ ÇÒ¿É ÔÓÃÀ´Ð-µ÷¸ ö üÁî µÚÒ»¸öÕæýÄ Unix shell -- 'sh' Òà³ÆÎª 'Bourne shell' µ®ÉúÓÚ 1975 Äê ×÷ÕßÊÇ Steve Bourne ºÜ¿ì ³öÏÖÁËÆä û shell Èç»ùÓÚÔ-ʼ 'Bourne shell'µÄ 'ksh' 'zsh' ºóÕß³£Óà 2
  • 3. ×÷ ¨Êô Unixes ϵͳÖÐıê×¼ shell Ò²ÓÐ » ©´ C ÓïÑÔÖÐ ÜÉú³öÀ´µÄ shell Èç 'csh' »ò 'tcsh' ÔÚ Linux ÖÐ ±ê×¢µÄ shell ÊÇ 'bash' ¼´ the GNU Bourne-Again Shell ÓеãÍæ ¦ Äζ µÀ Õâ¸ö shell ¹¦Äܷdz£¿´ó ÉõÖÁÓÐÈ˾µÃ̫Ŵó ѹËõµÄ man page ¾ÍÓÐ 50 KB Shell Æð²½ Ê×ÏÈ ÓÐÒ»µã ¡Ë Ã÷ ÔÚÆ½³£Ó¦ ÃÖÐ ½¨ÒéÄú²» ªÓà 'root'ÕʺÅÔËÐ shell Èç¹ûÄú» ÊÇРÊÖ ÕâÒ»µãÓÈÆäª×¢ ×÷ΪÆÕͨÓû§ ²»¹ÜÄúÓÐÒâÊÇÎÞ ¶¼ÎÞ·¨Æ»µÏͳ µ«Èç¹û ÊÇ 'root' ÄǾͲ»¬ÁË Ö»ÒªÇü¸ ö× Ä ¾Í¿ÉÄܵ¼ÖÂÔ ÑÐ ºó¹û µ±ÄúÇÈëÏͳ»ò´¿ªÒ¸ö xterm ´°¿Ú Ê×ÏÈ¿´µ½ÄÇÌá¾·û (prompt) Red Hat Linux µÄ ±ê×¼Ìáʾ·û°üÀ¨ÁËÄúµ Óû§ µÇÈë ÄÖ÷»úÃû ûÓÐÉèÖ µÄ ° ÊÇ 'localhost' µ±Ç°ËùÔÚ µÄ ¿Â¼ (working directory) Ìáʾ·ûºÅ [tom@belbo tom]$ ÎÒ ÔÓû§ û 'tom'µÇÈëÃûΪ 'belbo'µÄÖ÷»ú µ±Ç°ÔÚÎÒ Ä home Ŀ¼ --'/home/tom'ÖÐ 'root'µÄ Ìáʾ·û [root@belbo root]# ³ýÁ˲»Í¬µÄÓçûâ Ìáʾ·ûºÅÓÉ '$'±ä³ÉÁË '#' ¸ù¾Ý Bourne shell µÄ´«Í³ ÆÕͨÓû§µÄÌá ʾ·ûÒÔ '$'½áβ ¶ø³¬¼ Óû§ '#' Ìáʾ·ûµÄÿ¸ö² Ö¶¼ ÉÒÔ ¨ Æ ÄúÔÚºóÃæ½«ÓиüÉîµ ÁË â ÒªÔËÐ ÃüÁîµÄ»° ÄúÖ»ÒªÔÚÌáʾ·ûºóÇýø üÁî È»ºóÔÚ°´ <ENTER> ¼ü shell ½«ÔÚÆä· ¾¶ÖÐ ÏêÇé¼ûºó ËÑ÷Õâ¸öÃüÁî ÕÒµ½Ôºó¾ÍËÐ ²¢ÔÚÖÕ¶ËÀïÊä³öÏàÓ¦µÄ½á¹û Èç¹ûÓÐ µÄ »° ÃüÁî½áÊøºó ÔÙ¸ø³öеÄÌáʾ·û [tom@belbo tom]$ whoami tom [tom@belbo tom]$ ˳´øÖ¸ö µ±ÄúÇà ENTER ʱ ¹â±ê (cursor)ÔÚ ÄÀï²¢»Òª½ô ÒòΪ shell ×ÜÊÇ»áÕûеضÁ È¡ »ù±¾µÄÃüÁîÓÐ 'ls' list directory ÁгöĿ¼ÚÈÝ 'cp' copy ¸´ÖÆ 'mv' move / rename ÒÆ¶¯ ÖØÃüû 'cd ' change directory ¸Ä±ä¿Â¼ ÕâЩÃüÁîºóæ¶¼¿É ÒÔ¸úÉÏ »°ï¿ Ñ¡ î Õâ·½Ãæ man page ÓÐÏ긵ĽéÉÜ man ls, man mv µÈ ÔÚÄú¶¯ÉíǰÍù shell ÁìµØÇ° ÕâÀïÓм¸öÊõ (terminology)µÄ ¼ò¶Ì˵Ã÷ ÃüÁî¿ÉÄÜ´øÒ»Ð© 3
  • 4. Ñ¡Ïî options ²ÎÊý arguments mv -i file dir ÆäÖÐ '-i'ÊÇÃüÁî 'mv'µÄÒ»¸ö¿ÉÑ¡Ïî ¶ø 'file'ºÍ 'dir'ÔòÊDzÎý ËùÓпÉÑ¡ÏîÔڸà üÁ µÄ man pag e ¶¼ÖÐÓ Ïê ¸µÄ½éÉÜ ´ËÀýÖÐÓà man mv ¶ø²ÎÊýÔòÓÉÄúÌṩ ¿ÉÑ¡Ïî¾ö¶¨ÃüÁ ÈçºÎ¹¤ ×÷ ¶ø²ÎÊýÔòÓà ÚÈ· ¨ üÁî×÷ µÄ ¿±ê µ½Ä¿Ç°ÎªÖ¹ ½éÉܵÃÓÐãÏóí¶àÈËÑáñÇÊÄ DOS shell µ«°éËæ×ÅÏÂÃĽÉÜ Äú½«»á ÓРµÄÌåÑé µÚ¶þƪ ×Ô¶¯²¹Æë ÃüÁîÐ µÄÀúÊ·¼Ç ±à¼-ÃüÁîÐ ¿ÉÓÃµÄ Shell ¿ì½Ý·Ê Unix ¼°ºóÌÕß Linux ÔÚÃüÁîÐÏÂæµ®Éú Òò´Ë Unix ÖеÄÃüÁîÓí¶à·Ç³£Ê¹¦ ÄÜ ÔÚ±¾ÆªÖÐ ÎÒÃǽ«À´×÷ »Ð©ÁË â ×Ô¶¯²¹Æë ÈçºÎÓà 'cd' ¸Ä±ä ¿Â¼ change directory ×î¿ìµØ´ÓÄú ±Ç°ËùÔÚ home Ä¿Â¼Ìøµ½ '/usr/sr c/redhat/'ÄØ cd /u<TAB>sr<TAB>r<TAB> Õâ³ÆÎª 'ÃüÁîÐ×Ô¶¯²¹Æë '(automatic command line completion) ÕâÔÚÆ½³£Ó¦ÃÖÐÊDz»¿Éȱ ÉÙµÄ ÈÃÎÒ Ç×Ðϸ¿´ Õâ öÀý Ó cd /u<TAB> À©Õ¹³ÉÁË cd /usr/ ºÜ¼òµ¥°É ÏÂÃæµÄ cd /u<TAB>sr<TAB> À©Õ¹Îª cd /usr/src/ Èç¹ûÄúÖ»ÇÃÁË cd /u<TAB>s<TAB> '/usr'Ï ƥÅäµÄ 'cd /u*/s*' Èý ¸ö×ÓĿ¼½«Áг ¹© úÑ¡Ôñ '/usr/sbin' '/usr/share'ºÍ '/usr/src' Òò´Ë <TAB> ¼ü¿ÉÒԺܷ½±ãµØÓÃÚ¸ù¾Ýǰö×ÖÄ À´²éÕÒÆ¥ÅäµÄμþ»ò×Ó¿Â ±Èç ls /usr/bin/zip<TAB> ½«ÁгöËùÓ '/usr/bin'ÏÂÃæ ÒÔ×Ö·û´® 'zip'¿ªÍ·µÄμþ»ò×Ó¿Â µ±È» Íê³ÉÕâÀàÈÎ ñ»¹Óиü ÷º¦µÄà Áî µ«Õâ¸ö·½ ¨È Ê ºÜ¹ Óà ÁíÍâ Åöµ½³¤ÎļþÃûʱ¾ÍÏÔ ÌØ ð·½ ã ¼ÙÉèÄúÒª°²× »¸öÃûÎ 'boomshakalakwhizbang- 4.6.4.5-i586.rpm'µÄ RPM °ü ÄúÊäÈë rpm -i boom<TAB> Èç¹ûĿ¼ÏûÓÐÆäËÎþÜ ¹»Æ¥Åä ÄÇ shell ¾Í»á×Ô¶¯°ïæ²¹Æë cd /u<TAB>sr<TAB>l<TAB> 4
  • 5. ½«À©Õ¹³É cd /usr/src/linux ²¢µÈ´ý¼ÌÐø '/usr/src'ÖÐÓÁ½¸öÆ¥ÅäµÄ¿Â¼ '/usr/src/linux-[...] ' '/usr/src/linux' ÈçºÎ¸æËß shell ÄúÏëÒªºóÃæµÇ¸öØ Ö»Òª¸ú öбÏß / slash ¾Í¿ÉÒÔÑ¡ ñºóÃæµÄ ǸöÁË ¼ÙÈçÄú²» ·¶¨ÊÇ '/usr/src/linux/Documentation'»¹ÊÇ '/usr/src/linux/documentation' ¶øÄúÖª µÀ Linux ÊÇø·Ö´óСµÄ Èç¹ûÒѾ-×Ðϸ¶Á ýÇ°Ãæ²¿·ÖµÄ» ÄúÏëµ½¿ÉÒÔÓà cd /u<TAB>sr<TAB>l<TAB>/d<TAB> À©Õ¹³ÉÁË '/usr/src/linux/drivers/' Òò´ËÓ¦¸ÃÊÇ 'Documentation'(´óдµÄ 'D') ÕâÖ ²¹Æë¶ÔÃüÁîÒ ÓÐ § [tom@belbo tom]$ gre<TAB> grecord grefer grep [tom@belbo tom]$ gre ÔÚÕâÀï shell ½«ÁгöËùÓÒÔ×Ö·û´® 'gre'¿ªÍ·µÄÒÑÖÃüÁî ÃüÁîÐ µÄÀúÊ·¼Ç ͨ¹ý°´ÏòÉ·½¼ü Äú¿ÉÒÔÏòºó±éÀ½ü´Ú¸ÃØÖÆÌ¨ÂÊäÈëµÁî ÓÃÏò·½¼ü¿ÉÒÔǰ ±éÀú Óë SHIFT ¼üÁ¬Óõϰ Äú»¹¿ÉÒÔ±éÀÍùÚ¸ÃØÖÆÌ¨ÐµÊä³ö ÄúÒ²¿ÉÔ±à¼-¾µ ÃüÁî È»ºóÔÙ ËÐ °´ <CTRL r> ºó shell ¾Í½øÈë "reverse-i(ncremental)-search" ÏòºóÔöÁ¿ËÑ÷ ģʽ ÏÖ ÔÚÊäÈëÄúÒªÕ µ ÃüÁî Ê× Öĸ (reverse-i-search)`':. ÇÃÈë 'i'¿ÉÄÜ»á±ä³ (reverse-i-search)`i': isdnctrl hangup ippp0 Èç¹ûÄúÔÙ°´ <ENTER> ¼ü ÉÏÃæµÄüÁÔÙ´ÎÖÐ ¶øÈç¹ûÄú°´ÁËÏòÓÒ Ïò×ó·½¼ü» < ESC> ÉÏÃæµÄ üÁ»Ø ÆÕͨ à РÕâÑùÄú¾Í¿ÉÒÔ½øÐ Ê µ± à¼- ±à¼-ÃüÁîРͨ¹ýâ±êº¦Äܼü Home End µÈ¼ü Äú¿ÉÒÔä¯À²¢±à¼-ÃüÁîÐ Èç¹ûÄúÐèÒª »¹¿É ÒÔ ÓüüÅ̵Ŀì½Ý· Ê À´Íê³ÉÒ»°ãµÄ±à¼- l <CTRL k> ɾ³ý´Ó¹â±êµ½Ð β Ä ¿·Ö 5
  • 6. l <CTRL u> ɾ³ý´Ó¹â±êµ½Ð Ê× Ä²¿·Ö l <ALT d> ɾ³ý´Ó¹â±êµ½ ǰ ¥ Ê áβ Ä ¿·Ö l <CTRL w> ɾ³ý´Ó¹â±êµ½ ǰ ¥ Ê¿ªÍ· IJ Ö l <CTRL a> ½«¹â±êÒÆµ Ð Ê× l <CTRL e> ½«¹â±êÒÆµ Рβ l <ALT a> ½«¹â±êÒÆµ ǰ ¥´ÊÍ·²¿ l <ALT e> ½«¹â±êÒÆµ ǰ ¥´Êβ ¿ l <CTRL y> ²åÈë×î½üɾ³ýµÄ ¥´Ê l <!$> ÖØ¸´Ç°Ò» öÃüÁî× ºóµÄ²ÎÊý ÀýÈç ÄúÓÃüÁî mkdir peter/pan/documents/tinkerbell н¨ÁËÒ»¸öÄ¿¼ ÏÖÔÚÄúòÓÃüÁî 'cd'½øÈë¸ÃĿ¼ Äú¿ÉÒÔÓà cd !$ shell ½«°ÑÇÒ»¸öÃüÁî 'mkdir'µÄ²ÎÊýÌí¼Óµ½ÏÖÔÚ 'cd'ºó Ãæ µ±Äú¸üÉîÈëÁ˽â Linux ºó ½«¿´µÕâЩìÝ·ÊÔÚÆäËûӦóÌòÏÂÈë± ÓÐʱҲ§ ±È Èç ÔÚä¯À Æ÷ÖеÄÊ Èë¿ò ¿ÉÓÃµÄ Shell ¿ì½Ý·Ê Red Hat Linux ´øÓв»ÉÙ¿ì½Ý·Ê ÆäÖÐÒ»²¿· ÊÇ bash Ô-À´¾ÍÓÐµÄ ¶ø»¹ÓÐÒ ©ÔòÊÇΪ ÄúÔ¤ÏÈÉèÖõ ÔÚºóÃæÄú½«¿´µ Èç ÎÉèÖ ÓÉ Ú home Ŀ¼ÊÇÃλӧµî¶¯ÖÐÄ Ðí¶à Unix ¶Ô´ËÓÐÌØÊâµÄ¿ì½Ý· '~'¾Í ÊÇÄúµ home Ŀ¼µòдÎʽ ÎÒÃǼÙÉèÄúÔÚÆäËû¿Â Ïë°ÑÒ»¸öÃûΪ 'sometext'µÄÎ ¼þ¸´ÖƵ½Äú home Ŀ¼ϵ 'docs'×ÓĿ¼ÖÐ ³ýÁËÊäÈë cp sometext /home/myusername/docs Äú»¹¿ÉÒÔÓüòд cp sometext ~/docs ÀíÂÛÉÏ ÕâÒ²¿ÉÔÓ¦ÃÚüÁî 'cd'ÉÏ ÎÞÂÛµ±Ç°·¾¶ÔÚÄÀï cd ~ ½«»Øµ Äúµ home Ŀ¼ Æäʵ»¹¿ÉÒÔ¼ò ¯ Ö»Òª¼üÈë cd ¾Í¿ÉÒÔ·µ»Ø home Ŀ¼ÁË 6
  • 7. Red Hat Linux ΪÄúÌṩÁËÒ»ÐÔ¤ÏÈÉèÖõĿì½Ý·Ê ³ÆÎª '±ðÃû ' aliases ±È ç l ll ½«Ö´Ð 'ls -l -k' ÒÔ³¤¸ñʽÁÐ öĿ¼ ÚÈÝ °üÀ¨Ò»Ð©ÎļþÊô Ô ²¢ÒÔ KB ¶ø²»ÊÇ byt e Ϊµ¥ »ÏÔʾ ļþ´óС l ls ½«Ö´Ð 'ls -F --color=auto' ÁгöĿ¼ ÚÈÝ ¼ÓÉÏÎÄ þÀàÐͱêʶ ²¢Ê¹ÓÃÑÕÉ« ÏÖÔÚ ÄúÓ¦¸Ã¶Ô shell ¼°Ò»Ð©¿ì½Ý·ÊÓÁËøÒ»²µÄ½â ÏÂÃæÎÒ ÇÀ´¿ ³ýÁËÓ¦ à »Ð© ¼òµ¥ ÄÃüÁî shell »¹ÄÜ×÷ʲô µÚÈýƪ ÃüÁîµÄÅ Ð ÃüÁîµÄÈÎ ñ ÷¶ ÃüÁîµÄÌæ» ÃüÁîµÄÅ Ð ÏÖÔÚÄú½«¿´µÒ»Ð©³£ÓÃüÁîÅ Äú¿ÉÜÏëÔÚÒ»ÐÖ¸ø³öËùÓÃüÁî È»ºó¾Í¿ÉÒÔ°Ñ×¢âÁ¦ ×ªÒÆµ½äËûØ· ûÎÊÌâ shell ÔÊÐíÄúÚ²»Í¬µÃüÁîÖ®¼ä ·ÅÉÏÌØÊâµÄÁÐ×Öû (queuing characters) Õâ¶ù½« éÉÜ×î³£ÓõÄÁ Ö Çë×¢Òâ ΪÁË¿´ÆðÀ¸üÇå³þ ÎÒÔÚÕâЩ×Ö·ûÁ½Å¼ÓË¿¸ñ ¶øÔÚʵ¼Ó¦ÃÖÐ Äú²»Ò¶¨ª Õâ ô×ö 'ls -a ; du -hs'ºÍ 'ls -a;du -hs'µÄЧ¹ûÊÇÒ»Ñùµ command1 ; command2 ÏÈÖ´Ð command1 ²»¹Ü command1 ÊÇ·ñ³ö´í ½ÓÏÂÀ´Ö Ð command2 ÀýÈç ls -a ; du -hs ½«ÏÈÔÚÆÁÄ»É Ð³ö ¿Â¼Ö µ ËùÓ ÄÚÈÝ È»ºóÁгöËùÓ Ä¿Â¼ °Æä× ËùÕ ´Å Ì óС command1 && command2 Ö»Óе± command1 ÕýÈ·ÔËÐÍê±Ïºó ²ÅÖ´Ð command2 ÀýÈç ls -a bogusdir && du -hs ½«·µ»Ø ls: bogusdir: No such file or directory ¶ø 'du'Ôò¸ù±¾Ã»ÓÐÔË ÕâÊÇÒòΪÄúû ÓÐ 'bogusdir'Ŀ¼ Èç¹ûÄú½«· ºÅ» ³ÉÁË ';' 'du'½«±»Ö´Ð ΪÁ˽øÒ»² µÃ÷ ';'ºÍ '&&'µÄÇø±ð ¼°Ò» ãÃüÁîŠеÄÓ ´¦ ÏÂÃæ¾ÙÒ»¸ö -µä ÄÀý×Ó Linux 7
  • 8. Äں˵ ±àÒë Ͱ²× Òª±à ë °²× Linux ÄúÐèÒªÖ´ » ®ÃüÁî 'make dep' 'make clean' 'make bzImag e' 'make modules' 'make modules_install'ºÍ 'make install' Èç¹ûÒªµ»¸öÃüÁîÍê³Éºó ÔÙÊäÈëÏÂÒ»¸ö ÔÙµÈ ÔÙÊäÈë ÄǾÍÌ«Âé·³ÁË ÁíÒ»·½Ãæ ÿ¸öüÁîÖ»Óе±Ç°æÄ Áî¶¼ÕýÈ·Ö´ÐÍê±Ïºó ²ÅÄÜ¿ªÊ¼Ö´Ð Èç¹ûÄúÓà ';'À´ÅÁÐÃüî Ôò¼´Ê¹ÓÐÃüÁîÖ§°Ü ºó ÃæµÄÒ²Õ ³£ÔËÐ ×îºó Äú¿É ÜÔÚ '/boot'Ŀ¼ϵýһ¸öÓÐÎÊÌâÄں˳Ïñ (image) ¶øÓà ' &&' make dep && make clean && make bzImage && make modules && make modules _install && make install ²»ÐèÒªÖ Í¾´ò¶Ï ¾Í¿ÉÒÔ±à ëÄں˼°Æä £¿é ²¢Íê³ÉºóÃæµÄ° × ÃüÁîµÄÈÎ ñ ÷¶ µ±ÄúÔÚÖÕ¶ËÀïÐÒ»¸öÃüÁîò¿ªÆô³ÌÊ ÖÕ¶ËÒªµÈ½ÃüÁî»ò³ÌÐÔÍê±Ïºó ²ÅÄÜÔÙ ±»Ê¹Óà ÔÚ Unix ÖÐ ÎÒÃdzÆÕâÑùµÄ üÁî»ò ÌÐ ÔÚǰ ¨ (foreground)ÔËÐ Èç¹ûÄúÏëÔÚÖÕ¶Ë ÏÂÔËÐ ÁíÒ»¸öÃü î ÔòÐèÒª Ù´ ¿ »¸ö µÄÖÕ¶Ë µ«ÕâÀﻹÓÐÒ ¸ö ü ÅÑ µÄ°ì·¨ ³ÆÎªÈ ñµ÷¶ (jobbing)»òºǫ́ (backgrounding) µ±ÄúÔËÓà ÈÎñµÄ÷¶»ò½«ÃüÁîÖÓÚºǫ́ Öն˾ÍÁ¢¼´½â·Å ÕâÑùÒ»À´ ÖÕ¶ËÁ¢¼´¾Í¿ÉÒÔ½ÓÊÜеÄä Èë ΪʵÏÖÕâÑù Ä ¿ ÄúÖ»ÐèÔÚÃüÁîºó æÌí¼ÓÒ»¸ö & gqview & ¸æËß shell ½«Í¼Æ¬²é¿´÷ 'GQview'·Åµ½ºǫ́ȥִР¼´µ±³É job À´ÔËÐ ÃüÁî jobs ½«¸æËßÄú ÔÚÕâ¸öÖ ¶Ë´°¿ Ð ÔËÐ ×ÅÄ ©ÃüÁîÓë³Ì ò jobs [1]+ Running gqview & µ±ÄúÒª¹ØÕÖ¶Ë´°¿ÚÊ ÕâÒ»µã¾ÍºÜÖØª ÒòΪ¹Ø±Õֶ˽«µ¼ÂùÓÐÔÚÆäÄÈñ ±»ÖÐ ¹ ÔÚ´ËÀýÖÐ Èç¹ûÄú رÕÁËÖ ¶ ÓÉÕâ¸öÖ ¶Ë¿ªÆôµÄ GQview ³ÌÐòÒ²½«±»¹ØÕ µ«ÈçºÎ½ ǰ̨ÔËÐ ÄÒ»¸ö³ ò·Åµ½ºǫ́ȥ ûÎÊÌâ gqview <CTRL z> [2]+ Stopped gqview 8
  • 9. bg [2]+ gqview & ×éºÏ¼ü <CTRL z> ½«¹ÒÆðÖÕ¶ËÐýÔڵijÌò È»ºóÄú¾Í¿ÉÒÔÓà bg ÃüÁÆä·Åµºǫ́ È¥Ö´Ð Çë×¢Òâ ÔÚºǫ́ËÐͼÎӦóòʱǴµÄ ÕâÑù¿ÉÒÔÚÖ¶ËÏÂʾ¸ö³ÌÐòµÄ ´íÐÅÏ¢ ËäÈ»Õâ¶ÔÄú¿ÉÜÃÓÐÖ±½µ°ï µ±Èç¹ûÅö½ÁËÂé·³ Ïò±ðÈËѯÎÊ ÕâЩ³ö´í Ìá ʾ ÍÓÐ ÃÎäÖ®µØÁË Ò»Ð©Í¼Î³Ìò ºÜ¿ÉÄ»¹´¦ÔÚ²âÊÆ (Beta) ¾¡¹ÜÔÚºǫִ́РҲ»áÔÚÖÕ¶ËÐÊä³ö©ÅÏ¢ Èç¹ûÄú¶Ô´Ë²»Â ¿ÉÒÔÓÃÏ æ üÁî command &>/dev/null & Õâ²»½ö«³ÌÐòË͵ºó¨Ö´ »¹½«Æäʳö·¢µ '/dev/null'Îļþ '/dev/null'ÊÇ ÏµÍ³Ä "ËéÖ½»ú " (s hredder) ËùÓР͵½ÄÇÀï ÅÏ¢¶¼ « ûʧ´ù¾¡ ÃüÁîµÄÌæ» ÃüÁîÌæ» (Command substitution)ÊÇÒ»ÏîºÜʵÓÃŦ ÎÒÃǼÙÉè ÄúÏë¿´ XFree86 ÎÄ µ ÖÐ Ä 'README.mouse'Îļþ µ«Äú²»Öª ÀÕâ¸öÎ ¼þµ à µ«ÄúÊÇλ Áé Óà § ÒѾ- Ìý˵Á 'locate'ÃüÁî Ò²° × ÁË 'slocate'°ü Äú¾Í¿ÉÒÔÓà locate README.mouse ·¢ÏÖÄǸöμþÔÚ '/usr/X11R6/lib/X11/doc' ÏÖÔÚÄú¾Í¿ÉÒÕ¶ËÀïÓà 'less'»òÔÚÎļþ¹ÜÀíÆ÷ÖÐ ½øÈëÄǸö ¿Â¼ »ºó¶Á ¡Î þ ¶øÃüÁîÌæ» ¿ÉÒÔ¸ Äú´øÀ Щ±ã½Ý less $(locate README.mouse) Ò»²½µ Î ÃüÁî 'locate README.mouse'µÄÊä³ö (= /usr/X11R6/lib/X11/doc/README.mou se)×÷Ϊ 'less'µÄ²ÎÊý È»ºó¾Í¿ÉÒÔÏ Ê Îļþ ÚÈÝÁË ÕâÖ »ú ƵÄÓï·¨ÊÇ command1 $(command2) ³ýÁË '$( )' Äú»¹¿ÉÒÔÓúó ý Å (backquote) command1 `command2` 9
  • 10. ÕâÑùËäÈ»¿ÉÒÔ¼õÙÊë µ«¿É¶ÁÐÔ²î ¶øÇÒºÜÈÝ×¾ÍûÓÐÌæ¹¦Äµ°ã¥ýÅìÏ ÎÒ ¸üÐÀÉÍÇ°Ò»Ö ·½ ¨ µ«Õâ×îÖ Æð¾öÓÚÄú ÕâÀïÓÐÁíÍ Ò»¸ö ý× ÎÒÃǼÙÉè Äú´òËã½áÊøÒ»¸öÃûΪ 'rob'µÄ³ÌÐò ÄúÏȵÃÓ üÁî 'pidof'ÕÒ ³öÏàÓ¦µÄ½ø ̺Š(Process ID) È»ºóÒÔÕâ¸ö PID Ϊ²Êý ÔËÐ 'kill'ÃüÁî ÕâÑù¾Í¿ÉÒÔ½áÊø 'r ob'³ÌÐò ³ýÁËÓà pidof rob 567 kill 567 Äú»¹¿ÉÒÔÊ kill `pidof rob` ÔõôÑù ЧÂÊÓ ËùÌá¸ß°É ÔÚÏÂһƪÖÐ ÎÒ½« Ó×Å éÉÜ shell µÄÁíÍâ½ÖÊÓûúÆ ÎļþÃûÆ¥Åä Êä³öÖØ¶¨Ïò µÚËÄÆª ÎļþÃûÆ¥Åä Êä³öÖØ¶¨Ïò ÎļþÃûÆ¥Åä ÎļþÃûÆ¥Åäʹµú²»±ØÒд³ö ¾Í¿ÉÒÔÖ¸¶¨àöÎļþ Äú½«ÓÃµÒ»Ð©ÌØÊâ×Ö·û ³Æ ΪͨÅä·û (wildcards) ¼ÙÉèÄúÏëÓà 'rm'ÃüÁîɾ³ýĿ¼ÏËùÓÐÒÔ×Ö·û´® '.bak'½áβµÄ¼þ ³ýÁËÔÚ 'rm'ºó¸úÉÏËùÓÐÎļþ Ãû×÷Ϊ² Êý Äú»¹¿ÉÒÔÓÃͨÅä·û '*' rm *.bak '*'¿ÉÆ¥ÅäÒ»¸öò¶à×Ö·û ÔÚ±¾ÀýÖÐ Äú¸æËß shell ½«ÃüÁî 'rm'µÄ²ÎÊýÀ©Õ¹µ½ "ËùÓÐÒÔ '*.bak' ½áβµÄ ¼þ " shell ¾Í½«À©Õ¹ºóµÄ²ÎÊý¸æËß 'rm'ÃüÁî Äú½«¿´µ shell ÔÚÃüÁîÖ´Ðǰ ¾Í½«¶ÁÈ¡²¢âÊÃüîÐ ÕýÊÇÒòΪâ¸ö Äú²Å¿ÉÒÔ½«Í¨ä ·ûÓÃ Ú shell ÃüÁîµÄ²ÎÊýÖÐ ÈÃÎÒ Ç¸ü½ø »² µØÀ´ÈÏʶͨÅä·û '*' ¼Ù¶¨ÄúÓиö¿Â ÆäÖк¬Îļþ '124.bak' '346.bak'¼° '5 83.bak' ÄúÏëÖ»±£Áôμþ '583.bak' ¿ÉÒÔÓà rm *4*.bak 10
  • 11. shell ¾Í½« '*4*.bak'À©Õ¹³É "ËùÓк¬ '4'²¢ÒÔ '.bak'½áβµÄ×Ö·û´® " ×¢Òâµ½ rm 4*.bak ÎÞ·¨¹¤×÷ ÒòΪÕâÆ¥ÅäµÄÊÇ Ô '4'¿ªÍ·µÄμþ ÓÉ ÚĿ¼ÖÐû ÕâÑùµ Î ¼þ shell ½«Õâ¸öÄ£ÊÀ©¹Îª¿µ×Ö·û´® ¹Ê 'rm'½«·µ»Ø³ö´íÐÅÏ¢ rm: cannot remove `4*.bak': No such file or directory Èç¹ûÄúÏë±£Áôμþ '345.bak' ¶øÉ¾³ý '124.bak'ºÍ '583.bak' Õâ ¿´ÆðÀÓЩÄÑ¶È ÒòΪ±»É¾Ä ¼þµÄÃû³Æ ýÁ˺ó× ä ¶¼²»Í¬ µ«ÐÒÔË ÄÊÇ Äú¿ÉÒÔÓò»º¬ ÐÀ´Ö¸¶¨Îļþ rm *[!6].bak Õ⽫±»¶ÁΪ ³ýÁËÒÔ '6.bak'½áβµÄ¼þ ɾ³ýÆäËû ùÓÐÒÔ '.bak'½áβµÄ¼þ Äú±ØÐ뽫ȡ·´ ºÅ (negation sign)ÓëÈ¡·´×Öû ÕâÀïÊÇ 6 ·Åµ½À¨ºÖÐ ²»ÈµÄ° shell »á½«¾ªÌºÅ (excl amation mark)½âÊͳÉÀú·¼ÇÂÌæ»µÄ¿ª (the beginning of a history substitution) È¡·´ ºÅÔÚ±¾Æª½éÉܵÄËùÓÐ ¥Åä £Ê Ö ¶¼ § Çë×¢Òâ ͨÅä·û '*'ÓëÈ¡·´ºÅÁ¬Óà ºÜÈÝÒײúÉ ÎÊÌ⠲ rm *[!6]*.bak ±íʾ ²Ã´ Õâ¸öÃüÁɾ³ýËùÓÐÎļþ ÉõÖÁ°üÀ¨Ãû³Æ Ð º¬ '6'µÄμþ Èç¹ûÄú½«Í¨Åä· '*' ·Åµ½ÁËÈ¡ ´º Ç°Ãæ Í ó ʵ¼ ÉÏÈ¡·´ºÅ½« §Ð ÒòΪ shell ½«ÆäâÊÍΪ "ËùÓÐÃû³ÆÖÈκ λÖö¼² º¬¸ × ·ûµÄÎ þ " ÔÚÎÒÃǵÄÀý×Ó ï Ö»ÓÐÎļþ '666.bak'²»·ûºÏ¸Ãģʽ µÚ¶þ¸öͨÅä·ûÊÇÎ º (question mark) '?' ÔÚÆ¥Åäʱ Ò»¸öÎʺÅÖ ÄÜ´ú±í × ·û ΪÁË Ê¾·¶ÆäÓÃÍ ÎÒÃÇÔÚÉÏÀýµÄ¼Ù èÖÐÌí ÓÁ½¸ö ÂÎļþ '311.bak~'ºÍ 'some.text' ÏÖÔÚ Áгö ËùÓÐÔÚµãºÅ ó ĸö×Ö·û Î ¼þ ls *.???? ÎʺÅͨ ä·ûÄܹ»ÓÐ §µØ± ÃâÉÏ æÌá ½ Ä 'È¡·´ºÅÏÝÚå '(negation trap) rm *[!4]?.* ½«À©Õ¹³É "ËùÓгýÁ˵ãºÅǰ¹ÊÚ¶þ¸ö×Ö·ûΪ '4'µÄμþ " Ò²¾ÍÊÇÖ»±£ÁôÎļþ '346.bak' Äú¿ÉÜ»áÎÊ ÓÐûÆäËû¥Å·½Ê µ½Ä¿Ç°ÎªÖ¹ ÄúÖ»¿´µ½ÁËÔÚ¸¶¨ÎÃÆ¥ÅäÒ×·û ·¨ µ«ÆäÊ ÄúÒ²¿É ÔÕâÑù ls [13]* ½«ÁгöËùÓ ÒÔ×Ö·û '1'»ò '3'¿ªÍ·µÄμþ ÔÚÎÒÃǵÄÀý×ÓÖÐ Îļþ '124.bak' '311.bak~'ºÍ '346. bak'Æ¥Åä ×¢Òâµ½Äú±ØÐëÓÃÖ À¨ºÅ «Æ¥ äµÄ £Ê½ ðÀ´ ·ñÔòģʽֻƥÅäÒ × ·û´® '13'¿ªÍ· 11
  • 12. µÄÎ ¼þ ½ÓÏÂÀ´ Äú½«¸ßÐ˵ؿ´ »¹ ÉÒÔ¶¨ 寥ÅäµÄ· Χ ls *[3-8]?.* ½«ÁгöËùÓµãºÅǰ¹ÊýÚ¶þ¸×Ö·ûÂäÔ '3'µ½ '8'·¶Î§µÄ¼þ ÔÚÎÒÃǵÄÀý×ÓÖРƥÅäµÄμþÊÇ '346.bak'ºÍ '583.bak' ÒýÓà shell µÄÌØÊâ×Ö·û µ«ÊÇ ÉÏÃæµÄÇЩ»úÖÆ´ÔÚÒ¸öȱã shell ×ÜÔÚÃüÁîÖ´Ðǰ ÊÔ׎øÐÀ©Õ¹ ÓÐʱºò »á ±äµÃºÜ¼¬ÊÖ l ÎļþÃû°üº¬ÌØÊâ×Ö· ¼ÙÉèÄúÔÚ Ç¸ö ¿Â Öл¹Ó Ò ÃûΪ '!56.bak'µÄμþ ÏÂÃæÊÔͼ½øÐ ģʽƥÅä rm !* rm rm: too few arguments shell ½« '!*'½âÊͳÉÀú·¼ÇµÄÌæ» ¼ÓÈëǰһ¸öÃüÁîµÄËù вÎÊý ¶ø²»ÊÇÆ¥Åä·½ l ÃüÁî±¾Éí´øÌØÊâ×Ö·û ÷²Î ý һЩ Linux ϵÄÃüÁîй¤¾ß ±È ç (e)grep sed awk f ind ¼° locate ¶¼Ê¹ÓÃ×Ô ºµÄÕý ò±í´ïʽ (regular expressions) ÕâЩ±í´ïʽÓëÄ£ Æ¥Åä ¿´ÆðÀ ¾ªÈ˵ØÏà µ«ÔÚijЩ Ø·½ÓÖ Ëù²»Í¬ µ«ÎªÁËʹÕâÐ©ÌØ Ãü îÉú § shell ¾Í²»ÄÜÏȽ«Æäµ±×÷£Ê¥ÅÀ´½âÍ find . -name [1-9]* -print find: paths must precede expression Ó¦¸ÃÊÇ find . -name '[1-9]*' -print ./346.bak ./124.bak ./583.bak 12
  • 13. ./311.bak~ Äú¿ÉÒÔͨ¹ý·´Ð±Ïß (back slash)À´ÒýÓÃÌØÊâ×Ö·û ±È ç ! $ ? »ò¿Õ¸ñ ls !* !56.bak »òÕßÓà µ¥ ÒýºÅ ls '!'* !56.bak Çë×¢Òâ Òª¿´Çå³þ ýºÅÓ¦¸Ã· ÔÚʲ ´Î»Ö ÃüÁî ls '!*' ½«²éÕÒÃûΪ '!*'µÄμþ ÕâÊÇÓÉ Úͨ Åä·ûÒ²ÔÚ ýº ¼ ËùÒÔÖ»ÄÜ ÀÕ × Ãæ ´½âÊÍ Êä³öÖØ¶¨Ïò Unix µÄÀíîÊǻ㼯жࡳÌò ÿ¸ö¶« ¼ÓÐÌØÊâµÄר³¤ ¸´ÔÓµÄÈÎ ñ²»ÊÇ É óÐÍ í¼þ ê ³É ¶øÊÇÔËÓà shell µÄ»úÖÆ ×éºÏÐí¶à ¡³Ì ò¹²Í¬ ê É ÖØ¶¨Ïò¾ÍÔÚÆä з¢»Ó×ÅÖØÒªµÄ ÷ Óà ÔÚ¶à¸öÃüÁî¼äÖØ ¨Ïò ÕâҪͨ¹ý ܵÀ (pipe) ÓɹܵÀ·ûºÅ À´±êʶ Óï·¨ÊÇ command1 | command2 | command3 µÈ ÕâÖ ¸ñʽÄúÒ»¶¨ Ѿ-¼ûµ ¹ýÁË ¹ÜµÀ¾-³£½«Ò»¸ö ÌÐò ÄÊä Ë͵½ 'more'»ò 'less'À´ÔĶÁ ls -l | less ÆäÖÐ µÚÒ»¸öÃüÁîÌṩĿ¼ ÚÈÝ µÚ¶þ¸öÔò½«ÆäÒ ·- ³µÄ Ê ÏÔ ¾ ¸ü ´ÔÓµÄÀý× Èç rpm -qa | grep ^x | less µÚÒ»¸öÃüÁî ø³ ËùÓРѰ²× µÄ RPM °ü µÚ¶þ¸öÔò½«Æä¹ýÂË (filter 'grep') ֻʣÏÂÒÔ '^x'¿ª Í·µÄ°ü µÚÈý¸öÃüÁîÔò½« á¹ûÒ ·- ³µÄ Ê ÏÔ ¾ ÖØ¶¨Ïò ÁÎļþ ÓÐʱ ÄúÏ£Íû½«ÃüÁîµÊä³öá¹±´æÎ¼þÖÐ »òÒÔÎļþÚÈÝ×÷ªÃüÁîµ²Êý Õâ¿ÉÒÔͨ¹ý 13
  • 14. '>'ºÍ '<'À´ÊµÏÖ command > file ½« command µÄÊä³ö±£´æ½ file ÖÐ Õ⽫¸² Ç file ÖеÄÚÈÝ ls > dirlist ½«µ±Ç°Ä¿Â¼ ÚÈÝ £´æµ½ 'dirlist'Îļþ command < file ½« file ÄÚÈÝ×÷Ϊ command µÄÊäÈë sort < dirlist > sdirlist ½«Îļþ 'dirlist'µÄÚÈÝË͵½ÃüÁî 'sort' È»ºóÔÙ½«ÅÐòµÄá¹ûËÍμþ 'sdirlist' µ±È» ÄúÒ²¿É ÒÔ »²½µ Î ls | sort > sdirlist Ò»ÖÌØÊâµÄ·½Ç 'command 2> file' Õ⽫ command ִеijöíÅÏ¢Ëͽ file ÖÐ Õâ¸ö Äúµ½Ê±ºò»áÐèÒª ÁíÒ»Ö ²Ù×÷·ûÊÇ '>>' Õ⽫Êä³öÌí¼Óµ ÒÑ´æÔÚ ÄÎ þÖÐ echo "string" >> file ½« string ¼Óµ½ÎÄþ file ÖÐ ÕâÊDz»´ò¿ªÎļþ¶øÍê³É±à -µ ºÃ°ì·¨ µ«ÊÇ '<'ºÍ '>'²Ù×÷·û¶¼ÓÐÒ»¸öÖØªµÄÏÞÆ command < file1 > file1 ½«É¾³ý file1 µÄÚÈÝ ¶ø command < file1 >> file1 È´¿ÉÒÔºÜ ÃµØ¹¤×÷ ½«¼Ó¹¤ ýµÄ file1 ÄÚÈݼӻص½ÎþÖÐ ÊDz» Óеã¶à ;-) ²»±Ø¾ªÅ ÄúÍêÈ«¿ÉÒÔ°´Õ × ¼ºµÄËÙ¶È Ò»²½ µØÀ´Ñ§Ï° ±ðÍüÁË Êµ ¼ùÊÇ×îºÃµÄѧϰ·½ ¨ ÊìÖªÁËÐí¶à shell µÄ»úÖÆºó Äú¿Éܼ±×ÅÏëÖªµÀÈçºÎ´¶¨Æ»·¾³ ÔÚºóÃæµÄÁ½ÆªÖÐ Äú½« 14
  • 15. µÃ½Õâ·æÄÆôʾ ÔÚ×îºóһƪÖÐ »¹ÓÐÒ¶ÎÈ纴¦Àí shell ³ö´íÐÅÏ¢µÄ£¼ûÎÊð (FAQ) ¼°Ò»Ð©ÅäÖà ÇÉ µÚÎåÆª bash ÅäÖÃÎļþ Ìáʾ·û ¸Ä±ä $PATH bash ÅäÖÃÎļþ ÔÚÄúµ home Ä¿Â¼Ï ÔËÐ ls .bash* Äú½«¿´µ ÕâЩΠ¼þ l .bash_history ¼Ç ÁËÄúÒÔ °ÊäÈëµ Ãü î l .bash_logout µ±ÄúÍ˳ö shell ʱ ÒªÖ´Ð µÄÃüÁî l .bash_profile µ±Äú ÇÈë shell ʱ ÒªÖ´Ð µÄÃüÁî l .bashrc ÿ´Î ò ªÐ嵀 shell ʱ ÒªÖ´Ð µÄÃüÁî Çë×¢ÒâºóÁ½¸öµÄø±ð '.bash_profile'Ö»ÔÚá°¿ªÊ¼±¶ÁȡҴΠ¶ø '.bashrc'Ôòÿ´ÎªÐ µÄÖÕ¶Ë ÈçÐ嵀 xterm ´°¿Ú ʱ ¶¼Òª±»ÁÈ¡ °´Õ«Í³ ÄúµÃ½«¶¨Òå±äÁ¿ Èç PATH ·Åµ½ '.bash_profile'ÖÐ ¶øÏó aliases ±ðÃû ºÍ ¯ÊýÖ®Àà Ôò·Å Ú '.bashrc' µ«ÓÉÚ '.ba sh_profile'¾- ³£±»ÉèÖÃÏȶÁ¡ '.bashrc'µÄÚÈÝ ÄúÈç¹ûͼʡµ»° ¾Í°ÑËùÓÐÅäÖö¼·½ø '. bashrc' ÕâЩÎļþÊÇÿһ Ó §µ ÉèÖ ÏµÍ³¼¶ ÄÉèÖÃ´æ ¢ÔÚ '/etc/profile' '/etc/bashrc'¼°Ä¿Â¼ '/etc/ profile.d'Ï µÄμþÖÐ µ«ÄúÃϰ¹ßÓ¸÷×ÔÅäÖμþ ±à¼-²»ÐèÒª 'root'ȨÏÞ »¹¿ÉÒÔÊÄú µÄ ÉèÖøüÓÐ ö Ô µ±Ï ͳ¼¶Óë û§ ÄÉèÖ ·¢ ú³åÍ Ê± ½«²ÉÓà »§µÄ èÖ ¶ÁÈ¡ '.bashrc'µÄÚÈÝ ÄúÈç¹ûҪʡµã  »° ¾Í°ÑÄúËùÓе ÅäÖö¼· ½ø '.bashrc' ÉÏÃæµÄÕâЩΠ¼þÊÇ ¿ »Óà §µÄÉèÖ ÏµÍ³¼¶ ÄÉèÖÃ´æ ¢ÔÚ '/etc/profile' '/etc/bashrc'¼°Ä¿Â¼ ' /etc/profile.d'ϵÄμþÖÐ Äú×îºÃϰ¹ßÊÓ¸÷ÔµÅäÖμþ ±à¼-²»ÐèÒª 'root'ȨÏÞ »¹¿ÉÒÔ Ê¹Äúµ ÉèÖøü¾ß öÐÔ µ±Ï ͳ¼¶Óë û§ ÄÉèÖ ·¢ ú³åÍ Ê± ½«ÓÅÏÈ²É Ã »§µÄ èÖ Ìáʾ·û ÿ´Îµ±ÄúòªÒ»¸öØÖÆÌ¨ (console)»ò xterm ʱ ×îÏÈ¿´µ½Ä¾ÍÊÇÌá·û (prompt) ÀàËÆÓÚ account@hostname ~ $ ÔÚĬÈÏÉèÖàÌáʾ·û½«ÏÔÄúµÓû§ Ö÷»úÃû ĬÈÏÊÇ 'localhost' µ±Ç°ËùÔÚĿ¼ ÔÚ 15
  • 16. Unix ÖÐ '~'±íʾÄúµ home Ŀ¼ °´Õ «Í³ ×îºóÒ»¸ö Ö·û¿É Ô±êʶÄú ÇÆÕͨÓû§ $ »¹ÊÇ 'root' # Äú¿ÉÒÔͨ¹ý $PS1 ±äÁ¿À´ÉèÖÃÌáʾ·û ÃüÁî echo $PS1 ½«ÏÔʾµ±Ç° ÄÉ趨 ÆäÖпÉÓÃ× ·ûµÄº¬ÒåÔÚ man bash µÄ 'PROMPTING'²¿·ÖÓÐ˵Ã÷ ÈçºÎ²ÅÄÜÍê³ÉÀíÏëµèÖÃØ ¶ÔÓÚ½¡ÍüµÄ³õѧÕßÀ´² ĬÈÏÉ趨ÓЩ²»ÑºÃ ÒòΪÌáʾ·ûÖ» ÏÔʾµ±Ç°Ä¿Â¼ ×îºóÒ»² ·Ö Èç¹ûÄú¿´µ½ÏóÕâÑù Ìáʾ·û tom@localhost bin $ Äúµ ±Ç° ¿Â¼ É ÜÊ '/bin' '/usr/bin' '/usr/local/bin'¼° '/usr/X11R6/bin' µ±È» Äú¿ÉÒÔÓà pwd Êä³öµ±Ç°Ä¿Â¼ print working directory Äܲ» ½Ð shell ×Ô¶¯¸æËßÄúµ±Ç°¿Â¼Ø µ±È»¿ÉÒÔ ÕâÀïÎÒ½«Ìáµ ÄÉ趨 °üÀ¨Ìáʾ·û ´ó¶¼°üº¬ÔÚÎÄ þ '/etc/bashrc'ÖÐ Äú¿ÉÒÔͨ ¹ý±à¼-¸÷×Ô home Ŀ¼ϵ '.bash_profile'ºÍ '.bashrc'À´¸Ä±äÉèÖà ÔÚ man bash ÖÐµÄ 'PROMPTING'²¿·Ö ¶ÔÕâЩ²ÎÊý (parameter)ÓÐÏê¸ËµÃ÷ Äú¿ÉÒÔ¼ÓÈë һЩ ¡Íæ â È粻ͬ¸ñʽµÄ ±Ç° ¼ä ÃüÁîµÄÀúÊ·¼Ç ºÅ ÉõÖÁ²»Í¬µÄÑÕ « ÔÚ '~/.bashrc'ÖÐ ÎÒϲ»¶µÄÉè ¨ÊÇ PS1="[033[1m][w][033[0m] " 'root'ÔÚ '~/.bashrc'ÖеÄÉ趨 ÊÇ PS1="[033[0;31m][w][033[0m] " ÕâÑùÎҵà ½ ÄÌáʾ·û Í Ç [/usr/bin] µ±Óà 'root'ʱ ±ä³É [/usr/bin] ÎÒѾ-³ýµôÁËÖ÷»úÃûºÍÓ§ ÒòΪÓò»×ÅÕâЩ µ«ÎÒÊ×ÏÈë»ÑÛ¾ÍÄÜ¿´³öÉí·ÝÇÆÕ 16
  • 17. ͨÓû§ ¹ÊÇ 'root' ×¢Òâµ½ ÆÕͨÓû§µÄÌáʾ·û¿ÉÒÔ ÇºÚ ×° Ö »ò°×µ ºÚ Ö ÒªÔÚÖÕ¶ËÉÏ»ñµÃÇ¡±ÄÑ«÷Åä Äú¿ÉÒÔ±à¼-ÏÂÃæÕâ¸ö½Å¾ color ¸³ÓèÖ´ÐȨÏÞ chmo d +x color È»ºóÔÙ ËÐ #!/bin/bash # # This file echoes a bunch of color codes to the # terminal to demonstrate what's available. Each # line is the color code of one forground color, # out of 17 (default + 16 escapes), followed by a # test use of that color on all nine background # colors (default + 8 escapes). # T='gYw' # The test text echo -e "n 40m 41m 42m 43m 44m 45m 46m 47m"; for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' ' 36m' '1;36m' ' 37m' '1;37m'; do FG=${FGs// /} echo -en " $FGs 033[$FG $T " for BG in 40m 41m 42m 43m 44m 45m 46m 47m; do echo -en "$EINS 033[$FG033[$BG $T 033[0m"; done 17
  • 18. echo; done echo Ò»Ö ¸üÊ µ± ÄÉ趨 PS1="u: w$ " ÕâÑù Ìáʾ·û ͱä³É user_name: /usr/bin$ Äú¿ÉÒÔͨ¹ýÃüÁî export À´²âÊԻͬµÄÉèÖà ±È ç export PS1="u: w$ " Èç¹ûÕÒµ½ ÁËʺϵÄÌá¾·û ¾Í½«ÉèÖ÷ŵÄú '.bashrc''ÖÐ ÕâÑù ÿ´ÎòªØÖÆÌ¨»Õ¶Ë°Úʱ ¶¼ »áÉúЧ ÄúÉõÖÁ¿ ÒÔ¸øÌáʾ·û 趨Ö÷ â (theme) Ò²¾ÍÊÇ´îÅä » ¬µÄÑÕÉ« ʹÆä¿´ ðÀ ÏóºÜ°ôµÄ ol µÄ C64 Ìáʾ·û Èç¹ûÄú¶Ô´Ë¸Ð ¤ ¿ÉÒÔ ´ »Ï Bashish http://hem.passagen.se/arnognulf/index2.html ¸Ä±ä $PATH '$PATH'Óë '$PS1'Ò»Ñù Ò²ÊÇ»·¾³±äÁ¿ ÊäÈë set ½«ÁгöËùÓ µ±Ç°¶¨Òå Ä»·¾³ äÁ¿ Äú¿´µ½ ÕâЩ»·¾³±äÁ ÔÚ shell µÄÅäÖÃμþж¨Òå ¿ÉÄÜÊÇÓû§×Ô¼ºµ ÅäÖ ÎÄ þ Ò²¿ÉÄÜ ÊÇÓÉ 'root'ͨ¹ý '/etc'ÏÂÃæµÄÏͳ¼¶Îþ¨Òå Èç¹ûÄúÊ Óà X ¸ü¶àµÄһЩ±äÁ¿½«ÓÉ X Äúµ ´°¿Ú¹ÜÀíÆ÷»ò× Ãæ ·¾³µÄ ô¶¯Î ¼þÅäÖà Èç¹û¶ÔÕâЩÉèÖò»ºÜÇå³þ ÄúÔÝʱ×îºÃ²»ÒªËæã¸¶¯ Á˽âÈçºÎ¸Ä±ä $PATH ±äÁ¿ºÜÓÐà ÒòΪÕâ¸ö±äÁ¿¾¶¨Ë shell ½«µÄЩ¿Â¼ÖѰÕÒÃüÁî»ò³Ì Èç¹ûҪִеÄÃüÁî¿Â¼ÔÚ $PATH ÖÐ Äú¾Í²»±ØÊäÈëÕâ¸öÃüÁîµêû·¶ Ö±½ÓÊäÈëÃüÁî¾Í¿ÉÒÔË Ò»Ð©µÚÈý·½í¼þ ûÓн«¿ÉÖ´Îļþ·Åµ Linux µÄ ±ê׼ĿÂÖÐ Òò´Ë ½«ÕâЩ·Ç±ê×¼µÄ°²¿ÂÌíÓ $PA TH ÊÇÒ»Ö½â¾öµÄ°ì·¨ ´ËÍâ ÄúÒ²½«¿´µ ÈçºÎ ¦Àí »°ã Ä ·¾³±äÁ¿ Ê×ÏÈ ×÷Ϊ¹ßÀý ËùÓл·¾³±äÁ¿Ãû¶¼ÊÇ´ó ÓÉ Ú Linux Çø·Ö´óС ÕâµãÄúÒªÁô µ± È» Äú¿ÉÒÔ× ¼º¶¨ å »Ð©±äÁ¿ Èç '$path' '$pAtH' µ« shell ²»áÀíÇÕâЩ±äÁ¿ 18
  • 19. µÚ¶þãÊDZäÁ¿ÃûÓкòÒÔ '$'¿ªÍ· µ«ÓÐʱֲ»Ç µ±ÉèÖÃÒ»¸öäÁ¿Ê ÄúÖ±½ÓÃû³Æ ¶ø²» ÐèÒª¼Ó '$' PATH=/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin Òª»ñÈ¡±äÁ¿Öµ Ä ° ¾ÍÒªÔÚ±äÁ¿Ãûǰ¼Ó '$' echo $PATH /usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin ·ñÔòµÄ»° ±äÁ¿Ãû¾Í»á µ ×÷ÆÕ ¨Îı ÁË echo PATH PATH ´¦Àí $PATH ±äÁ¿Òª×¢âµÄÚÈýãÊÇ Äú²» ÜÖ Ìæ ±äÁ¿ ¶øÊÇÒª½«ÐµÄ×Ö·û´®Ìí¼Ó Ô- À´µÄÖÐ ÔÚ´ó¶àÊýÇé¿öÏ Äú²»ÜÓà 'PATH=/some/directory' ÒòΪÕ⽫ɾ³ý $PATH ÖÐ ÆäËûµÄùÓп¼ ÕâÑùÄúÔÚ¸ÃÖ¶ËгÌòʱ ¾Í²»µÃ¸ø³öêÕû·¶ ËùÒÔ Ö»ÄÜ×÷Ìí¼Ó PATH=$PATH:/some/directory ÕâÑù PATH ±»É賵ǰÄÖ ÒÔ $PATH À´±íʾ ÐÂÌíµÄ ¿ ¼ µ½Ä¿Ç°ÎªÖ¹ ÄúֻΪµ±Ç°Õ¶ËÉèÃÁР$PATH ±äÁ¿ Èç¹ûÄú´ò¿ªÒ»¸öеÖÕ¶Ë ÔËÐ echo $PATH ½«·µ»Ø¾ÉÄ $PATH Öµ ¶ø¿´²»µ½Äú¸ÕÅÌí¼ÓРÒòΪÄúÏÈǰ¶¨å µÄÊÇÒ»¸ö¾Ö²¿ · ³±äÁ ½öÏÞÓÚµ±Ç° ÄÖÕ¶Ë Òª¶¨ å »¸öÈ«¾Ö±äÁ¿ ʹÔÚÒ ºó´ò¿ªµÄÖÕ¶Ë ÐÉú § ÄúÐèÒª½«¾Ö²¿±äÁ Ê ³ö (export) ¿ÉÒÔ Óà 'export'ÃüÁî export PATH=$PATH:/some/directory ÏÖÔÚÈç¹ûÄú´ò¿ªÒ»¸öе ÖÕ¶Ë ÊäÈë echo $PATH Ò²ÄÜ¿´µ½ÐÂÉèÖà $PATH ÁË Çë ×¢Òâ ÃüÁî 'export'Ö»Äܸ±äµÇ°Öն˼ÒÔºóеÄÀï±äÁ¿ ¶ÔÓÚÒѾ- ËÐ µÄÖÕ Ã» ÓÐ×÷ à ΪÁ˽«Ä¿Â¼ÓÀ¾ÃÌí µ ú $PATH Ö»Òª½« 'export'µÄÇÐÌí¼Óµ½ú '.bash_profile'Îļþ ÖÐ Çë²»ÒªÔÚ '.bashrc'ÖÐÉèÖà PATH ·ñÔò»áµ¼Ö PATH ÖÐĿ¼µÒâÍÔö³¤ Äúÿ´ÎòªÒ»¸ö Ð嵀 shell '.bashrc'¶¼»á×÷Óà ËùÒÔÈç¹ûÚ¸ÃÎļþÖÐÌíÓ¿Â Äúÿ´ÎòªÒ»¸öÖÕ¶Ë Ä¿ ¼ÓֻᱠÌí Õ⽫µ¼Ö PATH ±äÁ¿ÓÉÚ֯ ²»¶ÏµØÔö³¤ 19
  • 20. µÚÁùƪ ÃüÁîµÄ±ð û Shell º¯Êý ´ÓÕâÀï³ö·¢ Shell ³£¼ûÎÊÌâ ÃüÁîµÄ±ð û Shell º¯Êý ¼ÇסËùÓеÄÃüÁî°¸÷Ô´ø¿ÉÑÏ È»ºóÿ´ÎÒÊäë ÕâȷʵÓÐã¿ÝÔï µ«ÐÒÔËÄÊÇ Äú ¿ÉÒÔΪ³£ÓÃüÁåì½Ý·Ê ÕâЩ¿ì½Ý·ÊÉÒÔÓÃϼòµ¥ÄüÁî±ðû (alias) »ò¸´ÔÓÒЩ µÄ shell º¯ÊýµÄÓï·¨À´¶Òå ÃüÁîµÄ±ð û ÀýÈç ÎÒÓÃÏ æµÄ üÁîÀ´É « MUO ÖеÄμþ rsync -e ssh -z -t -r -vv --progress /home/tom/web/muo/rsmuo/docs muo:/www/mand rakeuser/docs ÏÔÈ» Èç¹ûÿ´Î¶¼ÒªÖð »ÊäÈë ÄÇÎÒÔçÍí»á±ä³É ¾ · Òò´ËÎÔÚ '~/.bashrc'Öж¨ÒåÁ˱ðÃû alias upmuo='rsync -e ssh -z -t -r -vv --progress /home/tom/web/muo/rsmuo/docs m uo:/www/mandrakeuser/docs' ÏÖÔÚ ÎÒÖ» ªÊäÈë upmuo ¾Í¿ÉÒÔê³Ï´«ÈÎñÁË ¶¨Òå±ðÃûµÄÓï· ÊÇ alias shortcut='command' ÃüÁîÖÐÓ ¿Õ¸ñµÄ»° ¾ÍÐèÒªÓà ýºÅ ÈçÔÚÃüÁîÓë¿ÉÑ¡Ï ¼ä¾Í Ð Õ¸ñ Çë×¢ Òâ Äú¿ÉÒÔÓà µ¥ÒýºÅ»òË« µ«ËûÃÇÊ ÓÐ ø±ð Ä µ¥ÒýºÅ½«°þ¶áÆäÖÐÄËùÓ×·ûÌØÊâ¬å ¶øË«ÒýºÅÖÐµÄ '$' ²ÎÊýÌæ» ºÍ '`' ÃüÁîÌæ» ÊÇÀýÍâ ÕâÒζ×Å Èç¹ûÄúÏëÔÚ±ðÃÖÐÓ¦äÁ¿»òüîµÌæ ¾ÍµÃÓË«ÒýºÅ ¿´Ò»ÏÂÉ Ãæ µÄÀý×Ó ÎÒÔÚ '.bashrc'Öж¨ÒåÁË»¸ö³ÆÎª MUOHOME µÄ±äÁ¿ export MUOHOME=$HOME/web/muo/rsmuo/docs ÒªÔÚÉÏÃæµÄ±ð ûÖÐÓ Õâ¸ö äÁ¿ ÎҾͱØÐëÓÃË« ýºÅ alias upmuo="rsync -e ssh -z -t -r -vv --progress $MUOHOME muo:/www/mandrake user/docs" ·ñÔò ±ðÃû½«²éÕÒ »¸ö Ϊ '$MUOHOME'µÄ¿Â¼»òÎþ Äú¿ÉÒÔÓà 'alias'ÔÚÃüÁîпìËٵش½¨±ðû »ò½«ÃüÁî·Åµ¸÷×ÔÄ '~/.bashrc' »ò·Åµ½Ïͳ¼¶Ä 20
  • 21. '/etc/profile.d/alias.sh'ÖÐ ¶øÔÚ Mandrake Linux 8 ÒÔǰµÄæ±¾Àï ÓõÄÊÇ '/etc/bashrc' Ҫɾ³ý»¸ö±ðÃû Ö»ÒªÊäÈë unalias alias ÔËÐ alias ½«ÁгöÄúϵÍÖËùÓ¶¨Òå±ðÃû Èç¹û¿´Ò»Ï '~/.bashrc'ºÍ '/etc/profile.d/alias.sh' Äú»á·¢ÏֵͳÒѾ-¶¨åÁËЩ±ðÃû Äú¿ÉÒÔ ÎªÍ¬Ò»¸öÃüÁåà±ðû µ±È» ÄúµÃÏÈ·±ðûÓëÆä˳ÌÐò²»Í¬ ±ÈçÏó alias rm= 'ls -l' ÕâÑùµÄ¾Í²»Ü¹¤×÷ Äú¿ÉÒÔÚÃüÁîÐÊäÈëÕâ©ì½Ý· ²âÊÔһϠÈç¹û shell ÕÒ²» µ½ÏàͬÃû³Æ Ä üÁî ÄÇ ú¾Í¿ÉÒÔ½«ÆäÓÃ×÷±ð ûÁË ÒÔϱðÃû¿ÉÄÜÓÐ ²»ÒªÍüÁË ýºÅ l alias rpmq='rpm -qa | grep' ÏÖÔÚ rpmq string ¾Í½«ÁгöËùÓÃûÆÖº¬ string µÄÒÑ °²× RPM °ü l alias ls='ls -ho --color | more' ls ½«ÒÔ²ÊÉ·Ö³ÁÐöÎļþ Îļþ´óСÒÔ KB Ϊµ¥ λ l alias use='du --max-depth=1 | sort -n | more' use ½«×ÓĿ¼°´óСźà ²¢ÒÔ·Ö ³ ·½Ê Áгö Ŀ¼µ ±ðÃûÒ² É ÔÊÇ Æ¶¯µÄ½éÖ alias dlm='/mnt/cdrom/RedHat/RPMS/' Ìáʾ ½«ÓÐ ÏàËÆ¹¦Äܵ±ðÃûÒÔͬ×Ö¸¿ª· ±È罫ËùÓÐĿ¼µðÃûÒÔ 'd'×÷¿ªÍ· ÕâÑùÓÐÖú ÓÚ¼ÇÒä ÎÒÏàÐÅ Äú½«»áÓõ ÕâЩ¹¦ Ü Shell º¯Êý д shell º¯ÊýÉæ¼°µ½ÁË shell ½Å±¾ ÕⳬöÁËÎÒÃÇÌÖÂ۵ķ¶§ Ò²»ÔÚεÄÕÆ·¶§Ö® ; -) Ê µÉÏ shell º¯ÊýôÓÚ shell ½Å±¾ µ«¿ÉÒÔ Úͬ » shell ϱ»Ô¤¼ÓØ (preload)ºÍÖ´ Ð ¶øÒ»°ãµÄ shell ½Å±¾ÖÁÉÙÒª´ò¿»¸ö sub-shell ͨ¹ý shell º¯Êý Äú¿ÉÒÔ×öºÜ¶à aliases ÎÞ·¨Íê³ÉµÄÊÂÇé ÏÂÃæ¾ÍÊÇÒ»¸öÀý×Ó function apros() { apropos $1 | egrep -v '(3|(n)'; } ¶¨ÒåÁË »¸öÐÂÃü î ³ÆÎª 'apros' apros name ½«ÏÈÖ´Ð 'apropos name' ¼´ÔÚ man pag e ÖÐËÑ ÷ÃüÁî È»ºó½«µÃ ÄÊä³öËÍ ¹Ü À | ½Ó×Å Ã 'egrep'¹ýÂË Å ³ýµÚ '3'ºÍµÚ 'n' ÕÂ½ÚµÄ man page Õâ¸öÃüÁî¿ÉÄÜ »Ê² ´ óÓ ¦ µ«¿ÉÒÔÕûÀí 'apropos'ÃüÁîµÄÊä³ö º¯ÊýÔÐíÄúÚ²¿ÈλÖà ʹÓÃÔËбµÄ²Îý ¶ø±ðÃû ÔòÖ»ÊÐíÚÃüÁîβ·ÅÒ¸ö ²ÎÊý ±È çÇ°ÃæµÄ ð û 'rpmq' '$1'¾ÍÊÇλÖòý (positional parameter) ±íʾº¯ ýµÚÒ»¸ö²Î Ä Öñêʶ·û ÒÀ´Ë àÍÆ 21
  • 22. »¹ÓÐ '$2'µÈ function apros() { apropos $1 | egrep -v "($2"; } Èç¹ûÄúÕâÑùÔËÐ 'apros'ÃüÁî apros name man_section_number Õâ¸öÃüÁËÑ ÷±êÌ Öк¬ name µÄ man pages µ«Å ³ý man_section_number ²¿·Ö apros menu 3 ½«ËÑ÷±êÌ⺬ 'menu'µÄ man page µ«Å³ýÚ ÈýÕÂ½Ú ¹Ø ÓÚ±à³ÌµÄ ×¢Òâµ½ÄúÃýÓ q uote Á½´Î ¶øÇÒ»¹Óõ½ÁË « ýºÅ l Äú±ØÐëÒýÓà 'egrep'µÄËÑ÷£Ê½ ÕâÑù¿ÉÒÔ²»ÖÁÓÚ± shell Îó½â l Äú±ØÐëÓÃË«ÒýºÅ ÕâÑùµÚ¶þ¸ö²ÎÊý ÅÄܱ»Õ È·½â Í l Äú±ØÐëÒýÓÃÔ²À¨ºÅ ÕâÑùʹ 'egrep'°´×ÖÃæÒâ˼¶Ôý²ÎÊ ÊDz» ÓеãÒâ˼ ;-) shell º¯ÊýµÄ´¦ÀíàËÆÓÚ±ðÃû ½«Æä·Åµ Äú '.bashrc'Îļþ ÕâÑù¾ÍÄÜÓÀ ÃÉúЧÁË ´ÓÕâÀï³ö·¢ ÎÒÃÇ̸µ½ÄÖ»Ê shell µÄÒ»¸ö¿ªÍ· ÕÆÎÁË shell ½Å±¾ Äú¾Í¿ÉÒÔ×öºÜ¶àÊÂÇé ±È罫Îñ ×Ô¶¯» ¾ÀÕý±ðÈ˽ŠÖеĴíÎó °´Õ Äúµ Ï ¹ß¶¨ÖÆ Linux ϵͳ Èç¹ûÄú´òËãѧϰ ³Ö ¸ Ôӵıà³Ì ïÑ ÄÇ shell ½Å±¾Ò²ÊÇ»¸öºÜõĿª¶Ë ÒòΪ»ù±¾¸ÅÄî¶¼ÊÇÀàËÆµ BASH Programming - Introduction HOW-TO http://www.ibiblio.org/mdw/HOWTO/Ba...ntro-HOWTO.html ½«¸üÉîÈëÕâЩÖ÷Ì ²¢ÇÒ½«°ÑÄú´øµ shell ±à³ÌµÄÊÀ½ç È»ºó¿ÉÒÔ¼ÌÐøÄ¶ÁÎÇÍÆöµ Advanced Bash-Scripting Guide http://www.ibiblio.org/mdw/LDP/abs/....html) ×÷ÕßÊÇ Mendel Cooper Èç¹ûÄúÆ«ºÃÖ½Êé ÄÇÎÒÍÆ¼ö S. Veeraraghavan µÄ Teach Yourself Shell Programming Sams ³ö°æÉç ÎÒµ¹¾õ à O'Reilly ¹«Ë¾ÓÉ Newham/Rosenblatt дµÄ Learning the bas h Shell ²»¹ý¶û µ«Õâ¿ÉÄÜÖ»ÓÐÎÒ Ã´ ;-] 22
  • 23. ³ýÁËÕâЩ ¾ÍÊÇÁ·Ï° Á·Ï° ÔÙÁ·Ï° ÔĶÁÆäËûÈ Ð´µ shell ½Å±¾ ¿´ ËûÃÇÔÚ×öʲ Ôõô×ö ΪʲôÄÇÑù×ö Çë²»ÒªÓà 'root'²âÊÔÄúµ½Å±¾ Have fun Íê 23