Ï¡·¹¶¥¿Í×ÛºÏÉçÇøÏ¡·¹¶¥¿Í×ÛºÏÉçÇø

Ê×Ò³ | ×îÈȰæ¿é | »îÔ¾»áÔ± | ±¾ÖÜÈȵ㠷µ»ØUnix


·¢ÌùÈË:lsllsllsl
·¢±íʱ¼ä:2007Äê10ÔÂ15ÈÕ17:43:35 ÐÇÆÚÒ»
//±¾ÎÄת×Ôwww.linuxsir.org

±¾ÎĵÄÄÚÈÝÀ´Ô´ÓÚ MUO µÄ Basics ²¿·Ö£¬ÆäԭʼӢÎİæ¿ÉÒÔ´ÓÕâÀï»ñµÃhttp://www.ma
ndrakeuser.org/docs/¡£ÖÐÎİæÀ´×ÔÎâÏþ¹âµÄCMUO http://dummy.linux.net.cn/~xgwu
/cmuo/¡£MUO ÊÇ Mandrake Linux£¨http://www.mandrakelinux.com/£©ÎªÓû§ÌṩµÄÈë
ÃÅÊֲᣬÆäÄÚÈÝʵÓò¢ÇÒʵʱ¸üУ¬·Ç³£ÊʺϳõѧÕß×öÈëÃŲο¼¡£Óë³£¼ûµÄ¸÷ÖÖLinux½Ì
³Ì²»Í¬£¬MUO½éÉܸøLinux³õѧÕßµÄÊÇѧϰ LinuxµÄ·½·¨¶ø·Ç¶Ôij¸öϵͳµÄÃèÊö£¬Õâ¶Ô¸÷
ÖÖÓÐ×Åǧ²îÍò±ðµÄLinux·¢ÐаæµÄѧϰÓÈÎªÖØÒª¡£±¾ÎıàÒëÕûÀíʱ¶ÔÏà¹ØÕ½Ú×öÁËÏàÓ¦µÄ
ɾ¸Ä´¦Àí£¬È¥µôÁËÕë¶ÔMandrake LinuxµÄ²¿·ÖÄÚÈÝ¡£

ʹÓà Shell

ÒÔϽ«½éÉܲ¢½âÊÍ»ù±¾µÄ shell ÃüÁîºÍ»úÖÆ¡£

µÚһƪ£º³¬¼¶¹¤¾ß£¯Terminals£¬xterms ºÍ Shells

³¬¼¶¹¤¾ß

Äú»òÐíÌý¹ýÕâÑùµÄÂÛµ÷£ºÃüÁîÐÐ(the mommand line)Ôç¾ÍÒѾ­¹ýʱÁË£¬ÄǶ«Î÷ÉñÃØÙâÙâ
µÄ£¬µÈµÈ¡£ÓÐЩÈËÉõÖÁ¾õµÃ²Ù×÷ϵͳÖÐÓ¦¸ÃûÓÐÕâЩÃüÁî²ÅºÃ¡£

ÊÂʵÊÇÉÏ£¬Äú¿ÉÒÔ²»¶®ÈκΠshell £¬¾ÍÄÜʹÓà Linux ¡£ÄúÆô¶¯ÏµÍ³ºó¿ÉÒÔÖ±½Ó½øÈë X
Window £¬×îºóÔÚ X Window Ϲػú¡£

ÎÒ¼áÐÅ£¬Óà Linux ¶ø²»¶® shell £¬¾ÍÏ󿪳µÖ»»áÓÃÍ·µµ(first gear)Ò»Ñù¡£µ±È»£¬×î
³õ¿´ÆðÀ´£¬Ö±½Ó¶ø¼òµ¥£¬ÔÚ´ó¶àÊýÇé¿ö϶¼¹ÜÓᣵ«ËÙ¶ÈÂý£¬¶øÇÒÎÞ·¨ÕæÕýÌåÑé¼ÝÊ»µÄ
ÀÖȤ¡£

¶Ô£¬ÃüÁîÐкÜÓÐȤ¡£¾ÍÏóÓÃÒ»´ó¶ÑÊÕ¼¯µ½µÄ»ýľ£¬¾¹¿ÉÒÔÍê³ÉÐí¶àÒâÏë²»µ½µÄ´´¾Ù£¬Ò»
Щ¼«Æä¸´ÔӵŤ×÷£¬Ö»Ð輸ÐÐÃüÁî¾Í¿ÉÒÔ½â¾ö¡£ÕâÊÇÒòΪ£¬ÔÚ Unix ÖУ¬shell ¿É²»ÊÇ
¼òµ¥µÄÃüÁî½âÊÍÆ÷£¨µäÐ͵ÄÓÐ Windows ÖÐµÄ DOS £©£¬¶øÊÇÒ»¸öÈ«¹¦Äܵıà³Ì»·¾³¡£

Õâ²¢²»Òâζ×Å shell ·Ç³£ÈÝÒ×ѧͨ£¬ÄúÖªµÀ£¬ºÃʶàÄ¥£¬Õ⻹ÊÇÒª»¨µã¹¤·òµÄ¡£;-) µ«
ÇëÏàÐÅÎÒ£¬Õâ¾ø¶ÔÖµµÃ¡£ÄúÔںܶÌʱ¼äÄÚ£¬¾ÍÄܱ»Ò»´ó°ïÃÅÍ⺺´µÅõΪ Unix wizard£¨
Ææ²Å£© ¡£*grin*

ΪÁË˵Ã÷ shell £¬ÕâÀïÐèҪһЩ±³¾°ÖªÊ¶¡£

Terminals, xterms Óë Shells

×·Ëݵ½ Unix µ®ÉúµÄÄǸöÄê´ú£¬µ±Ê±»¹Ã»ÓÐÏÖÔÚÁ÷ÐеÄ"¸öÈ˼ÆËã»ú"¡£±»³ÆÎª¼ÆËã»úµÄ
»úÆ÷£¬»¹ÊÇÍÌÍ´ŴøÓë magnetic memory £¨ÓÃÊõÓï core À´±íʾϵͳ memory£©µÄÅÓÈ»
´óÎï¡£DEC ¹«Ë¾£¨ÏÖÔÚµÄ Compaq£©ÍƳöµÄ PDP-11 £¬Ìå»ýС£¨±»³ÆÎª mini£©¶øÇÒ¼Û¸ñ
µ×£¬ÔÚ´óѧÖÐÒýÆðÁ˾޴óµÄ·´Ï죬ºÜ¶àѧУֱµ½ÄÇʱ²ÅÂòµÃÆðһ̨¼ÆËã»ú£¨PDP-11 ÎïÃÀ
¼ÛÁ®£¬Ö»ÓÐ 10000$£©¡£

ÕâЩ»úÆ÷µÄ²Ù×÷ϵͳÓÉ»ã±àÓïÑÔ¡¢»úÆ÷ÓïÑÔд³É£¬ËùÒÔÔËÐÐÆðÀ´Ð§Âʺܸߣ¬µ«¶¼ÎÞ·¨ÒÆ
Ö²(unportable)¡£Ã¿¼Ò¼ÆËã»ú¹«Ë¾¶¼¸ø×Ô¼ºµÄ»úÆ÷ÅäÉ϶ÀÓеIJÙ×÷ϵͳ£¬È»ºóÔÙÏúÊÛ¡£


ÕâÖÖ±¿×¾µÄ×÷·¨ºÜ¿ì¾Í±»ÈËÃÇÒâʶµ½ÁË£¬ÓÚÊǾͿªÊ¼Ð˽¨Ò»¸ö¿ÉÒÔÔÚ²»Í¬Æ·ÅÆ»úÆ÷ÉÏÔË
ÐеIJÙ×÷ϵͳ¡£1969 Ä꣬Ken Thompson ¿ªÊ¼Ð´ºóÀ´³ÉΪ Unix µÄµÚÒ»ÐдúÂë¡££¨Thom
pson Ôø¾­²Î¼ÓÁËÒ»¸öÏîÄ¿£ºMULTICS£¬Unix ÊÇÓëÕâÓйصÄÒ»¸öÍæÐ¦´Ê£©Æäʵ£¬Dennis
Ritchie ΪÕâ¸öеIJÙ×÷ϵͳÉè¼ÆÁËÒ»ÖÖеıà³ÌÓïÑÔ-- C ÓïÑÔºó£¬ÊÂÇé²ÅÕæÕý¿ªÊ¼¡£


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

ÖÕ¶Ë£¨Terminals£©

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

Äú¿ÉÄÜ»áÎÊ£¬ÏÖÔÚÕâЩ¶«Î÷¶¼ÔÚÄĶù¡£ ÕâЩÖն˵ij§¼ÒÎÞ·¨´ï³ÉÒ»Ïî×îÖÕ±ê×¼£¬Õâµ¼ÖÂ
ÿÖÖÅÆ×ÓµÄÖն˶¼Óи÷×ԵļüÅ̲¼¾Ö¡¢¸÷×ÔµÄÔÚÆÁÄ»ÉÏÏÔʾ×Ö·ûµÄ·½·¨¡¢·¢ËÍ»ò½ÓÊÕʲ
ôÐźűíʾʲô×Ö·û¡¢¿ØÖÆ´úÂëµÈµÈ¡£

ΪÁ˱ÜÃâÕâЩ»ìÂÒ£¬¾Í´´½¨ÁËÒ»¸öº¬ÓÐËùÓв»Í¬ÖÕ¶ËÌØÐÔµÄ(capability)Îļþ£¬Õâ¾ÍÊÇ
termcap ¡£ÓÃÒ»¸ö¹¤¾ß´ò¿ª /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 ¡¢ z
sh £¬ºóÕß³£ÓÃ×÷רÊô Unixes ϵͳÖеıê×¼ shell £»Ò²ÓÐһЩ´Ó C ÓïÑÔÖÐÑÜÉú³öÀ´µÄ
shell £¬Èç csh »ò tcsh ¡£

ÔÚ Linux ÖУ¬±ê×¢µÄ shell ÊÇ bash £¬¼´ the GNU Bourne-Again Shell £¨ÓеãÍæÐ¦
µÄζµÀ¡­¡­£©¡£Õâ¸ö shell ¹¦Äܷdz£Ç¿´ó£¨ÉõÖÁÓÐÈ˾õµÃÌ«ÅÓ´óÁË£©£¬Ñ¹ËõµÄ man pa
ge ¾ÍÓÐ 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 £¬¸´ÖÆ£©¡¢ m
v £¨move / rename £¬Òƶ¯£¯ÖØÃüÃû£©£¬ cd £¨change directory £¬¸Ä±äĿ¼£©£¬Õâ
ЩÃüÁîºóÃæ¶¼¿ÉÒÔ¸úÉÏÒ»°ï¿ÉÑ¡ÏÕâ·½Ãæ man page ÓÐÏêϸµÄ½éÉÜ£¨man ls, man mv
µÈµÈ£©¡£

ÔÚÄú¶¯ÉíǰÍù shell ÁìµØÇ°£¬ÕâÀïÓм¸¸öÊõÓï(terminology)µÄ¼ò¶Ì˵Ã÷¡£ÃüÁî¿ÉÄÜ´ø
һЩ¿ÉÑ¡Ïoptions£©¡¢²ÎÊý£¨arguments£©£º

mv -i file dir

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

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

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

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

×Ô¶¯²¹Æë

ÈçºÎÓà cd £¨¸Ä±äĿ¼£¬change directory£©×î¿ìµØ´ÓÄúµ±Ç°ËùÔÚµÄ home Ä¿Â¼Ìøµ½ /
usr/src/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 ¿ªÍ·µÄÎļþ»ò×Ó
Ŀ¼¡£µ±È»£¬Íê³ÉÕâÀàÈÎÎñ»¹ÓиüÀ÷º¦µÄÃüÁµ«Õâ¸ö·½·¨È·ÊµºÜ¹ÜÓá£

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

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

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

¼ÙÈçÄú²»È·¶¨ÊÇ /usr/src/linux/Documentation »¹ÊÇ /usr/src/linux/documentatio
n ¡£¶øÄúÖªµÀ£¬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>£ºÉ¾³ý´Ó¹â±êµ½ÐÐβµÄ²¿·Ö

l <CTRL u>£ºÉ¾³ý´Ó¹â±êµ½ÐÐÊ׵IJ¿·Ö

l <ALT d>£ºÉ¾³ý´Ó¹â±êµ½µ±Ç°µ¥´Ê½áβµÄ²¿·Ö

l <CTRL w>£ºÉ¾³ý´Ó¹â±êµ½µ±Ç°µ¥´Ê¿ªÍ·µÄ²¿·Ö

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 Ŀ¼ÁË¡£

Red Hat Linux ΪÄúÌṩÁËһЩԤÏÈÉèÖõĿì½Ý·½Ê½£¨³ÆÎª ±ðÃû £¬aliases£©£¬±ÈÈ磺


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

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 ½«±»Ö´ÐС£

ΪÁ˽øÒ»²½ËµÃ÷ ; ºÍ && µÄÇø±ð£¬¼°Ò»°ãÃüÁîÅÅÁеÄÓô¦£¬ÏÂÃæ¾ÙÒ»¸ö¾­µäµÄÀý×Ó£ºL
inux Äں˵ıàÒëºÍ°²×°¡£

Òª±àÒë¡¢°²×° Linux £¬ÄúÐèÒªÖ´ÐÐÒ»´®ÃüÁ make dep ¡¢ make clean ¡¢ make bzI
mage ¡¢ make modules ¡¢ make modules_install ºÍ make install ¡£Èç¹ûÒªµÈÒ»¸öÃü
ÁîÍê³Éºó£¬ÔÙÊäÈëÏÂÒ»¸ö£¬Ôٵȣ¬ÔÙÊäÈ룬¡­¡­£¬ÄǾÍÌ«Âé·³ÁË¡£ÁíÒ»·½Ã棬ÿ¸öÃüÁî
Ö»Óе±Ç°ÃæµÄÃüÁî¶¼ÕýÈ·Ö´ÐÐÍê±Ïºó£¬²ÅÄÜ¿ªÊ¼Ö´ÐС£Èç¹ûÄúÓà ; À´ÅÅÁÐÃüÁÔò¼´Ê¹
ÓÐÃüÁîÖ´ÐÐʧ°Ü£¬ºóÃæµÄÒ²ÕÕ³£ÔËÐУ¬×îºó£¬Äú¿ÉÄÜÔÚ /boot Ŀ¼Ïµõ½Ò»¸öÓÐÎÊÌâµÄ
ÄÚºËÓ³Ïñ (image)¡£¶øÓà && £º

make dep && make clean && make bzImage && make modules && make modules_insta
ll && make install

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

ÃüÁîµÄÈÎÎñµ÷¶È

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

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

gqview &

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

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

jobs

[1]+ Running gqview &

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

µ«ÈçºÎ½«Ç°Ì¨ÔËÐеÄÒ»¸ö³ÌÐò·Åµ½ºǫ́ȥ£¿Ã»ÎÊÌ⣺

gqview

<CTRL z>

[2]+ Stopped gqview

bg

[2]+ gqview &

×éºÏ¼ü <CTRL z> ½«¹ÒÆðÖÕ¶ËÖÐÕýÔÚÔËÐеijÌÐò£¬È»ºóÄú¾Í¿ÉÒÔÓà bg ÃüÁÆä·Åµ½ºó
̨ȥִÐС£

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

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

command &>/dev/null &

Õâ²»½ö½«³ÌÐòË͵½ºǫִ́ÐУ¬»¹½«ÆäÊä³ö·¢µ½ /dev/null Îļþ¡£ /dev/null ÊÇϵͳµÄ
"ËéÖ½»ú" (shredder)£¬ËùÓÐË͵½ÄÇÀïµÄÐÅÏ¢¶¼½«Ïûʧ´ù¾¡¡£

ÃüÁîµÄÌæ»»

ÃüÁîÌæ»»(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.mo
use)×÷Ϊ less µÄ²ÎÊý£¬È»ºó¾Í¿ÉÒÔÏÔʾÎļþÄÚÈÝÁË¡£

ÕâÖÖ»úÖÆµÄÓï·¨ÊÇ£º

command1 $(command2)

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

command1 `command2`

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

ÕâÀïÓÐÁíÍâÒ»¸öÀý×Ó¡£ÎÒÃǼÙÉ裬Äú´òËã½áÊøÒ»¸öÃûΪ rob µÄ³ÌÐò¡£ÄúÏȵÃÓÃÃüÁî pi
dof ÕÒ³öÏàÓ¦µÄ½ø³ÌºÅ(Process ID)£¬È»ºóÒÔÕâ¸ö PID Ϊ²ÎÊý£¬ÔËÐÐ kill ÃüÁÕâÑù
¾Í¿ÉÒÔ½áÊø rob ³ÌÐò¡£³ýÁËÓãº

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.b
ak ¼° 583.bak ¡£ÄúÏëÖ»±£ÁôÎļþ 583.bak £¬¿ÉÒÔÓãº

rm *4*.bak

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 »á½«¾ª
̾ºÅ(exclamation mark)½âÊͳÉÀúÊ·¼ÇÂ¼Ìæ»»µÄ¿ªÊ¼(the beginning of a history su
bstitution)¡£È¡·´ºÅÔÚ±¾Æª½éÉܵÄËùÓÐÆ¥ÅäģʽÖж¼ÓÐЧ¡£

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

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 ¿ªÍ·µÄÎļþ¡£

½ÓÏÂÀ´£¬Äú½«¸ßÐ˵ؿ´µ½»¹¿ÉÒÔ¶¨Ò寥ÅäµÄ·¶Î§£º

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¡¢aw
k¡¢find ¼° 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

./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 ¿ªÍ·µÄ°ü£¬µÚÈý¸öÃüÁîÔò½«½á¹ûÒÔ·­Ò³µÄ·½Ê½ÏÔʾ¡£

ÖØ¶¨ÏòÖÁÎļþ

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

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 µÄ»úÖÆºó£¬ Äú¿ÉÄܼ±×ÅÏëÖªµÀÈçºÎÀ´¶¨ÖÆ»·¾³¡£ÔÚºóÃæµÄÁ½ÆªÖУ¬
Äú½«µÃµ½Õâ·½ÃæµÄÆôʾ¡£ÔÚ×îºóһƪÖУ¬»¹ÓÐÒ»¶ÎÈçºÎ´¦Àí 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£¨±ðÃû£©ºÍº¯ÊýÖ®À࣬Ôò·ÅÔÚ .b
ashrc ¡£µ«ÓÉÓÚ .bash_profile ¾­³£±»ÉèÖóÉÏȶÁÈ¡ .bashrc µÄÄÚÈÝ£¬ÄúÈç¹ûͼʡÊÂ
µÄ»°£¬¾Í°ÑËùÓÐÅäÖö¼·Å½ø .bashrc ¡£

ÕâЩÎļþÊÇÿһλÓû§µÄÉèÖá£ÏµÍ³¼¶µÄÉèÖô洢ÔÚ /etc/profile ¡¢ /etc/bashrc ¼°
Ŀ¼ /etc/profile.d ϵÄÎļþÖС£µ«ÄúµÃϰ¹ßÓø÷×ÔµÄÅäÖÃÎļþ£º±à¼­²»ÐèÒª root
ȨÏÞ£¬»¹¿ÉÒÔʹÄúµÄÉèÖøüÓиöÐÔ¡£µ±ÏµÍ³¼¶ÓëÓû§¼¶µÄÉèÖ÷¢Éú³åͻʱ£¬½«²ÉÓÃÓû§
µÄÉèÖá£

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

ÉÏÃæµÄÕâЩÎļþÊÇÿλÓû§µÄÉèÖã¬ÏµÍ³¼¶µÄÉèÖô洢ÔÚ /etc/profile ¡¢ /etc/bash
rc ¼°Ä¿Â¼ /etc/profile.d ϵÄÎļþÖС£Äú×îºÃϰ¹ßʹÓø÷×ÔµÄÅäÖÃÎļþ£º±à¼­²»Ðè
Òª root ȨÏÞ£¬»¹¿ÉÒÔʹÄúµÄÉèÖøü¾ß¸öÐÔ¡£µ±ÏµÍ³¼¶ÓëÓû§¼¶µÄÉèÖ÷¢Éú³åͻʱ£¬½«
ÓÅÏȲÉÓÃÓû§µÄÉèÖá£

Ìáʾ·û

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

account@hostname ~ $

ÔÚĬÈÏÉèÖÃÏ£¬Ìáʾ·û½«ÏÔʾÄúµÄÓû§Ãû¡¢Ö÷»úÃû£¨Ä¬ÈÏÊÇ localhost £©¡¢µ±Ç°ËùÔÚÄ¿
¼£¨ÔÚ 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="[33[1m][w][33[0m] "

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

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

ÕâÑùÎҵõ½µÄÌáʾ·û¾ÍÊÇ£º

[/usr/bin]

µ±Óà root ʱ£¬±ä³É£º

[/usr/bin]

ÎÒÒѾ­³ýµôÁËÖ÷»úÃûºÍÓû§Ãû£¬ÒòΪÎÒÓò»×ÅÕâЩ¡£µ«ÎÒÊ×ÏÈÏëÒ»ÑÛ¾ÍÄÜ¿´³öÎÒµÄÉí·Ý
ÊÇÆÕͨÓû§»¹ÊÇ root ¡£×¢Òâµ½£¬ÆÕͨÓû§µÄÌáʾ·û¿ÉÒÔÊǺڵװ××Ö£¬»ò°×µ×ºÚ×Ö¡£

ÒªÔÚÖÕ¶ËÉÏ»ñµÃÇ¡µ±µÄÑÕÉ«µ÷Å䣬 Äú¿ÉÒԱ༭ÏÂÃæÕâ¸ö½Å±¾color £¬¸³ÓèÖ´ÐÐȨÏÞ£¨c
hmod +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 "
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 33[$FG $T "

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

do echo -en "$EINS 33[$FG33[$BG $T 33[0m";

done

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 µÄ±ê׼Ŀ¼ÖС£Òò´Ë£¬½«ÕâЩ·Ç±ê×¼µÄ°²×°Ä¿Â¼Ìí
¼Óµ½ $PATH ÊÇÒ»ÖÖ½â¾öµÄ°ì·¨¡£´ËÍ⣬ÄúÒ²½«¿´µ½ÈçºÎ´¦ÀíÒ»°ãµÄ»·¾³±äÁ¿¡£

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


µÚ¶þµãÊ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 £¬ÒòΪÕ⽫ɾ³ý $PAT
H ÖÐÆäËûµÄËùÓÐĿ¼£¬ÕâÑùÄúÔÚ¸ÃÖÕ¶ËÔËÐгÌÐòʱ£¬¾Í²»µÃ²»¸ø³öÍêÕû·¾¶¡£ËùÒÔ£¬Ö»
ÄÜ×÷Ìí¼Ó£º

PATH=$PATH:/some/directory

ÕâÑù£¬PATH ±»Éè³Éµ±Ç°µÄÖµ£¨ÒÔ $PATH À´±íʾ£©£«ÐÂÌíµÄĿ¼¡£

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

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

export PATH=$PATH:/some/directory

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

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

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

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

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

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

ÃüÁîµÄ±ðÃû

ÀýÈ磬ÎÒÓÃÏÂÃæµÄÃüÁîÀ´ÉÏ´« MUO ÖеÄÎļþ£º

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

ÏÔÈ»£¬Èç¹ûÿ´Î¶¼ÒªÖðÒ»ÊäÈ룬ÄÇÎÒÔçÍí»á±ä³Éľͷ¡£Òò´ËÎÒÔÚ ~/.bashrc Öж¨ÒåÁ˱ð
Ãû£º

alias upmuo= rsync -e ssh -z -t -r -vv --progress /home/tom/web/muo/rsmuo/do
cs muo:/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 £¬»ò·Åµ½
ϵͳ¼¶µÄ /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 ¾Í½«ÁгöËùÓÐÃû³ÆÖк¬ÓÐ stri
ng µÄÒѰ²×° 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 p
age ÖÐËÑË÷ÃüÁ£¬È»ºó½«µÃµ½µÄÊä³öË͵½¹ÜµÀ£¨|£©£¬½Ó×ÅÓà egrep ¹ýÂË£¬ÅųýµÚ 3
ºÍµÚ n ÕÂ½ÚµÄ man page £¬Õâ¸öÃüÁî¿ÉÄÜûʲô´óÓô¦£¬µ«¿ÉÒÔÕûÀí apropos ÃüÁîµÄ
Êä³ö¡£

º¯ÊýÔÊÐíÄúÔÚº¯ÊýÄÚ²¿ÈκÎλÖã¬Ê¹ÓÃÔËÐÐʱµÄ²ÎÊý¡£¶ø±ðÃû£¬ÔòÖ»ÔÊÐíÔÚÃüÁîÐÐβ·Å
Ò»¸ö²ÎÊý£¨±ÈÈçÇ°ÃæµÄ±ðÃû rpmq £©¡£

$1 ¾ÍÊÇλÖòÎÊý(positional parameter)£¬±íʾº¯ÊýµÚÒ»¸ö²ÎÊýµÄλÖñêʶ·û¡£ÒÀ´Ë
ÀàÍÆ£¬»¹ÓÐ $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 £¬µ«ÅųýµÚÈýÕ½ڣ¨¹ØÓÚ±à³ÌµÄ£©¡£×¢Òâµ½ÄúµÃÒýÓÃ
£¨quote£© Á½´Î£¬¶øÇÒ»¹Óõ½ÁËË«ÒýºÅ£º

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

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

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

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

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

´ÓÕâÀï³ö·¢

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


BASH Programming - Introduction HOW-TO£º

http://www.ibiblio.org/mdw/HOWTO/Bas...tro-HOWTO.html

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

Èç¹ûÄúÆ«ºÃÖ½Ê飬ÄÇÎÒÍÆ¼ö S. Veeraraghavan µÄ¡¶Teach Yourself Shell Programmi
ng¡·£¬Sams ³ö°æÉç¡£ÎÒµ¹¾õµÃ O Reilly ¹«Ë¾ÓÉ Newham/Rosenblatt дµÄ¡¶Learning
the bash Shell¡·£¬²»¹ý¶û¶û£¬µ«Õâ¿ÉÄÜÖ»ÓÐÎÒÕâô¿´ ;-) ¡£

³ýÁËÕâЩ£¬¾ÍÊÇÁ·Ï°£¬Á·Ï°£¬ÔÙÁ·Ï°¡£ÔĶÁÆäËûÈËдµÄ shell ½Å±¾£¬¿´¿´ËûÃÇÔÚ×öʲô
£¬Ôõô×ö£¬ÎªÊ²Ã´ÄÇÑù×ö¡£

Çë²»ÒªÓà root ²âÊÔÄúµÄ½Å±¾¡£Have fun ¡£





Ïà¹ØÖ÷Ìâ:
×îÐÂÈÈÌù