³¾­ôªº Linux ¨p©Ðµæ
¬°¨ú±o¸û¨ÎÂsÄýµ²ªG¡A½Ð·R¥Î firefox ÂsÄý¥»ºô­¶
«e©¹³¾­ôªº Linux ¨p©ÐµæÀ]­º­¶ «e©¹ Linux °ò¦¤å¥ó¡A·s¤â½Ð±qÀY¾Ç°_ «e©¹ Linux ¬[¯¸¤å¥ó¡Aºô¸ô°ò¦¨º³¹¸`½Ð°È¥²°Ñ¦Ò¡I «e©¹¡yºô¸ô¦w¥þ¡z¬ÛÃö¤å¥óºô­¶ «e©¹ Linux ·s¤â°Q½×°Ï¡Aµo°Ý«e°È¥²¬d¾\µo¤å³W«h «e©¹¡yADSL³s½u¤À¨É¡z¬ÛÃö¤å¥óºô­¶ «e©¹ Study Area ºô¯¸
¡@ ¡@ ¡@
¡@
³Ìªñ§ó·s¤é´Á¡G2007/07/15
¤å¦r¼Ò¦¡ (command line) ³oºØ«ü¥O¤U¹Fªº¤è¦¡¡A¦b Linux ¸Ì­±¡A¨ä¹ê´N¬Û·í©ó¬O bash ªº¤u¨ã»P¤¶­±¡I ¦]¬° Linux ´N¬O¥H bash ¬°¹w³]ªº shell ªº¡I¨º»ò«e´X³¹§Ú­Ì³£¤w¸g«Ü§Ö¼Öªº¶i¦æ¤F«Ü¦hªº«ü¥O¤U¹FÅo¡ã ©Ò¥H»¡¡A bash shell ®Ú¥»´N¤£Ãø§a¡ã¬O°Õ¡I¥u­n¯à°÷¼ô±xªº¸Ü¡A¨º»ò½T¹ê¥L¤]¤£¬O³o»ò¤£¥i¿Ëªñªº¤@¶µ¤u¨ã°Ú¡ã ³o­Ó³¹¸`¤¤¡A³¾­ô·|¥ÑÅܼƽͰ_¡A¥ýÁ¿¨ìÀô¹ÒÅܼƪº¥\¯à»P­×§ïªº°ÝÃD¡A µM«á·|Ä~Äò´£¨ì¾ú¥v«ü¥Oªº¹B¥Î¡C±µ¤U¨Ó¡A´N·|½Í¤@¤U¡y¸ê®Æ¬y­«¾É¦V¡z³o­Ó­«­n·§©À¡A ³Ì«á´N¬OºÞ½u©R¥Oªº§Q¥Î°Õ¡I¦n¦n²M¤@²M¸£ªù¡A·Ç³Æ¥Î¥\¥hÅo¡ã ^_^ ³o­Ó³¹¸`´X¥G¬O©Ò¦³ command line »P¥¼¨Ó¥D¾÷ºûÅ@»PºÞ²zªº­«­n°ò¦¡A¤@©w­n¦n¦n¥J²Óªº¾\Ū³á¡I

1. Bash shell
¡@¡@1.1 ¤°»ò¬O shell ¡H
¡@¡@1.2 ¨t²Îªº shell »P /etc/shells ¥\¯à
¡@¡@1.3 Bash shell ªº¥\¯à
¡@¡@1.4 Bash shell ªº¤º«Ø©R¥O¡G type
¡@¡@1.5 «ü¥Oªº¤U¹F
2. Shell ªºÅܼƥ\¯à
¡@¡@2.1 Åܼƪº¨ú¥Î»P³]©w¡Gecho, ÅܼƳ]©w³W«h, unset
¡@¡@2.2 Åܼƪº¥Î³~¡H
¡@¡@2.3 Àô¹ÒÅܼƪº¥\¯à¡G env, ¤@¨Ç­«­nªºÀô¹ÒÅܼÆ, set, export
¡@¡@2.4 »y¨tÀɮתºÅÜ¼Æ (locale)
¡@¡@2.5 Åܼƪº¦³®Ä½d³ò¡G
¡@¡@2.6 ÅܼÆÁä½LŪ¨ú¡B°}¦C»P«Å§i¡G read, declare, array
¡@¡@2.7 »PÀɮרt²Î¤Îµ{§Çªº­­¨îÃö«Y¡G ulimit
¡@¡@2.8 ¨ä¥LÃB¥~Åܼƥ\¯à
3. ©R¥O§O¦W»P¾ú¥v©R¥O¡G
¡@¡@3.1 ©R¥O§O¦W³]©w¡G alias, unalias
¡@¡@3.2 ¾ú¥v©R¥O¡G history, HISTSIZE
4. Bash shell ¨Ï¥ÎÀô¹Ò¡G
¡@¡@4.1 µ´¹ï¸ô®|»P¬Û¹ï¸ô®|
¡@¡@4.2 µn¿ý°T®§Åã¥Ü¸ê®Æ¡G /etc/issue, /etc/motd
¡@¡@4.3 Àô¹Ò³]©wÀÉ¡G bashrc, ~/.bashrc, ~/.profile, profile...,/etc/inputrc, source
¡@¡@4.4 ²×ºÝ¾÷ªºÀô¹Ò³]©w¡G stty, set
¡@¡@4.5 ¸U¥Î¦r¤¸»P¯S®í²Å¸¹¡G
5. ¸ê®Æ¬y­«¾É¦V (redirecte)
¡@¡@5.1 ¦ó¿×¸ê®Æ¬y­«¾É¦V¡H
¡@¡@5.2 ©R¥O°õ¦æªº§PÂ_¨Ì¾Ú¡G ; , &&, ||
6. ºÞ½u©R¥O (pipe)¡G
¡@¡@6.1 Â^¨ú©R¥O¡G cut, grep
¡@¡@6.2 ±Æ§Ç©R¥O¡G sort, wc, uniq
¡@¡@6.3 Âù¦V­«¾É¦V¡G tee
¡@¡@6.4 ¦r¤¸Âà´«©R¥O¡G tr, col, join, paste, expand
¡@¡@6.5 ¤À³Î©R¥O¡G split
¡@¡@6.6 °Ñ¼Æ¥N´«¡G xargs
¡@¡@6.7 Ãö©ó´î¸¹ - ªº¥Î³~
7. ¥»³¹²ßÃD½m²ß
8. °w¹ï¥»¤åªº«ØÄ³¡Ghttp://phorum.vbird.org/viewtopic.php?t=23884

¤j¼ÐÃDªº¹Ï¥ÜBash shell
§Ú­Ì¦b«e­±ªº ¤°»ò¬O Linux ¨º­Ó³¹¸`·í¤¤¡A´£¨ì¤F¡A ºÞ²z¾ã­ÓµwÅ骺¨ä¹ê¬O®Ö¤ß (kernel)¡A¨º§Ú­Ì¤@¯ë¨Ï¥ÎªÌ (user) «h¬O¥H shell ¨Ó¸ò®Ö¤ß·¾³q¡ã Åý®Ö¤ß¹F¨ì§Ú­Ì©Ò·Q­n¹F¨ìªº¤u§@¥Øªº¡C¨º»ò¨t²Î¦³¦h¤Ö shell ¥i¥Î©O¡H ¬°¤°»ò§Ú­Ì­n¨Ï¥Î bash °Ú¡H¡I©³¤U¤À§O¨Ó½Í¤@½Í³á¡I


¤p¼ÐÃDªº¹Ï¥Ü¤°»ò¬O Shell¡H
³oÀ³¸Ó¬O­ÓÆZ¦³½ìªº¸ÜÃD¡G¡y¤°»ò¬O Shell ¡H¡z¬Û«H¥u­nºN¹L¹q¸£¡A¹ï©ó§@·~¨t²Î ( ¤£½×¬O Linux ¡B Unix ©ÎªÌ¬O Windows ) ¦³ÂI·§©ÀªºªB¤Í­Ì¤j¦hÅ¥¹L³o­Ó¦Wµü¡A¦]¬°¥u­n¦³¡y§@·~¨t²Î¡z¨º»ò´NÂ÷¤£¶} Shell ³o­ÓªF¦è¡C¤£¹L¡A¦b°Q½× Shell ¤§«e¡A§Ú­Ì¥ý¨ÓÁA¸Ñ¤@¤U¹q¸£ªº¹B§@ª¬ªp§a¡I Á|­Ó¨Ò¤l¨Ó»¡¡G·í§A­n¹q¸£¶Ç¿é¥X¨Ó¡y­µ¼Ö¡zªº®É­Ô¡A§Aªº¹q¸£»Ý­n¤°»òªF¦è©O¡H
  1. ·íµM´N¬O»Ý­n§AªºµwÅ馳¡y­µ®Ä¥d´¹¤ù¡z³o­ÓµwÅé°t³Æ¡A§_«h«ç»ò·|¦³Án­µ¡F
  2. §@·~¨t²Îªº®Ö¤ß¥i¥H¤ä´©³o­Ó´¹¤ù²Õ¡A·íµMÁٻݭn´£¨Ñ´¹¤ùªºÅX°Êµ{¦¡Åo¡F
  3. »Ý­n¨Ï¥ÎªÌ¡]´N¬O§A¡^¿é¤Jµo¥ÍÁn­µªº«ü¥OÅo¡I
³o´N¬O°ò¥»ªº¤@­Ó¿é¥XÁn­µªº»Ý­nªº¨BÆJ¡I¨º»ò¤]´N¬O»¡¡A§A¥²¶·­n¡y¿é¤J¡z¤@­Ó«ü¥O¤§«á¡A ¡yµwÅé¡z¤~·|³z¹L§A¤U¹Fªº«ü¥O¨Ó¤u§@¡I¼K¼K¡I¨º»òµwÅé¦p¦óª¾¹D§A¤U¹Fªº«ü¥O©O¡H¨º´N¬O kernel ¡]®Ö¤ß¡^ªº±±¨î¤u§@¤F¡IÁA¸Ñ¤F¶Ü¡H¨S¿ù¡I¤]´N¬O»¡¡A§Ú­Ì¥²¶·­n³z¹L¡y Shell ¡z±N§Ú­Ì¿é¤Jªº«ü¥O»P Kernel ·¾³q¡A¦nÅý Kernel ¥i¥H±±¨îµwÅé¨Ó¥¿½TµL»~ªº¤u§@¡I °ò¥»¤W¡A§Ú­Ì¥i¥H³z¹L©³¤U³o¨â±i¹Ï¨Ó»¡©ú¤@¤U¡G

µwÅé¡B®Ö¤ß»P¨Ï¥ÎªÌªº¬ÛÃö©Ê¹Ï¥Ü
¹Ï¤@¡BµwÅé¡B®Ö¤ß»P¨Ï¥ÎªÌªº¬ÛÃö©Ê¹Ï¥Ü

µwÅé¡B®Ö¤ß»P¨Ï¥ÎªÌªº¬ÛÃö©Ê¹Ï¥Ü
¹Ï¤G¡BµwÅé¡B®Ö¤ß»P¨Ï¥ÎªÌªº¬ÛÃö©Ê¹Ï¥Ü

°ò¥»¤W¡A´À§Ú­Ì¤u§@ªº¬O¡yµwÅé¡z¡A¦Ó±±¨îµwÅ骺¬O¡y®Ö¤ß¡z¡A¦A¨Ó¡A§Ú­Ì¨Ï¥ÎªÌ¤D¬O§Q¥Î¡yShell¡z±±¨î¤@¨Ç kernel ´£¨Ñªº ¡y¤u¨ã (Utility)¡z¨Ó¾Þ±±µwÅé´À§Ú­Ì¥¿½Tªº¤u§@¡C¦A¶i¤@¨B¨Ó»¡¡A¥Ñ©ó kernel Å¥¤£À´¤HÃþªº»y¨¥¡A¦Ó¤HÃþ¤]¨S¦³¿ìªkª½±µ°O±o kernel ªº»y¨¥¡A©Ò¥H¨âªÌªº·¾³q´N±oÂÇ¥Ñ shell ¨Ó¤ä´©¤F¡I(¨ä¹ê¦­´Áªº DOS ªº¤å¦r¤¶­±¤]¬O¨Ï¥Î shell ¨Ó·¾³q§r¡I¨º­Ó shell ªº¦WºÙ´N¥s°µ command.com ¡AÁÙ°O±o¶Ü¡H ^_^)

¥H¦r­±¤Wªº·N«ä¨Ó»¡¡A kernel ¬O¡y®Ö¤ß¡zªº·N«ä¡A¦Ó Shell ¬O¡y´ß¡zªº·N«ä¡A¨þ¨þ¡I¤]´N¬O»¡¡A shell ¬O³Ì¥~ÀYªº©N©N¡I¦Ó kernel ¤D¬O³Ì¤º¼hªºªº©N©N°Õ¡I®Ö¤ß¬O§@·~¨t²Îªº³Ì©³¼hªºªF¦è¡I ³o­Ó®Ö¤ß¸ÌÀY¥]¬A¤F¦UºØªº¤ä´©µwÅ骺¤u¨ã¡I·íµMÅo¡A¦pªG§AªºµwÅé¤Ó·s¡A¦Ó§Aªº kernel ¨Ã¨S¦³¤ä´©ªº¸Ü¡A¨º»ò«Ü©êºp¡A§Aªº Shell ¯à¤O¦A«ç»ò±j¡A¤]¨S¦³¿ìªk¨ÏµwÅé¤u§@ªº¡I ³o¼Ë¥i¥HÁA¸Ñ¤F¶Ü¡H¨þ¨þ¡I¨S¿ù¡I¨Ï¹q¸£¥D¾÷¤u§@ªº¥¿¬O®Ö¤ßªº¥ô°È¡A¦ý¬O¾Þ§@®Ö¤ß¨Ó´À¨Ï¥ÎªÌ¤u§@ªº¡A«o¬O shell ³á¡I¦]¦¹¡A¦³®É­Ô§Aªº shell ·d¤F¦Ñ¥b¤Ñ¡AµwÅé«o¤£¯à¤u§@ªº®É­Ô¡A½Ðª`·N¡A ±zªº¡y®Ö¤ß¡z¬O§_¥¿½T©O¡Hªü¡I§è»·¤F¡I³o¬O kernel ³¹¸`¤~­n»¡ªºªF¦è¡C

  • §Ú·F¹À­n¾Ç²ß¤å¦r¼Ò¦¡ªº Shell ©O¡H
  • §Ú­Ì±`±`´£¨ìªº shell ¨ä¹ê¬O¤ñ¸û¯U¹iªº©w¸q¡A¤@¯ë¨Ó»¡¡A¦b Linux ¸ÌÀY¡A©Ò¿×ªº shell ´N¬O«ü BASH ³o­Ó¤å¦r¼Ò¦¡ªº shell Åo¡C¦ý¬O¡A¼s¸qªº shell ¤]¥i¥H¬O KDE ¤§Ãþªº¹Ï§Î¤¶­±±±¨î³nÅé©O¡I ¦]¬°¥L¤]¥i¥HÀ°§Ú­Ì»P kernel ¶i¦æ·¾³q°Ú¡I¤£¹L¡A¦b³¾­ôªº Linux ¨p©Ðµæ¸Ì­±¡A ¦pªG¨S¦³¯S§O»¡©úªº¸Ü¡A¨º»ò§Ú­Ìªº shell «üªº¬O¤ñ¸û¯U¸qªº¡A¤]´N¬O¤å¦r¼Ò¦¡ªº shell ³á¡I

    ¥t¥~¡A³¾­ô±`±`Å¥¨ì³o­Ó°ÝÃD¡G¡y§Ú·F¹À­n¾Ç²ß shell ©O¡H ¤£¬O¤w¸g¦³«Ü¦hªº¤u¨ã¥i¥H´£¨Ñ§Ú³]©w§Úªº¥D¾÷¤F¡H§Ú¬°¦ó­nªá³o»ò¦h®É¶¡¥h¾Ç«ü¥O©O¡H¤£¬O¥H X Window «ö¤@«ö´X­Ó«ö¶s´N¥i¥H·d©w¤F¶Ü¡H¬°¤°»ò­n³o»ò³Â·Ð¡H¡z­ü¡ãÁÙ¬O±o¤@¦A¦a±j½Õ¡A X Window ÁÙ¦³ Web ¤¶­±ªº³]©w¤u¨ã¨Ò¦p webmin ¬O¯uªº¦n¥Îªº³Ã¥ë¡A ¥L¯uªº¥i¥HÀ°§U§Ú­Ì«Ü²©öªº³]©w¦n§Ú­Ìªº¥D¾÷¡A¬Æ¦Ü¬O¤@¨Ç«Ü¶i¶¥ªº³]©w³£¥i¥HÀ°§Ú­Ì·d©w¡C

    ¦ý¬O³¾­ô¦b§Ç³¹¸Ì­±¤]¤w¸g´£¨ì¹L¬Û·í¦h¦¸¤F¡A X Window ªº¤¶­±ÁöµM¿Ëµ½¡A¥\¯àÁöµM±j¤j¡A¦Ó web ¤¶­±ªº¤u¨ã¤]¥i¥H´£¨Ñ§Ú­Ì«Ü¤Íµ½ªºªA°È¡A¦ý¬O²¦³º¥L¬O±N©Ò¦³§Q¥Î¨ìªº®M¥ó³£¾ã¦X¦b¤@°_ªº¤@­Ó®M¥ó¦Ó¤w¡A ¨Ã«D¬O¤@­Ó§¹¾ãªº®M¥ó¡A©Ò¥H¬Y¨Ç®É­Ô·í§A¤É¯Å©ÎªÌ¬O¨Ï¥Î¨ä¥L®M¥óºÞ²z¼Ò²Õ( ¨Ò¦p tarball ¦Ó«D rpm ÀÉ®×µ¥µ¥ )®É¡A´N·|³y¦¨³]©wªº§xÂZ¤F¡C

    ¦¹¥~¡A»·ºÝ³s½u®É¡A¤å¦r¤¶­±ªº¶Ç¿é³t«×¤@©w¤ñ¸û§Ö¡A ¦Ó¥B¡A¸û¤£®e©ö¥X²{Â_½u©ÎªÌ¬O¸ê°T¥~¬yªº°ÝÃD¡A¦]¦¹¡A shell ¯uªº¬O±o¾Ç²ßªº¤@¶µ¤u¨ã¡C¦Ó¥B¡A¥L¥i¥HÅý±z§ó²`¤J Linux ¡A§óÁA¸Ñ¥L¡A ¦Ó¤£¬O¥u·|«ö¤@«ö·Æ¹«¦Ó¤w¡I©Ò¿×¡y¤Ñ§U¦Û§UªÌ¡I¡z¦hºN¤@ÂI¤å¦r¼Ò¦¡ªºªF¦è¡A·|Åý§A»P Linux §ó¿Ëªñ©O¡I

    ¦³¨ÇªB¤Í¤]«Ü¥i·R¡A±`·|»¡¡G¡y§Ú¾Ç³o»ò¦h·F¤°»ò¡H ¤S¤£±`¥Î¡A¤]¥Î¤£¨ì¡I¡z¼K¼K¡I¦³¨S¦³Å¥¹L¡y®Ñ¨ì¥Î®É¤è«ë¤Ö¡H¡z ·í§Aªº¥D¾÷¤@¤Á¦wµMµL®~ªº®É­Ô¡A±z·íµM·|ı±o¦n¹³¾Ç³o»ò¦hªºªF¦è¤@ÂIÀ°§U¤]¨S¦³§r¡I ¸U¤@¡A¬Y¤@¤Ñ¯uªº¤£©¯µ¹¥L¤¤¼Ð¤F¡A±z¸Ó¦p¦ó¬O¦n¡H¬Oª½±µ­«·s¦w¸Ë¡H ÁÙ¬O¥ý°lÂܤJ«I¨Ó·½«á¶i¦æº|¬}ªº­×¸É¡H©ÎªÌ¬O°®¯Ü´NÃö¯¸¦n¤F¡H³o·íµM¯A¤Î«Ü¦hªº¦Ò¶q¡A ¦ý´N¥H³¾­ôªºÆ[ÂI¨Ó¬Ý¡A¦h¾Ç¤@ÂIÁ`¬O¦nªº¡A¤×¨ä§Ú­Ì¥i¥H¦³³Æ¦ÓµL±w¹À¡I¬Æ¦Ü¾Çªº¤£ºë¤]¨S¦³Ãö«Y¡AÁA¸Ñ·§©À¤]´N OK °Õ¡I²¦³º¨S¦³¤H­n±z¤@©w­n­I³o»ò¦hªº¤º®e°Õ¡IÁA¸Ñ·§©À´N«Ü¤F¤£°_¤F¡I

    ¦¹¥~¡A¦pªG±z¯uªº¦³¤ß·Q­n±N±zªº¥D¾÷ºÞ²zªº¦n¡A¨º»ò¨}¦nªº shell µ{¦¡½s¼g¬O¤@©w»Ý­nªº°Õ¡I´N³¾­ô¦Û¤v¨Ó»¡¡A§ÚºÞ²zªº¥D¾÷ÁöµMÁÙ¤£ºâ¦h¡A ¥u¦³°Ï°Ï¤£¨ì¤Q³¡¡A¦ý¬O¦pªG¨C³¡¥D¾÷³£­nªá¤W´X¤Q¤ÀÄÁ¨Ó¬d¾\¥Lªº log file ¥H¤Î¬ÛÃöªº¸ê°T¡A¨º»ò§Ú¥i¯à·|ºÆ±¼¡I°ò¥»¤W¡A¤]¤Ó¨S¦³®Ä²v¤F¡I³o­Ó®É­Ô¡A¦pªG¯à°÷ÂÇ¥Ñ shell ´£¨Ñªº©R¥O­«¾É¦V( ©ÎºÙ¸ê®Æ¬y­«¾É¦V )¡A¥H¤ÎºÞ½u©R¥O¡A¨þ¨þ¡I¨º»ò§Ú¤ÀªR log file ¥u­nªá¶O¤£¨ì¤Q¤ÀÄÁ´N¥i¥H¬Ý§¹©Ò¦³ªº¥D¾÷¤§­«­n¸ê°T¤F¡I¬Û·íªº¦n¥Î©O¡I

    ¥Ñ©ó¾Ç²ß shell ªº¦n³B¯uªº¬O¦h¦h°Õ¡I©Ò¥H¡A¦pªG±z¬O­Ó¨t²ÎºÞ²z­û¡A©ÎªÌ¦³¤ß·Q­nºÞ²z¨t²Îªº¸Ü¡A¨º»ò shell ³o­ÓªF¦è»P shell scripts ³o­ÓªF¦è¡A¯uªº¯uªº¦³¥²­n¬Ý¤@¬Ý¡I

    ¤p¼ÐÃDªº¹Ï¥Ü¨t²Îªº shell »P /etc/shells ¥\¯à
    ª¾¹D¤°»ò¬O Shell ¤§«á¡A¨º»ò§Ú­Ì¨ÓÁA¸Ñ¤@¤U Linux ¨Ï¥Îªº¬O­þ¤@­Ó shell ©O¡H¤°»ò¡I­þ¤@­Ó¡HÃø¹D»¡ shell ¤£´N¬O¡y¤@­Ó shell ¶Ü¡H¡z«¢«¢¡I¨º¥i¤£¡I¥Ñ©ó¦­¦~ªº Unix ¦~¥N¡Aµo®iªÌ²³¡A©Ò¥H¥Ñ©ó shell ¨Ì¾Úµo®iªÌªº¤£¦P´N¦³³\¦hªºª©¥»¡A¨Ò¦p±`Å¥¨ìªº Bourne SHell (sh) ¡B¦b Sun ¸ÌÀY¹w³]ªº C SHell¡B °Ó·~¤W±`¥Îªº K SHell¡B, ÁÙ¦³ TCSH µ¥µ¥¡A¨C¤@ºØ Shell ³£¦U¦³¨ä¯SÂI¡C¦Ü©ó Linux ¨Ï¥Îªº³o¤@ºØª©¥»´NºÙ¬°¡y Bourne Again SHell (²ºÙ bash) ¡z¡A³o­Ó Shell ¬O Bourne Shell ªº¼W±jª©¥»¡A¤]¬O°ò·Ç©ó GNU ªº¬[ºc¤Uµo®i¥X¨ÓªºËç¡I

    ¦b¤¶²Ð shell ªºÀuÂI¤§«e¡A¥ý¨Ó»¡¤@»¡ shell ªºÂ²³æ¾ú¥v§a¡G²Ä¤@­Ó¬y¦æªº shell ¬O¥Ñ Steven Bourne µo®i¥X¨Óªº¡A¬°¤F¬ö©À¥L©Ò¥H´NºÙ¬° Bourne shell ¡A©Îª½±µÂ²ºÙ¬° sh ¡I¦Ó«á¨Ó¥t¤@­Ó¼s¬°¬y¶Çªº shell ¬O¥Ñ¬f§JµÜ¤j¾Çªº Bill Joy ³]­p¨Ìªþ©ó BSD ª©ªº Unix ¨t²Î¤¤ªº shell ¡A³o­Ó shell ªº»yªk¦³ÂIÃþ¦ü C »y¨¥¡A©Ò¥H¤~±o¦W¬° C shell ¡A²ºÙ¬° csh ¡I¥Ñ©ó¦b¾Ç³N¬É Sun ¥D¾÷¶Õ¤O¬Û·íªºÃe¤j¡A¦Ó Sun ¥D­n¬O BSD ªº¤À¤ä¤§¤@¡A©Ò¥H C shell ¤]¬O¥t¤@­Ó«Ü­«­n¦Ó¥B¬y¶Ç«Ü¼sªº shell ¤§¤@ ( ¦]¬°¤Ó¦hªºµ{¦¡³]­p®v¨Ï¥Îªº´N¬O C »y¨¥°Õ¡I )¡I(ÁÙ°O±o§Ú­Ì¦b Linux ¬O¤°»ò¨º¤@³¹´£¨ìªº§a¡H Sun ¤½¥qªº³Ð©l¤H´N¬O Bill Joy¡A¦Ó BSD ³Ì¦­´N¬O Bill Joy µo®i¥X¨Óªº°Ú¡I)¡C

    ¨º»ò¥Ø«e§Ú­Ìªº Linux (¥H FC4 ¬°¨Ò) ¦³¦h¤Ö§Ú­Ì¥i¥H¨Ï¥Îªº shells ©O¡H §A¥i¥HÀˬd¤@¤U /etc/shells ³o­ÓÀɮסA¦Ü¤Ö´N¦³©³¤U³o´X­Ó¥i¥H¥Îªº shells¡G
    • /bin/sh (¤w¸g³Q /bin/bash ©Ò¨ú¥N)
    • /bin/bash (´N¬O Linux ¹w³]ªº shell)
    • /bin/ksh (Kornshell ¥Ñ AT&T Bell lab. µo®i¥X¨Óªº¡A¬Û®e©ó bash)
    • /bin/tcsh (¾ã¦X C Shell ¡A´£¨Ñ§ó¦hªº¥\¯à)
    • /bin/csh (¤w¸g³Q /bin/tcsh ©Ò¨ú¥N)
    • /bin/zsh (°ò©ó ksh µo®i¥X¨Óªº¡A¥\¯à§ó±j¤jªº shell)
    ¥Ñ¤W­±ªº»¡©ú¤¤¡A§Ú­Ì¤j·§¥i¥Hµo²{¡A¨ä¹ê¦U¥D­n shell ªº¥\¯à³£®t¤£¦h¡A ¦³ªº¥u¬O»yªk¤W­±ªº¤£¦P¦Ó¤w¡C¥Ø«e¤@¯ëªº¨Ï¥ÎªÌ¨Ï¥Î²ßºD¤W¡A¦ü¥G¬O¥H bash ¤Î csh ¬°¥D­nªº¨â­Ó shell ¡COK¡I³o»ò¦hªº shell §Ú­n¨Ï¥Î­þ¤@­Ó°Ú¡H¨þ¨þ¡I¨Ï¥Î Linux ¤ä´©³Ì¼sªxªº bash ´N¦n¤F¡I ¤£­n·Q¤Ó¦h¡I¥t¥~¡A«x¡I¬°¤°»ò§Ú­Ì¨t²Î¤Wªº shell ­n¼g¤J /etc/shells ³o­ÓÀÉ®×°Ú¡H ³o¬O¦]¬°¨t²Î¬Y¨ÇªA°È¦b¹B¦æ¹Lµ{¤¤¡A ·|¥hÀˬd¨Ï¥ÎªÌ¯à°÷¨Ï¥Îªº shells ¡A¦Ó³o¨Ç shell ªº¬d¸ß´N¬OÂÇ¥Ñ /etc/shells ³o­ÓÀÉ®×Åo¡I

    Á|¨Ò¨Ó»¡¡A¬Y¨Ç FTP ºô¯¸·|¥hÀˬd¨Ï¥ÎªÌªº¥i¥Î shell ¡A¦Ó¦pªG§A¤£·Q­nÅý³o¨Ç¨Ï¥ÎªÌ¨Ï¥Î FTP ¥H¥~ªº¥D¾÷¸ê·½®É¡A¥i¯à·|µ¹¤©¸Ó¨Ï¥ÎªÌ¤@¨Ç©Ç©Çªº shell¡AÅý¨Ï¥ÎªÌµLªk¥H¨ä¥LªA°Èµn¤J¥D¾÷¡C ³o­Ó®É­Ô¡A§A´N±o±N¨º¨Ç©Ç©Çªº shell ¼g¨ì /etc/shells ·í¤¤¤F¡CÁ|¨Ò¨Ó»¡¡A§Ú­Ìªº FC4 ªº /etc/shells ¸ÌÀY´N¦³­Ó /sbin/nologin Àɮתº¦s¦b¡A³o­Ó´N¬O§Ú­Ì»¡ªº©Ç©Çªº shell Åo¡ã

    ¨º»ò¡A¦A·Q¤@·Q¡A§Ú³o­Ó¨Ï¥ÎªÌ¤°»ò®É­Ô¥i¥H¨ú±o shell ¨Ó¤u§@©O¡HÁÙ¦³¡A §Ú³o­Ó¨Ï¥ÎªÌ¹w³]·|¨ú±o­þ¤@­Ó shell °Ú¡H¡IÁÙ°O±o§Ú­Ì¦b ­º¦¸¶i¤J Linux -- ¥H¤å¦r¤è¦¡µn¤J ¨º­Ó³¹¸`·í¤¤´£¨ìªºµn¤J°Ê§@§a¡H·í§Úµn¤Jªº®É­Ô¡A¨t²Î´N·|µ¹§Ú¤@­Ó shell Åý§Ú¨Ó¤u§@¤F¡C ¦Ó³o­Óµn¤J¨ú±oªº shell ´N°O¿ý¦b /etc/passwd ³o­ÓÀɮפº¡I³o­ÓÀɮתº¤º®e¬OÔ£¡H
    [root@linux ~]# cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    .....(¤¤¶¡¬Ù²¤).....
    
    ¦p¤W©Ò¥Ü¡A¦b¨C¤@¦æªº³Ì«á¤@­Ó¸ê®Æ¡A´N¬O±zµn¤J«á¡A¥i¥H¨ú±oªº¹w³]ªº shell °Õ¡I ¨º§A¤]·|¬Ý¨ì¡A root ¬O /bin/bash ¡A¤£¹L¡A¨t²Î±b¸¹ bin »P daemon µ¥µ¥¡A´N¨Ï¥Î¨º­Ó©Ç©Çªº /sbin/nologin Åo¡ãÃö©ó¨Ï¥ÎªÌ³o³¡¤Àªº¤º®e¡A§Ú­Ì¯d¦b ±b¸¹ºÞ²z ®É´£¨Ñ§ó¦hªº»¡©ú¡C


    ¤p¼ÐÃDªº¹Ï¥ÜBash shell ªº¥\¯à
    ¬JµM /bin/bash ¬O Linux ¹w³]ªº shell ¡A¨º»òÁ`¬O±oÁA¸Ñ¤@¤U³o­Óª±·N¨à§a¡I BASH ¬O«ç»ò¤@¦^¨Æ©O¡H³o­Ó shell ¬O GNU ­pµe¤¤­«­nªº¤u¨ã³nÅ餧¤@¡A¥Ø«e¤]¬O GNU §@·~¨t²Î¤¤¼Ð·Çªº shell ¡A¥L¥D­n¬Û®e©ó sh ¡A¨Ã¥B¨Ì¾Ú¤@¨Ç¨Ï¥ÎªÌ»Ý¨D¡A¦Ó¥[±jªº shell ª©¥»¡A¥i¥H»¡¥Ø«e´X¥G©Ò¦³ªº Linux distribution ³£¬O¨Ï¥Î bash §@¬°ºÞ²z®Ö¤ßªº¥D­n shell ¡I¦]¦¹¡A¤£½×±z¨Ï¥Îªº¬O¨º­Ó distribution ¡A§A³£Ãø°k»Ý­n¾Ç²ß bash ªº±J©R°Õ¡I¨º»ò³o­Ó shell ¦³¤°»ò¦n³B¡A·F¹À Linux ­n¨Ï¥Î¥L§@¬°¹w³]ªº shell ©O¡H BASH ¥D­nªºÀuÂI¦³©³¤U´X­Ó¡G

  • ©R¥O½s­×¯à¤O¡]Ãþ¦ü DOS ªº doskey ¥\¯à¡^¡G
  • ¨Ï¥Î bash ¸ÌÀY¡A­Ó¤H»{¬°¬Û·í´Îªº¤@­Ó¥\¯à´N¬O¡y¥L¯à°O¾Ð¨Ï¥Î¹Lªº«ü¥O¡I¡z ³o¥\¯à¯uªº¬Û·íªº´Î¡I¦]¬°§Ú¥u­n¦b«ü¥O¦C«ö¡y¤W¤UÁä¡z´N¥i¥H§ä¨ì«e¤@­Ó¿é¤Jªº«ü¥O¡I¦Ó¦b«Ü¦h distribution ¸ÌÀY¡A¹w³]ªº«ü¥O°O¾Ð¥\¯à¥i¥H¨ì¹F 1000 ­Ó¡I¤]´N¬O»¡¡A §A´¿¸g¤U¹F¹Lªº«ü¥O³£³Q°O¿ý¤U¨Ó¤F¡A°O¿ýªºÀɮצb§Aªº®a¥Ø¿ý¤ºªº .bash_history ¡I¤£¹L¡A»Ý­n¯d·Nªº¬O¡A ~/.bash_history °O¿ýªº¬O«e¤@¦¸µn¤J¥H«e©Ò°õ¦æ¹Lªº«ü¥O¡A ¦Ó¦Ü©ó³o¤@¦¸µn¤J©Ò°õ¦æªº«ü¥O³£³Q¼È¦s¦b¼È°O¾ÐÅ餤¡A·í±z¦¨¥\ªºµn¥X¨t²Î«á¡A¸Ó«ü¥O°O¾Ð¤~·|°O¿ý¨ì .bash_history ·í¤¤¡I

    ³o¦³¤°»ò¥\¯à©O¡H³Ì¤jªº¦n³B´N¬O¥i¥H¡y¬d¸ß´¿¸g°µ¹LªºÁ|°Ê¡I¡z¡A ¦p¦¹¥i¥Hª¾¹D§Aªº°õ¦æ¨BÆJ¡A¨º»ò´N¥i¥H°lÂܱz´¿¤U¹Fªº«ü¥O¡A¥H§@¬°°£¿ùªº¤u¨ã¡I ¦ý¦p¦¹¤@¨Ó¤]¦³­Ó·Ð´o¡A´N¬O¦pªG³QÀb«È¤J«I¤F¡A¨º»ò¥L¥u­n½§A´¿¸g°õ¦æ¹Lªº«ü¥O¡A ­è¦n§Aªº«ü¥O¤S¸ò¨t²Î¦³Ãö¡]¨Ò¦pª½±µ¿é¤J MySQL ªº±K½X¦b«ü¥O¦C¤W­±¡^¨º»ò«Ü®e©ö´N³Q¯}¸Ñ§Aªº Linux ¥D¾÷¡I©Ò¥H¡A³Ì¦n¬O±N°O¿ýªº«ü¥O¼Æ¥Ø´î¤p¤@ÂI¸û¦n¡I

  • ©R¥O»PÀɮ׸ɥþ¥\¯à¡G
  • ÁÙ°O±o§Ú­Ì¦b ­º¦¸¶i¤J Linux ªº¼öªù«öÁä ¤@¸`·í¤¤´£¨ìªº [tab] ³o­Ó«öÁä¶Ü¡H¡I³o­Ó«öÁ䪺¥\¯à´N¬O¦b bash ¸ÌÀY¤~¦³ªº°Õ¡I±`±`¦b bash Àô¹Ò¤¤¨Ï¥Î [tab] ¬O­Ó«Ü´Îªº²ßºD³á¡I¦]¬°¦Ü¤Ö¥i¥HÅý§A 1)¤Ö¥´«Ü¦h¦r¡F 2)½T©w¿é¤Jªº¸ê®Æ¬O¥¿½Tªº¡I ¨Ï¥Î [tab] «öÁ䪺®É¾÷¨Ì¾Ú [tab] ±µ¦b«ü¥O«á©Î°Ñ¼Æ«á¦Ó¦³©Ò¤£¦P¡C§Ú­Ì¦A½Æ²ß¤@¦¸¡G
    • [Tab] ±µ¦b¤@¦ê«ü¥Oªº²Ä¤@­Ó¦rªº«á­±¡A«h¬°©R¥O¸É¥þ¡F
    • [Tab] ±µ¦b¤@¦ê«ü¥Oªº²Ä¤G­Ó¦r¥H«á®É¡A«h¬°¡yÀɮ׸ɻô¡z¡I
    ©Ò¥H»¡¡A¦pªG§Ú·Q­nª¾¹D§ÚªºÀô¹Ò¤¤¡A©Ò¦³¥i¥H°õ¦æªº«ü¥O¦³´X­Ó¡H ´Nª½±µ¦b bash ªº´£¥Ü¦r¤¸«á­±¿é¤J¨â­Ó [tab][tab] ´N¯à°÷¿é¥X©Ò¦³ªº¥i°õ¦æ«ü¥O¤F¡C ¨º¦pªG·Q­nª¾¹D¨t²Î·í¤¤©Ò¦³¥H c ¬°¶}ÀYªº«ü¥O©O¡H´N«ö¤U c[tab][tab] ´N¦n°Õ¡I ^_^

    ¬Oªº¡I¯uªº¬O«Ü¤è«Kªº¥\¯à¡A©Ò¥H¡A¦³¨Æ¨S¨Æ¡A¦b bash shell ©³¤U¡A¦h«ö´X¦¸ [tab] ¬O¤@­Ó¤£¿ùªº²ßºD°Õ¡I

  • ©R¥O§O¦W(alias)³]©w¥\¯à¡G
  • °²¦p§Ú»Ý­nª¾¹D³o­Ó¥Ø¿ý©³¤Uªº©Ò¦³Àɮס]¥]§tÁôÂÃÀÉ¡^¤Î©Ò¦³ªºÀÉ®×ÄݩʡA¨º»ò§Ú´N¥²¶·­n¤U¹F ls -al ³o¼Ëªº«ü¥O¦C¡A­ü¡I¯u³Â·Ð¡A¦³¨S¦³§ó§Öªº¨ú¥N¤è¦¡¡H¨þ¨þ¡I´N¨Ï¥Î©R¥O§O¦W§r¡I¨Ò¦p§Ú³Ì³ßÅwª½±µ¥H lm ³o­Ó¦Û­qªº©R¥O¨Ó¨ú¥N¤W­±ªº©R¥O¡A¤]´N¬O»¡¡A lm ·|µ¥©ó ls -al ³o¼Ëªº¤@­Ó¥\¯à¡A¼K¡I¨º»ò­n¦p¦ó§@©O¡H´N¨Ï¥Î alias §Y¥i¡I§A¥i¥H¦b«ü¥O¦C¿é¤J alias ´N¥i¥Hª¾¹D¥Ø«eªº©R¥O§O¦W¦³­þ¨Ç¤F¡I¤]¥i¥Hª½±µ¤U¹F©R¥O¨Ó³]©w§O¦WËç¡G
      alias lm='ls -al'
  • ¤u§@±±¨î(jobs)¡B«e´º­I´º±±¨î¡G
  • ³o³¡¤À§Ú­Ì¦b¤§«áªº¸ê·½ºÞ²z³¹¸`¤¤·|¦A´£¤Î¡I ¨Ï¥Î«e¡B­I´ºªº±±¨î¥i¥HÅý¤u§@¶i¦æªº§ó¬°¶¶§Q¡I¦Ü©ó¤u§@±±¨î(jobs)ªº¥Î³~«h§ó¼s¡A ¥i¥HÅý§Ú­ÌÀH®É±N¤u§@¥á¨ì­I´º¤¤°õ¦æ¡I¦Ó¤£©È¤£¤p¤ß¨Ï¥Î¤F [Ctrl] + c ¨Ó°±±¼¸Óµ{§Ç¡I¯u¬O¦n¼Ëªº¡I¦¹¥~¡A¤]¥i¥H¦b³æ¤@µn¤JªºÀô¹Ò¤¤¡A¹F¨ì¦h¤uªº¥Øªº©O¡I

  • Shell scripts ªº±j¤j¥\¯à¡G
  • ¦b DOS ¦~¥NÁÙ°O±o±N¤@°ï«ü¥O¼g¦b¤@°_ªº©Ò¿×ªº¡y§å¦¸ÀÉ¡z§a¡H¦b Linux ©³¤Uªº shell scripts «hµo´§ªº§ó¬°±j¤jªº¥\¯à¡A¥i¥H±N±z¤é±`¥Í¬¡·í¤¤±`»Ý­n¤U¹Fªº³sÄò«ü¥O¼g¦¨¤@­ÓÀɮסA ¸ÓÀɮרåB¥i¥H³z¹L¹ï½Í¤¬°Ê¦¡ªº¤è¦¡¨Ó¶i¦æ¥D¾÷ªº°»´ú¤u§@¡I¤]¥i¥HÂÇ¥Ñ shell ´£¨ÑªºÀô¹ÒÅܼƤάÛÃö«ü¥O¨Ó¶i¦æ³]­p¡A«z¡I¾ã­Ó³]­p¤U¨Ó´X¥G´N¬O¤@­Ó¤p«¬ªºµ{¦¡»y¨¥¤F¡I¸Ó scripts ªº¥\¯à¯uªº¬O¶W¥G§Úªº·Q¹³¤§¥~¡I¥H«e¦b DOS ©³¤U»Ý­nµ{¦¡»y¨¥¤~¯à¼gªºªF¦è¡A¦b Linux ©³¤U¨Ï¥Î²³æªº shell scripts ´N¥i¥HÀ°§A¹F¦¨¤F¡I¯uªº¼F®`¡I¡I³o³¡¤À§Ú­Ì¦b«áÄò³¹¸`¦A¨Ó½Í¡I

  • ¸U¥Î¦r¤¸¡I
  • °£¤F§¹¾ãªº¦r¦ê¤§¥~¡A bash Á٤䴩³\¦hªº¸U¥Î¦r¤¸¨ÓÀ°§U¨Ï¥ÎªÌ¬d¸ß»P«ü¥O¤U¹F¡C Á|¨Ò¨Ó»¡¡A·Q­nª¾¹D /usr/X11R6/bin ©³¤U¦³¦h¤Ö¥H xt ¬°¶}ÀYªºÀÉ®×¶Ü¡H¨Ï¥Î¡G ls -l /usr/X11R6/bin/xt* ´N¯à°÷ª¾¹DÅo¡ã¦¹¥~¡AÁÙ¦³¨ä¥L¥i¨Ñ§Q¥Îªº¸U¥Î¦r¤¸¡A ³o¨Ç³£¯à°÷¥[§Ö¨Ï¥ÎªÌªº¾Þ§@©O¡I

    ¤p¼ÐÃDªº¹Ï¥ÜBash shell ªº¤º«Ø©R¥O¡G type
    §Ú­Ì¦b­º¦¸¶i¤J Linux ³¹¸`·í¤¤¡A´£¨ìÃö©ó Linux ªº½u¤W»¡©ú¤å¥ó ³¡¤À¡A¤]´N¬O man page ªº¤º®e¡A¨º»ò bash ¦³¨S¦³¤°»ò»¡©ú¤å¥ó°Ú¡H¶}ª±¯º¡ã ³o»ò´ÎªºªF¦è«ç»ò¥i¯à¨S¦³»¡©ú¤å¥ó¡I½Ð±z¦b shell ªºÀô¹Ò¤U¡Aª½±µ¿é¤J man bash Á@¤@Á@¡A ¼K¼K¡I¤£¬O»\ªº§a¡IÅý±z¬Ý­Ó´X¤Ñ´X©]¤]µLªk¬Ý§¹ªº bash »¡©ú¤å¥ó¡A¥i¬O«Ü¸ÔºÉªº¸ê®Æ°Ú¡I ^_^

    ¤£¹L¡A¦b³o­Ó man bash ©Ò¥X²{ªº man page ·í¤¤¡A¤£ª¾¹D±z¬O§_¦³¹îı¨ì¡A«x¡I «ç»ò³o­Ó»¡©ú¤å¥ó¸Ì­±¦³¨ä¥LªºÀÉ®×»¡©ú°Ú¡HÁ|¨Ò¨Ó»¡¡A¨º­Ó cd «ü¥Oªº»¡©ú´N¦b³o­Ó man page ¤º¡H µM«á§Úª½±µ¿é¤J man cd ®É¡A«ç»ò¥X²{ªºµe­±¤¤¡A³Ì¤W¤è³ºµM¥X²{¤@°ï«ü¥Oªº¤¶²Ð¡H¡H³o¬O«ç»ò¦^¨Æ¡H ¬°¤F¤è«K shell ªº¾Þ§@¡A¨ä¹ê bash ¤w¸g¡y¤º«Ø¡z¤F«Ü¦h«ü¥O¤F¡A¨Ò¦p¤W­±´£¨ìªº cd ¡A ÁÙ¦³¨Ò¦p umask µ¥µ¥ªº«ü¥O¡A³£¬O¤º«Ø¦b bash ·í¤¤ªº©O¡I

    ¨º§Ú«ç»òª¾¹D³o­Ó«ü¥O¬O¨Ó¦Û©ó¥~³¡«ü¥O(«üªº¬O¨ä¥L«D bash ®M¥ó©Ò´£¨Ñªº«ü¥O) ©Î¬O¤º«Ø¦b bash ·í¤¤ªº©O¡H ¼K¼K¡I§Q¥Î type ³o­Ó«ü¥O¨ÓÆ[¹î§Y¥i¡IÁ|¨Ò¨Ó»¡¡G
    [root@linux ~]# type [-tpa] name
    °Ñ¼Æ¡G
        ¡G¤£¥[¥ô¦ó°Ñ¼Æ®É¡A«h type ·|Åã¥Ü¥X¨º­Ó name ¬O¥~³¡«ü¥OÁÙ¬O bash ¤º«Øªº«ü¥O¡I
    -t  ¡G·í¥[¤J -t °Ñ¼Æ®É¡Atype ·|±N name ¥H©³¤U³o¨Ç¦r²´Åã¥Ü¥X¥Lªº·N¸q¡G
          file    ¡Gªí¥Ü¬°¥~³¡«ü¥O¡F
          alias   ¡Gªí¥Ü¸Ó«ü¥O¬°©R¥O§O¦W©Ò³]©wªº¦WºÙ¡F
          builtin ¡Gªí¥Ü¸Ó«ü¥O¬° bash ¤º«Øªº«ü¥O¥\¯à¡F
    -p  ¡G¦pªG«á­±±µªº name ¬°«ü¥O®É¡A·|Åã¥Ü§¹¾ãÀɦW(¥~³¡«ü¥O)©ÎÅã¥Ü¬°¤º«Ø«ü¥O¡F
    -a  ¡G·|±N¥Ñ PATH ÅܼƩw¸qªº¸ô®|¤¤¡A±N©Ò¦³§t¦³ name ªº«ü¥O³£¦C¥X¨Ó¡A¥]§t alias
    ½d¨Ò¡G
    ½d¨Ò¤@¡G¬d¸ß¤@¤U ls ³o­Ó«ü¥O¬O§_¬° bash ¤º«Ø¡H
    [root@linux ~]# type ls
    ls is aliased to `ls --color=tty'
    # ¨S¦³¥[¤W¥ô¦ó°Ñ¼Æ¡A¶È¦C¥X ls ³o­Ó«ü¥Oªº³Ì¥D­n¨Ï¥Î±¡ªp
    [root@linux ~]# type -t ls
    alias
    # -t °Ñ¼Æ«h¶È¦C¥X ls ³o­Ó«ü¥Oªº³Ì¥D­n¨Ï¥Î±¡ªp»¡©ú
    [root@linux ~]# type -a ls
    ls is aliased to `ls --color=tty'
    ls is /bin/ls
    # §Q¥Î©Ò¦³¤èªk§ä¥X¨Óªº ls ¬ÛÃö¸ê°T³£·|³Q¦C¥X¨Ó¡I
    
    ½d¨Ò¤G¡G¨º»ò cd ©O¡H
    [root@linux ~]# type cd
    cd is a shell builtin
    
    ³z¹L type ³o­Ó«ü¥Oªº¥Î³~¡A§Ú­Ì¥i¥Hª¾¹D¨C­Ó«ü¥O¬O§_¬° bash ªº¤º«Ø«ü¥O¡C ¦¹¥~¡A¥Ñ©ó§Q¥Î type ·j´M«á­±ªº¦WºÙ®É¡A¦pªG«á­±±µªº¦WºÙ¨Ã¤£¯à¥H°õ¦æÀɪºª¬ºA³Q§ä¨ì¡A ¨º»ò¸Ó¦WºÙ¬O¤£·|³QÅã¥Ü¥X¨Óªº¡CÁ|¨Ò¨Ó»¡¡A±zªº FC4 À³¸Ó¤£·|¦³ vbird ³o­Ó«ü¥O§a¡H¡I ¿é¤J type -p vbird ¬Ý¤@¤U¡AªGµM¨S¦³¿é¥X¥ô¦ó¸ê®Æ¡I¦Ó¦pªG±z¿é¤Jªº¬O type -p touch ©O¡H «h·|¥X²{ /bin/touch ¡I¨þ¨þ¡I©Ò¥H¡A³o­Ó type ¤]¥i¥H¥Î¨Ó§@¬°Ãþ¦ü which «ü¥Oªº¥Î³~°Õ¡I§ä«ü¥O¥Îªº¡I


    ¤p¼ÐÃDªº¹Ï¥Ü«ü¥Oªº¤U¹F
    §Ú­Ì¦b ­º¦¸¶i¤J Linux ¤@¸`·í¤¤¡A¤w¸g´£¨ì¹L¦b shell Àô¹Ò¤Uªº«ü¥O¤U¹F¤è¦¡¡A¤£¹L¡A¦]¬°³o­Ó³¡¤À¹ê¦b«Ü­«­n¡A©Ò¥H¡A§Ú­ÌÁÙ¬O¦A¦¸ªº´£¿ô¤@¦¸¡I
    [root@linux ~]# command [-options] parameter1 parameter2 ...
                      «ü¥O     ¿ï¶µ      °Ñ¼Æ(1)    °Ñ¼Æ(2)
    »¡©ú¡G
    0. ¤@¦æ«ü¥O¤¤²Ä¤@­Ó¿é¤Jªºµ´¹ï¬O¡y«ü¥O(command)¡z©Î¡y¥i°õ¦æÀɮסz
    1. command ¬°«ü¥Oªº¦WºÙ¡A¨Ò¦pÅÜ´«¸ô®|ªº«ü¥O¬° cd µ¥µ¥¡F
    2. ¤¤¨í¸¹[]¨Ã¤£¦s¦b©ó¹ê»Úªº«ü¥O¤¤¡A¦Ó¥[¤J°Ñ¼Æ³]©w®É¡A³q±`¬° - ¸¹¡A¨Ò¦p -h¡F
       ¦³®É­Ô§¹¾ã°Ñ¼Æ¦WºÙ·|¿é¤J -- ²Å¸¹¡A¨Ò¦p --help¡F
    3. parameter1 parameter2.. ¬°¨Ìªþ¦b option «á­±ªº°Ñ¼Æ¡A
       ©ÎªÌ¬O command ªº°Ñ¼Æ¡F 
    4. command, -options, parameter1.. ³o´X­Ó©N©N¤¤¶¡¥HªÅ®æ¨Ó°Ï¤À¡A
       ¤£½×ªÅ´X®æ shell ³£µø¬°¤@®æ¡F 
    5. «ö¤U [Enter] «öÁä«á¡A¸Ó«ü¥O´N¥ß§Y°õ¦æ¡C[Enter] «öÁ䬰 <CR> ¦r²Å¡A
       ¥L¥NªíµÛ¤@¦æ«ü¥Oªº¶}©l±Ò°Ê¡C
    6. «ü¥O¤Óªøªº®É­Ô¡A¥i¥H¨Ï¥Î \ ²Å¸¹¨Ó¸õ²æ [Enter] ²Å¸¹¡A
       ¨Ï«ü¥O³sÄò¨ì¤U¤@¦æ¡Cª`·N¡I \ «á´N¥ß¨è±µ¯S®í¦r²Å¡C
    7. ¦b Linux ¨t²Î¤¤¡A­^¤å¤j¤p¼g¦r¥À¬O¤£¤@¼Ëªº¡CÁ|¨Ò¨Ó»¡¡A cd »P CD ¨Ã¤£¦P¡C
    ½d¨Ò¡G
    
    ½d¨Ò¤@¡G¦C¥X /root ©³¤Uªº¦UÀɮצWºÙ
    [root@linux ~]# ls -al /root
    [root@linux ~]# ls     -al      /root
    # ¤£½×«ü¥O»P°Ñ¼Æ¤¤¶¡ªÅ´X®æ¡A³£¬O¥i¥H±µ¨üªº¡I
    
    ½d¨Ò¤G¡G¦pªG«ü¥O¤Óªøªº¸Ü¡A¦p¦ó¨Ï¥Î¨â¦æ¨Ó¿é¥X¡H
    [root@linux ~]# cp /var/spool/mail/root /etc/crontab \
    > /etc/fstab /root
    # ¤W­±³o­Ó«ü¥O¡A´N¬O±N¤T­ÓÀɮ׽ƻs¨ì /root ³o­Ó¥Ø¿ý¤U¦Ó¤w¡C¤£¹L¡A¦]¬°«ü¥O¤Óªø¡A
    # ©ó¬O³¾­ô´N§Q¥Î \[Enter] ¨Ó±N [Enter] ³o­Ó«öÁä¡y¸õ²æ¡I¡z¶}¨Ó¡AÅý
    # [Enter] «öÁ䤣¦A¨ã¦³¤W­z»¡©úªº²Ä 5 ÂI¥\¯à¡I¦nÅý«ü¥OÄ~Äò¦b¤U¤@¦æ¿é¤J¡C
    # »Ý­n¯S§O¯d·N¡A [Enter] «öÁä¬Oºò±µµÛ¤Ï±×½u (\) ªº¡A¨âªÌ¤¤¶¡¨S¦³¨ä¥L¦r¤¸¡C
    # ¦]¬° \ ¶È¸õ²æ¡yºò±µµÛªº¤U¤@­Ó¦r²Å¡z¦Ó¤w¡I©Ò¥H¡A¸U¤@§Ú¼g¦¨¡G
    # \ [Enter] ¡A¥ç§Y [Enter] »P¤Ï±×½u¤¤¶¡¦³¤@­ÓªÅ®æ®É¡A«h \ ¸õ²æªº¬O¡yªÅ¥ÕÁä¡z
    # ¦Ó¤£¬O [Enter] «öÁä¡I³o­Ó¦a¤è½Ð¦b¥J²Óªº¬Ý¤@¹M¡I«Ü­«­n¡I
    # ¦pªG¶¶§Q¸õ²æ [Enter] «á¡A¤U¤@¦æ³Ì«e­±´N·|¥D°Ê¥X²{ > ªº²Å¸¹¡A
    # ±z¥i¥HÄ~Äò¿é¤J«ü¥OÅo¡I¤]´N¬O»¡¡A¨º­Ó > ¬O¨t²Î¦Û°Ê¥X²{ªº¡A§A¤£»Ý­n¿é¤J¡C
    
    Á`¤§¡A·í§Ú­Ì¶¶§Qªº¦b²×ºÝ¾÷ (tty) ¤W­±µn¤J«á¡A Linux ´N·|¨Ì¾Ú /etc/passwd Àɮתº³]©wµ¹§Ú­Ì¤@­Ó shell ¡A¹w³]´N¬O bash ¡AµM«á§Ú­Ì´N¥i¥H¨Ì¾Ú¤W­±ªº«ü¥O¤U¹F¤è¦¡¨Ó¾Þ§@ shell¡A ¤§«á¡A§Ú­Ì´N¥i¥H³z¹L man ³o­Ó½u¤W¬d¸ß¨Ó¬d¸ß«ü¥Oªº¨Ï¥Î¤è¦¡»P°Ñ¼Æ»¡©ú¡A «Ü¤£¿ù§a¡I¨º»ò§Ú­Ì´N»°ºò§ó¶i¤@¨B¨Ó¾Þ§@ bash ³o­Ó¦nª±ªºªF¦èÅo¡I

    ¤j¼ÐÃDªº¹Ï¥ÜShell ªºÅܼƥ\¯à
    ¦bÄ~Äò¬ã¨s BASH ¤§«e¡A§Ú­Ì±o­n¥ý´N ÅÜ¼Æ ³o­ÓªF¦è¨Ó°Q½×¤@µf¡C ¬°¤°»ò­n°Q½×ÅܼƩO¡H¤S¡AÅܼƬOÔ£ª±·N¨à°Ú¡H¡I¥ý¨Ó½Í¤@½Í°ê¤¤¼Æ¾Ç¦n¤F¡A±z¬O§_¨Ìµ}°O±o¡A §Ú­Ì°ê¤¤®É­Ô¾Ç¹L©Ò¿×ªº¡y y = ax + b ¡z³oªF¦è¡H¨ä¤¤¡A y ¬OÅܼơA x «h¬O³o­ÓÅܼƪº¤º®e°Ú¡I Á¿ªº§ó²³æ¤@ÂI¡A§Ú­Ì¥i¥H¡y¥Î¤@­Ó²³æªº "¦r²´" ¨Ó¨ú¥N¥t¤@­Ó¤ñ¸û½ÆÂø©ÎªÌ¬O®e©öÅܰʪº¸ê®Æ¡z¡C³o¦³¤°»ò¦n³B°Ú¡H³Ì¤jªº¦n³B´N¬O¡y¤è«K¡I¡z¡C

    ¦pªG¥H Linux ¥D¾÷ªº¹B§@¨Ó»¡©ú¦n¤F¡A¦]¬°¦b¥D¾÷¸Ì­±¦³¤Ó¦hªº¸ê®Æ»Ý­n¶i¦æ¦s¨ú¤F¡A ¦Ó³o¨Ç¸ê®Æ³£¬O¤@¨ÇªA°È©Ò¥²¶·ªº¡A¨Ò¦p¬Y­Ó¦W¬° dmtsai ªº±b¸¹¡A¥Lªº mail ªº¦s¨ú¸ô®|¹w³]¬O¦b /var/spool/mail/dmtsai ¡B®a¥Ø¿ý¹w³]¦b /home/dmtsai µ¥µ¥¡C¨º¦pªG´«¤F¥t¥~¤@­Ó±b¸¹©O¡H °²³]¥t¤@­Ó±b¸¹¦WºÙ¬° vbird ¡A§A²q¥Lªº¶l¥ó»P®a¥Ø¿ý¦b­þ¡HÀ³¸Ó¬O¦b /var/spool/mail/vbird »P /home/vbird ¹ï§a¡I ¨º»ò§Ú­Ì¥D¾÷ªº¶l¥óªA°È¬O§_­n°O¿ý¦n´X­Ó¤£¦Pªº¸ô®|°Ú¡H·|¤£·|¤Ó³Â·Ð¡H³o·íµM«Ü³Â·ÐÅo¡ã ©Ò¥H¬°¤F²¤Æ¾ã­Ó¹B§@¬yµ{¡A§Ú­Ì´N¥i¥H³z¹L¬Y­ÓÅܼƥ\¯à¡AÅý³o­ÓÅܼƥi¥H¨Ì¾Ú¤£¦Pªº¨Ï¥ÎªÌ¦ÓÅܧ󤺮e¡A ¦p¦¹¤@¨Ó¡A¨t²Îªº¶l¥óªA°È¥u­n¨Ì¾Ú¨º­ÓÅܼƥh¨ú±o©Ò»Ý­nªº¸ê®Æ§Y¥i¡A´N¤£»Ý­n°O¿ý¤£¦Pªº¸ô®|Åo¡C

    Á|¨Ò¨Ó»¡¡A§Ú­Ì¨C­Ó±b¸¹ªº¶l¥ó«H½c¹w³]¬O¥H MAIL ³o­ÓÅܼƨӶi¦æ¦s¨úªº¡A ·í dmtsai ³o­Ó¨Ï¥ÎªÌµn¤J®É¡A¥L«K·|¨ú±o MAIL ³o­ÓÅܼơA¦Ó³o­ÓÅܼƪº¤º®e¨ä¹ê´N¬O /var/spool/mail/dmtsai¡A ¨º¦pªG vbird µn¤J©O¡H¥L¨ú±oªº MAIL ³o­ÓÅܼƪº¤º®e¨ä¹ê´N¬O /var/spool/mail/vbird ¡C ¦Ó§Ú­Ì¨Ï¥Î«H¥óŪ¨ú«ü¥O mail ¨ÓŪ¨ú¦Û¤vªº¶l¥ó«H½c®É¡A¼K¼K¡A³o¤äµ{¦¡¥i¥Hª½±µÅª¨ú MAIL ³o­ÓÅܼƪº¤º®e¡A ´N¯à°÷¦Û°Êªº¤À¿ë¥XÄÝ©ó¦Û¤vªº«H½c«H¥óÅo¡I³o¼Ë¤@¨Ó¡A³]­pµ{¦¡ªº³]­p®v´N¯uªº«Ü¤è«Kªº°Õ¡I

    ·íµM§Ú­Ì¥i¥H§ïÅܳo¨Ç­ÓÅܼơA¦ý¬O¦pªG¸ÓÅܼƬOª½±µ²`´Ó©ó®M¥ó·í¤¤¡A ¨º»ò·í§A­×§ï¤F¬Y¨Ç°Ñ¼Æ¤§«á¡A¼K¼K¡I§Aªº®M¥ó´N¥²¶·­n¡y¥Ñ­ì©l½Xª½±µ§ó·s¦A½sĶ¡z ¤~¦æ¡I³o¼Ë¦ü¥G«Ü³Â·Ð¡A©Ò¥HÅo¡AÅܼƯuªº¬O«Ü¤è«Kªº°Õ¡I
    Tips:
    Á|­Ó²³æªº¨Ò¤l¨Ó»¡¡A sendmail ªº smtp ¦s©ñ mail ¸ô®|¬O¸g¥Ñ /etc/profile ¸ÌÀYªº¡G
      MAIL="/var/spool/mail/$USER"
    ¨Ó³]©wªº¡A¦Ó·í§Ú­×§ï¤F¤W­±³o¤@­Ó©N©N¡AµM«á­«·s¶}¾÷¤§«á¡A¼K¼K¼K¼K¡I §Úªº¶l¥ó´N¥i¥H¦s©ñ¨ì¤£¦Pªº¸ô®|¥h¤F¡I¦Ó¥B¤£·|¦³°ÝÃD¡I¥i¥H¶¶§Qªº¡y¦b Linux ¥D¾÷¤W­±¡z¦¬µo¡CµM¦Ó°ÝÃDµo¥Í¦b pop3 ³o­ÓªA°È¤W­±¡A¥Ñ©ó pop3 ªº¹w³]¸ô®|¬O¦b source code ¸ÌÀY¡A¦Ó¥B´N¥¿¬O /var/spool/mail ³o­Ó¸ô®|¡A¤]´N¬O»¡¡A¤£½×§Ú«ç»ò­×¥¿§Úªº¡yÅܼơz¡A pop3 ³£¤£¬°©Ò°Ê¡I­ü¡ã¯uºG¡A©Ò¥H´NµLªkª½±µ¥H pop3 ¨Ó¦¬«H¤F¡]¨Ò¦p OutLook ´N¤£¯à¤u§@¤F¡^¡I·|µo¥Í±K½X¤£±µ¨üªº°ÝÃD©O¡I
    ³¾­ôªº¹Ï¥Ü
    ¦A¨ÓÄ~ÄòÁ¿¨ì¨ä¥LªºÅܼƥ\¯à¦n¤F¡A§Ú­Ì«e­±¤w¸g´£¨ì¹L«Ü¦h¦¸¡A¯à¤£¯à°õ¦æ¬Y­Ó«ü¥O¡A »P PATH ³o­ÓÅܼƤ]¦³«Ü¤jªºÃö«Yªº¡CÁ|¨Ò¨Ó»¡¡A§Ú­Ì¦b¥ô¦ó¦a¤è¤U¹F ls ³o­Ó«ü¥O®É¡A¨t²Î´N¬O³z¹L PATH ³o­ÓÅܼƸ̭±ªº¤º®e©Ò°O¿ýªº¸ô®|¶¶§Ç¨Ó·j´M«ü¥Oªº©O¡I¦pªG¦b·j´M§¹ PATH ÅܼƤºªº¸ô®|Á٧䤣¨ì ls ³o­Ó«ü¥O®É¡A ´N·|¦b¿Ã¹õ¤WÅã¥Ü¡y command not found ¡zªº¿ù»~°T®§¤F¡C

    ³o¨ÇÁÙ³£¥u¬O¨t²Î¹w³]ªºÅܼƪº¥Øªº¡A¦pªG¬O­Ó¤Hªº³]©w¤è­±ªºÀ³¥Î©O¡G¨Ò¦p§A­n¼g¤@­Ó¤j«¬ªº script ¡]§å¦¸ÀÉ¡^®É¡A¦³¨Ç¸ê®Æ¦]¬°¥i¯à¥Ñ©ó¨Ï¥ÎªÌ²ßºDªº¤£¦P¦Ó¦³®t²§¡A¤ñ¦p»¡¸ô®|¦n¤F¡A¥Ñ©ó¸Ó¸ô®|¦b script ³Q¨Ï¥Î¦b¬Û·í¦hªº¦a¤è¡A¦pªG¤U¦¸´«¤F¤@³¡¥D¾÷¡A³£­n­×§ï script ¸Ì­±ªº©Ò¦³¸ô®|¡A¨º»ò§Ú¤@©w·|ºÆ±¼¡I ³o­Ó®É­Ô¦pªG¨Ï¥ÎÅܼơA¦Ó±N¸ÓÅܼƪº©w¸q¼g¦b³Ì«e­±¡A«á­±¬ÛÃöªº¸ô®|¦WºÙ³£¥HÅܼƨӨú¥N¡A ¼K¼K¡I¨º»ò§A¥u­n­×§ï¤@¦æ´Nµ¥©ó­×§ï¾ã½g script ¤F¡I¤è«Kªº«Ü¡I©Ò¥H¡A¨}¦nªºµ{¦¡³]­p®v³£·|µ½¥ÎÅܼƪº©w¸q¡I ( ³o­Ó³¡¤À§Ú­Ì¦b«áÄòªº shell script ¦A¦¸´£¤Îªº¡I)

    ¦pªG»¡ªº¾Ç²z¤@ÂI¡A¨º»ò¥Ñ©ó¦b Linux System ¤U­±¡A©Ò¦³ªº°õ¦æÄò³£¬O»Ý­n¤@­Ó°õ¦æ½X¡A ¦Ó´N¦p¦P¤W­±´£¨ìªº¡A§A¡y¯u¥¿¥H shell ¨Ó¸ò Linux ·¾³q¡A¬O¦b¥¿½Tªºµn¤J Linux ¤§«á¡I¡z³o­Ó®É­Ô§A´N¦³¤@­Ó bash ªº°õ¦æµ{§Ç¡A¤]¤~¥i¥H¯u¥¿ªº¸g¥Ñ bash ¨Ó¸ò¨t²Î·¾³qÅo¡I¦Ó¦b¶i¤J shell ¤§«e¡A¤]¥¿¦p¦P¤W­±´£¨ìªº¡A¥Ñ©ó¨t²Î»Ý­n¤@¨ÇÅܼƨӴ£¨Ñ¥L¸ê®Æªº¦s¨ú¡]©ÎªÌ¬O¤@¨ÇÀô¹Òªº³]©w°Ñ¼Æ­È¡A ¨Ò¦p¬O§_­nÅã¥Ü±m¦âµ¥µ¥ªº¡^¡A©Ò¥H´N¦³¤@¨Ç©Ò¿×ªº¡yÀô¹ÒÅܼơz »Ý­n¨ÓŪ¤J¨t²Î¤¤¤F¡I³o¨ÇÀô¹ÒÅܼƨҦp PATH¡BHOME¡BMAIL¡BSHELL µ¥µ¥¡A³£¬O«Ü­«­nªº¡A ¬°¤F°Ï§O»P¦Û­qÅܼƪº¤£¦P¡AÀô¹ÒÅܼƳq±`¥H¤j¼g¦r¤¸¨Óªí¥Ü©O¡I

    ¦n¤F¡A¨º»ò§Ú­Ì´N²³æªº¨Ó¹ï¡y¤°»ò¬OÅܼơz§@­Ó²³æªº©w¸q¦n¤F¡G ¡yÅܼƴN¬O¥H¤@²Õ¤å¦r©Î²Å¸¹µ¥¡A¨Ó¨ú¥N¤@¨Ç³]©w©ÎªÌ¬O¤@¦ê«O¯dªº¸ê®Æ¡I¡z¡A ¨Ò¦p¡G§Ú³]©w¤F¡ymyname¡z´N¬O¡yVBird¡z¡A©Ò¥H·í§AŪ¨ú myname ³o­ÓÅܼƪº®É­Ô¡A¨t²Î¦ÛµM´N·|ª¾¹D¡I«¢¡I¨º´N¬O VBird °Õ¡I³Ì²³æªº¨Ò¤l¥i¥H¨ú PATH ¨Ó»¡©ú¡I¦pªG§A¹ï©ó¡y¬Û¹ï¸ô®|»Pµ´¹ï¸ô®|¡zÁÙ¦³ÂI¦L¶Hªº¸Ü¡A ¨º»òÀ³¸Ó¾å±o¡y­n¤U¹F¥¿½Tªº«ü¥O¡AÀ³¸Ó»Ý­n«ü©w¸ô®|»PÀɦW¡z¤~¦æ¡I¨Ò¦p§Aªº ls «ü¥OÀ³¸Ó»Ý­n¥H¡y/bin/ls¡z¨Ó¤U¹F«ü¥O¤~¹ï¡A¨º»ò¬°¦ó§A¦b¥ô·Nªº¸ô®|¤U³£¥i¥H°õ¦æ ls ©O¡H¦Ó¤£»Ý­n«ü©w¸ô®|©O¡H³o¬O¦]¬°¨t²Î¤w¸g¹w³]¤F¤@¨Ç¡y·j´M¸ô®|(PATH)¡z¤F¡A ©Ò¥H·í§A»Ý­n°õ¦æ¤@¨Ç«ü¥Oªº®É­Ô¡A¨t²Î´N·|¨Ì·Ó¸Ó PATH ªº³]©w¨Ó¶i¦æ«ü¥Oªº·j´M¡I¦Ó³o­Ó PATH ´N¬O©Ò¿×ªºÅܼƤF¡I

    ¨º»ò¦p¦ó¡yÅã¥ÜÅܼơz©O¡H³o´N»Ý­n¨Ï¥Î¨ì echo ³o­Ó«ü¥O°Õ¡I


    ¤p¼ÐÃDªº¹Ï¥ÜÅܼƪº¨ú¥Î»P³]©w¡Gecho, ÅܼƳ]©w³W«h, unset
    »¡ªº¤fªj¾î­¸ªº¡A¤]¤£ª¾¹D¡yÅܼơz»P¡yÅܼƥNªíªº¤º®e¡z¦³Ô£Ãö«Y¡H ·íµM°Õ¡A¨º§Ú­Ì´N±N¡yÅܼơzªº¡y¤º®e¡z®³¥X¨Óµ¹±zÁ@Á@´N¦n¤F¡C§Q¥Î echo ³o­Ó«ü¥O¨Ó¨ú¥ÎÅܼơA ¦ý¬O¡AÅܼƦb³Q¨ú¥Î®É¡A«e­±¥²¶·­n¥[¤W $ ¤~¦æ¡AÁ|¨Ò¨Ó»¡¡A­nª¾¹D PATH ªº¤º®e¡A¸Ó¦p¦ó¬O¦n¡H
    [root@linux ~]# echo $variable
    [root@linux ~]# echo $PATH
    /bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin
    [root@linux ~]# echo ${PATH}
    
    Åܼƪº¨ú¥Î´N¦p¦P¤W­±ªº½d¨Ò¡A§Q¥Î ehco ´N¯à°÷Ū¥X¡A¥u¬O»Ý­n¦bÅܼƦWºÙ«e­±¥[¤W $ ¡A ©ÎªÌ¬O¥H ${variable} ªº¤è¦¡¨Ó¨ú¥Î³£¥i¥H¡I·íµM°Õ¡A¨º­Ó echo ªº¥\¯à¥i¬O«Ü¦hªº¡A §Ú­Ì³o¸Ì³æ¯Â¬O®³ echo ¨ÓŪ¥XÅܼƪº¤º®e¦Ó¤w¡A§ó¦hªº echo ¨Ï¥Î¡A½Ð¦Û¦æµ¹¥L man echo §a¡I ^_^

    ¨ÒÃD¤@¡G½Ð¦b¿Ã¹õ¤W­±Åã¥Ü¥X±zªºÀô¹ÒÅÜ¼Æ HOME »P MAIL¡G
    榭G
      echo $HOME
      echo $MAIL

    OK¡I²{¦b§Ú­Ìª¾¹D¤FÅܼƻPÅܼƤºªº¤§¶¡ªº¬ÛÃö©Ê¤F¡A¦n¤F¡A¨º»ò§Ú­n¦p¦ó¡y³]©w¡z©ÎªÌ¬O¡y­×§ï¡z ¬Y­ÓÅܼƪº¤º®e°Ú¡H¡I«Ü²³æ°Õ¡I¥Î¡yµ¥¸¹(=)¡z³s±µÅܼƻP¥Lªº¤º®e´N¦n°Õ¡IÁ|¨Ò¨Ó»¡¡G §Ú­n±N myname ³o­ÓÅܼƦWºÙªº¤º®e³]©w¬° VBird ¡A¨º»ò¡G
    [root@linux ~]# echo $myname
       <==³o¸Ì¨Ã¨S¦³¥ô¦ó¸ê®Æ¡ã¦]¬°³o­ÓÅܼƩ|¥¼³Q³]©w¡I¬OªÅªº¡I
    [root@linux ~]# myname=VBird
    [root@linux ~]# echo $myname
    VBird  <==¥X²{¤F¡I¦]¬°³o­ÓÅܼƤw¸g³Q³]©w¤F¡I
    
    Á@¡I¦p¦¹¤@¨Ó¡A³o­ÓÅܼƦWºÙ myname ªº¤º®e´N±a¦³ VBird ³o­Ó¸ê®ÆÅo¡ã ¦Ó¥Ñ¤W­±ªº¨Ò¤l·í¤¤¡A§Ú­Ì¤]¥i¥Hª¾¹D¡G ·í¤@­ÓÅܼƦWºÙ©|¥¼³Q³]©w®É¡A¹w³]ªº¤º®e¬O¡yªÅ¡zªº¡C ¥t¥~¡AÅܼƦb³]©w®É¡AÁÙ¬O»Ý­n²Å¦X¬Y¨Ç³W©wªº¡A§_«h·|³]©w¥¢±Ñ³á¡I ³o¨Ç³W«h¦p¤U©Ò¥Ü°Ú¡I
    1. ÅܼƻPÅܼƤº®e¥Hµ¥¸¹¡y=¡z¨Ó³sµ²¡F
    2. µ¥¸¹¨âÃ䤣¯àª½±µ±µªÅ¥Õ¦r¤¸¡F
    3. ÅܼƦWºÙ¥u¯à¬O­^¤å¦r¥À»P¼Æ¦r¡A¦ý¬O¼Æ¦r¤£¯à¬O¶}ÀY¦r¤¸¡F
    4. ­Y¦³ªÅ¥Õ¦r¤¸¥i¥H¨Ï¥ÎÂù¤Þ¸¹¡y " ¡z©Î³æ¤Þ¸¹¡y ' ¡z¨Ó±NÅܼƤº®eµ²¦X°_¨Ó¡A¦ý¶·­n¯S§O¯d·N¡A Âù¤Þ¸¹¤ºªº¯S®í¦r¤¸¥i¥H«O¦³ÅܼƯS©Ê¡A¦ý¬O³æ¤Þ¸¹¤ºªº¯S®í¦r¤¸«h¶È¬°¤@¯ë¦r¤¸¡F
    5. ¥²­n®É»Ý­n¥H¸õ²æ¦r¤¸¡y \ ¡z¨Ó±N¯S®í²Å¸¹ ( ¦p Enter, $, \, ªÅ¥Õ¦r¤¸, ' µ¥ ) Åܦ¨¤@¯ë²Å¸¹¡F
    6. ¦b¤@¦ê«ü¥O¤¤¡AÁٻݭnÂǥѨä¥Lªº«ü¥O´£¨Ñªº¸ê°T¡A¥i¥H¨Ï¥Î quote ¡y ` command` ¡z¡F(¯S§O¯S§Oª`·N¡A¨º­Ó ` ¬OÁä½L¤W¤èªº¼Æ¦rÁä 1 ¥ªÃ䨺­Ó«öÁä¡A¦Ó¤£¬O³æ¤Þ¸¹¡I)
    7. ­Y¸ÓÅܼƬ°ÂX¼WÅܼƤº®e®É¡A«h»Ý¥HÂù¤Þ¸¹¤Î $ÅܼƦWºÙ ¦p¡G¡y "$PATH":/home¡zÄ~Äò²Ö¥[¤º®e¡F
    8. ­Y¸ÓÅܼƻݭn¦b¨ä¥L¤lµ{§Ç°õ¦æ¡A«h»Ý­n¥H export ¨Ó¨ÏÅܼÆÅܦ¨Àô¹ÒÅܼơA ¦p¡yexport PATH¡z¡F
    9. ³q±`¤j¼g¦r¤¸¬°¨t²Î¹w³]ÅܼơA¦Û¦æ³]©wÅܼƥi¥H¨Ï¥Î¤p¼g¦r¤¸¡A¤è«K§PÂ_ ( ¯Âºé¨Ì·Ó¨Ï¥ÎªÌ¿³½ì»P¶Ý¦n ) ¡F
    10. ¨ú®øÅܼƪº¤èªk¬°¡G¡yunset ÅܼƦWºÙ¡z¡C
    ©³¤U§Ú­ÌÁ|´X­Ó¨Ò¤l¨ÓÅý±z¸Õ¬Ý¬Ý¡A´Nª¾¹D«ç»ò³]©w¦n±zªºÅܼÆÅo¡I
    ½d¨Ò¤@¡G³]©w¤@ÅÜ¼Æ name ¡A¥B¤º®e¬° VBird ¡C
    [root@linux ~]# 12name=VBird
    -bash: 12name=VBird: command not found  <==¿Ã¹õ·|Åã¥Ü¿ù»~¡I¦]¬°¤£¯à¥H¼Æ¦r¶}ÀY¡I
    [root@linux ~]# name = VBird  <==ÁÙ¬O¿ù»~¡I¦]¬°¦³ªÅ¥Õ¡I
    [root@linux ~]# name=VBird    <==OK ªº°Õ¡I
    
    ½d¨Ò¤G¡G©Ó¤WÃD¡A­YÅܼƤº®e¬° VBird's name ©O¡H
    [root@linux ~]# name=VBird's name  
    # ¦]¬°³æ¤Þ¸¹¥i¥H±N Enter ³o­Ó¯S®í¦r²Å¨ú®ø¡A©Ò¥H¡A±z¥i¥HÄ~Äò¦b¤U¤@¦æ¿é¤J¤º®e¡ã
    # ¤£¹L¡A³o»P§Ú­Ì­n¹F¨ìªº¥\¯à¤£¦P¡A©Ò¥H¡Aºâ¬O¥¢±Ñªº°Õ¡I
    [root@linux ~]# name="VBird's name"  <==OK ªº°Õ¡I
    [root@linux ~]# name=VBird\'s\ name
    # §Q¥Î¤Ï±×½u (\) ¸õ²æ¯S®í¦r¤¸¡A¨Ò¦p³æ¤Þ¸¹»PªÅ¥ÕÁä¡A³o¤]¬O OK ªº°Õ¡I
    
    ½d¨Ò¤T¡G§Ú­n¦b PATH ³o­ÓÅÜ¼Æ·í¤¤¡y²Ö¥[¡z:/home/dmtsai/bin ³o­Ó¥Ø¿ý
    [root@linux ~]# PATH=$PATH:/home/dmtsai/bin
    [root@linux ~]# PATH="$PATH":/home/dmtsai/bin
    # ¤W­±³o¨âºØ®æ¦¡¦b PATH ¸ÌÀYªº³]©w³£¬O OK ªº¡I¦ý¬O©³¤Uªº¨Ò¤l´N¤£¨£±oÅo¡I
    
    ½d¨Ò¥|¡G§e½d¨Ò¤T¡A§Ú­n±N name ªº¤º®e¦h¥X "yes" ©O¡H
    [root@linux ~]# name=$nameyes  
    # ª¾¹D¤F§a¡H¦pªG¨S¦³Âù¤Þ¸¹¡A¨º»òÅܼƦ¨¤FÔ£¡Hname ªº¤º®e¬O $nameyes ³o­ÓÅܼơI
    # ¨þ¨þ¡I§Ú­Ì¥i¨S¦³³]©w¹L nameyes ³o­ÓÅܼƧo¡I©Ò¥H¡AÀ³¸Ó¬O©³¤U³o¼Ë¤~¹ï¡I
    [root@linux ~]# name="$name"yes
    [root@linux ~]# name=${name}yes
    
    ½d¨Ò¤­¡G¦p¦óÅý§Ú­è­è³]©wªº name=VBird ¥i¥H¥Î¦b¤U­Ó shell ªºµ{§Ç¡H
    [root@linux ~]# name=VBird
    [root@linux ~]# bash        <==¶i¤J¨ì©Ò¿×ªº¤lµ{§Ç
    [root@linux ~]# echo $name  <==¼K¼K¡I¨Ã¨S¦³­è­è³]©wªº¤º®e³á¡I
    [root@linux ~]# exit        <==Â÷¶}­è­èªº¤lµ{§Ç
    [root@linux ~]# export name
    [root@linux ~]# bash        <==¶i¤J¨ì©Ò¿×ªº¤lµ{§Ç
    [root@linux ~]# echo $name  <==¥X²{¤F³]©w­È¤F¡I
    [root@linux ~]# exit        <==Â÷¶}­è­èªº¤lµ{§Ç
    # ¤°»ò¬O¡y¤lµ{§Ç¡z©O¡H´N¬O»¡¡A¦b§Ú¥Ø«e³o­Ó shell ªº±¡ªp¤U¡A
    # ¥h±Ò¥Î¥t¤@­Ó·sªº shell ¡A·sªº¨º­Ó shell ´N¬O¤lµ{§Ç°Õ¡I¦b¤@¯ëªºª¬ºA¤U¡A
    # ¤÷µ{§Çªº¦Û­qÅܼƬOµLªk¦b¤lµ{§Ç¤º¨Ï¥Îªº¡C¦ý¬O³z¹L export ±NÅܼÆÅܦ¨
    # Àô¹ÒÅܼƫá¡A´N¯à°÷¦b¤lµ{§Ç©³¤UÀ³¥Î¤F¡I«Ü¤£¿à§a¡I¦Ü©óµ{§Çªº¬ÛÃö·§©À¡A
    # §Ú­Ì·|¦b¡yµ{§Ç»P¸ê·½ºÞ²z¡z³¹¸`·í¤¤´£¨ìªº³á¡I
    
    ½d¨Ò¤»¡G¦p¦ó¶i¤J¨ì±z¥Ø«e®Ö¤ßªº¼Ò²Õ¥Ø¿ý¡H
    [root@linux ~]# cd /lib/modules/`uname -r`/kernel
    # ¨C­Ó§@·~¨t²Î®Ö¤ßª©¥»³£¤£¬Û¦P¡A¥H FC4 ¬°¨Ò¡A¥Lªº¹w³]®Ö¤ßª©¥»¬O 
    # 2.6.11-1.1369_FC4 ©Ò¥H¡A¥Lªº¼Ò²Õ¥Ø¿ý¦b /lib/modules/2.6.11-1.1369_FC4/kernel ¡C
    # ¦]¬°¨C­Ó distributions ªº³o­Ó­È³£¤£¬Û¦P¡A¦ý¬O§Ú­Ì«o¥i¥H§Q¥Î uname -r ³o­Ó«ü¥O
    # ¥ý¨ú±oª©¥»¸ê°T¡A©Ò¥HÅo¡A´N¥i¥H³z¹L¤W­±«ü¥O·í¤¤ªº¤º§t«ü¥O `uname -r` 
    # ¥ý¨ú±oª©¥»¿é¥X¨ì cd .. ¨º­Ó«ü¥O·í¤¤¡A´N¯à°÷¶¶§Qªº¶i¤J¥Ø«e®Ö¤ßªºÅX°Êµ{¦¡©Ò©ñ¸m
    # ªº¥Ø¿ýÅo¡I«Ü¤è«K§a¡I
    
    ½d¨Ò¤C¡G¨ú®ø­è­è³]©wªº name ³o­ÓÅܼƤº®e
    [root@linux ~]# unset name
    
    ®Ú¾Ú¤W­±ªº®×¨Ò§A¥i¥H¸Õ¸Õ¬Ý¡I´N¥i¥HÁA¸ÑÅܼƪº³]©wÅo¡I³o­Ó¬O«Ü­«­nªºËç¡I½Ð¶Ô¥[½m²ß¡I¡I ¨ä¤¤¡A¸û¬°­«­nªº¤@¨Ç¯S®í²Å¸¹ªº¨Ï¥ÎÅo¡I¨Ò¦p³æ¤Þ¸¹¡BÂù¤Þ¸¹¡B¸õ²æ¦r¤¸¡B¿ú¦r¸¹¡Bquote ²Å¸¹µ¥µ¥¡A©³¤Uªº¨ÒÃD·Q¤@·Q§a¡I

    ¨ÒÃD¤G¡G¦bÅܼƪº³]©w·í¤¤¡A³æ¤Þ¸¹»PÂù¤Þ¸¹ªº¥Î³~¦³¦ó¤£¦P¡H
    榭G
      ³æ¤Þ¸¹»PÂù¤Þ¸¹ªº³Ì¤j¤£¦P¦b©óÂù¤Þ¸¹¤´µM¥i¥H«O¦³Åܼƪº¤º®e¡A¦ý³æ¤Þ¸¹¤º¶È¯à¬O¤@¯ë¦r¤¸ ¡A¦Ó¤£·|¦³¯S®í²Å¸¹¡C§Ú­Ì¥H©³¤Uªº¨Ò¤l°µ»¡©ú¡G°²³]±z©w¸q¤F¤@­ÓÅܼơA name=VBird ¡A²{¦b·Q¥H name ³o­ÓÅܼƪº¤º®e©w¸q¥X myname Åã¥Ü VBird its me ³o­Ó¤º®e¡A­n¦p¦ó­q©w©O¡H

        [root@linux ~]# name=VBird
        [root@linux ~]# echo $name
        VBird
        [root@linux ~]# myname="$name its me"
        [root@linux ~]# echo $myname
        VBird its me
        [root@linux ~]# myname='$name its me'
        [root@linux ~]# echo $myname
        $name its me

      µo²{¤F¶Ü¡H¨S¿ù¡I¨Ï¥Î¤F³æ¤Þ¸¹ªº®É­Ô¡A¨º»ò $name ±N¥¢¥h­ì¦³ªºÅܼƤº®e¡A ¶È¬°¤@¯ë¦r¤¸ªºÅã¥Ü«¬ºA¦Ó¤w¡I³o¸Ì¥²»Ý­n¯S§O¤p¤ß¦b·N¡I

    ¨ÒÃD¤T¡G¦b«ü¥O¤U¹Fªº¹Lµ{¤¤¡A quote ( ` ) ³o­Ó²Å¸¹¥Nªíªº·N¸q¬°¦ó¡H
    榭G
      ¦b¤@¦ê«ü¥O¤¤¡A¦b ` ¤§¤ºªº«ü¥O±N·|³Q¥ý°õ¦æ¡A¦Ó¨ä°õ¦æ¥X¨Óªºµ²ªG±N°µ¬°¥~³¡ªº¿é¤J¸ê°T¡I¨Ò¦p uname -r ·|Åã¥Ü¥X¥Ø«eªº®Ö¤ßª©¥»¡A¦Ó§Ú­Ìªº®Ö¤ßª©¥»¦b /lib/modules ¸Ì­±¡A¦]¦¹¡A§A¥i¥H¥ý°õ¦æ uname -r §ä¥X®Ö¤ßª©¥»¡AµM«á¦A¥H¡y cd ¥Ø¿ý¡z¨ì¸Ó¥Ø¿ý¤U¡A·íµM¤]¥i¥H°õ¦æ¦p¦P¤W­±½d¨Ò¤»ªº°õ¦æ¤º®eÅo¡C

      ¥t¥~¦AÁ|­Ó¨Ò¤l¡A§Ú­Ì¤]ª¾¹D¡A locate «ü¥O¥i¥H¦C¥X©Ò¦³ªº¬ÛÃöÀÉ®×ÀɦW¡A¦ý¬O¡A ¦pªG§Ú·Q­nª¾¹D¦U­ÓÀɮתºÅv­­©O¡HÁ|¨Ò¨Ó»¡¡A§Ú·Q­nª¾¹D¨C­Ó crontab ¬ÛÃöÀɦWªºÅv­­¡G

        [root@linux ~]# ls -l `locate crontab`

      ¦p¦¹¤@¨Ó¡A¥ý¥H locate ±NÀɦW¸ê®Æ³£¦C¥X¨Ó¡A¦A¥H ls «ü¥O¨Ó³B²zªº·N«ä°Õ¡IÁA¤F¶Ü¡H ^_^


    ¤p¼ÐÃDªº¹Ï¥ÜÅܼƪº¥Î³~
    §Ú­Ìª¾¹D PATH ³o­ÓÅܼƬO§Ú­Ì¦b°õ¦æ«ü¥Oªº®É­Ô¡A©Ò»Ý­n¨ã³Æªº«ü¥O·j´M¥Ø¿ý¸ê®Æ¡A ¨S¦³¥L¡A§Ú­Ì´N±o­n¨Ï¥Îµ´¹ï¸ô®|¨Ó¤U¹F«ü¥O¤~¦æ¡C·íµM¡AÁÙ¦³«Ü¦hÅܼƳ£¦³¥L¯S§Oªº·N¸q¦s¦b¡C °£¦¹¤§¥~¡A¡y§Ú¬°¦ó»Ý­n³]©wÅܼơz©O¡H ­n¸ò¤j®a¤¶²Ð³o­Ó¡yÅܼơz¡A·íµM¬O¦]¬°¥L¦³¬Û·íµ{«×ªº·N¸q¦s¦bªº°Ú¡I ©³¤U´N¸ò¤j®a¤¶²Ð¤@¤U¡A³¾­ô³]©wÅܼƪº®É¾÷³á¡I
      §Úªº®×¨Ò¤@¡G³Ì²³æªº¨Ò¤l´N¬O ¡y²¤Æ¸ô®|¦WºÙ¡zÅo¡I¥H³¾­ô¬°¨Ò¡A§Úªº¤u§@¦b Unix ¨t²Î¤§¤U¶i¦æ¤@¨Ç¼Æ­È¼Ò¦¡ªº¼ÒÀÀ¤u§@¡A°¾°¾¥Ñ©ó¸ê®Æ¶q¤Ó¤j¡A ¬°¤F©È¤é«á§Ñ°O³o­Ó¥Ø¿ýªº¤º®e»P¥D­nªº·N¸q¡A©Ò¥H§ÚªºÀɦW³£¨úªº«Üªø¡A °¾°¾¦b°õ¦æ¼Ò¦¡ªº¹Lµ{¤¤¡A±`±`·|¤Á´«¥Ø¿ý¡I§Ú­ù£{£°¡A¥ú¬O¥´¨º´X¦æ¸ô®|¦WºÙ´N§Ö­nºÆ±¼¤F¡I ©Ò¥H§Ú´N³]©w¨º´X¦æ¥Ø¿ý¦WºÙ¦¨¬°¤@­Ó¥|­Ó¦r¤¸ªºÅܼơA¦p¦¹¤@¨Ó§Ú¥u­n¿é¤J¡y cd $VARI ¡z³o­Ó«ü¥O¡A¼K¼K¡I°¨¤W´N²¾°Ê¨ì¸Ó¸ô®|¤U¤F¡I«Ü¤è«K§a¡I·íµMÅܼƪº·N¸qÁÙ¤£¤î©ó¦¹¡A ¤£¹L³o¬O³Ì²³æªº¹ê¨Ò»¡©úÅo¡I
      §Úªº®×¨Ò¤G¡G¥t¥~¤@­Ó±`±`»Ý­nÅܼƪº©N©N¬O¦b scripts ¸Ì­±¡A¨Ò¦p§Ú¼gªº¤@­Ó°»´úµn¿ýÀɪº¤pµ{¦¡ logfile.sh ³o­Ó©N©N¡A ¥Ñ©ó¸ÌÀY±`±`»Ý­n¥Î¨ì¡yÀx¦s¸ô®|¡z¡A°¾°¾¥i¯à¨C­Ó¤Hªº¦s¨ú¸ô®|³£¤£¤Ó¤@¼Ë¡A ¦Ó¦pªG­n­×§ï¦s¨ú¸ô®|ªº¸Ü¡A¼K¼K¡I¦n´X¤Q¦æ­n¦P®É­×§ï©O¡IÁÙ¥i¯à·|§ï¿ù¡I ¨º»ò§Ú¥u­n©w¸q¤@­ÓÅܼơAµM«á«áÄòªº©Ò¦³¸ê®Æ³£¨Ï¥Î³o­ÓÅܼƪº¤º®e¡I¼K¼K¡I ¨º»ò¥u­n¤j®a­×§ï¤F³o­ÓÅܼƪº¤º®e¡]¥u­n¤@¦æ¡^¡A«áÄòªº°Ê§@´N¤£»Ý­n­×¥¿¤F¡I³o­Ó°Ê§@±`¦bµ{¦¡©ÎªÌ¬O script ·í¤¤¬Ý¨ìªº¡I
    ©Ò¥HÅo¡A¦³«Ü¦hªº®É­Ô¬°¤F¤è«K©ÎªÌ¬O¨Ï¥Î©ó scripts ªº·N¸q¡A§Ú­Ì¥²¶·­n³]©wÅܼơI ·íµMÅo¡A¦pªG¬O¸ò¨t²Î²×ºÝ¾÷Àô¹Ò¦³Ãöªº³]©w­È¡A«Ü¦h¤]¬O§Q¥ÎÅܼƨÓÀ°§U¹F¦¨ªº¡ã ©³¤U§Ú­Ì´N¨Ó½Í¤@½Í©Ò¿×ªº¡yÀô¹ÒÅܼơz§a¡I


    ¤p¼ÐÃDªº¹Ï¥ÜÀô¹ÒÅܼƪº¥\¯à
    Àô¹ÒÅܼƥi¥HÀ°§Ú­Ì¹F¨ì«Ü¦h¥\¯à¡ã¥]¬A®a¥Ø¿ýªºÅÜ´«°Ú¡B´£¥Ü¦r¤¸ªºÅã¥Ü°Ú¡B°õ¦æÀÉ·j´Mªº¸ô®|°Úµ¥µ¥ªº¡A ÁÙ¦³«Ü¦h«Ü¦h°Õ¡I¨º»ò¡A¬JµMÀô¹ÒÅܼƦ³¨º»ò¦hªº¥\¯à¡A°Ý¤@¤U¡A¥Ø«e§Úªº shell Àô¹Ò¤¤¡A ¦³¦h¤ÖÅܼưڡH¡I¨þ¨þ¡I§Ú­Ì¥i¥H§Q¥Î¨â­Ó«ü¥O¨Ó¬d¾\¡A¤À§O¬O env »P export ©O¡I


  • ¤@¨ÇÀô¹ÒÅܼƪº»¡©ú¡G env
  • ½d¨Ò¤@¡G¦C¥X¥Ø«eªº shell Àô¹Ò¤Uªº©Ò¦³Àô¹ÒÅܼƻP¨ä¤º®e¡C
    [root@linux ~]# env
    HOSTNAME=linux.dmtsai.tw   <== ³o³¡¥D¾÷ªº¥D¾÷¦WºÙ
    SHELL=/bin/bash            <== ¥Ø«e³o­ÓÀô¹Ò¤U¡A¨Ï¥Îªº Shell ¬O­þ¤@­Óµ{¦¡¡H
    TERM=xterm                 <== ³o­Ó²×ºÝ¾÷¨Ï¥ÎªºÀô¹Ò¬O¤°»òÃþ«¬
    HISTSIZE=1000              <== ³o­Ó´N¬O¡y°O¿ý«ü¥Oªºµ§¼Æ¡z¦b FC4 ¹w³]¥i°O¿ý 1000 µ§
    USER=root                  <== ¨Ï¥ÎªÌªº¦WºÙ°Ú¡I
    LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:
    or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=0
    0;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=
    00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;3
    1:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00
    ;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: <== ¤@¨ÇÃC¦âÅã¥Ü
    ENV=/root/.bashrc          <== ¨Ï¥Îªº­Ó¤HÀô¹Ò³]©wÀÉ
    MAIL=/var/spool/mail/root  <== ³o­Ó¨Ï¥ÎªÌ©Ò¨ú¥Îªº mailbox ¦ì¸m
    PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:
    /root/bin                  <== ¤£¦A¦hÁ¿°Ú¡I¬O°õ¦æÀÉ«ü¥O·j´M¸ô®|
    INPUTRC=/etc/inputrc       <== »PÁä½L«öÁä¥\¯à¦³Ãö¡C¥i¥H³]©w¯S®í«öÁä¡I
    PWD=/root                  <== ¥Ø«e¨Ï¥ÎªÌ©Ò¦bªº¤u§@¥Ø¿ý (§Q¥Î pwd ¨ú¥X¡I)
    LANG=en_US.UTF-8           <== ³o­Ó»P»y¨t¦³Ãö¡A©³¤U·|¦A¤¶²Ð¡I
    HOME=/root                 <== ³o­Ó¨Ï¥ÎªÌªº®a¥Ø¿ý°Ú¡I
    _=/bin/env                 <== ¤W¤@¦¸¨Ï¥Îªº«ü¥Oªº³Ì«á¤@­Ó°Ñ¼Æ(©Î«ü¥O¥»¨­)
    
    env ¬O environment (Àô¹Ò) ªºÂ²¼g°Ú¡ã ¤W­±ªº¨Ò¤l·í¤¤¡A¬O¦C¥X¨Ó©Ò¦³ªºÀô¹ÒÅܼơC·íµM¡A¦pªG¨Ï¥Î export ¤]·|¬O¤@¼Ëªº¤º®e¡ã ¥u¤£¹L¡A export ÁÙ¦³¨ä¥LÃB¥~ªº¥\¯à´N¬O¤F¡A§Ú­Ìµ¥¤@¤U¦A´£³o­Ó export «ü¥O¡C ¨º»ò¤W­±³o¨ÇÅܼƦ³¨Ç¤°»ò¥\¥Î©O¡H©³¤U§Ú­Ì´N¤@­Ó¤@­Ó¨Ó¤ÀªR¤ÀªR¡I
    • HOME ¡G ¥Nªí¨Ï¥ÎªÌªº®a¥Ø¿ý¡CÁÙ°O±o§Ú­Ì¥i¥H¨Ï¥Î cd ~ ¥h¨ì¨Ï¥ÎªÌªº®a¥Ø¿ý¶Ü¡H©ÎªÌ§Q¥Î cd ´N¥i¥Hª½±µ¦^¨ì¨Ï¥ÎªÌ®a¥Ø¿ý¤F¡C¨º´N¬O¨ú¥Î³o­Ó¥\¯à°Õ¡ã ¦³«Ü¦hµ{¦¡³£¥i¯à·|¨ú¥Î¨ì³o­ÓÅܼƪº­È³á¡I

    • SHELL ¡G §iª¾§Ú­Ì¡A¥Ø«e³o­ÓÀô¹Ò¨Ï¥Îªº SHELL ¬O­þ¤äµ{¦¡¡H ¦pªG¬O bash ªº¸Ü¡A¹w³]¬O /bin/bash ªº°Õ¡I

    • HISTSIZE ¡G ³o­Ó»P¡y¾ú¥v©R¥O¡z¦³Ãö¡A¥ç§Y¬O¡A §Ú­Ì´¿¸g¤U¹F¹Lªº«ü¥O¥i¥H³Q¨t²Î°O¿ý¤U¨Ó¡A¦Ó°O¿ýªº¡yµ§¼Æ¡z«h¬O¥Ñ³o­Ó­È¨Ó³]©wªº¡C

    • ENV ¡G ³o­Ó¨Ï¥ÎªÌ©Ò¨Ï¥Îªº­Ó¤H¤ÆÀô¹Ò³]©wÀɪºÅª¨úÀɮסC

    • MAIL ¡G ·í§Ú­Ì¨Ï¥Î mail ³o­Ó«ü¥O¦b¦¬«H®É¡A¨t²Î·|¥hŪ¨úªº¶l¥ó«H½cÀÉ®× (mailbox)¡C

    • PATH ¡G ´N¬O°õ¦æÀÉ·j´Mªº¸ô®|°Õ¡ã¥Ø¿ý»P¥Ø¿ý¤¤¶¡¥H«_¸¹(:)¤À¹j¡A ¥Ñ©óÀɮתº·j´M¬O¨Ì§Ç¥Ñ PATH ªºÅܼƤºªº¥Ø¿ý¨Ó¬d¸ß¡A©Ò¥H¡A¥Ø¿ýªº¶¶§Ç¤]¬O­«­nªº³á¡C

    • LANG ¡G ³o­Ó­«­n¡I´N¬O»y¨tÀÉ®×Åo¡ã«Ü¦h¸ê®Æ³£·|¥Î¨ì¥L¡A Á|¨Ò¨Ó»¡¡A·í§Ú­Ì¦b±Ò°Ê¬Y¨Ç perl ªºµ{¦¡»y¨¥Àɮ׮ɡA¥L·|¥D°Êªº¥h¤ÀªR»y¨t¸ê®ÆÀɮסA ¦pªGµo²{¦³¥LµLªk¸ÑªRªº½s½X»y¨t¡A¥i¯à·|²£¥Í¿ù»~³á¡I¤@¯ë¨Ó»¡¡A§Ú­Ì¤¤¤å½s½X³q±`¬O zh_TW.Big5 ©ÎªÌ¬O zh_TW.UTF-8¡A³o¨â­Ó½s½X°¾°¾¤£®e©ö³Q¸ÑĶ¥X¨Ó¡A©Ò¥H¡A¦³ªº®É­Ô¡A¥i¯à»Ý­n­×­q¤@¤U»y¨t¸ê®Æ¡C ³o³¡¤À§Ú­Ì·|¦b¤U­Ó¤p¸`°µ¤¶²Ðªº¡I

    • RANDOM ¡G ³o­Óª±·N¨à´N¬O¡yÀH¾÷¶Ã¼Æ¡zªºÅܼưաI¥Ø«e¤j¦h¼Æªº distributions ³£·|¦³¶Ã¼Æ²£¥Í¾¹¡A¨º´N¬O /dev/random ³o­ÓÀɮסC §Ú­Ì¥i¥H³z¹L³o­Ó¶Ã¼ÆÀɮ׬ÛÃöªºÅÜ¼Æ ($RANDOM) ¨ÓÀH¾÷¨ú±o¶Ã¼Æ­È³á¡C¦b BASH ªºÀô¹Ò¤U¡A³o­Ó RANDOM Åܼƪº¤º®e¡A¤¶©ó 0~32767 ¤§¶¡¡A©Ò¥H¡A§A¥u­n echo $RANDOM ®É¡A¨t²Î´N·|¥D°ÊªºÀH¾÷¨ú¥X¤@­Ó¤¶©ó 0~32767 ªº¼Æ­È¡C¸U¤@§Ú·Q­n¨Ï¥Î 0~9 ¤§¶¡ªº¼Æ­È©O¡H¨þ¨þ¡ã§Q¥Î declare «Å§i¼Æ­ÈÃþ«¬¡A µM«á³o¼Ë°µ´N¥i¥H¤F¡G
      [root@linux ~]# declare -i number=$RANDOM*10/32767 ; echo $number
      8   <== ¦¹®É·|ÀH¾÷¨ú¥X 0~9 ¤§¶¡ªº¼Æ­È³á¡I
      
    ¤j­P¤W¬O¦³³o¨ÇÀô¹ÒÅܼưաã¸Ì­±¦³¨Ç¤ñ¸û­«­nªº°Ñ¼Æ¡A¦b©³¤U§Ú­Ì³£·|¥t¥~¶i¦æ¤@¨Ç»¡©úªº¡ã

  • ¨ä¥L©Ò¦³ªºÅܼƻ¡©ú¡G set
  • ¦Ó°£¤F³o¨ÇÀô¹ÒÅܼƤ§¥~¡AÁÙ¦³¨S¦³¤°»ò­«­nªºÅܼƩO¡H·íµM¦³°Ú¡I §Ú­Ì¦b bash ªºÀô¹Ò¤U¡A¨ä¹êÁÙ¦³¤@¨Ç®¼­«­nªºÅܼơA³o¨ÇÅܼƬO¡y¦b³o­Ó shell Àô¹Ò¤U¦³®Ä¡zªº¡A ¦pªG¬O¦b¡y¤lµ{§Ç¡z¡A³o¨ÇÅܼƭȴN¤£·|¬Û¦P¤F¡C ¨º»ò¦p¦óÆ[¹î¥Ø«e shell Àô¹Ò¤Uªº©Ò¦³ÅܼƩO¡H«Ü²³æ°Ú¡A´N¥Î set §Y¥i¡Iset ³o­Ó«ü¥O°£¤F·|±NÀô¹ÒÅܼƦC¥X¨Ó¤§¥~¡A¨ä¥L§Ú­Ìªº¦Û­qÅܼơA»P©Ò¦³ªºÅܼơA³£·|³Q¦C¥X¨Ó³á¡I¸ê°T¦h¦n¦h¡C ©³¤U¶È¦C¥X´X­Ó­«­nªº¤º®e¡C
    [root@linux ~]# set
    BASH=/bin/bash           <== bash ªº¥Dµ{¦¡©ñ¸m¸ô®|
    BASH_VERSINFO=([0]="3" [1]="00" [2]="16" [3]="1" [4]="release" 
    [5]="i386-redhat-linux-gnu")      <== bash ªºª©¥»°Ú¡I
    BASH_VERSION='3.00.16(1)-release' <== bash ªºª©¥»°Ú¡I
    COLORS=/etc/DIR_COLORS.xterm      <== ¨Ï¥ÎªºÃC¦â¬ö¿ýÀÉ®×
    COLUMNS=115              <== ¦b¥Ø«eªº²×ºÝ¾÷Àô¹Ò¤U¡A¨Ï¥ÎªºÄæ¦ì¦³´X­Ó¦r¤¸ªø«×
    HISTFILE=/root/.bash_history      <== ¾ú¥v©R¥O°O¿ýªº©ñ¸mÀɮסAÁôÂÃÀÉ
    HISTFILESIZE=1000        <== ¦s°_¨Ó(»P¤W­ÓÅܼƦ³Ãö)ªºÀɮפ§«ü¥Oªº³Ì¤j¬ö¿ýµ§¼Æ¡C
    HISTSIZE=1000            <== ¥Ø«eÀô¹Ò¤U¡A¥i°O¿ýªº¾ú¥v©R¥O³Ì¤jµ§¼Æ¡C
    HOSTTYPE=i386            <== ¥D¾÷¦w¸Ëªº³nÅé¥D­nÃþ«¬¡C§Ú­Ì¥Îªº¬O i386 ¬Û®e¾÷¾¹³nÅé
    IFS=$' \t\n'             <== ¹w³]ªº¤À¹j²Å¸¹
    LINES=35                 <== ¥Ø«eªº²×ºÝ¾÷¤Uªº³Ì¤j¦æ¼Æ
    MACHTYPE=i386-redhat-linux-gnu    <== ¦w¸Ëªº¾÷¾¹Ãþ«¬
    MAILCHECK=60             <== »P¶l¥ó¦³Ãö¡C¨C 60 ¬í¥h±½ºË¤@¦¸«H½c¦³µL·s«H¡I
    OLDPWD=/home             <== ¤W­Ó¤u§@¥Ø¿ý¡C§Ú­Ì¥i¥H¥Î cd - ¨Ó¨ú¥Î³o­ÓÅܼơC
    OSTYPE=linux-gnu         <== §@·~¨t²ÎªºÃþ«¬¡I
    PPID=20046               <== ¤÷µ{§Çªº PID (·|¦b«áÄò³¹¸`¤~¤¶²Ð)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\007"'
                             <== ¤W­±³o­Ó¬O©R¥O´£¥Ü¦r¤¸¡I»P©³¤U¤]¦³Ãö¡C
    PS1='[\u@\h \W]\$ '      <== PS1 ´N¼F®`¤F¡C³o­Ó¬O©R¥O´£¥Ü¦r¤¸¡A¤]´N¬O§Ú­Ì±`¨£ªº
                                 [root@linux ~]# ©Î [dmtsai ~]$ ªº³]©w­È°Õ¡I¥i¥H§ó°Êªº¡I
    RANDOM=13586             <== ¶Ã¼Æ°Ú¡I¤W­±¤w¸g´£¹LÅo¡ã
    SUPPORTED=zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8 <== ¥»¨t²Î©Ò¤ä´©ªº»y¨t
    name=VBird               <== ­è­è³]©wªº¦Û­qÅܼƤ]¥i¥H³Q¦C¥X¨Ó³á¡I
    $                        <== ¥Ø«e³o­Ó shell ©Ò¨Ï¥Îªº PID
    ?                        <== ­è­è°õ¦æ§¹«ü¥Oªº¦^¶Ç­È¡C
    
    ¤@¯ë¨Ó»¡¡A¤£½×¬O§_¬°Àô¹ÒÅܼơA¥u­n¸ò§Ú­Ì¥Ø«e³o­Ó shell ªº¾Þ§@¤¶­±¦³ÃöªºÅܼơA ³q±`³£·|³Q³]©w¬°¤j¼g¦r¤¸¡A¤]´N¬O»¡¡A¡y°ò¥»¤W¡A¦b Linux ¹w³]ªº±¡ªp¤¤¡A¨Ï¥Î{¤j¼gªº¦r¥À}¨Ó³]©wªºÅܼƤ@¯ë¬°¨t²Î¤º©w»Ý­nªºÅܼơz¡C

    ¨Ï¥Î set °£¤F·|±N¨t²Îªº¹w³]­È¨q¥X¨Ó¤§¥~¡A³s±aªº©Ò¦³ªº§A¦Û¤v³]©wªºÅܼƤ]·|³Q¨q¥X¨Ó¡I ¦P®É»Ý­nª`·Nªº¬O¡A­Y·í®É¦³¬Û·í¦h¤H¦P®É¦b½u¤Wªº¸Ü¡A¨º»ò §AªºÅܼƥu¯àµ¹¦Û¤v¨Ï¥Î ( °£«D§ïªº¬O¨t²Îªº¹w³]°Ñ¼ÆÀÉ¡A¦p /etc/profile )¡A¦Ó¤£·|¤zÂZ¨ì§O¤Hªº¡I´N¦p¦P«e­±©Ò»¡ªº¡A ¥Ñ©ó§Aµn¤J Linux ¤§«á·|¨ú±o¤@­Ó PID ¡A¦Ó§Aªº³]©w±N¥u¹ï³o­Ó PID »P¤lµ{§Ç¦³Ãö¡I¦¹¥~¡A ³o¦¸µn¤J©Ò¶i¦æªºÅܼƳ]©w¡A¦pªG¨S¦³§ó°Ê¨ì³]©wÀÉ¡A ¨º»ò³o¦¸³]©wªºÅܼƦb¤U¦¸µn¤J®É±N³Q¨ú®ø±¼ ( ¦]¬°µ{§Ç PID ¤£¨£Åo¡I ) ¡I©Ò¥HÅo¡A ¦pªG§A·Q­n§AªºÅܼƨC¦¸³£¯à¦b§Aµn¤Jªº®É­Ô¦Û°Ê´N³]©w¦n¤F¡A¨º»ò´N¥²¶·±N§Aªº³]©w¼g¤Jµn¤J®É¸ü¤Jªº³]©wÀÉ¡I ( §ó¦hªºµ{§Ç¬ÛÃöªº»¡©ú¡A¤£­n«æ¡ã§Ú­Ì·|¦b«á­±ªº µ{§Ç»P¸ê·½ºÞ²z ·í¤¤¦n¦nªº´£¤@´£ªº¡I )

    OK¡IOK¡I¨º»ò¤WÀY¨º¨ÇÅÜ¼Æ·í¤¤¡A¦³­þ¨Ç¬O¤ñ¸û­«­nªº¡H¤j·§¦³³o´X­Ó§a¡I
    • PS1¡G(´£¥Ü¦r¤¸ªº³]©w)

      ³o¬O PS1 (¼Æ¦rªº 1 ¤£¬O­^¤å¦r¥À¡I)¡A³o­ÓªF¦è´N¬O§Ú­Ìªº¡y©R¥O´£¥Ü¦r¤¸¡z°Ú¡I ·í§Ú­Ì¨C¦¸«ö¤U [Enter] «öÁä¥h°õ¦æ¬Y­Ó«ü¥O«á¡A³Ì«á­n¦A¦¸¥X²{´£¥Ü¦r¤¸®É¡A ´N·|¥D°Ê¥hŪ¨ú³o­ÓÅܼƭȤF¡C¤WÀY PS1 ¤ºÅã¥Üªº¬O¤@¨Ç¯S®í²Å¸¹¡A¨C­Óª©¥» bash ªº PSI ÅܼƤºªº¯S®í²Å¸¹¥i¯à¦³¨Ç³\ªº®t²§¡A §AÀ³¸Ó¥D°Êªº¥H man bash ¥h¬d¸ß¤@¤U¬ÛÃöªºÅܼơC©³¤U§Ú¦C¥X FC4 ªºÀô¹Ò¤U¡A ¹w³]ªº bash ªº PS1 ÅܼƤºªº¯S®í²Å¸¹¥Nªí·N¸q¡G

      • \d ¡G¥Nªí¤é´Á¡A®æ¦¡¬° Weekday Month Date¡A¨Ò¦p "Mon Aug 1"
      • \H ¡G§¹¾ãªº¥D¾÷¦WºÙ¡CÁ|¨Ò¨Ó»¡¡A³¾­ôªº½m²ß¾÷ linux.dmtsai.tw ¡A¨º»ò³o­Ó¥D¾÷¦WºÙ´N¬O linux.dmtsai.tw
      • \h ¡G¶È¨ú¥D¾÷¦WºÙªº²Ä¤@­Ó¦W¦r¡C¥H¤W­z¨ÓÁ¿¡A´N¬O linux ¦Ó¤w¡A .dmtsai.tw ³Q¬Ù²¤¡C
      • \t ¡GÅã¥Ü®É¶¡¡A¬° 24 ¤p®É®æ¦¡¡A¦p¡G HH:MM:SS
      • \T ¡GÅã¥Ü®É¶¡¡A12 ¤p®Éªº®É¶¡®æ¦¡¡I
      • \A ¡GÅã¥Ü®É¶¡¡A24 ¤p®É®æ¦¡¡A HH:MM
      • \u ¡G¥Ø«e¨Ï¥ÎªÌªº±b¸¹¦WºÙ¡F
      • \v ¡GBASH ªºª©¥»¸ê°T¡F
      • \w ¡G§¹¾ãªº¤u§@¥Ø¿ý¦WºÙ¡C®a¥Ø¿ý·|¥H ~ ¨ú¥N¡F
      • \W ¡G§Q¥Î basename ¨ú±o¤u§@¥Ø¿ý¦WºÙ¡A©Ò¥H¶È·|¦C¥X³Ì«á¤@­Ó¥Ø¿ý¦W¡C
      • \# ¡G¤U¹Fªº²Ä´X­Ó«ü¥O¡C
      • \$ ¡G´£¥Ü¦r¤¸¡A¦pªG¬O root ®É¡A´£¥Ü¦r¤¸¬° # ¡A§_«h´N¬O $ Åo¡ã

      OK¡I©Ò¥H¡A¥Ñ¹w³]ªº PS1 ¤º®e¬°¡G '\[\u@\h \W\]\$ ' ´N¥i¥HÁA¸Ñ¬°¦ó§Ú­Ìªº´£¥Ü¦r¤¸·|¬O¡G [root@linux ~]# ¤F§a¡I¦n¤F¡A¨º»ò°²³]§Ú·Q­n¦³Ãþ¦ü©³¤Uªº´£¥Ü¦r¤¸¡G

        [root@linux /home/dmtsai 16:50 #12]#

      ¡A¨º­Ó # ¥Nªí²Ä 12 ¦¸¤U¹Fªº«ü¥O¡C ¨º»òÀ³¸Ó¦p¦ó³]©w PS1 ©O¡H¥i¥H³o¼Ë°Ú¡G
      [root@linux home]# PS1='[\u@\h \w \A #\#]\$ '
      [root@linux /home 17:02 #85]# 
      # ¬Ý¨ì¤F¶Ü¡H´£¥Ü¦r¤¸ÅܤF¡IÅܪº«Ü¦³½ì§a¡I¨ä¤¤¡A¨º­Ó #85 ¤ñ¸û¦³½ì¡A
      # ¦pªG±z«ö¤U [Enter] «á¡A¸Ó¼Æ¦r´N·|¼W¥[³á¡I¬°Ô£¡H¤W­±¦³»¡©ú£v£°¡I
      

    • $¡G(Ãö©ó¥» shell ªº PID)

      ¨ä¹ê³o­Ó©N©N¥Nªíªº¬O¡y¥Ø«e³o­Ó Shell ªº°õ¦æºü¥N¸¹¡z¡A¥ç§Y¬O©Ò¿×ªº PID (Process ID)¡C §ó¦hªºµ{§ÇÆ[©À¡A§Ú­Ì·|¦b²Ä¥|³¹ªº®É­Ô´£¤Î¡C·Q­nª¾¹D§Ú­Ìªº shell ªº PID ¡A´N¥i¥H¡G echo $$ §Y¥i¡I

    • ?¡G(Ãö©ó¤W­Ó°õ¦æ«ü¥Oªº¦^¶Ç½X)

      ½¼±K¡H°Ý¸¹¤]¬O¤@­Ó¯S®íªºÅܼơH¨S¿ù¡I¦b bash ¸Ì­±³o­ÓÅܼƥi­«­nªº«Ü¡I ³o­ÓÅܼƬO¡G¡y¤W­Ó°õ¦æªº«ü¥O©Ò¦^¶Çªº­È¡z¡A ¤W­±³o¥y¸Üªº­«ÂI¬O¡y¤W¤@­Ó«ü¥O¡z»P¡y¦^¶Ç­È¡z¨â­Ó¦a¤è¡C·í§Ú­Ì°õ¦æ¬Y¨Ç«ü¥O®É¡A ³o¨Ç«ü¥O³£·|¦^¶Ç¤@­Ó°õ¦æ«áªº¥N½X¡C¤@¯ë¨Ó»¡¡A¦pªG¦¨¥\ªº°õ¦æ¸Ó«ü¥O¡A «h·|¦^¶Ç¤@­Ó 0 ­È¡A¦pªG°õ¦æ¹Lµ{µo¥Í¿ù»~¡A´N·|¦^¶Ç¡y¿ù»~¥N½X¡z¤~¹ï¡I¤@¯ë´N¬O¥H«D¬° 0 ªº¼Æ­È¨Ó¨ú¥N¡C §Ú­Ì¥H©³¤Uªº¨Ò¤l¨Ó¬Ý¬Ý¡G
      [root@linux ~]# echo $SHELL
      /bin/bash
      [root@linux ~]# echo $?
      0
      # ¦]¬°¤W­Ó«ü¥O°õ¦æ¹Lµ{¤¤¡A¨Ã¨S¦³¿ù»~¡A¬°¦¨¥\ªº°õ¦æ§¹²¦¡A©Ò¥H¦^¶Ç 0 ¡C
      [root@linux ~]# 12name=VBird
      -bash: 12name=VBird: command not found
      [root@linux ~]# echo $?
      127
      # µo¥Í¿ù»~°Õ¡I©Ò¥H echo $? ®É¡A´N·|¥X²{¿ù»~ªº¥N½X¡I
      # §Ú­Ì¥i¥H§Q¥Î³o­Ó¥N½X¨Ó·j´M¿ù»~ªº­ì¦]³á¡I
      [root@linux ~]# echo $?
      0
      # «x¡I«ç»ò¤SÅܦ¨¥¿½T¤F¡H³o¬O¦]¬° "?" ¥u»P¡y¤W¤@­Ó°õ¦æ«ü¥O¡z¦³Ãö¡A
      # ©Ò¥H¡A§Ú­Ì¤W¤@­Ó«ü¥O¬O°õ¦æ¡y echo $? ¡z¡A·íµM¨S¦³¿ù»~¡A©Ò¥H¬O 0 ¨S¿ù¡I
      

    • OSTYPE, HOSTTYPE, MACHTYPE¡G(¥D¾÷µwÅé»P®Ö¤ßªºµ¥¯Å)

      ³o´X­ÓªF¦è»Pµ{¦¡ªº¦w¸Ë¦³Ãö¡C§Ú­Ì¦b¡yLinux ¥D¾÷³W¹º¡z ¸Ì­±´£¨ì¹LÃö©ó¥D¾÷ªºµ¥¯Å¤è­±ªº°ÝÃD¡A·í§Ú­Ì¦b¦w¸Ë³nÅ骺®É­Ô¡A »Ý­n³z¹L½s;¹¨Ó±N­ì©l½X½sͦ¨¬°¤G¶i¦ìªºÀÉ®× (binary file)¡C¦ý¬O¡A §Ú­Ì¥i¥H°w¹ïµwÅ骺°t³Æ¨Ó¶i¦æ½sĶªº³Ì¨Î¤Æ¡A¦¹®É¡A³o¨Ç°Ñ¼Æ´N¥i¥H³Q¥Î¨ì¤F¡I °ò¥»¤W¡A¥Ø«e¥D­nªº distribution ³£¬O°w¹ï i386 ¥ç§Y³Ì§Cµ¥¯Åªº¾÷¾¹¶i¦æ³Ì¨Î¤Æ¡A ³o¼Ë¤~¯à°÷¦w¸Ë¦b¸û°ª¶¥ªº¾÷¾¹¤W¡A¦pªG¥H 686 ªº¾÷«¬¨Ó³Ì¨Î¤Æ¡A ¨º»ò¡A¥i´NµLªk¦V¤U¬Û®eªº³á¡I(¦­´Áªº OpenLinux ¬O°w¹ï 686 ¾÷¾¹¨ÓÄÀ¥X³nÅé¡A ©Ò¥H¡A·í®Éªº OpenLinux ¬OµLªk¦w¸Ë¦b P-166 ªº¾÷¾¹¤Wªº¡C )

    ¦Û­qÅܼÆÂনÀô¹ÒÅܼơG export
    ¦n¤F¡A¤W­±§Ú­ÌÀô¹ÒÅܼƤ]´£¹L¤F¡A¤@¨Ç¦Û­qÅܼƤ]´£¹L¤F¡A¨º»ò¡A³o¨âªÌ¦³Ô£¤£¦P¡H ¥Lªº¤£¦P³B¡A§Ú­Ì¦b ÅܼƳ]©w³W«h ·í¤¤µy·L´£¹L¡A ¥D­n¬O¥Ñ©óÅܼƥi§_³Q¤lµ{§Ç©Ò¤Þ¥Î¡C

    ·í§A¨ú±o¤@­Ó bash ¤§«á¡A¥ç§Y±o¨ì¤F¤@­Óµ{§Ç¤F¡A¦ý¬O­Y§A¦A¦¸ªº°õ¦æ¤@¦¸ bash ¡A¨º»ò§A±N¶i¤J¡y¤lµ{§Ç¡z¡A³o­Óµ{§Çªº·§©À§Ú­Ì¦b¸ê·½ºÞ²z³¹¸`¤¤¦A¸Ô½Í¡A³o¸Ì±z¥ý¦³­Ó·§©À§Y¥i¡C ¨º»ò¥Ñ©ó±z¤w¸g¶i¤J¤F¸Ó¤lµ{§Ç¡A©Ò¥H¦b¤÷µ{§Ç¤¤ªº¦Û­qÅܼƳ]©w±N¤£¦AÄ~Äòªº¦s¦b¡C ·|¦s¦b¤lµ{§Ç¤¤ªº¡A¶È¦³¡yÀô¹ÒÅܼơz¡C

    ´«­Ó¨¤«×¨Ó·Q¡A¤]´N¬O»¡¡A¦pªG§Ú¯à±N¦Û­qÅܼÆÅܦ¨Àô¹ÒÅܼƪº¸Ü¡A¨º¤£´N¥i¥HÅý¸ÓÅܼƭÈÄ~Äò¦s¦b©ó¤lµ{§Ç¤F¡H ¨þ¨þ¡I¨S¿ù¡I¦¹®É¡A¨º­Ó export «ü¥O´N«Ü¦³¥Î°Õ¡I ¦p±z·Q­nÅý¸ÓÅܼƤº®eÄ~Äòªº¦b¤lµ{§Ç¤¤¨Ï¥Î¡A¨º»ò´N½Ð°õ¦æ¡G
      export ÅܼÆ
    ³o­ÓªF¦è¥Î¦b¡y¤Þ¥Î¥L¤HªºÀɮשΪ̨ä¥Lµ{§Ç¡z®É¡A¬Û·íªº­«­nªº¡I ¤×¨ä¹³³¾­ô±`±`¨â¤T­ÓÀɮפ¬¬Û¤Þ¥Î¨Ó¤Þ¥Î¥hªº¡A¦pªG§Ñ°O³]©w export ªº¸Ü¡A¨º»ò¤£¦PªºÀɮפ¤ªº¬Û¦PÅܼƭȡA±N»Ý­n¤@¦A¦a­«½Æ³]©w¤~¦æ¡I©Ò¥H¡A§Ú¥u­n¦bÀY¤@­ÓÀɮרϥΠexport ªº¸Ü¡A¨º»ò«áÄòªºÀɮפޥήɡA±N·|§â¸ÓÅܼƤº®eŪ¶i¨Ó¡I¦n¥Îªº«Ü¡A¦pªG¶È¤U¹F export ¦Ó¨S¦³±µÅܼƮɡA¨º»ò¦¹®É±N·|§â©Ò¦³ªº¡yÀô¹ÒÅܼơz¨q¥X¨Ó³á¡I¨Ò¦p¡G
    [root@linux ~]# export
    declare -x ENV="/root/.bashrc"
    declare -x HISTSIZE="1000"
    declare -x HOME="/root"
    declare -x HOSTNAME="linux.dmtsai.tw"
    declare -x INPUTRC="/etc/inputrc"
    declare -x LANG="en_US.UTF-8"
    declare -x MAIL="/var/spool/mail/root"
    declare -x SHELL="/bin/bash"
    # «Ü¦h³£ª½±µ¬Ù²¤¤F¡I¤£µM....­«½Æ©Ê¤Ó°ª¡A®ö¶Oª©­±¡ã ^_^
    

    ¤p¼ÐÃDªº¹Ï¥Ü»y¨tÀɮתºÅÜ¼Æ (locale)
    ÁÙ°O±o§Ú­Ì¦b­º¦¸¶i¤J Linux ¨º­Ó³¹¸`¸Ì­±´£¨ìªº¡AÃö©ó»y¨t½s½Xªº°ÝÃD¶Ü¡H ´N¬O·í§Ú­Ì¨Ï¥Î man command ªº¤è¦¡¥h¬d¸ß¬Y­Ó¸ê®Æªº»¡©úÀɮɡA¸Ó»¡©úÀɪº¤º®e¥i¯à·|¦]¬°§Ú­Ì¨Ï¥Îªº»y¨t¡A ¦Ó²£¥Í¤@¨Ç¶Ã½X¡C¥t¥~¡A§Q¥Î ls ¬d¸ßÀɮתº®É¶¡®É¡A¤]¥i¯à·|¦³¶Ã½X¥X²{¦b®É¶¡ªº³¡¤À¡C ¨º­Ó°ÝÃD¨ä¹ê´N¬O»y¨tªº°ÝÃD°Õ¡C

    ¥Ø«e¤j¦h¼Æªº Linux distributions ¤w¸g³£¬O¤ä´©¸U°ê½X¡A¦¹¥~¡A¤]³£¤ä´©¤j³¡¤Àªº»y¨¥»y¨t¤F¡C ³o¦³¿à©ó i18n ¤ä´©ªºÀ°§U©O¡I ¨º»ò§Ú­Ìªº Linux ¨ì©³¤ä´©¤F¦h¤Öªº»y¨t©O¡H³o¥i¥H¥Ñ locale ³o­Ó«ü¥O¨Ó¬d¸ß¨ì³á¡I
    [root@linux ~]# locale -a
    aa_DJ
    aa_DJ.iso88591
    en_US
    en_US.iso88591
    en_US.iso885915
    en_US.utf8
    zh_TW
    zh_TW.big5
    zh_TW.euctw
    zh_TW.utf8
    # ¨ä¹ê¿é¥Xªº¤º®e¦³«Ü¦h¡A³¾­ô±N¤@¨Ç¸ê°T±Ë±ó¤F¡ã
    # ±q¤W­±ªº¿é¥X¤¤¡A§Ú­Ì¤]¤£Ãø¬Ý¥X¡A¨t²Î¬O¦³¤ä´© big5, utf8 µ¥¤¤¤å»y¨t¸ê®Æªº¡I
    
    ¤¤¤å»y¨t¦Ü¤Ö¤ä´©¤F¨âºØ¥H¤Wªº½s½X¡A¤@ºØ¬O¥Ø«eÁÙ¬O«Ü±`¨£ªº big5 ¡A¥t¤@ºØ«h¬O¶V¨Ó¶V¼öªùªº utf-8 ½s½X¡C ¨º»ò§Ú­Ì¦p¦ó­×­q³o¨Ç½s½X©O¡H¨ä¹ê¥i¥H³z¹L©³¤U³o¨ÇÅܼƪº»¡¡G
    [root@linux ~]# LANG         <==¥D»y¨¥ªºÀô¹Ò
    [root@linux ~]# LC_CTYPE     <==¦r¤¸¿ëÃѪº½s½X
    [root@linux ~]# LC_NUMERIC   <==¼Æ¦r¨t²ÎªºÅã¥Ü°T®§
    [root@linux ~]# LC_TIME      <==®É¶¡¨t²ÎªºÅã¥Ü¸ê®Æ
    [root@linux ~]# LC_COLLATE   <==¦r¦êªº¤ñ¸û»P±Æ§Çµ¥
    [root@linux ~]# LC_MONETARY  <==¹ô­È®æ¦¡ªºÅã¥Üµ¥
    [root@linux ~]# LC_MESSAGES  <==°T®§Åã¥Üªº¤º®e¡A¦p¥\¯àªí¡B¿ù»~°T®§µ¥
    [root@linux ~]# LC_ALL       <==»y¨¥Àô¹Òªº¾ãÅé³]©w¡C
    
    °ò¥»¤W¡A§A¥i¥H³v¤@³]©w¨C­Ó»P»y¨t¦³ÃöªºÅÜ¼Æ¸ê®Æ¡A¦ý¨Æ¹ê¤W¡A¦pªG¨ä¥Lªº»y¨tÅܼƳ£¥¼³]©w¡A ¥B±z¦³³]©w LANG ©ÎªÌ¬O LC_ALL ®É¡A«h¨ä¥Lªº»y¨tÅܼƴN·|³Q³o¨â­ÓÅܼƩҨú¥N¡I ³o¤]¬O¬°¤°»ò§Ú­Ì¦b FC4 ·í¤¤¡A³q±`¶È³]©w LANG ³o­ÓÅܼƦӤw¡I¦]¬°¥L¬O³Ì¥D­nªº³]©wÅܼơC ¦n¤F¡A¨º»ò§AÀ³¸Ó­nı±o©_©Çªº¬O¡A¬°¤°»ò¦b Linux ¥D¾÷ªº²×ºÝ¾÷¤¶­± (tty1 ~ tty6) ªºÀô¹Ò¤U¡A¦pªG LANG=zh_TW.big5 ³o­Ó³]©w­È¥Í®Ä«á¡A¨Ï¥Î man ©ÎªÌ¨ä¥L°T®§¿é¥X®É¡A ³£·|¦³¤@°ï¶Ã½X¡A¤×¨ä¬O¨Ï¥Î ls -l ³o­Ó°Ñ¼Æ®É¡H

    ¦]¬°¦b Linux ¥D¾÷ªº²×ºÝ¾÷¤¶­±¤U¡A¨º­ÓÀô¹Ò¬OµLªkÅã¥Ü¹³¤¤¤å³o»ò½ÆÂøªº½s½Xªº¤å¦r¡A ©Ò¥H¡A´N·|²£¥Í¶Ã½X¤F¡C¤]´N¬O¦p¦¹¡A©Ò¥H¡A§Ú­Ì¤~·|¥²¶·­n¦b tty1 ~ tty6 ªºÀô¹Ò¤U¡A ¥[¸Ë¤@¨Ç¤¤¤å¤Æ¤¶­±ªº³nÅé¡A¤~¯à°÷¬Ý¨ì¤¤¤å°Ú¡I¤£¹L¡A¦pªG±z¬O¦b Windows ¥D¾÷¥H»·ºÝ³s½u¦øªA¾¹ªº³nÅé³s½u¨ì¥D¾÷ªº¸Ü¡A¨º»ò¡A¼K¼K¡I¨ä¹ê¤å¦r¤¶­±½T¹ê¬O¥i¥H¬Ý¨ì¤¤¤åªº¡C ©Ò¥H¡A¦¹®É¤Ï¦Ó±z±o­n¦b LANG ³]©w¤¤¤å½s½X¤~¦n©O¡I

    µL½×¦p¦ó¡A¦pªGµo¥Í¤@¨Ç¶Ã½Xªº°ÝÃD¡A¨º»ò³]©w¨t²Î¸Ì­±«O¦³ªº»y¨t½s½X¡A ¨Ò¦p¡G en_US ©Î en_US.utf8 µ¥µ¥ªº³]©w¡AÀ³¸Ó´N OK ªº°Õ¡I¦n¤F¡A¨º»ò¨t²Î¹w³]¤ä´©¦h¤ÖºØ»y¨t©O¡H ·í§Ú­Ì¨Ï¥Î locale ®É¡A¨t²Î¬O¦C¥X¥Ø«e Linux ¥D¾÷¤º«O¦³ªº»y¨tÀɮסA ³o¨Ç»y¨tÀɮ׳£©ñ¸m¦b¡G /usr/lib/locale/ ³o­Ó¥Ø¿ý¤¤¡C ¦ý¬O¡A¥Ø«eªº³o­Ó shell Àô¹Ò©Ò¤ä´©ªº»y¨t¡A«h¬O­n¬Ý SUPPORTED ³o­ÓÅܼƤ~¹ï³á¡I

    ¨º»ò¡A¦pªG§Ú·Q­n­×­q¨t²Îªº»y¨t¤ä´©©O¡H¥i¥H­×­q /etc/sysconfig/i18n ³o­ÓÀɮשO¡I ³o­ÓÀɮתº¤º®e¦³ÂI¹³³o¼Ë¡G
    [root@linux ~]# vi /etc/sysconfig/i18n
    LANG="en_US.UTF-8"
    SYSFONT="latarcyrheb-sun16"
    SUPPORTED="zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8"
    
    §A¥i¥H¦b³o­ÓÀÉ®×·í¤¤¥[¤J LC_TIME ©ÎªÌ¨ä¥L»y¨t¬ÛÃöÅܼƪº³]©w¤º®e¡A ¤]¥i¥Hª½±µ­×§ï LANG ¨º­ÓÅܼƧY¥i°Ú¡I ^_^ ¦ý¡A¨Æ¹ê¤W¡A§Ú­ÌÁÙ¥i¥H³z¹L­Ó¤HªºÀô¹Ò³]©wÀɨӳ]©w LANG ©O¡I ¦p¦¹¤@¨Ó¡A«h¤£¥²­×­q¨t²Îªº»y¨tÀɮסA¤ñ¸û¦w¥þ°Õ¡I
    Tips:
    °²³]§A¥Î vi ½s¿è¤@­Ó¯Â¤å¦rÀÉ¡A³o­Ó¯Â¤å¦rÀɦb½s¿èªº®É­Ô¡A¬O¦b Windows ¤W­±½s¿èªº¡A ¨º»ò³o­ÓÀɮתº¹w³]½s½XÀ³¸Ó¬O¥H zh_TW.big5 ©Ò½s¿èªº¤~¹ï¡C¦ý¬O¡A¦pªG§Aªº shell Àô¹Ò¤¤¡A «o¬O¨Ï¥Î LANG=en_US ®É¡A«h·í§A½s¿è¸ÓÀɮ׮ɡA´N¥i¯à·|¬Ý¨ì¡y¶Ã½X¡z¡A ©ÎªÌ¿é¤Jªº¤¤¤å¥i¯à·|Åܦ¨¡y¶Ã½X¡z¤F¡C¦¹®É¡A¥u­n§AÂ÷¶} vi ¡AµM«á°õ¦æ LANG=zh_TW.big5 ¡A µM«á¦A­«·s¥H vi ½s¿è¸ÓÀɮסA¨þ¨þ¡IÀ³¸Ó´N¯à°÷¬Ý¨ì¤¤¤å°Õ¡I¦ý¬O½Ðª`·N¡A ³o­Ó¤èªk·íµM¤£¾A¥Î tty1 ~ tty6 ªºÀô¹Ò¡A­ì¦]¤W­±¤w¸g´£¹LÅo¡ã ¶È¾A¦X¥HÃþ¦ü putty ³nÅé¥Ñ Windows ¹q¸£³s½u¨ì linux ¥D¾÷¤Wªº°µ·~¡I
    ³¾­ôªº¹Ï¥Ü

    ¤p¼ÐÃDªº¹Ï¥ÜÅܼƪº¦³®Ä½d³ò
    ½¼±K¡H¡HÅܼƤ]¦³¨Ï¥Îªº¡y½d³ò¡z¡H¨S¿ù°Ú¡ã§Ú­Ì¦b¤WÀYªº export «ü¥O»¡©ú¤¤¡A´N´£¨ì¤F³o­Ó·§©À¤F¡C¦pªG¦b¶]µ{¦¡ªº®É­Ô¡A¦³¤÷µ{§Ç»P¤lµ{§Çªº¤£¦Pµ{§ÇÃö«Y®É¡A «h¡yÅܼơz¥i§_³Q¤Þ¥Î¬O export ¦³Ãö¡C³Q export «áªºÅܼơA§Ú­Ì¥i¥HºÙ¥L¬°¡yÀô¹ÒÅܼơz¡I Àô¹ÒÅܼƥi¥H³Q¤lµ{§Ç©Ò¤Þ¥Î¡A¦ý¬O¨ä¥Lªº¦Û­qÅܼƤº®e´N¤£·|¦s¦b©ó¤lµ{§Ç¤¤¡C¤]´N¬O»¡¡G §Ú­Ì¦Û¦æ³]©wªºÅܼơA¥u¦b¥Ø«e³o­Ó shell Àô¹Ò·í¤¤¦s¦b¡A ¦b¤lµ{§Ç¤¤±N¤£·|¦s¦b¦¹¤@ÅܼơC°£«D¨Ï¥Î export ±N¦Û­qÅܼÆÅܦ¨Àô¹ÒÅܼơC

    ¨ä¹ê°£¤F shell ªº¤÷¡B¤lµ{§Ç¥~¡A¦b¸}¥»( scripts )ªº½s¼g·í¤¤¡A¥Ñ©ó¦³ªº³nÅé·|¨Ï¥Î¨ì 2 ­Ó¥H¤Wªº scripts °µ¬°¤@­Ó§¹¾ãªº®M¥ó¡I¤]´N¬O»¡¡A°²¦p§A¦³¨â¤äµ{¦¡¡A¤@¤ä¬° scripts1.sh ¥H¤Î scripts2.sh ¡A¦Ó scripts2.sh ·|¥h¤Þ¥Î scripts1.sh ªºÅܼơA³o­Ó®É­Ô¡A¼K¼K¡I§A¦b scripts1.sh ·í¤¤³]©wªºÅܼƽСy¤d¸U°O±o¥H export ³]©w¡z¡A §_«h§AªºÅܼƱNµLªk¦b¨â­Ó scripts ¤§¶¡¤¬¬Û³Q¤Þ¥Î³á¡I·í³o­Ó scripts °õ¦æ§¹²¦¤§«á¡A­è­è¦b scripts ·í¤¤³]©wªºÅܼƤ]´N¡y¥¢®Ä¤F¡I¡z¡C

    ¨ä¹ê¡A­nÁA¸Ñ¤£¦Pµ{§Ç¤§¶¡ÅܼƪºÅÜ´«¡AÀ³¸Ó­n¥ýÁA¸Ñ¡yµ{§Ç¡zªº·§©À¤ñ¸û¦n¡A ¦ý¬O§Ú­ÌÁÙ¨S¦³Á¿¨ì.....¨SÃö«Y¡ãµ¥§A©À¨ìµ{§Ç³¹¸`«á¡AÁÙ¥i¥H¦A¦^¨Ó¦n¦nªº¬Ý¤@¬Ý¡C °ò¥»¤W¡AÀô¹ÒÅܼƥi¥HÅý¤lµ{§ÇÄ~Äò¤Þ¥Îªº­ì¦]¡A¬O¦]¬°¡G
    • ·í±Ò°Ê¤@­Ó shell ¡A§@·~¨t²Î¤À°t¤@°O¾Ð°Ï¶ôµ¹ shell ¨Ï¥Î¡A¦¹°Ï°ì¤§Åܼƥi¥HÅý¤lµ{§Ç¦s¨ú¡F
    • §Q¥Î export ¥\¯à¡A¥i¥HÅýÅܼƪº¤º®e¼g¨ì¤W­zªº°O¾Ð°Ï¶ô·í¤¤(Àô¹ÒÅܼÆ)¡F
    • ·í¸ü¤J¥t¤@­Ó shell ®É (¥ç§Y±Ò°Ê¤lµ{§Ç¡A¦ÓÂ÷¶}­ì¥»ªº¤÷µ{§Ç¤F)¡A¤l shell ¥i¥H±N¤÷ shell ªºÀô¹ÒÅܼƩҦbªº°O¾Ð°Ï¶ô¾É¤J¦Û¤vªºÀô¹ÒÅܼư϶ô·í¤¤¡C
    ³z¹L³o¼ËªºÃö«Y¡A§Ú­Ì´N¥i¥HÅý¬Y¨ÇÅܼƥi¥H¦b¬ÛÃöªºµ{§Ç¤§¶¡¦s¦b¡A¥HÀ°§U¦Û¤v§ó¤è«Kªº¾Þ§@Àô¹Ò³á¡I

    ¤p¼ÐÃDªº¹Ï¥ÜÅܼÆÁä½LŪ¨ú¡B°}¦C»P«Å§i¡G read, array, declare
    §Ú­Ì¤W­±´£¨ìªºÅܼƳ]©w¥\¯à¡A³£¬Oª½±µ¥Ñ«ü¥O¦Cª½±µ³]©wªº¡A¨º»ò¡A¥i¤£¥i¥HÅý¨Ï¥ÎªÌ¯à°÷¸g¥ÑÁä½L¿é¤J¡H ¤°»ò·N«ä©O¡H¬O§_°O±o¬Y¨Çµ{¦¡°õ¦æªº¹Lµ{·í¤¤¡A·|µ¥«Ý¨Ï¥ÎªÌ¿é¤J "yes/no" ¤§Ãþªº°T®§°Ú¡I¡H ¦b bash ¸Ì­±¤]¦³¬Û¹ïÀ³ªº¥\¯à³á¡I¦¹¥~¡A§Ú­ÌÁÙ¥i¥H«Å§i³o­ÓÅܼƪºÄݩʡA ¨Ò¦p¡G°}¦C©ÎªÌ¬O¼Æ¦rµ¥µ¥ªº¡C©³¤U´N¨Ó¬Ý¬Ý§a¡I


  • read
  • ­nŪ¨ú¨Ó¦ÛÁä½L¿é¤JªºÅܼơA´N¬O¥Î read ³o­Ó«ü¥O¤F¡C³o­Ó«ü¥O³Ì±`³Q¥Î¦b shell script ªº¼¶¼g·í¤¤¡A ¥H¸ò¨Ï¥ÎªÌ¶i¦æ¹ï½Í¡CÃö©ó script ªº¼gªk¡A§Ú­Ì·|¦b«á­±³¹¸`¤¶²Ð¡A©³¤U¥ý¨ÓÁ@¤@Á@ read ªº¬ÛÃö»yªk§a¡I
    [root@linux ~]# read [-pt] variable
    °Ñ¼Æ¡G
    -p  ¡G«á­±¥i¥H±µ´£¥Ü¦r¤¸¡I
    -t  ¡G«á­±¥i¥H±µµ¥«Ýªº¡y¬í¼Æ¡I¡z³o­Ó¤ñ¸û¦³½ì¡ã¤£·|¤@ª½µ¥«Ý¨Ï¥ÎªÌ°Õ¡I
    ½d¨Ò¡G
    
    ½d¨Ò¤@¡GÅý¨Ï¥ÎªÌ¥ÑÁä½L¿é¤J¤@¤º®e¡A±N¸Ó¤º®eÅܦ¨ atest ÅܼÆ
    [root@linux ~]# read atest
    This is a test
    [root@linux ~]# echo $atest
    This is a test
    
    ½d¨Ò¤G¡G´£¥Ü¨Ï¥ÎªÌ 30 ¬í¤º¿é¤J¦Û¤vªº¤j¦W¡A±N¸Ó¿é¤J¦r¦ê°µ¦¨ named ÅܼÆ
    [root@linux ~]# read -p "Please keyin your name: " -t 30 named
    Please keyin your name: VBird Tsai
    [root@linux ~]# echo $named
    VBird Tsai
    
    read ¤§«á¤£¥[¥ô¦ó°Ñ¼Æ¡Aª½±µ¥[¤WÅܼƦWºÙ¡A¨º»ò©³¤U´N·|¥D°Ê¥X²{¤@­ÓªÅ¥Õ¦æ¡Aµ¥«Ý±z¿é¤J¡C ¦pªG¥[¤W -t «á­±±µ¬í¼Æ¤§«á¡A¨Ò¦p¤W­±ªº½d¨Ò·í¤¤¡A¨º»ò 30 ¬í¤§¤º¨S¦³¥ô¦ó°Ê§@®É¡A ¸Ó«ü¥O´N·|¦Û°Ê²¤¹L¤F¡ã¦pªG¬O¥[¤W -p ¡A¼K¼K¡I«á­±´N·|¦³¤ñ¸û¦h¥i¥H¥Îªº´£¥Ü¦r¤¸µ¹§Ú­Ì°Ñ¦Ò¡I ¦b«ü¥Oªº¤U¹F¸Ì­±¡A¤ñ¸û¬üÆ[°Õ¡I ^_^


  • declare / typeset
  • declare ©Î typeset ¬O¤@¼Ëªº¥\¯à¡A´N¬O¦b«Å§iÅܼƪºÄݩʡC¦pªG¨Ï¥Î declare «á­±¨Ã¨S¦³±µ¥ô¦ó°Ñ¼Æ¡A ¨º»ò bash ´N·|¥D°Êªº±N©Ò¦³ªºÅܼƦWºÙ»P¤º®e³q³q¥s¥X¨Ó¡A´N¦n¹³¨Ï¥Î set ¤@¼Ë°Õ¡I ¨º»ò declare ÁÙ¦³¤°»ò»yªk©O¡H¬Ý¬Ý¥ý¡G
    [root@linux ~]# declare [-aixr] variable
    °Ñ¼Æ¡G
    -a  ¡G±N«á­±ªº variable ©w¸q¦¨¬°°}¦C (array)
    -i  ¡G±N«á­±±µªº variable ©w¸q¦¨¬°¾ã¼Æ¼Æ¦r (integer)
    -x  ¡G¥Îªk»P export ¤@¼Ë¡A´N¬O±N«á­±ªº variable Åܦ¨Àô¹ÒÅܼơF
    -r  ¡G±N¤@­Ó variable ªºÅܼƳ]©w¦¨¬° readonly ¡A¸ÓÅܼƤ£¥i³Q§ó§ï¤º®e¡A¤]¤£¯à unset
    ½d¨Ò¡G
    ½d¨Ò¤@¡GÅýÅÜ¼Æ sum ¶i¦æ 100+300+50 ªº¥[Á`µ²ªG
    [root@linux ~]# sum=100+300+50
    [root@linux ~]# echo $sum
    100+300+50  <==«x¡I«ç»ò¨S¦³À°§Ú­pºâ¥[Á`¡H¦]¬°³o¬O¤å¦r«¬ºAªºÅܼÆÄݩʰڡI
    [root@linux ~]# declare -i sum=100+300+50
    [root@linux ~]# echo $sum
    450         <==ÁA¥G¡H¡H
    
    ½d¨Ò¤G¡G±N sum Åܦ¨Àô¹ÒÅܼÆ
    [root@linux ~]# declare -x sum
    
    ½d¨Ò¤T¡GÅý sum Åܦ¨°ßŪÄݩʡA¤£¥i§ó°Ê¡I
    [root@linux ~]# declare -r sum
    [root@linux ~]# sum=tesgting
    -bash: sum: readonly variable  <==¦Ñ¤Ñ·Ý¡ã¤£¯à§ï³o­ÓÅܼƤF¡I
    
    declare ¤]¬O­Ó«Ü¦³¥Îªº¥\¯à¡ã¤×¨ä¬O·í§Ú­Ì»Ý­n¨Ï¥Î¨ì©³¤Uªº°}¦C¥\¯à®É¡A ¥L¤]¥i¥HÀ°§Ú­Ì«Å§i°}¦CªºÄݩʳá¡I¤£¹L¡A¦Ñ¸Ü¤@¥y¡A°}¦C¤]¬O¦b shell script ¤ñ¸û±`¥Îªº°Õ¡I


  • °}¦CÄÝ©Ê array »¡©ú
  • ¬Y¨Ç®É­Ô¡A§Ú­Ì¥²¶·¨Ï¥Î°}¦C¨Ó«Å§i¤@¨ÇÅܼơA³o¦³¤°»ò¦n³B°Ú¡H¦b¤@¯ë¤Hªº¨Ï¥Î¤W¡A ªGµM¬O¬Ý¤£¥X¨Ó¦³¤°»ò¦n³Bªº¡I¤£¹L¡A¦pªG±z´¿¸g¼g¹Lµ{¦¡ªº¸Ü¡A¨º¤~·|¤ñ¸ûÁA¸Ñ°}¦Cªº·N¸q¡ã °}¦C¹ï¼g¼Æ­Èµ{¦¡ªº³]­p®v¨Ó»¡¡A¥i¬O¤£¯à¿ù¹L¾Ç²ßªº­«ÂI¤§¤@­ù¡I¦n¡I¤£Åo­ö¡ã ¨º»ò­n¦p¦ó³]©w°}¦CªºÅܼƻP¤º®e©O¡H¦b bash ¸ÌÀY¡A°}¦Cªº³]©w¤è¦¡¬O¡G
      var[index]=content
    ·N«ä¬O»¡¡A§Ú¦³¤@­Ó°}¦C¦WºÙ¬° var ¡A¦Ó³o­Ó°}¦Cªº¤º®e¬° var[1]=¤p©ú¡A var[2]=¤j©ú¡A var[3]=¦n©ú .... µ¥µ¥¡A¨º­Ó index ´N¬O¤@¨Ç¼Æ¦r°Õ¡A­«ÂI¬O¥Î¤¤¨í¸¹ ([ ]) ¨Ó³]©wªº¡C ¥Ø«e§Ú­Ì bash ´£¨Ñªº¬O¤@ºû°}¦C¡C¦Ñ¹ê»¡¡A¦pªG±z¤£¥²¼g¤@¨Ç½ÆÂøªºµ{¦¡¡A ¨º»ò³o­Ó°}¦Cªº¦a¤è¡A¥i¥H¥ý²¤¹L¡Aµ¥¨ì¦³»Ý­n¦A¨Ó¾Ç²ß§Y¥i¡I¦]¬°­n»s§@¥X°}¦C¡A ³q±`»P°j°é©ÎªÌ¨ä¥L§PÂ_¦¡¥æ¤¬¨Ï¥Î¤~¦³¤ñ¸û°ªªº·N¸q¦s¦b¡I
    ½d¨Ò¡G³]©w¤W­±´£¨ìªº var[1] ¡ã var[3] ªºÅܼơC
    [root@linux ~]# var[1]="small min"
    [root@linux ~]# var[2]="big min"
    [root@linux ~]# var[3]="nice min"
    [root@linux ~]# echo "${var[1]}, ${var[2]}, ${var[3]}"
    
    ¤ñ¸û¦³½ìªº¦a¤è¦b©ó¡yŪ¨ú¡z¡A¤@¯ë¨Ó»¡¡A«ØÄ³ª½±µ¥H ${°}¦C} ªº¤è¦¡¨ÓŪ¨ú¡A ¤ñ¸û¥¿½TµL»~ªº°Õ¡I

    ¤p¼ÐÃDªº¹Ï¥Ü»PÀɮרt²Î¤Îµ{§Çªº­­¨îÃö«Y¡G ulimit
    ·Q¹³¤@­Óª¬ªp¡G§Úªº Linux ¥D¾÷¸Ì­±¦P®Éµn¤J¤F¤Q­Ó¤H¡A³o¤Q­Ó¤H¤£ª¾«ç»ò·dªº¡A ¦P®É¶}±Ò¤F 100 ­ÓÀɮסA¨C­ÓÀɮתº¤j¤p¬ù 10MBytes ¡A½Ð°Ý¤@¤U¡A §Úªº Linux ¥D¾÷ªº°O¾ÐÅé­n¦³¦h¤j¤~°÷¡H 10*100*10 = 10000 MBytes ¡ã¡ã ¦Ñ¤Ñ·Ý¡A³o¼Ë¡A¨t²Î¤£±¾ÂI¤~¦³°­­ù¡I¬°¤F­n¹w¨¾³o­Ó±¡ªpªºµo¥Í¡A©Ò¥H¡A §Ú­Ìªº bash ¬O¥i¥H¡y­­¨î¨Ï¥ÎªÌªº¬Y¨Ç¨t²Î¸ê·½¡zªº¡A¥]¬A¥i¥H¶}±ÒªºÀɮ׼ƶq¡A ¥i¥H¨Ï¥Îªº CPU ®É¶¡¡A¥i¥H¨Ï¥Îªº°O¾ÐÅéÁ`¶qµ¥µ¥¡C¦p¦ó³]©w¡H¥Î ulimit §a¡I
    [root@linux ~]# ulimit [-SHacdflmnpstuv] [°tÃB]
    °Ñ¼Æ¡G
    -H  ¡Ghard limit ¡AÄY®æªº³]©w¡A¥²©w¤£¯à¶W¹L³]©wªº­È¡F
    -S  ¡Gsoft limit ¡Aĵ§iªº³]©w¡A¥i¥H¶W¹L³o­Ó³]©w­È¡A¦ý¬O·|¦³Äµ§i°T®§¡A
          ¨Ã¥B¡AÁÙ¬OµLªk¶W¹L hard limit ªº³á¡I¤]´N¬O»¡¡A°²³]§Úªº soft limit
          ¬° 80 ¡A hard limit ¬° 100 ¡A¨º»ò§Úªº¬Y­Ó¸ê·½¥i¥H¥Î¨ì 90 ¡A
          ¥i¥H¶W¹L 80 ¡AÁÙ¬OµLªk¶W¹L 100 ¡A¦Ó¥B¦b 80~90 ¤§¶¡¡A·|¦³Äµ§i°T®§ªº·N«ä¡C
    -a  ¡G¦C¥X©Ò¦³ªº­­¨îÃB«×¡F
    -c  ¡G¥i«Ø¥ßªº³Ì¤j®Ö¤ßÀÉ®×®e¶q (core files)
    -d  ¡Gµ{§Ç¸ê®Æ¥i¨Ï¥Îªº³Ì¤j®e¶q
    -f  ¡G¦¹ shell ¥i¥H«Ø¥ßªº³Ì¤jÀÉ®×®e¶q (¤@¯ë¥i¯à³]©w¬° 2GB)³æ¦ì¬° Kbytes
    -l  ¡G¥i¥Î©óÂê©w (lock) ªº°O¾ÐÅé¶q
    -p  ¡G¥i¥Î¥HºÞ½u³B²z (pipe) ªº¼Æ¶q
    -t  ¡G¥i¨Ï¥Îªº³Ì¤j CPU ®É¶¡ (³æ¦ì¬°¬í)
    -u  ¡G³æ¤@¨Ï¥ÎªÌ¥i¥H¨Ï¥Îªº³Ì¤jµ{§Ç(process)¼Æ¶q¡C
    ½d¨Ò¡G
    ½d¨Ò¤@¡G¦C¥X©Ò¦³ªº­­¨î¸ê®Æ
    [root@linux ~]# ulimit -a
    
    ½d¨Ò¤G¡G­­¨î¨Ï¥ÎªÌ¶È¯à«Ø¥ß 1MBytes ¥H¤Uªº®e¶qªºÀÉ®×
    [root@linux ~]# ulimit -f 1024
    
    ÁÙ°O±o§Ú­Ì¦b Linux ºÏºÐÀɮרt²Î ¸Ì­±´£¨ì¹L¡A³æ¤@ filesystem ¯à°÷¤ä´©ªº³æ¤@Àɮפj¤p»P block ªº¤j¤p¦³Ãö¡C¨Ò¦p block size ¬° 1024 byte ®É¡A³æ¤@ÀÉ®×¥i¹F 16GB ªº®e¶q¡C¦ý¬O¡A§Ú­Ì¥i¥H¥Î ulimit ¨Ó­­¨î¨Ï¥ÎªÌ¥i¥H«Ø¥ßªºÀɮפj¤p³á¡I §Q¥Î ulimit -f ´N¥i¥H¨Ó³]©w¤F¡I¨Ò¦p¤W­±ªº½d¨Ò¤G¡A­nª`·N³æ¦ì³á¡I³æ¦ì¬O Kbytes¡C ­Y§ï¤Ñ§A¤@ª½µLªk«Ø¥ß¤@­Ó¤j®e¶qªºÀɮסA°O±oÁ@¤@Á@ ulimit ªº¸ê°T³á¡I( ¤£¹L¡A­nª`·Nªº¬O¡A¤@¯ë¨­¥÷¨Ï¥ÎªÌ¦pªG¥H ulimit ³]©w¤F -f ªºÀɮפj¤p¡A ¨º»ò¥L¡y¥u¯à´î¤pÀɮפj¤p¡A¤£¯à¼W¥[Àɮפj¤p³á¡I¡z)

    ¤p¼ÐÃDªº¹Ï¥ÜÃB¥~ªºÅܼƳ]©w¥\¯à
    ­è­è§Ú­Ì´£¨ì¤F¨âºØÅܼƨú¥Îªº¤èªk¡A¤À§O¬O³o¼Ë¡G
    [root@linux ~]# echo $HOME
    [root@linux ~]# echo ${HOME}
    
    ¨º»ò¡A¦b¨º­Ó ${variable} ªº¨Ï¥Î¤èªk¤¤¡A¨ä¹ê¡A§Ú­ÌÁÙ¥i¥H±NÅܼƶi¦æ¤@¨Ç­×­qªº¤u§@³á¡I ¥u­n¥[¤W¤@¨Ç¦r²Å¼Ð»x¡A«á­±¦A±µµÛ¨Ï¥Î¤ñ¹ï¦r¦ê¡A´N¯à°÷­×§ïÅܼƪº¤º®e¤F¡I §Ú­Ì¨ú©³¤Uªº¨Ò¤l¨Ó»¡©ú¡G¦b©³¤Uªº¨Ò¤l¤¤¡A°²³]§ÚªºÅܼƦWºÙ¬° vbird ¡A¥B¤º®e¬° /home/vbird/testing/testing.x.sh¡C
    1. §¹¾ã§e²{ vbird ³o­ÓÅܼƪº¤º®e¡F
    [root@linux ~]# vbird="/home/vbird/testing/testing.x.sh"
    [root@linux ~]# echo ${vbird}
    /home/vbird/testing/testing.x.sh
    
    2. ¦b vbird ÅܼƤ¤¡A±q³Ì«e­±¶}©l¤ñ¹ï¡A­Y¶}ÀY¬° / ¡A«h§R°£¨â­Ó / 
       ¤§¶¡ªº©Ò¦³¸ê®Æ¡A¥ç§Y /*/
    [root@linux ~]# echo ${vbird##/*/}
    testing.x.sh    <==§R°£¤F /home/vbird/testing/
    [root@linux ~]# echo ${vbird#/*/}
    vbird/testing/testing.x.sh   <==¶È§R°£ /home/ ¦Ó¤w
    # ³o¨â­Ó¤p¨Ò¤l¦³½ì¤F¡ãÅܼƦWºÙ«á­±¦pªG±µ¤F¨â­Ó ## ¡Aªí¥Ü¦b ##
    # «á­±ªº¦r¦ê¨ú¡y³Ìªøªº¡z¨º¤@¬q¡F¦pªG¶È¦³¤@­Ó # ¡Aªí¥Ü¨ú¡y³Ì¤pªº¨º¤@¬q¡z³á¡I
    
    3. ©Ó¤WÃD¡A¦pªG¬O±q«á­±¶}©l¡A§R°£ /* ©O¡H
    [root@linux ~]# echo ${vbird%%/*/}
    /home/vbird/testing/testing.x.sh  <==³£¨S³Q§R°£
    [root@linux ~]# echo ${vbird%%/*}
        <==³Q§R°£¥ú¤F¡I
    [root@linux ~]# echo ${vbird%/*}
    /home/vbird/testing   <==¥u§R°£ /testing.x.sh ³¡¤À
    # ³o­Ó¨Ò¤l·í¤¤»Ý­n¯S§Oª`·N¡A¨º­Ó % ¤ñ¹ïªº¬O¡y³Ì«á­±¨º­Ó¦r¤¸¡zªº·N«ä¡A
    # ©Ò¥HÅo¡A²Ä¤@­Ó¤è¦¡·íµM¤£¹ï¡ã¦]¬° vbird ³o­ÓÅܼƪº¤º®e³Ì«á­±¬O h ¦Ó¤£¬O / °Ú¡I
    # ¦Ü©ó %%/* «h¬O§R°£¡y³Ìªøªº¨º­Ó /* ¡z¡A·íµM´N¬O¥þ³¡³á¡I¦Ó %/* «h¬O³Ìµuªº¨º­Ó¡I
    
    4. ±N vbird ÅܼƤ¤ªº testing ¨ú¥N¬° TEST
    [root@linux ~]# echo ${vbird/testing/TEST}
    /home/vbird/TEST/testing.x.sh
    [root@linux ~]# echo ${vbird//testing/TEST}
    /home/vbird/TEST/TEST.x.sh
    # ¦pªGÅܼƫ᭱±µªº¬O / ®É¡A¨º»òªí¥Ü«á­±¬O¶i¦æ¡y¨ú¥N¡zªº¤u§@¡ã¦Ó¥B¶È¨ú¥N¡y²Ä¤@­Ó¡z
    # ¦ý¦pªG¬O // ¡A«hªí¥Ü¥þ³¡ªº¦r¦ê³£¨ú¥N°Ú¡I
    
    ³o¸Ì±zµy·L¯d·N¤@¤U´N¦n¤F¡ã¤Ï¥¿´N¬OÅܼƫ᭱¥i¥H±µ #, ##, %, %%, /, // ¡A ¦Ó¥L­Ì¦s¦bªº·N¸q¨Ã¤£¬Û¦Pªº°Õ¡ã

    ¥t¥~¡A´X­Ó¤£¦PªºÅܼƤº®eÁÙ¥i¥H¶i¦æ§PÂ_©O¡I Á|¨Ò¨Ó»¡¡A¥Ø«e§Ú»Ý­n¥Î¨ì¨â­ÓÅܼơA¤À§O¬O var »P str ¡A ¨º§Ú·Q­n°w¹ï str ³o­ÓÅܼƤº®e¬O§_¦³³]©w¦¨¤@­Ó¦r¦ê¡A¥ç§Y "expr" ¨Ó¨M©w var ªº¤º®e¡C ¨º§Ú¥i¥H¨Ï¥Î¤°»ò¤èªk¨Ó¶i¦æ§PÂ_©O¡H¦pªG±z·|¼g shell script ªº¸Ü¡A ª½±µ¥Î shell script ´N¦n¤F¡A¦pªG¤£·|¼g¡A¨º»ò§Ú­Ì´N³z¹L²³æªºÅܼƧPÂ_§a¡I
    Tips:
    ©³¤Uªº¨Ò¤l·í¤¤¡A¨º­Ó var »P str ¬°ÅܼơA§Ú­Ì·Q­n°w¹ï str ¬O§_¦³³]©w¨Ó¨M©w var ªº­È³á¡I ¤@¯ë¨Ó»¡¡A str: ¥Nªí¡ystr ¨S³]©w©Î¬°ªÅªº¦r¦ê®É¡z¡F¦Ü©ó str «h¶È¬°¡y¨S¦³¸ÓÅܼơz¡C
    ³¾­ôªº¹Ï¥Ü
    ÅܼƳ]©w¤è¦¡str ¨S¦³³]©w str ¬°ªÅ¦r¦êstr ¤w³]©w«D¬°ªÅ¦r¦ê
    var=${str-expr}var=exprvar=var=$str
    var=${str:-expr}var=exprvar=exprvar=$str
    var=${str+expr}var=var=exprvar=expr
    var=${str:+expr}var=var=var=expr
    var=${str=expr}str=expr
    var=expr
    str ¤£ÅÜ
    var=
    str ¤£ÅÜ
    var=$str
    var=${str:=expr}str=expr
    var=expr
    str=expr
    var=expr
    str ¤£ÅÜ
    var=$str
    var=${str?expr}expr ¿é¥X¦Ü stderrvar=var=str
    var=${str:?expr}expr ¿é¥X¦Ü stderrexpr ¿é¥X¦Ü stderrvar=str

    ®Ú¾Ú¤W­±³o±iªí¡A§Ú­Ì¨Ó¶i¦æ´X­Ó½d¨Òªº½m²ß§a¡I ^_^
    ½d¨Ò¤@¡G­Y str ³o­ÓÅܼƤº®e¦s¦b¡A«h var ³]©w¬° str ¡A§_«h var ³]©w¬° "newvar"
    [root@linux ~]# unset str; var=${str-newvar}
    [root@linux ~]# echo var="$var", str="$str"
    var=newvar, str=        <==¦]¬° str ¤£¦s¦b¡A©Ò¥H var ¬° newvar
    [root@linux ~]# str="oldvar"; var=${str-newvar}
    [root@linux ~]# echo var="$var", str="$str"
    var=oldvar, str=oldvar  <==¦]¬° str ¦s¦b¡A©Ò¥H var µ¥©ó str ªº¤º®e
    
    ½d¨Ò¤G¡G­Y str ¤£¦s¦b¡A«h var »P str §¡³]©w¬° newvar¡A§_«h var »P str ¬Û¦P
    [root@linux ~]# unset str; var=${str=newvar}
    [root@linux ~]# echo var="$var", str="$str"
    var=newvar, str=newvar  <==¦]¬° str ¤£¦s¦b¡A©Ò¥H var/str §¡¬° newvar
    [root@linux ~]# str="oldvar"; var=${str=newvar}
    [root@linux ~]# echo var="$var", str="$str"
    var=oldvar, str=oldvar  <==¦]¬° str ¦s¦b¡A©Ò¥H var µ¥©ó str ªº¤º®e
    
    ½d¨Ò¤T¡G­Y str ³o­ÓÅܼƦs¦b¡A«h var µ¥©ó str ¡A§_«h¿é¥X "novar"
    [root@linux ~]# unset str; var=${str?novar}
    -bash: str: novar       <==¦]¬° str ¤£¦s¦b¡A©Ò¥H¿é¥X¿ù»~°T®§ 
    [root@linux ~]# str="oldvar"; var=${str?novar}
    [root@linux ~]# echo var="$var", str="$str"
    var=oldvar, str=oldvar  <==¦]¬° str ¦s¦b¡A©Ò¥H var µ¥©ó str ªº¤º®e
    
    # ¤W­±³o¤T­Ó®×¨Ò³£¨S¦³´£¨ì·í str ¦³³]©w¡A¥B¬°ªÅ¦r¦êªº±¡ªp³á¡I
    # ±z¥i¥H¦Û¦æ´ú¸Õ¤@¤U­ù¡I
    
    ÁöµM²r¤@¬Ý¡Aı±oÅܼƨS¦³¤°»ò©_¯Sªº¦a¤è¡A¦ý¬O¡A¦pªG¥J²ÓÁ@¤@Á@¡A¼K¡I¤@°ïÀô¹ÒÅܼƻP¨t²Î¸ê·½¤è­±ªºÅܼơA ¥i¬O·|¼vÅT¨ì§Ú­Ì¦b bash ¸ÌÀY¬O§_¯à°÷¶¶§Q§@·~ªº©O¡I¨Ò¦p PATH °Ú¡Bulimit ¤§Ãþªº¡ã ©Ò¥H¡A±zÁÙ¬O±o­nÁA¸ÑÅܼƳo­Óª±·N¤~¦æ³á¡I ^_^


    ¤j¼ÐÃDªº¹Ï¥Ü©R¥O§O¦W»P¾ú¥v©R¥O¡G
    §Ú­Ìª¾¹D¦b¦­´Áªº DOS ¦~¥N¡A²M°£¿Ã¹õ¤Wªº¸ê°T¥i¥H¨Ï¥Î cls ¨Ó²M°£¡A¦ý¬O¦b Linux ¸Ì­±¡A §Ú­Ì«h¬O¨Ï¥Î clear ¨Ó²M°£µe­±ªº¡C¨º»ò¥i§_Åý cls µ¥©ó clear ©O¡H¥i¥H°Ú¡I¥ÎÔ£¤èªk¡H link file ÁÙ¬O¤°»òªº¡H§O«æ¡I©³¤U§Ú­Ì¤¶²Ð¤£¥Î link file ªº©R¥O§O¦W¨Ó¹F¦¨¡C¨º»ò¤°»ò¤S¬O¾ú¥v©R¥O¡H ´¿¸g°µ¹LªºÁ|°Ê§Ú­Ì¥i¥H±N¥L°O¿ý¤U¨Ó³á¡I¨º´N¬O¾ú¥v©R¥OÅo¡ã©³¤U¤À§O¨Ó½Í¤@½Í³o¨â­Óª±·N¨à¡C


    ¤p¼ÐÃDªº¹Ï¥Ü©R¥O§O¦W³]©w¡G alias, unalias
    ©R¥O§O¦W¬O¤@­Ó«Ü¦³½ìªºªF¦è¡A¯S§O¬O§AªººD¥Î«ü¥O¯S§Oªøªº®É­Ô¡IÁÙ¦³¡A ¼W³]¹w³]ªºÄݩʦb¤@¨ÇºD¥Îªº«ü¥O¤W­±¡A¥i¥H¹w¨¾¤@¨Ç¤£¤p¤ß»~±þÀɮתº±¡ªpµo¥Íªº®É­Ô¡I Á|­Ó¨Ò¤l¨Ó»¡¡A¦pªG§A­n¬d¸ßÁôÂÃÀÉ¡A¨Ã¥B»Ý­nªøªº¦C¥X»P¤@­¶¤@­¶Â½¬Ý¡A¨º»ò»Ý­n¤U¹F¡y ls -al | more ¡z³o­Ó«ü¥O¡A§Ú¬Oı±o«Ü·Ð°Õ¡I ­n¿é¤J¦n´X­Ó³æ¦r¡I¨º¥i¤£¥i¥H¨Ï¥Î lm ¨Ó²¤Æ©O¡H¡I·íµM¥i¥H¡A§A¥i¥H¦b©R¥O¦C¤U­±¤U¹F¡G
    [root@linux ~]# alias lm='ls -l | more'
    
    ¼K¼K¡I§Ú¥ß¨è¦h¥X¤F¤@­Ó¥i¥H°õ¦æªº«ü¥O³á¡I³o­Ó«ü¥O¦WºÙ¬° lm ¡A¥B¨ä¹ê¥L¬O°õ¦æ ls -al | more °Ú¡I¯u¬O¤è«K¡C¤£¹L¡A ­nª`·Nªº¬O¡G¡yalias ªº©w¸q³W«h»PÅܼƩw¸q³W«h´X¥G¬Û¦P¡z¡A ©Ò¥H§A¥u­n¦b alias «á­±¥[¤W§Aªº {¡y§O¦W¡z='«ü¥O °Ñ¼Æ' }¡A ¥H«á§A¥u­n¿é¤J lm ´N¬Û·í©ó¿é¤J¤F ls -al|more ³o¤@¦ê«ü¥O¡I«Ü¤è«K§a¡I

    ¥t¥~¡A©R¥O§O¦Wªº³]©wÁÙ¥i¥H¨ú¥N¬J¦³ªº«ü¥O³á¡IÁ|¨Ò¨Ó»¡¡A§Ú­Ìª¾¹D root ¥i¥H²¾°£( rm )¥ô¦ó¸ê®Æ¡I©Ò¥H·í§A¥H root ªº¨­¥÷¦b¶i¦æ¤u§@®É¡A»Ý­n¯S§O¤p¤ß¡A ¦ý¬OÁ`¦³¥¢¤âªº®É­Ô¡A¨º»ò rm ´£¨Ñ¤F¤@­Ó°Ñ¼Æ¨ÓÅý§Ú­Ì½T»{¬O§_­n²¾°£¸ÓÀɮסA¨º´N¬O -i ³o­Ó°Ñ¼Æ¡I©Ò¥H¡A§A¥i¥H³o¼Ë°µ¡G
    [root@linux ~]# alias rm='rm -i'
    
    ¼K¼K¡I¨º»ò¥H«á¨Ï¥Î rm ªº®É­Ô¡A´N¤£¥Î¤Ó¾á¤ß·|¦³¿ù»~§R°£ªº±¡ªp¤F¡I³o¤]¬O©R¥O§O¦WªºÀuÂIÅo¡I ¨º»ò¦p¦óª¾¹D¥Ø«e¦³­þ¨Çªº©R¥O§O¦W©O¡H´N¨Ï¥Î alias §r¡I
    [root@linux ~]# alias
    alias l.='ls -d .* --color=tty'
    alias ll='ls -l --color=tty'
    alias lm='ls -al | more'
    alias ls='ls --color=tty'
    alias vi='vim'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    
    ¥Ñ¤W­±ªº¸ê®Æ·í¤¤¡A±z¤]·|µo²{¤@¥ó¨Æ±¡°Ú¡A§Ú­Ì¦b vi ¤å®Ñ½s¿è¾¹ ¸Ì­±´£¨ì vi »P vim ¬O¤£¤Ó¤@¼Ëªº¡A vi ¬O¤ñ¸û¦Ñ¡A¦Ó vim ¥i¥H¥Î¨Ó¨ú¥N vi ³á¡C§Ú­Ìªº FC4 ©ú©ú´N¦P®É¦³ vi/vim ¡A ¬°¦ó§Ú°õ¦æ vi ·|¬O¶i¤J vim ©O¡H¨þ¨þ¡I¨º´N¬O¦]¬°¤W­±ªºªí®æ·í¤¤ªº¡y alias vi='vim' ¡z³o­Ó³]©w°Õ¡I ¦Ü©ó¦pªG­n¨ú®ø©R¥O§O¦Wªº¸Ü¡A¨º»ò´N¨Ï¥Î unalias §a¡I¨Ò¦p­n±N­è­èªº lm ©R¥O§O¦W®³±¼¡A´N¨Ï¥Î¡G
    [root@linux ~]# unalias lm
    
    ¨º»ò©R¥O§O¦W»PÅܼƦ³¤°»ò¤£¦P©O¡H°ò¥»¤W¡A¥L­Ìªº·N¸q´N¤£¤Ó¤@¼Ë¤F¡I alias ³oºØ©R¥O§O¦W¡A§A¥i¥H±N¥L·Q¦¨¬O«Ø¥ß¤@­Ó·sªº«ü¥O¦WºÙ¡A ¦Ü©óÅܼƫh¶È¬O±N¤@­Ó¼Æ­È©ÎªÌ¦r¦ê¦s¦b¬Y­Ó¥Nªí·N¸q·í¤¤¡IÁ|­Ó¨Ò¤l¦n¤F¡A§Ú­Ìª¾¹D¥H«eªº DOS ¦~¥N¡A¦C¥X¥Ø¿ý»PÀÉ®×´N¬O dir ¡A¦Ó²M°£¿Ã¹õ´N¬O cls ¡A¨º»ò¦pªG§Ú·Q­n¦b linux ¸Ì­±¤]¨Ï¥Î¬Û¦Pªº«ü¥O©O¡H¨º´N¥H alias ¨Ó¶i¦æ«ü¥Oªº§O¦W³]©w¡G
      alias cls='clear'
      alias dir='ls -l'
    ¡@ ¥u­n¥[¤J³o¨â¦æ¡A¥H«á§A¿é¤J cls ¤Î dir ´N¥i¥H°õ¦æ¤F¡I«Ü¤è«K§a¡I


    ¤p¼ÐÃDªº¹Ï¥Ü¾ú¥v©R¥O¡Ghistory
    «e­±§Ú­Ì´£¹L bash ¦³´£¨Ñ«ü¥O¾ú¥vªºªA°È¡I¨º»ò¦p¦ó¬d¸ß§Ú­Ì´¿¸g¤U¹F¹Lªº«ü¥O©O¡H´N¨Ï¥Î history Åo¡I·íµM¡A¦pªGı±o histsory ­n¿é¤Jªº¦r¤¸¤Ó¦h¤Ó³Â·Ð¡A¥i¥H¨Ï¥Î©R¥O§O¦W¨Ó³]©w©O¡I ¤£­n¸ò§Ú»¡ÁÙ¤£·|³]©wËç¡I ^_^
      alias h='history'
    ¦p¦¹«h¿é¤J h µ¥©ó¿é¤J history Åo¡I¦n¤F¡A§Ú­Ì¨Ó½Í¤@½Í history ªº¥Îªk§a¡I
    [root@linux ~]# history [n]
    [root@linux ~]# history [-c]
    [root@linux ~]# history [-raw] histfiles
    °Ñ¼Æ¡G
    n   ¡G¼Æ¦r¡A·N«ä¬O¡y­n¦C¥X³Ìªñªº n µ§©R¥O¦Cªí¡zªº·N«ä¡I
    -c  ¡G±N¥Ø«eªº shell ¤¤ªº©Ò¦³ history ¤º®e¥þ³¡®ø°£
    -a  ¡G±N¥Ø«e·s¼Wªº history «ü¥O·s¼W¤J histfiles ¤¤¡A­Y¨S¦³¥[ histfiles ¡A
          «h¹w³]¼g¤J ~/.bash_history
    -r  ¡G±N histfiles ªº¤º®eŪ¨ì¥Ø«e³o­Ó shell ªº history °O¾Ð¤¤¡F
    -w  ¡G±N¥Ø«eªº history °O¾Ð¤º®e¼g¤J histfiles ¤¤¡I
    ½d¨Ò¡G
    ½d¨Ò¤@¡G¦C¥X¥Ø«e°O¾ÐÅ餺ªº©Ò¦³ history °O¾Ð
    [root@linux ~]# history
    # «e­±¬Ù²¤
     1017  man bash
     1018  ll
     1019  history 
     1020  history
    # ¦C¥Xªº¸ê°T·í¤¤¡A¦@¤À¨âÄæ¡A²Ä¤@Äæ¬°¸Ó«ü¥O¦b³o­Ó shell ·í¤¤ªº¥N½X¡A
    # ¥t¤@­Ó«h¬O«ü¥O¥»¨­ªº¤º®e³á¡I¦Ü©ó·|¨q¥X´Xµ§«ü¥O°O¿ý¡A«h»P HISTSIZE ¦³Ãö¡I
    
    ½d¨Ò¤G¡G¦C¥X¥Ø«e³Ìªñªº 3 µ§¸ê®Æ
    [root@linux ~]# history 3
     1019  history 
     1020  history
     1021  history 3
    
    ½d¨Ò¤T¡G¥ß¨è±N¥Ø«eªº¸ê®Æ¼g¤J histfile ·í¤¤
    [root@linux ~]# history -w
    # ¦b¹w³]ªº±¡ªp¤U¡A·|±N¾ú¥v¬ö¿ý¼g¤J ~/.bash_history ·í¤¤¡I
    [root@linux ~]# echo $HISTSIZE
    1000
    
    ¦b¥¿±`ªº±¡ªp¤U¡A·í§Ú­Ì¥H bash µn¤J Linux ¥D¾÷¤§«á¡A¨t²Î·|¥D°Êªº¥Ñ®a¥Ø¿ýªº ~/.bash_history Ū¨ú¥H«e´¿¸g¤U¹Lªº«ü¥O¡A¨º»ò ~/.bash_history ·|°O¿ý´Xµ§¸ê®Æ©O¡H³o´N»P§A bash ªº HISTSIZE ³o­ÓÅܼƳ]©w­È¦³Ãö¤F¡I¦b¹w³]ªº FC4 ©³¤U¡A¬O·|°O¿ý 1000 µ§¸ê®Æªº¡I ¨º»ò°²³]§Ú³o¦¸µn¤J¥D¾÷«á¡A¦@¤U¹F¹L 100 ¦¸«ü¥O¡A¡yµ¥§Úµn¥X®É¡A ¨t²Î´N·|±N 101~1100 ³oÁ`¦@ 1000 µ§¾ú¥v©R¥O§ó·s¨ì ~/.bash_history ·í¤¤¡C¡z ¤]´N¬O»¡¡A¾ú¥v©R¥O¦b§Úµn¥X®É¡A·|±N³Ìªñªº HISTSIZE µ§°O¿ý¨ì§Úªº¬ö¿ýÀÉ·í¤¤°Õ¡I ·íµM¡A¤]¥i¥H¥Î history -w ±j¨î¥ß¨è¼g¤Jªº¡I¨º¬°¦ó¥Î¡y§ó·s¡z¨â­Ó¦r©O¡H ¦]¬° ~/.bash_history °O¿ýªºµ§¼Æ¥Ã»·³£¬O HISTSIZE ¨º»ò¦h¡Aªº°T®§·|³Q¥D°Êªº®³±¼¡I ¶È«O¯d³Ì·sªº¡I

    ¨º»ò history ³o­Ó¾ú¥v©R¥O¥u¥i¥HÅý§Ú¬d¸ß©R¥O¦Ó¤w¶Ü¡H¨þ¨þ¡I·íµM¤£¤î°Ú¡I §Ú­Ì¥i¥H§Q¥Î¬ÛÃöªº¥\¯à¨ÓÀ°§Ú­Ì°õ¦æ©R¥O©O¡IÁ|¨Ò¨Ó»¡Åo¡G
    [root@linux ~]# !number
    [root@linux ~]# !command
    [root@linux ~]# !!
    °Ñ¼Æ¡G
    number  ¡G°õ¦æ²Ä´Xµ§«ü¥Oªº·N«ä¡F
    command ¡G¥Ñ³Ìªñªº«ü¥O¦V«e·j´M¡y«ü¥O¦ê¶}ÀY¬° command¡zªº¨º­Ó«ü¥O¡A¨Ã°õ¦æ¡F
    !!      ¡G´N¬O°õ¦æ¤W¤@­Ó«ü¥O(¬Û·í©ó«ö¡ô«öÁä«á¡A«ö Enter)
    ½d¨Ò¡G
    [root@linux ~]# history
       66  man rm
       67  alias
       68  man history
       69  history 
    [root@linux ~]# !66  <==°õ¦æ²Ä 66 µ§«ü¥O
    [root@linux ~]# !!   <==°õ¦æ¤W¤@­Ó«ü¥O¡A¥»¨Ò¤¤¥ç§Y !66 
    [root@linux ~]# !al  <==°õ¦æ³Ìªñ¥H al ¬°¶}ÀYªº«ü¥O(¤WÀY¦C¥Xªº²Ä 67 ­Ó)
    
    ¸g¹L¤W­±ªº¤¶²Ð¡AÁA¥G¡H¾ú¥v©R¥O¥Îªk¥i¦h¤F¡I¦pªG§Ú·Q­n°õ¦æ¤W¤@­Ó«ü¥O¡A °£¤F¨Ï¥Î¤W¤UÁ䤧¥~¡A§Ú¥i¥Hª½±µ¥H¡y !! ¡z ¨Ó¤U¹F¤W­Ó«ü¥Oªº¤º®e¡A¦¹¥~¡A §Ú¤]¥i¥Hª½±µ¿ï¾Ü¤U¹F²Ä n ­Ó«ü¥O¡A¡y !n ¡z¨Ó°õ¦æ¡A¤]¥i¥H¨Ï¥Î«ü¥O¼ÐÀY¡A¨Ò¦p ¡y !vi ¡z¨Ó°õ¦æ³Ìªñ«ü¥O¶}ÀY¬O vi ªº«ü¥O¦C¡I¬Û·íªº¤è«K¦Ó¦n¥Î¡I°ò¥»¤W history ªº¥Î³~«Ü¤jªº¡I¦ý¬O»Ý­n¤p¤ß¦w¥þªº°ÝÃD¡I¤×¨ä¬O root ªº¾ú¥v¬ö¿ýÀɮסA³o¬O Cracker ªº³Ì·R¡I¦]¬°¤£¤p¤ßªº root ·|±N«Ü¦hªº­«­n¸ê®Æ¦b°õ¦æªº¹Lµ{¤¤·|³Q¬ö¿ý¦b ~/.bash_history ·í¤¤¡A¦pªG³o­ÓÀɮ׳Q¸ÑªRªº¸Ü¡A«áªG¤£³ô§o¡IµL½×¦p¦ó¡A¨Ï¥Î history °t¦X¡y ! ¡z´¿¸g¨Ï¥Î¹Lªº«ü¥O¤U¹F¬O«Ü¦³®Ä²vªº¤@­Ó«ü¥O¤èªk¡I

    ¤j¼ÐÃDªº¹Ï¥ÜBash Shell ¨Ï¥ÎÀô¹Ò¡G
    ¬O§_°O±o§Ú­Ìµn¤J¥D¾÷ªº®É­Ô¡A¿Ã¹õ¤WÀY·|¦³¤@¨Ç»¡©ú¤å¦r¡A§iª¾§Ú­Ìªº Linux ª©¥»°Ú¤°»òªº¡A ÁÙ¦³¡Aµn¤Jªº®É­Ô¡A§Ú­ÌÁÙ¥i¥Hµ¹¤©¨Ï¥ÎªÌ¤@¨Ç°T®§©ÎªÌÅwªï¤å¦r©O¡C¦¹¥~¡A §Ú­Ì²ßºDªºÀô¹ÒÅܼơB©R¥O§O¦Wµ¥µ¥ªº¡A¬O§_¥i¥Hµn¤J´N¥D°ÊªºÀ°§Ú³]©w¦n¡H ³o¨Ç³£¬O»Ý­n¨Óª`·Nªº¡C¥t¥~¡A³o¨Ç³]©w­È¤S¥i¥H¤À¬°¨t²Î¾ãÅé³]©w­È»P¦U¤H³ß¦n³]©w­È¡A ¶È¬O¤@¨ÇÀɮשñ¸mªº¦aÂI¤£¦P°Õ¡I³o§Ú­Ì«á­±¤]·|¨Ó½Í¤@½Íªº¡I


    ¤p¼ÐÃDªº¹Ï¥Üµ´¹ï¸ô®|»P¬Û¹ï¸ô®|
    ³o­ÓijÃD»¡¨ì§Ö­nÄê±¼¤F¡ã±q¤@¶}©l¨ì²{¦b¡A³o­Óµ´¹ï¸ô®|»P¬Û¹ï¸ô®|ªº°ÝÃD§Ú­Ì´N´£¨ì¤£ª¾¹D¦h¤Ö¦¸¤F¡A ¦]¬°¥L¹ê¦b«Ü­«­n¡ã³o»P PATH ³o­ÓÅܼÆÃö«Y«Ü¤j¡I¦Ñ¹ê»¡¡A ¸U¤@§Aªº PATH ¨S¦³³]©w§¹¾ãªº®É­Ô¡A¤U¹F«ü¥O´N¥²¶·­n¥H¡y ¤@ªø¦Cªº«ü¥O³s±a®Ú¥Ø¿ý³£­n¦C¥X¨Ó ¡z¡A¨þ¨þ¨º´N¬Oµ´¹ï¸ô®|ªº³]©wªk°Õ¡I °ò¥»¤W¡A³o­Ó¡y µ´¹ï¸ô®|¡z»P¡y¬Û¹ï¸ô®| ¡zªºÆ[©À¬O«Ü­«­nªº¡I§_«h§A±N±`±`·|§ä¤£¨ìÀÉ®×»¡¡I ©Ò¿×ªº¡yµ´¹ï¸ô®|¡z´N¬O¥H®Ú¥Ø¿ý¶}©l¼g¤J¨ìÀɮתº¤@ºØ©R¥O¼g©w¤èªk¡AÁ|¨Ò¨Ó»¡¡A§Ú¥Ø«e¦b /home/test ³o­Ó test ¨Ï¥ÎªÌªº®a¥Ø¿ý¤¤¡A§Ú·Q­n¬Ý¬Ý¸Ì­±ªº .bashrc ³o­ÓÀɮתº¸ê®Æ¡A¨Ï¥Îªº¬O more ³o­Ó«ü¥O¡A¦Ó³o­Ó«ü¥O¦b /bin/more ·í¤¤¡A«h¥¿½Tªº¤U¹F«ü¥Oªº¤èªk¬°¡G
    [root@linux ~]# /bin/more .bashrc
    
    §Ú¦bªº¥Ø¿ý¬° /home/test ¡I³o¬Oµ´¹ï¸ô®|¼gªk¡I ¦Ó¦pªG§AÁÙ°O±o§Ú­Ì¦b Linux ÀÉ®×»P¥Ø¿ýºÞ²z ¨º¤@½g¤å³¹¤¤´£¨ìªºÆ[©Àªº¸Ü¡A¨º»òÀ³¸Ó°O±o¨Ï¥Î ls -al ®É·|¥X²{¨â­Ó¤@©w¦s¦bªº¥Ø¿ý¡A¤À§O¬O¡y.¡z»P¡y..¡z¡A¤À§O¥Nªí¬O¡y³o­Ó¸ô®|¡z¡A»P¡y¤W¤@¼h¸ô®|¡z¡I
    [root@linux ~]# ls -al
    drwxrwxr-x  2 root  root   4096  Aug 15 11:05 .
    drwxrwxr-x  2 root  root   4096  Aug 14 23:26 ..
    
    ©Ò¥H»¡¡A­n°õ¦æ¤W¤@¼h¥Ø¿ý¤¤ªº©R¥O¡A¥i¥H¤U¹F¡y../command ¡z¨º­Ó command «üªº¬O¦s¦bªº¥i°õ¦æÀÉ¡I¨º»ò§Ú¦]¬°¦b /home/test ¸Ì­±¡A¶ZÂ÷ /bin ¦³¨â¼h¤W¼h¥Ø¿ý¡A©Ò¥H§Ú­n¨Ï¥Î /bin/more ³o­Ó°õ¦æÀÉ¡A¨Ã¥B¨Ï¥Î¬Û¹ï¸ô®|ªº¤èªk¡A´N¥²¶·¨Ï¥Î¡G
    [root@linux ~]# ../../bin/more .bashrc
    
    ³oºØ¬Û¹ï¸ô®|ªº¤èªk¬Û·í¼sªxªº³Q¹B¥Î©ó script ·í¤¤¡A³o¬O¦]¬°¦p«e­±´£¨ìªº¡A ¨C­Ó¤Hªº¦w¸Ë¹w³]ªº¥Ø¿ý³£¤£¬Û¦P¡A«h¨Ï¥Î¬Û¹ï¸ô®|ªº¸Ü¡A «Ü®e©ö´N¥i¥H§ä¨ì®M¥ó¤§¶¡¬Û¨Ì³nÅé©ÎªÌ¬O³]©wÀɮתº¬ÛÃö©Ê¡I

    ¨ÒÃD¡GÃö©ó¸ô®|·j´Mªº°ÝÃD¡I¬°¦ó¤£°õ¦æ¥Ø«e©Ò¦b¥Ø¿ý¤UªºÀɮסH
    榭G
      «x¡I­è­è¤£¬O´£¨ì¡y.¡z»P¡y..¡z¶Ü¡H¨º»ò¨º­Ó¡y . ¡z¬O·F¹À¥Îªº¡H¡I²´¦yªºªB¤ÍÀ³¸Ó¤w¸gµo²{¤F¡A ´N¬O¡y§Ú¦b°õ¦æÀɮתº®É­Ô¡A°ò¥»¤W¡A¨Ã¤£·|¥D°Ê·j´M¥Ø«e¥Ø¿ý¤UªºÀɮסzÁ|­Ó¨Ò¤l¨Ó»¡¡A §Ú¦w¸Ëªº squid ³o­Ó°õ¦æÀɦb /usr/local/squid/bin/squid ³o­ÓÀɮסAµM¦Ó§Ú¦b /usr/local/squid/bin ¤U¹F squid ªº®É­Ô¡A¨t²Î·|§i¶D§A¡y¬d¤£¨ì³o­ÓÀɮסI¡z¯u¬O¨£°­¤F¡I ©ú©ú¦³³o­ÓÀɮתº§r¡I³o¬O¦]¬°¨t²Î¹w³]ªº PATH (¸ô®|) ¨Ã¨S¦³°õ¦æ¥Ø«e¥Ø¿ý¤Uªº³]©w¡A¤]´N¬O¡y.¡z³o­Ó¸ô®|¡I§A¥i¥H¨Ï¥Î¡y echo $PATH ¡z¬Ý¬Ý¡A´N¥i¥Hª¾¹D¬°¤°»ò¤F¡I

      ¨º»ò¬°¦ó¤£­n³]©w³o­Ó¸ô®|©O¡H³o¬O¦]¬°¡y ¦w¥þ¡zªº¦Ò¶q¡C¥Ñ©ó¨t²Î¹w³]¬O¤¹³\¥ô¦ó¤H¦b /tmp ©³¤U¼g¤J¥ô¦óÀɮתº¡A¨º»ò¸U¤@¦³©~¤ß¤£¨}ªº¨Ï¥ÎªÌ©ÎªÌ¬O Cracker ¤J«I§Aªº¹q¸£¡A¨Ã¦b§Aªº /tmp ¸ÌÀY®I¤F¤@­Ó¤p¤ì°¨¡A¨Ã¨ú¦W¬° ls ¡A¦n¤F¡A§ï¤Ñ§A¥H root ¨­¥÷µn¤J«á¡A¨ì /tmp ©³¤U¡A¨Ã°õ¦æ ls ¡A§A¬Ý·|¦³¤°»òµ²ªG¡H¡I³o­Ó /tmp/ls ¥Ñ¨ä¥L¨­¥÷ªº¤H¨Ó°õ¦æ©Î³\¨S¦³°ÝÃD¡A¦ý¬O¥Ñ root ¨Ó°õ¦æ«o¥i¯à·|¾É­P Cracker ©Ò¼Ö·N¨£¨ìªºµ²ªG¡I¨º¾å±o¬°¦ó¤F§a¡H¡I

      ·íµMÅo¡I±zÁÙ¬O¥i¥H¿ï¾Ü¦b ~/.bashrc ·í¤¤³]©w§Aªº . ¦b§Aªº PATH ·í¤¤¡A¤£¹L¨Ã¤£³o»ò«ØÄ³´N¬O¤F¡I

    ¦n¤F¡A¥Ñ©ó¨t²Î¹w³]¨Ã¤£¥D°Ê·j´M¥Ø«e¥Ø¿ý¤Uªº°õ¦æÀÉ¡A¨º»ò§AÀ³¸Ó¦p¦ó°õ¦æ¡y¥Ø«e¥Ø¿ý¤Uªº°õ¦æÀÉ¡z©O¡H «Ü²³æ§r¡I´N¬O¥H¬Û¹ï¸ô®|ªºÆ[©À¡A¥Ñ©ó¡y .. ¡z¬O¤W¼h¡A¦Ó¡y . ¡z¬O³o¤@¼h¡A©Ò¥H­n°õ¦æ³o¤@¼h¥Ø¿ýªº©R¥O´N¨Ï¥Î¡y ./command ¡z§Y¥i¡I¨Ò¦p§Aªº /usr/local/squid/bin ©³¤U°õ¦æ squid «h¥i¥H¼g¦¨¡G
    [root@linux ~]# ./squid
    
    ½Ð¯S§O¯d·N³o¤è­±ªº°ÝÃD¡I¡y·s¤â¯S§O®e©ö¥Ç³o­Ó¿ù»~©O¡I¡z


    ¤p¼ÐÃDªº¹Ï¥Üµn¿ý°T®§Åã¥Ü¸ê®Æ¡G /etc/issue, /etc/motd
    ÁÙ°O±o§Ú­Ì¦b²×ºÝ¾÷¤¶­± (tty1 ~ tty6) µn¤Jªº®É­Ô¡A·|¦³´X¦æ´£¥Üªº¦r¦ê¶Ü¡H ¨º­Ó¦r¦ê¼g¦b­þ¸Ì°Ú¡H¨þ¨þ¡I¦b /etc/issue ¸Ì­±°Ú¡I¥ý¨Ó¬Ý¬Ý¡G
    [root@linux ~]# cat /etc/issue
    Fedora Core release 4 (Stentz)
    Kernel \r on an \m
    
    
    ¦b FC4 ¸Ì­±¹w³]¦³¤T¦æ¡A³o­Ó¦b§Ú­Ì¥»¾÷µn¤J®É´N·|Åã¥Ü¦b title ªº¦a¤è©O¡ã «x¡I¨º»ò¨º­Ó \r ¤Î \m ¬OÔ£¡H±z¥i¥H¨Ï¥Î man issue °t¦X man mingetty ´N¯à°÷ª¾¹D¡G

    issue ¤ºªº¦U¥N½X·N¸q
    \d ¥»¦aºÝ®É¶¡ªº¤é´Á¡F
    \l Åã¥Ü²Ä´X­Ó²×ºÝ¾÷¤¶­±¡F
    \m Åã¥ÜµwÅ骺µ¥¯Å (i386/i486/i586/i686...)¡F
    \n Åã¥Ü¥D¾÷ªººô¸ô¦WºÙ¡F
    \o Åã¥Ü domain name¡F
    \r §@·~¨t²Îªºª©¥» (¬Û·í©ó uname -r)
    \t Åã¥Ü¥»¦aºÝ®É¶¡ªº®É¶¡¡F
    \s §@·~¨t²Îªº¦WºÙ¡F
    \v §@·~¨t²Îªºª©¥»¡C

    ©Ò¥H¡A¦pªG±z·Q­nÅã¥Ü²×ºÝ¾÷ªº¸¹½X¡A´N¥i¥H¥[¤W \l ¦b /etc/issue ÀɮפºÅo¡ã´N¯à°÷­×§ïµn¤J¦r¤¸¡C «x¡I¦ý¬OÁÙ¦³­Ó /etc/issue.net ©O¡I³o¬OÔ£¡H¨SÔ£°Õ¡I³o­Ó¬O´£¨Ñµ¹ telnet ³o­Ó»·ºÝµn¤Jµ{¦¡¥Îªº¡C ·í§Ú­Ì¨Ï¥Î telnet ³s±µ¨ì¥D¾÷®É¡A¥D¾÷ªºµn¤Jµe­±´N·|Åã¥Ü /etc/issue.net ¦Ó¤£¬O /etc/issue ©O¡I

    ¦Ü©ó¦pªG±z·Q­nÅý¨Ï¥ÎªÌµn¤J«á¨ú±o¤@¨Ç°T®§¡A¨Ò¦p±z·Q­nÅý¤j®a³£ª¾¹Dªº°T®§¡A ¨º»ò¥i¥H±N°T®§¥[¤J /etc/motd ¸Ì­±¥h¡I¨Ò¦p¡G·íµn¤J«á¡A§i¶Dµn¤JªÌ¡A ¨t²Î±N·|¦b¬Y­Ó©T©w®É¶¡¶i¦æºûÅ@¤u§@¡A¥i¥H³o¼Ë°µ¡G
    [root@linux ~]# vi /etc/motd
    Hello everyone,
    Our server will be maintained at 2005/10/10 0:00 ~ 24:00.
    Please don't login at that time. ^_^
    
    ¨º»ò·í§Aªº¨Ï¥ÎªÌµn¤J¥D¾÷«á¡A´N·|Åã¥Ü³o¼Ëªº°T®§¥X¨Ó¡G
    Last login: Mon Aug 15 10:17:10 2005 from 127.0.0.1
    Hello everyone,
    Our server will be maintained at 2005/10/10 0:00 ~ 24:00.
    Please don't login at that time. ^_^
    
    ¬O§_«Ü¤è«K°Ú¡I¡H ^_^


    ¤p¼ÐÃDªº¹Ï¥ÜÀô¹Ò³]©wÀÉ¡G bashrc, ~/.bashrc, ~/.profile, profile...,/etc/inputrc, source
    Ãö©ó¨ú±o bash ªºÀô¹ÒÅܼƵ¥¸ê®Æ¡A¨ä¹ê¥i¥H¦³¨t²Î³W¹º»P¦U¤H³ß¦n¡A ¤@¯ë¨Ó»¡¡A«ØÄ³¨Ï¥ÎªÌª½±µ­×§ï­Ó¤H³]©w­È§Y¥i¡A¤£»Ý­n§ó°Ê¨ì¨t²Î°Õ¡ã ©³¤U§Ú­Ì¤À§O¨Ó½Í¤@½Í´X­Ó¦³½ìªº³]©wÀɳá¡I­nª`·Nªº¬O¡A¦b«ü¥O¦C¿é¤JªºÅܼƤ]¦n¡B©R¥O§O¦W¤]½}¡A ³£¬O°w¹ï¸Ó¦¸µn¤Jªº³]©w¦Ó¤w¡A©Ò¥H¥u­n±z¤@µn¥X¡A¨º»ò¤W¦¸ªº³]©w­È´N·|¤£¨£¥h¡I ¦]¦¹¡A§Ú­Ì»Ý­n¦³´X­ÓÀɮרÓÀ°§U§Ú­Ì¡A¨C¦¸µn¤Jªº®É­Ô¡A´N¤w¸gÀ°§Ú­Ì·d©w¤FÀô¹Òªº³]©wÅo¡I


  • ¨t²Î³]©w­È
  • ©Ò¿×ªº¨t²Î³]©w­È¡A¤]´N¬O»¡¨C­Ó¨Ï¥ÎªÌ¶i¤J¨ì bash shell ¤§«á¡A·|¥ýŪ¨úªº³]©wÀɮסI ¹w³]ªº³]©wÀɮצ³¤U¦C´X­Ó¡G

  • /etc/sysconfig/i18n
  • °O±o§Ú­Ì¦b´X­Ó­«­nÅܼƤº½Í¨ìªº»y¨t¸ê®Æ¶Ü¡H¡I ¨º­Ó»y¨t¬O¥Ñ i18n ©ÒºûÅ@ªº¡A¦Ó FC4 ¹w³]ªº¨t²Î»y¨t³]©wÀÉ´N¦b /etc/sysconfig/i18n ·í¤¤¡C ³o­ÓÀɮצ³ÂI¹³³o¼Ë¡G
    [root@linux ~]# cat /etc/sysconfig/i18n
    LANG="zh_TW.UTF-8"
    SYSFONT="latarcyrheb-sun16"
    SUPPORTED="zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8"
    
    §Ú¹w³]¨Ï¥Î zh_TW.UTF-8 ¨Ó§@¬°§Úªº¾ãÅé»y¨t¡A·íµM¡A§Ú¥i¥H¦b³o¸Ì­×§ï LANG ¥H¤Î¨ä¥L¬ÛÃöªº»y¨tÅܼơA ¨Ò¦p LC_CTYPE ©ÎªÌ¬O LC_TIME µ¥µ¥ªº¡C¤£¹L¡A¤@¯ë¨Ó»¡¡A¨Ï¥ÎªÌ¦Û¤v­Ó¤Hªº³]©w¤£«ØÄ³¦b³o¸Ì°µ§ó°Ê°Õ¡I ¥L­Ì¥i¥H¦Û¦æ³]©w¥L­Ì¦Û¤vªº³]©wÀɰڡI

  • /etc/profile
  • ³o­ÓÀɮ׳]©w¤F´X­Ó­«­nªºÅܼơA¨Ò¦p¡G¡yPATH¡BUSER¡BMAIL¡B HOSTNAME¡BHISTSIZE¡Bumask¡zµ¥µ¥¡A¤]¦P®É³W¹º¥X /etc/inputrc ³o­Ó°w¹ïÁä½L¼ö«Ø³]©wªºÀɮתº¸ê®Æ¤º®e¡C§A¥i¥H¦b³o¸Ì³]©wÁ`Å骺 PATH µ¥µ¥ªº¸ê°T¡I ¦P®É¡A³o­ÓÀɮפ]³W¹º¥X /etc/profile.d ¤Î /etc/inputrc ³o¨â­Ó¥Ø¿ý»PÀɮסI

    Á`¤§¡A§A¥i¥HÁA¸Ñ¨ì­è­è§Ú­Ì¾Ç·|ªºÅܼƳ]©w¤è¦¡¡A¦b³o­ÓÀɮפ¤¤]¥i¥H³]©w©O¡I ¦ý¬O³]©w¤W»Ý­n¯S§O¤p¤ß¡A¦]¬°©Ò¦³ªº¨Ï¥ÎªÌ¬Ò·|¨Ï¥Î¨ì³o­ÓÀɮתº¸ê°T¡C³q±`§Ú³£³ßÅw±N /usr/local/bin ³o­Ó¸ô®|¥[¦¨³Ì«e­±¡A³o¬O¦]¬°³q±`¦Û¤v¦w¸Ëªº®M¥ó¦Û¤v³Ì³ßÅw¡A ©Ò¥H·íµM¬O³Ì¥ý·j´MÅo¡I ^_^¡I¦¹¥~¡A½Ðª`·N¤@¤U¡A¥i¥H±N HISTSIZE ªº¤j¤p§ïÅܤ@¤U¡A§ï¦¨ 50 ´N¥i¥H°Õ¡I¤ñ¸û¦w¥þ¡I( µù¡G³o­ÓÀɮפ£½×¦b¨º­Ó Linux distributions ·í¤¤§¡¦s¦b /etc/profile ·í¤¤¡A©Ò¥H¡A½Ð¯S§O¯d·N¦¹¤@ÀÉ®×§Y¥i¡I )¡C

  • /etc/bashrc
  • ³o­ÓÀɮצb³W¹º umask ªº¥\¯à¡A¤]¦P®É³W¹º¥X´£¥Ü¦r¤¸ªº¤º®e (´N¬O¸ÌÀY¨º­Ó PS1 °Õ¡I) ¡C¯S§O¯d·Nªº¬O¡A³o­ÓÀɮצb¤£¦Pªº Linux distribution ¸Ì­±¡AÂ\©ñªº¦ì¸m¥i¯à¤£¤Ó¤@¼Ë©O¡I ©Ò¥H»Ý­n¬d¸ß¤@¤U¤~¦æËç¡I

  • /etc/profile.d/*.sh
  • /etc/profile.d ¬O¤@­Ó¥Ø¿ý¡A¸Ì­±°w¹ï bash ¤Î C-shell ³W½d¤F¤@¨Ç¸ê®Æ¡C ¥H FC4 ¬°¨Ò¡A³o­Ó¥Ø¿ý¸Ì­±´N°w¹ï¤FÃC¦â¡B»y¨t¡Bvim ¤Î which µ¥«ü¥O¶i¦æ¤@¨ÇÃB¥~ªº³]©w¡A ¨Ò¦p alias ¤§Ãþªº³W½d­È¡C§Ú­Ìªº vim ³Q¥Î alias ©R¦W¬° vi ´N¬O¦b³o­Ó¥Ø¿ý¤U³Q³]©w¦nªº¡C ·íµM°Õ¡A³o­Ó¥Ø¿ýªº¥Ñ¨Ó¨ä¹ê¬O¦b /etc/profile ³o­ÓÀɮפº³W½dªº°Õ¡I §A¥i¥H¦Û¦æ³]©w¤@¨Ç *.sh ªºÀɦWªºÀɮרӮѼg¦Û¤vªº¨t²Î³]©w­È³á¡I

  • /etc/man.config
  • ³o­ÓÀÉ®×¥E¬Ý¤§¤U¦n¹³¸ò bash shell ¨S¬ÛÃö©Ê¡A¦ý¬O¹ï©ó¨t²ÎºÞ²z­û¨Ó»¡¡A «o¤]¬O«Ü­«­nªº¤@­ÓÀɮסI³oªºÀɮתº¤º®e¡y³W½d¤F¨Ï¥Î man ªº®É­Ô¡A man page ªº¸ô®|¨ì­þ¸Ì¥h´M§ä¡I¡z©Ò¥H»¡ªºÂ²³æ¤@ÂI¡A³o­ÓÀɮ׳W©w¤F¤U¹F man ªº®É­Ô¡A¸Ó¥h­þ¸Ì¬d¬Ý¸ê®Æªº¸ô®|³]©w¡I¨º»ò¤°»ò®É­Ô­n¨Ó­×§ï³o­ÓÀɮשO¡H¦pªG§A¬O¥H tarball ªº¤è¦¡¨Ó¦w¸Ë§Aªº¸ê®Æ¡A¨º»ò§Aªº man page¡]«ü¥O»¡©úÀɮס^¥i¯à·|©ñ¸m¦b /usr/local/softpackage/man ¸ÌÀY¡A¨º­Ó softpackage ¬O§Aªº®M¥ó¦WºÙ¡A ³o­Ó®É­Ô§A´N±o¥H¤â°Êªº¤è¦¡±N¸Ó¸ô®|¥[¨ì /etc/man.config ¸ÌÀY¡A§_«h¨Ï¥Î man ªº®É­Ô´N·|§ä¤£¨ì¬ÛÃöªº»¡©úÀÉÅo¡C

    ¨Æ¹ê¤W¡A³o­ÓÀɮפº³Ì­«­nªº¨ä¹ê¬O MANPATH ³o­ÓÅܼƳ]©w°Õ¡I §Ú­Ì·j´M man page ®É¡A·|¨Ì¾Ú MANPATH ªº¸ô®|¥h¤À§O·j´M°Ú¡I¥t¥~¡A­nª`·Nªº¬O¡A ³o­ÓÀɮצb¦U¤j¤£¦Pª©¥» Linux distributions ¤¤¡AÀɦW³£¤£¤Ó¬Û¦P¡A¨Ò¦p FC4 ¥Îªº¬O /etc/man.config ¡A¦Ó SuSE ¥Îªº«h¬O /etc/manpath.config ¡A ¥i¥H§Q¥Î [tab] «öÁä¨Ó¶i¦æÀɦWªº¸É»ô°Õ¡I

    ³o´N¬O¨t²Î¦b³]©wªº®É­Ô±`±`·|¨Ï¥ÎªºÀɮסI»Ý­n¯S§O¯d·Nªº¬O¡A³q±`³]©w§¹¤F³o´X­ÓÀɮפ§«á¡A³£»Ý­n¥ý logout ¦b login ¤§«á¤~·|±N³]©w¾ã­Ó±Ò°Ê°_¨Ó¡I


  • ­Ó¤H³]©w­È
  • ¨º»ò­Ó¤Hªº³ß¦n³]©w¦b­þ¸Ì¡H¼K¼K¼K¼K¡I¨º´N¬O¦b­Ó¤H®a¥Ø¿ýªº´X­ÓÁôÂÃÀÉ·í¤¤Åo¡I ¤À§O·|¨Ï¥Î¨ì©³¤Uªº´X­ÓÀÉ®×°Õ¡I( ª`·N¡I©³¤UªºÀɮ׳£¬OÁôÂÃÀÉ¡A»Ý­n¨Ï¥Î ls -al ¤è¯àÅã¥Ü¥X¨Ó ) ¡A¥t¥~¡Aª`·N¤@¤UÅo¡I©³¤U¨º­Ó¡y ~ ¡z¥Nªíªº¬O¡y®a¥Ø¿ý¡zªº·N«ä¡G

  • ~/.bash_profile, ~/.bash_login, ~/.profile
  • ³o¤T­ÓÀɮ׳q±`¥u­n¤@­Ó´N°÷¤F¡A¤@¯ë¹w³]¬O¥H ~/.bash_profile ªºÀɦW¦s¦b¡C ·|¦³³o»ò¦hªºÀɮסA¨ä¹ê¬O¦]À³¨ä¥L shell Âà´«¹L¨Óªº¨Ï¥ÎªÌªº²ßºD¦Ó¤w¡C ³o­ÓÀÉ®×¥i¥H©w¸q­Ó¤H¤Æªº¸ô®| (PATH) »PÀô¹ÒÅܼƵ¥µ¥¡C¤£¹L¡AÁÙ¬O¦³¶¶¦ì¤Wªº®t²§¡A bash ±Ò°Ê®É¡A·|¥ý¥hŪ¨ú ~/.bash_profile¡A§ä¤£¨ì®É¡A´N¥hŪ¨ú ~/.bash_login ¡AµM«á¤~¬O ~/.profile¡C

  • ~/.bashrc
  • ³¾­ô¤@¯ë³£¬O±N¦Û¤vªº»Ý­n¿é¤J¦b³o­ÓÀɮ׸̭±ªº©O¡I §Úªº­Ó¤H¤Æ³]©w­È³£·|¼g¦b³o¸Ì»¡¡ã¨Ò¦p©R¥O§O¦W¡B¸ô®|µ¥µ¥¡C

  • ~/.bash_history
  • ÁÙ°O±o§Ú­Ì¦b¾ú¥v©R¥O´£¨ì¹L³o­ÓÀÉ®×§a¡H¡I¨þ¨þ¡I¨S¿ù¡ã¹w³]ªº±¡ªp¤U¡A §Ú­Ìªº¾ú¥v©R¥O´N°O¿ý¦b³o¸Ì°Ú¡I¦Ó³o­ÓÀɮׯà°÷°O¿ý´Xµ§¸ê®Æ¡A«h»P HISTSIZE ³o­ÓÅܼƦ³Ãö°Ú¡C¨C¦¸µn¤J bash «á¡Abash ·|¥ýŪ¨ú³o­ÓÀɮסA±N©Ò¦³ªº¾ú¥v«ü¥OŪ¤J°O¾ÐÅé¡A ¦]¦¹¡A·í§Ú­Ìµn¤J bash «á´N¥i¥H¬dª¾¤W¦¸¨Ï¥Î¹L­þ¨Ç«ü¥OÅo¡C¦Ü©ó§ó¦hªº¾ú¥v«ü¥O¡A ½Ð¦Û¦æ¦^¥h°Ñ¦Ò³á¡I

  • ~/.bash_logout
  • ³o­ÓÀɮ׫h°O¿ý¤F¡y·í§Úµn¥X bash «á¡A¨t²Î¦AÀ°§Ú°µ§¹¤°»ò°Ê§@«á¤~Â÷¶}¡zªº·N«ä¡C §A¥i¥H¥hŪ¨ú¤@¤U³o­ÓÀɮתº¤º®e¡A¹w³]ªº±¡ªp¤U¡Aµn¥X®É¡A bash ¥u¬OÀ°§Ú­Ì²M±¼¿Ã¹õªº°T®§¦Ó¤w¡C ¤£¹L¡A§A¤]¥i¥H±N¤@¨Ç³Æ¥÷©ÎªÌ¬O¨ä¥L§A»{¬°­«­nªº¤u§@¼g¦b³o­ÓÀɮפ¤¡]¨Ò¦p²MªÅ¼È¦sÀÉ¡^¡A ¨º»ò·í§AÂ÷¶} Linux ªº®É­Ô¡A´N¥i¥H¸Ñ¨M¤@¨Ç·Ð¤Hªº¨Æ±¡Åo¡I

    ¦n¤F¡A§Ú­Ìª¾¹D¦bÅܼƪº³]©w³W½d·í¤¤¡A«á¿é¤Jªº³]©w­È¥i¥H¨ú¥N¥ý¿é¤Jªº³]©w­È¡A ¨º»ò¦b§Ú­Ìµn¤J bash ªº®É­Ô¡A³o¨Ç³]©wÀɨ쩳¬O¦p¦óŪ¨úªº©O¡H¥L¬O³o¼ËŪ¨úªº¡G
    1. ¥ýŪ¨ú /etc/profile ¡A¦A®Ú¾Ú /etc/profile ªº¤º®e¥hŪ¨ú¨ä¥LÃB¥~ªº³]©wÀÉ¡A ¨Ò¦p /etc/profile.d »P /etc/inputrc µ¥µ¥³]©wÀÉ¡F
    2. ®Ú¾Ú¤£¦Pªº¨Ï¥ÎªÌ¡A¨ì¨Ï¥ÎªÌ®a¥Ø¿ý¥hŪ¨ú ~/.bash_profile ©Î ~/.bash_login ©Î ~/.profile µ¥³]©wÀÉ¡F
    3. ®Ú¾Ú¤£¦P¨Ï¥ÎªÌ¡A¨ì¥L®a¥Ø¿ý¥hŪ¨ú ~/.bashrc ¡C
    ©Ò¥HÅo¡A·í§Úµn¤J bash «á¡A³Ì²×Ū¨úªº³]©wÀɳºµM¬O ~/.bashrc ©O¡I ¤]´N¬O»¡¡A¦b ~/.bashrc ¸Ì­±ªº³]©w·|¬O³Ì²×ªº³]©w­È¡I©Ò¥HÅo¡A ³q±`³¾­ô§Ú³ßÅw±N­Ó¤Hªº¤@¨Ç±`¥Î alias ©Î PATH µ¥Àô¹ÒÅܼƩΦۭqÅܼƳ£¼g¨ì³o­ÓÀÉ®×¥h¡A ¦p¦¹¤@¨Ó¡A¤£½×­ì¨Ó¨t²ÎÀ°§Ú­Ì°µ¤F¤°»ò³]©w­È¡A§Ú³£¥i¥H¨Ï¥ÎÄÝ©ó¦Û¤v¼ô±xªºÀô¹Ò©O¡I ³¾­ôªº ~/.bashrc ¦³ÂI¹³³o¼Ë¡G
    [root@linux ~]# vi ~/.bashrc
    # .bashrc
    
    # Source global definitions
    if [ -f /etc/bashrc ]; then
            . /etc/bashrc
    fi
    
    # User specific aliases and functions
    PATH="/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
    PATH="$PATH":/usr/X11R6/bin:/home/dmtsai/bin
    LANG=zh_TW.big5
    LC_TIME=C
    export PATH LC_TIME LANG
    umask 022
    
    alias   rm='rm -i'
    alias   cp='cp -i'
    alias   mv='mv -i'
    alias   ll='ls -l'
    alias   lm='ls -al|more'
    alias   h='history'
    
    ¥J²Ó¬Ý¨ì¤WÀY³o­ÓÀɮסA·|¤£·|ı±o©_©Ç°Ú¡I¬°¤°»ò·|¦³²Ä¤­¦æªº¡y . /etc/bashrc ¡z©O¡H ¨º­Ó¤p¼ÆÂI (.) ¥Nªí¤°»ò·N«ä°Ú¡H¡H¨ä¹ê if [ ... ]; then .... fi ¬O shell script ·í¤¤ªºµ{¦¡¼gªk¡A ³o­Ó§Ú­Ì·|¦b¤U¤@³¹·í¤¤¤¶²Ð¡C¤£¹L¡A¨º­Ó . «h»Ý­n¦n¦nªº½Í¤@½Í³á¡I¤@¯ë¨Ó»¡¡A¦pªG­×§ï§¹¤F³]©wÀÉ¡A ³q±`´N¬O logout «á¦A­«·s login ¨ì bash ¤º¡A´N¯à°÷±NÀô¹Ò³]©wÀÉ­«Åª¤F¡I¤£¹L¡A §Ú­Ì¥i¥H¨Ï¥Î©³¤Uªº¤è¦¡¨ÓÅý¸Ó³]©wÀɥߧY¥Í®Ä¡G
    [root@linux ~]# source file
    ½d¨Ò¡G
    [root@linux ~]# source ~/.bashrc
    [root@linux ~]#  .  ~/.bashrc
    
    §Q¥Î source ©Î¤p¼ÆÂI (.) ³£¥i¥H±N³]©wÀɪº¤º®eŪ¶i¨Ó¥Ø«eªº shell Àô¹Ò¤¤¡I Á|¨Ò¨Ó»¡¡A§Ú­×§ï¤F ~/.bashrc ¡A¨º»ò¤£»Ý­nµn¥X¡A¥ß§Y¥H source ~/.bashrc ´N¥i¥H±N­è­è³Ì·s³]©wªº¤º®eŪ¶i¨Ó¥Ø«eªºÀô¹Ò¤¤¡I«Ü¤£¿ù§a¡I¦¹¥~¡A¤°»ò®É­Ô·|¨Ï¥Î¨ì¤£¦Pªº³]©wÀÉ©O¡H ³Ì±`µo¥Í¦b¤@­Ó¤Hªº¤u§@Àô¹Ò¤À¬°¦h­«ªº®É­Ô¤F¡IÁ|­Ó¨Ò¤l¨Ó»¡¡A¦b§Úªº¤j«¬¥D¾÷¤¤¡A §Ú±`±`»Ý­n­t³d¨â¨ì¤T­Ó¤£¦Pªº®×¤l¡A¨C­Ó®×¤l©Ò»Ý­n³B²zªºÀô¹ÒÅܼƭq©w¨Ã¤£¬Û¦P¡A ¨º»ò§Ú´N±N³o¨â¤T­Ó®×¤l¤À§O½s¼gÄÝ©ó¸Ó®×¤lªºÀô¹ÒÅܼƳ]©wÀɮסA·í§Ú»Ý­n¸ÓÀô¹Ò®É¡A´Nª½±µ¡y source ÅܼÆÀÉ ¡z¡A¦p¦¹¤@¨Ó¡AÀô¹ÒÅܼƪº³]©w´NÅܪº§ó²«K¦ÓÆF¬¡¤F¡I

  • login shell »P non-login shell
  • ¨Æ¹ê¤W¡A³o¨ÇÀô¹Ò³]©wÀɦbŪ¨ú®É¡AÁÙ¬O¦³¤@¨Ç®t²§ªº¡A³o´N±o­n½Í¨ì©Ò¿×ªº¡ylogin shell¡z»P ¡ynon-login shell¡zªº®t²§¤F¡C°ò¥»¤W¡A´N¦r­±¤Wªº·N¸q¨Ó¸ÑÄÀªº¸Ü¡A©Ò¿×ªº loign shell «üªº´N¬O·í¨Ï¥ÎªÌµn¤J Linux ¨t²Î®É¡A©Ò¨ú±oªº¨º­ÓÀô¹Ò³]©wÀɺ٬° login shell¡C ·íµn¤J«á¡A±Ò°Ê¨ä¥Lªº bash ®É©Ò¨ú¥ÎªºÀô¹Ò³]©wÀÉ´NºÙ¬° non-login shell ¡C

    Á|¨Ò¨Ó»¡¡A§Ú¥H dmtsai ³o­Ó¨Ï¥ÎªÌ¨­¥÷µn¤J Linux «á¡AµM«á¬°¤F­n°õ¦æ¤@¨Ç¼Æ­È¼ÒÀÀªº¤u§@¡A¦Ó¥h°õ¦æ csh ³o­Ó C shell ¡A ¨º»ò¦¹®É§Ú´N¨ú±o¤F non-login shell ¤F¡C

    ¥t¥~¤@­Ó¨Ò¤l¬O¡A·í§Ú¥H X Window ªºÀô¹Òµn¤J Linux ®É¡A§Ú­Ì¤£¬O¥i¥H¨Ï¥Î¡y²×ºÝ¾÷¡z¨Ó¶}±Ò shell ¶Ü¡H·íµn¤J Linux ªº®É­Ô©Ò¨ú±oªº¨º­Ó X ªºÀô¹Ò¤]¥i¥HŪ¤J login shell ªº¡C¦]¦¹¡A¦b X Àô¹Ò¤U©Ò±Ò°Êªº²×ºÝ¾÷ (shell)¡A¨º¨Ç shell ©Ò¨Ï¥ÎªºÀô¹Ò³]©wÀɳ£¬O non-login shell ³á¡I

    login »P non-login shell ªº®t²§°£¤F¨ú±oªº®É¾÷¤£¦P¤§¥~¡A¨ä¹ê¥L­ÌŪ¨úªºÀô¹Ò³]©wÀɤ]¤£¬Û¦P¡C §Ú­Ì¤WÀY»¡¹L¤@¨Ç­Ó¤HªºÀô¹Ò³]©wÀɮפF§a¡H¨º»ò³o¨âºØÃþ«¬ªº shell ¸ÓŪ¨ú¤°»òÀɮשO¡H ·íµn¤J Linux ¡A¥ç§Y¬O¨ú±o login shell ®É¡A·|Ū¨ú ~/.bash_profile, ~/.bash_login, ~/.profile¡A ³o¤T­ÓÀɮתºÀu¥ý¶¶§Ç¤w¸g¦b¤W­±´£¹L¡A¦Û¦æ°Ñ¦Ò¤@¤U¡C¦Ü©ó¦b¨ú±o login shell «áÄ~Äò°Ê§@ªº¨ä¥L non-login shell ¡AŪ¨úªº´N¬O¶È¦³ ~/.bashrc Åo¡ã¡C¦Ó¤j³¡¤Àªº linux distributions ³£·|±N ~/.bash_profile ªº¤º®e«ü¨ì ~/.bashrc ¥h¡A³o¼Ë¤ñ¸û²³æÅo¡ã

    ¤p¼ÐÃDªº¹Ï¥Ü²×ºÝ¾÷ªºÀô¹Ò³]©w¡G stty, set
    ¤°»ò¥s°µ¡y²×ºÝ¾÷Àô¹Ò¡z°Ú¡H¡I§Ú­Ì¦b ­º¦¸µn¤J Linux ®É´N´£¹L¡A¥i¥H¦b tty1 ~ tty6 ³o¤»­Ó¤å¦r¤¶­±ªº²×ºÝ¾÷ (terminal) Àô¹Ò¤¤µn¤J¡A¨º»òµn¤Jªº®É­Ô§Ú­Ì¥i¥H¨ú±o¤@¨Ç¦r¤¸³]©wªº¥\¯à³á¡I Á|¨Ò¨Ó»¡¡A§Ú­Ì¥i¥H§Q¥Î­Ë°hÁä (backspace¡A´N¬O¨º­Ó¡ö²Å¸¹ªº«öÁä) ¨Ó§R°£©R¥O¦C¤Wªº¦r¤¸¡A ¤]¥i¥H¨Ï¥Î [ctrl]+c ¨Ó±j¨î²×¤î¤@­Ó«ü¥Oªº¹B¦æ¡A·í¿é¤J¿ù»~®É¡A´N·|¦³Án­µ¶]¥X¨Óĵ§i¡C³o¬O«ç»ò¿ì¨ìªº©O¡H «Ü²³æ°Ú¡I¦]¬°µn¤J²×ºÝ¾÷ªº®É­Ô¡A·|¦Û°Êªº¨ú±o¤@¨Ç²×ºÝ¾÷ªº¿é¤JÀô¹Òªº³]©w°Ú¡I

    ¨Æ¹ê¤W¡A¥Ø«e§Ú­Ì¨Ï¥Îªº Linux distributions ³£À°§Ú­Ì§@¤F³Ì´Îªº¨Ï¥ÎªÌÀô¹Ò¤F¡A ©Ò¥H¤j®a¥i¥H¤£¥Î¾á¤ß¾Þ§@Àô¹Òªº°ÝÃD¡C¤£¹L¡A¦b¬Y¨Ç Unix like ªº¾÷¾¹¤¤¡AÁÙ¬O¥i¯à»Ý­n°Ê¥Î¤@¨Ç¤â¸}¡A ¤~¯à°÷Åý§Ú­Ìªº¿é¤J¤ñ¸û§Ö¼Ö¡ãÁ|¨Ò¨Ó»¡¡A§Q¥Î [backspace] §R°£¡A­n¤ñ§Q¥Î [Del] «öÁä¨Óªº¶¶¤â§a¡I ¦ý¬O¬Y¨Ç Unix °¾°¾¬O¥H [del] ¨Ó¶i¦æ¦r¤¸ªº§R°£°Ú¡I©Ò¥H¡A³o­Ó®É­Ô´N¥i¥H°Ê°Ê¤â¸}Åo¡ã

    ¨º»ò¦p¦ó¬d¾\¥Ø«eªº¤@¨Ç«öÁ䤺®e©O¡H¥i¥H§Q¥Î stty (setting tty ²×ºÝ¾÷ªº·N«ä) ©O¡I stty ¤]¥i¥HÀ°§U³]©w²×ºÝ¾÷ªº¿é¤J«öÁä¥Nªí·N¸q³á¡I
    [root@linux ~]# stty [-a]
    °Ñ¼Æ¡G
    -a  ¡G±N¥Ø«e©Ò¦³ªº stty °Ñ¼Æ¦C¥X¨Ó¡F
    ½d¨Ò¡G
    ½d¨Ò¤@¡G¦C¥X©Ò¦³ªº«öÁä»P«öÁ䤺®e
    [root@linux ~]# stty -a
    speed 38400 baud; rows 40; columns 80; line = 0;
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ; 
    eol2 = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase 
    = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
    -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
    -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl 
    ixon -ixoff -iuclc -ixany -imaxbel opost -olcuc -ocrnl onlcr -onocr 
    -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten 
    echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
    
    §Ú­Ì¥i¥H§Q¥Î stty -a ¨Ó¦C¥X¥Ø«eÀô¹Ò¤¤©Ò¦³ªº«öÁä¦Cªí¡A¦b¤WÀYªº¦Cªí·í¤¤¡A»Ý­nª`·Nªº¬O¯S®í¦rÅ騺´X­Ó¡A ¦¹¥~¡A¦pªG¥X²{ ^ ªí¥Ü [Ctrl] ¨º­Ó«öÁ䪺·N«ä¡CÁ|¨Ò¨Ó»¡¡A intr = ^C ªí¥Ü§Q¥Î [ctrl] + c ¨Ó¹F¦¨ªº¡C ´X­Ó­«­nªº¥Nªí·N¸q¬O¡G
    • eof : End of file ªº·N«ä¡A¥Nªí¡yµ²§ô¿é¤J¡z¡C
    • erase : ¦V«á§R°£¦r¤¸¡A
    • intr : °e¥X¤@­Ó interrupt (¤¤Â_) ªº°T¸¹µ¹¥Ø«e¥¿¦b run ªºµ{§Ç¡F
    • kill : §R°£¦b¥Ø«e«ü¥O¦C¤Wªº©Ò¦³¤å¦r¡F
    • quit : °e¥X¤@­Ó quit ªº°T¸¹µ¹¥Ø«e¥¿¦b run ªºµ{§Ç¡F
    • start : ¦b¬Y­Óµ{§Ç°±¤î«á¡A­«·s±Ò°Ê¥Lªº output
    • stop : °±¤î¥Ø«e¿Ã¹õªº¿é¥X¡F
    • susp : °e¥X¤@­Ó terminal stop ªº°T¸¹µ¹¥¿¦b run ªºµ{§Ç¡C
    °O¤£°O±o§Ú­ÌÁ¿¹L Linux ©³¤Uªº´X­Ó¼öÁä °Ú¡H¨S¿ù¡I ´N¬O³o­Ó stty ³]©w­È¤ºªº intr / eof Åo¡ã¦Ü©ó§R°£¦r¤¸¡A´N¬O erase ¨º­Ó³]©w­È°Õ¡I ¦pªG§A·Q­n¥Î [ctrl]+h ¨Ó¶i¦æ¦r¤¸ªº§R°£¡A¨º»ò¥i¥H¤U¹F¡G
    [root@linux ~]# stty erase ^h
    
    ¨º»ò±q¦¹¤§«á¡A§Aªº§R°£¦r¤¸´N±o­n¨Ï¥Î [ctrl]+h Åo¡A«ö¤U [backspace] «h·|¥X²{ ^? ¦r¼Ë©O¡I ¦pªG·Q­n¦^´_§Q¥Î [backspace] ¡A´N¤U¹F stty erase ^? §Y¥i°Ú¡I ¦Ü©ó§ó¦hªº stty »¡©ú¡A°O±o°Ñ¦Ò¤@¤U man stty ªº¤º®e³á¡I

    °£¤F stty ¤§¥~¡A¨ä¹ê§Ú­Ìªº bash ÁÙ¦³¦Û¤vªº¤@¨Ç²×ºÝ¾÷³]©w­È©O¡I¨º´N¬O§Q¥Î set ¨Ó³]©wªº¡I §Ú­Ì¤§«e´£¨ì¤@¨ÇÅܼƮɡA¥i¥H§Q¥Î set ¨ÓÅã¥Ü¡A°£¦¹¤§¥~¡A¨ä¹ê set ÁÙ¥i¥HÀ°§Ú­Ì³]©w¾ã­Ó«ü¥O¿é¥X/¿é¤JªºÀô¹Ò¡C ¨Ò¦p°O¿ý¾ú¥v©R¥O¡BÅã¥Ü¿ù»~¤º®eµ¥µ¥¡C
    [root@linux ~]# set [-uvCHhmBx]
    °Ñ¼Æ¡G
    -u  ¡G¹w³]¤£±Ò¥Î¡C­Y±Ò¥Î«á¡A·í¨Ï¥Î¥¼³]©wÅܼƮɡA·|Åã¥Ü¿ù»~°T®§¡F
    -v  ¡G¹w³]¤£±Ò¥Î¡C­Y±Ò¥Î«á¡A¦b°T®§³Q¿é¥X«e¡A·|¥ýÅã¥Ü°T®§ªº­ì©l¤º®e¡F
    -x  ¡G¹w³]¤£±Ò¥Î¡C­Y±Ò¥Î«á¡A¦b«ü¥O³Q°õ¦æ«e¡A·|Åã¥Ü«ü¥O¤º®e(«e­±¦³ ++ ²Å¸¹)
    -h  ¡G¹w³]±Ò¥Î¡C»P¾ú¥v©R¥O¦³Ãö(¤U¸`¤¶²Ð)¡F
    -H  ¡G¹w³]±Ò¥Î¡C»P¾ú¥v©R¥O¦³Ãö(¤U¸`¤¶²Ð)¡F
    -m  ¡G¹w³]±Ò¥Î¡C»P¤u§@ºÞ²z¦³Ãö(¥¼¨Ó¤¶²Ð)¡F
    -B  ¡G¹w³]±Ò¥Î¡C»P¨í¸¹ [] ªº§@¥Î¦³Ãö¡F
    -C  ¡G¹w³]¤£±Ò¥Î¡C­Y¨Ï¥Î >  µ¥¡A«h­YÀɮצs¦b®É¡A¸ÓÀɮפ£·|³QÂл\¡C
    ½d¨Ò¡G
    ½d¨Ò¤@¡GÅã¥Ü¥Ø«e©Ò¦³ªº set ³]©w­È
    [root@linux ~]# echo $-
    himBH
    # ¨º­Ó $- ÅܼƤº®e´N¬O set ªº©Ò¦³³]©w°Õ¡I bash ¹w³]¬O himBH ³á¡I
    
    ½d¨Ò¤G¡G³]©w "­Y¨Ï¥Î¥¼©w¸qÅܼƮɡA«hÅã¥Ü¿ù»~°T®§" 
    [root@linux ~]# set -u
    [root@linux ~]# echo $vbirding
    -bash: vbirding: unbound variable
    # ¹w³]±¡ªp¤U¡A¥¼³]©w/¥¼«Å§i ªºÅܼƳ£·|¬O¡yªÅªº¡z¡A¤£¹L¡A­Y³]©w -u °Ñ¼Æ¡A
    # ¨º»ò·í¨Ï¥Î¥¼³]©wªºÅܼƮɡA´N·|¦³°ÝÃD°Õ¡I«Ü¦hªº shell ³£¹w³]±Ò¥Î -u °Ñ¼Æ¡C
    # ­Y­n¨ú®ø³o­Ó°Ñ¼Æ¡A¿é¤J set +u §Y¥i¡I
    
    ½d¨Ò¤T¡G°õ¦æ«e¡AÅã¥Ü¸Ó«ü¥O¤º®e¡C
    [root@linux ~]# set -x
    [root@linux ~]# echo $HOME
    + echo /root
    /root
    ++ echo -ne '\033]0;root@linux:~\007'
    # ¬Ý¨£§_¡H­n¿é¥Xªº«ü¥O³£·|¥ý³Q¦C¦L¨ì¿Ã¹õ¤W³á¡I«e­±·|¦h¥X + ªº²Å¸¹¡I
    
    ¥t¥~¡A¨ä¹ê§Ú­ÌÁÙ¦³¨ä¥Lªº«öÁä³]©w¥\¯à©O¡I´N¬O¦b /etc/inputrc ³o­ÓÀɮ׸̭±³]©w¡C
    [root@linux ~]# cat /etc/inputrc
    # do not bell on tab-completion
    #set bell-style none
    
    set meta-flag on
    set input-meta on
    set convert-meta off
    set output-meta on
    .....¥H¤U¬Ù²¤.....
    
    ÁÙ¦³¨Ò¦p /etc/DIR_COLORS* »P /etc/termcap µ¥¡A¤]³£¬O»P²×ºÝ¾÷¦³ÃöªºÀô¹Ò³]©wÀɮשO¡I ¤£¹L¡A¨Æ¹ê¤W¡A³¾­ô¨Ã¤£«ØÄ³±z­×§ï tty ªºÀô¹Ò©O¡A³o¬O¦]¬° bash ªºÀô¹Ò¤w¸g³]©wªº«Ü¿Ë©M¤F¡A §Ú­Ì¤£»Ý­nÃB¥~ªº³]©w©ÎªÌ­×§ï¡A§_«h¤Ï¦Ó·|²£¥Í¤@¨Ç§xÂZ¡C¤£¹L¡A¼g¦b³o¸Ìªº¸ê®Æ¡A ¥u¬O§Æ±æ¤j®a¯à°÷²M·¡ªºª¾¹D§Ú­Ìªº²×ºÝ¾÷¬O¦p¦ó¶i¦æ³]©wªº³á¡I ^_^


    ¤p¼ÐÃDªº¹Ï¥Ü¸U¥Î¦r¤¸»P¯S®í²Å¸¹¡G
    ¼K¼K¡I¦b bash ¸ÌÀYÁ٤䴩¤@¨Ç¸U¥Î¦r¤¸³á (wild card) ¡I¦h¤F³o¨Ç¸U¥Î¦r¤¸¡A §Ú­Ì§Q¥Î bash ³B²z¸ê®Æ´N§ó¤è«K¤F¡I©³¤U§Ú­Ì¦C¥X¤@¨Ç±`¥Îªº¸U¥Î¦r¤¸³á¡G

    ²Å¸¹¤º®e
    *¸U¥Î¦r¤¸¡A¥Nªí 0 ­Ó©Î¦h­Ó¦r¤¸¡]©Î¼Æ¦r¡^
    ?¸U¥Î¦r¤¸¡A¥Nªí¡y¤@©w¦³¡z¤@­Ó¦r¥À
    #µù¸Ñ¡A³o­Ó³Ì±`³Q¨Ï¥Î¦b script ·í¤¤¡Aµø¬°»¡©ú¡I
    \¸õ²æ²Å¸¹¡A±N¡y¯S®í¦r¤¸©Î¸U¥Î¦r¤¸¡zÁ٭즨¤@¯ë¦r¤¸
    |¤À¹j¨â­ÓºÞ½u©R¥Oªº¬É©w¡F
    ;³sÄò©Ê©R¥Oªº¬É©w¡]ª`·N¡I»PºÞ½u©R¥O¨Ã¤£¬Û¦P¡^
    ~¨Ï¥ÎªÌªº®a¥Ø¿ý
    $¥ç§Y¬OÅܼƤ§«e»Ý­n¥[ªºÅܼƨú¥N­È
    &±N«ü¥OÅܦ¨­I´º¤U¤u§@
    !ÅÞ¿è¹Bºâ·N¸q¤Wªº¡y«D¡z not ªº·N«ä¡I
    /¸ô®|¤À¹jªº²Å¸¹
    >, >>¿é¥X¾É¦V¡A¤À§O¬O¡y¨ú¥N¡z»P¡y²Ö¥[¡z
    '³æ¤Þ¸¹¡A¤£¨ã¦³ÅܼƸm´«ªº¥\¯à
    "¨ã¦³ÅܼƸm´«ªº¥\¯à¡I
    ` `¨â­Ó¡y ` ¡z¤¤¶¡¬°¥i¥H¥ý°õ¦æªº«ü¥O¡I
    ( )¦b¤¤¶¡¬°¤l shell ªº°_©l»Pµ²§ô
    [ ]¦b¤¤¶¡¬°¦r¤¸ªº²Õ¦X
    { }¦b¤¤¶¡¬°©R¥O°Ï¶ôªº²Õ¦X¡I
    ²Õ¦X«öÁä°õ¦æµ²ªG
    Ctrl + C²×¤î¥Ø«eªº©R¥O
    Ctrl + D¿é¤Jµ²§ô¡]EOF¡^¡A¨Ò¦p¶l¥óµ²§ôªº®É­Ô¡F
    Ctrl + M´N¬O Enter °Õ¡I
    Ctrl + S¼È°±¿Ã¹õªº¿é¥X
    Ctrl + Q«ì´_¿Ã¹õªº¿é¥X
    Ctrl + U¦b´£¥Ü¦r¤¸¤U¡A±N¾ã¦C©R¥O§R°£
    Ctrl + Z¡y¼È°±¡z¥Ø«eªº©R¥O

    ¦b¤W­±ªº¡y«öÁä²Õ¦X¡z·í¤¤¡A¦³¨S¦³µo²{¸ò¤W­Ó¤p¸`«Ü¬Û¦üªº¤º®e°Ú¡I¡H ¨þ¨þ¡ã¨S¿ù°Õ¡I¨º¨Ç²Õ¦XÁä³£¥i¥H¦b stty ·í¤¤¨Ó¶i¦æ¤£¦Pªº³]©wªº¡I¦nª±§a¡I ¦Ü©ó¤W­±ªº¸U¥Î¦r¤¸·í¤¤¡A³Ì±`¥Îªº´NÄÝ *, ?, [] ¤Î ` ¤F¡I§Ú­Ì´£´X­Ó²³æªº¨Ò¤l¡G
    [root@linux ~]# ls test*      <==¨º­Ó * ¥Nªí«á­±¤£½×±µ´X­Ó¦r¤¸³£¤©¥H±µ¨ü
    [root@linux ~]# ls test?      <==¨º­Ó ? ¥Nªí«á­±¡y¤@©w¡z­n±µ¡y¤@­Ó¡z¦r¤¸
    [root@linux ~]# ls test???    <==¨º­Ó ??? ¥Nªí¡y¤@©w­n±µ¤T­Ó¡z¦r¤¸¡I
    [root@linux ~]# cp test[1-5] /tmp
    # ±N test1, test2, test3, test4, test5 ­Y¦s¦bªº¸Ü¡A´N«þ¨©¨ì /tmp 
    [root@linux ~]# cp test[!1-5] /tmp
    # ¥u­n¤£¬O test1, test2, test3, test4, test5 ¤§¥~ªº¨ä¥L test? ¡A
    # ­Y¦s¦bªº¸Ü¡A´N«þ¨©¨ì /tmp 
    [root@linux ~]# cd /lib/modules/`uname -r`/kernel/drivers
    # ³Q ` ` ¬A°_¨Óªº¤º®e¡y·|¥ý°õ¦æ¡z
    
    ¤W­±´X­Ó¨Ò¤l¬Û·íªº¦³½ì¡I¤×¨ä¬O³Ì«á­±¨â­Ó¡I»Ý­nª`·Nªº¬O¡A [1-5] ¸Ì­±¡y¥Nªí¥u¦³¤@­Ó¦r¤¸¡z¦ý¬O½d³ò¥i¥H¥Ñ 1-5 ¡A³o¼Ë¨Ó»¡ªº¸Ü¡A¨º»ò§Ú­Ì¦pªG¤¹³\¡y¥u­nÀɦW¸Ì­±§t¦³¦Ü¤Ö¤@­Ó¤j¼g¦r¤¸¡z®É¡A´N¥i¥H±NÀÉ®× copy ¥X¨Óªº¸Ü¡A¥i¥H³o¼Ë°µ¡G
      cp *[A-Z]* /tmp
    «Ü¦³½ì§a¡H¡I¤]´N¬O»¡¡y [ ] ÂÔ¥Nªí¤@­Ó¦r¤¸¡A¦Ó³o­Ó¦r¤¸ªº©w¸q¥i¥H¬O½d³ò(-)¡A ¥i¥H¬O«ü©w¶µ¥Ø¡A¤]¥i¥H¬O¨âªÌ¨Ã¦s¡C ¡zÁ|¨Ò¨Ó»¡¡A§Ú·Q­n§ä¥X¦b /etc/ ©³¤U©Ò¦³§t¦³¼Æ¦rªºÀɮסA ¥i¥H³o¼Ë¡G
      ls -lda /etc/*[0-9]*
    ¦ý¦pªG§Ú¥u·Q­n§ä¥X§t¦³ 3 ¤Î 5 ªºÀɦWªºÀɮשO¡H´N·|¬O³o¼Ë¡G
      ls -lda /etc/*[35]*
    ¦pªG¬O¡y¤£·Q­n¡z¬Y¨Ç½d³ò©ÎªÌ¬O³æ¦r©O¡H´N¨Ï¥Î [!] §Y¥i¡I¨Ò¦p¤£·Q­n¦³¤p¼g¦r¤¸¬°¶}ÀYªºÀɮסG
      ls -lda /etc/[!a-z]*
    «Ü¦nª±§a¡I¦Ü©ó¨º­Ó ` ¬OÔ£¡H¦b¤@¦ê«ü¥O·í¤¤¡A `command` ¤ºªº«ü¥O·|¥ý³Q°õ¦æ¡A °õ¦æ§¹ªº°T®§¦A¦^¶Ç¨ì¥~³¡«ü¥O¨Ó³B²z¡I¤]´N¬O»¡¡G
    1. ¨t²Î¥ý°õ¦æ uname -r §ä¥X¿é¥Xªºµ²ªG¡F
    2. ±Nµ²ªG²Ö¥[¦b¥Ø¿ý¤W­±¡A¨Ó°õ¦æ cd ªº¥\¯à¡I
    «Ü´Î§a¡I¡I¥t¥~¡A³o­Ó quot (`) ªº¥\¯à¡A¤]¥i¥H§Q¥Î $() ¨Ó¨ú¥N³á¡I¨Ò¦p¡G
      cd /lib/modules/$(uname -r)/kernel
    ³o¨Ç°ò¥»ªº¥\¯à»Ý­n¯S§O¨ÓÁA¸Ñ¤@¤U¤~¦æËç¡I¦Ü©ó§ó¦hªº¨Ï¥Î¤è¦¡¡A §Ú­Ì·|¦b«áÄòªº¥¿³Wªí¥Üªk·í¤¤¦b¸Ô½Íªº¡I

    ¤j¼ÐÃDªº¹Ï¥Ü¸ê®Æ¬y­«¾É¦V
    ¸ê®Æ¬y­«¾É¦V (redirect) ¥Ñ¦r­±¤Wªº·N«ä¨Ó¬Ý¡A¦n¹³´N¬O±N¡y¸ê®Æµ¹¥L¶Ç¾É¨ì¨ä¥L¦a¤è¥h¡zªº¼Ë¤l¡H ¨þ¨þ¡I¬O°Ú¬O°Ú¡I¨S¿ù¡ã¸ê®Æ¬y­«¾É¦V´N¬O±N¬Y­Ó«ü¥O°õ¦æ«áÀ³¸Ó­n¥X²{¦b¿Ã¹õ¤Wªº¸ê®Æ¡A µ¹¥L¶Ç¿é¨ì¨ä¥Lªº¦a¤è¡A¨Ò¦pÀɮשΪ̬O¸Ë¸m (¨Ò¦p¦Lªí¾÷¤§Ãþªº¡I)¡I³oª±·N¨à¦b Linux ªº¤å¦r¼Ò¦¡©³¤U¥i­«­nªº¡I ¤×¨ä¬O¦pªG§Ú­Ì·Q­n±N¬Y¨Ç¸ê®ÆÀx¦s¤U¨Ó®É¡A´N§ó¦³¥Î¤F¡I


    ¤p¼ÐÃDªº¹Ï¥Ü¤°»ò¬O¸ê®Æ¬y­«¾É¦V
    ¦n³Ã¥ë¡I¤°»ò¬O¸ê®Æ¬y­«¾É¦V°Ú¡H³o±o­n¥Ñ«ü¥Oªº°õ¦æµ²ªG½Í°_¡I ¤@¯ë¨Ó»¡¡A¦pªG§A­n°õ¦æ¤@­Ó«ü¥O¡A³q±`¥L·|¬O³o¼Ëªº¡G

    «ü¥O°õ¦æ¹Lµ{ªº¸ê®Æ¶Ç¿é±¡ªp
    ¹Ï¤T¡B«ü¥O°õ¦æ¹Lµ{ªº¸ê®Æ¶Ç¿é±¡ªp

    §Ú­Ì°õ¦æ¤@­Ó«ü¥Oªº®É­Ô¡A³o­Ó«ü¥O¥i¯à·|¥ÑÀÉ®×Ū¤J¸ê®Æ¡A¸g¹L³B²z¤§«á¡A¦A±N¸ê®Æ¿é¥X¨ì¿Ã¹õ¤W¡C ¦b¹Ï¤T·í¤¤¡A standard output »P standard error ¤À§O¥Nªí¼Ð·Ç¿é¥X»P¼Ð·Ç¿ù»~¿é¥X¡A ³o¨â­Óª±·N¨à¹w³]³£¬O¿é¥X¨ì¿Ã¹õ¤W­±¨Óªº°Ú¡IÁ|­Ó²³æ¨Ò¤l¨Ó»¡¡A §Ú­Ì¤U¹F¡y cat /etc/crontab /etc/vbirdsay ¡z³o­Ó«ü¥O®É¡Acat ·|¥Ñ /etc/crontab »P /etc/vbirdsay Ū¤J¸ê®Æ¡A µM«á¦A±N¸ê®Æ¿é¥X¨ì¿Ã¹õ¤W¡A¤£¹L¡A¦]¬°¨t²Î¥»¨Ó´N¤£¦s¦b /etc/vbirdsay ³o­ÓÀɮסA ©Ò¥H´N·|Åã¥Ü¿ù»~°T®§¡A³o­Ó¿ù»~°T®§¤]·|¿é¥X¨ì¿Ã¹õ¤W¨Ó³á¡I

    ¦b³o¼Ëªº¹Lµ{·í¤¤¡A§Ú­Ì¥i¥H±N standard error (²ºÙ stderr) »P standard output (²ºÙ stdout) µ¹¥L¶Ç°e¨ì¨ä¥L¤£¦Pªº¦a¤è¡A¦Ó¤£¬O¿Ã¹õ¤WÀY¡I¶Ç°eªº¥Ø¼Ð³B¡A³q±`¬OÀɮשΪ̬O¸Ë¸m¡I ¦Ó¶Ç°eªº«ü¥O«h¬O¦p¤U©Ò¥Ü¡G
    1. ¼Ð·Ç¿é¤J(stdin) ¡G¥N½X¬° 0 ¡A¨Ï¥Î < ©Î << ¡F
    2. ¼Ð·Ç¿é¥X(stdout)¡G¥N½X¬° 1 ¡A¨Ï¥Î > ©Î >> ¡F
    3. ¼Ð·Ç¿ù»~¿é¥X(stderr)¡G¥N½X¬° 2 ¡A¨Ï¥Î 2> ©Î 2>> ¡F
    Á|¨Ò¨Ó»¡¡A¦pªG§Ú·Q­n±N§Ú¥Ø«e®Ú¥Ø¿ý¤U©Ò¦³ªº¥Ø¿ý³£°O¿ý¤U¨Óªº¸Ü¡A¤]´N¬O»¡¡A±N ls -l / ³o­Ó«ü¥Oªº¿é¥Xµ²ªGÀx¦s¤U¨Ó¡A´N¥i¥H¡G
    [root@linux ~]# ls -l /  >  ~/rootfile
    # ¥»¨Ó ls -l / ·|±N®Ú¥Ø¿ýªº¸ê®Æ¦C¥X¨ì¿Ã¹õ¤W¡F
    # ²{¦b§Ú¨Ï¥Î¤F > ~/rootfile «á¡A«h¥»¨ÓÀ³¸Ó¦b¿Ã¹õ¤W¥X²{ªº¸ê®Æ
    # ´N·|³Q¡y­«·s¾É¦V¡z¨ì ~/rootfile Àɮפº¤F¡I´N¥i¥H±N¸Ó¸ê®ÆÀx¦s¡I
    
    ¦¹®É¡A­ì¥»À³¸Ó¦b¿Ã¹õ¤W­±¥X²{ªº¸ê®Æ³q³q¤£¨£¥h¡ã¦]¬°¨º¨Ç¸ê®Æ³£³Q¼g¤J¨ì ~/rootfile ¥h¤F¡I ·íµM¡A¨º­ÓÀɮתºÀɦWÀH«K§A¨ú°Õ¡ã¦pªG§A¤U¹F¡G¡y cat ~/rootfile ¡z´N¥i¥H¬Ý¨ì­ì¥»À³¸Ó¦b¿Ã¹õ¤W­±ªº¸ê®ÆÅo¡C ¨º»ò¦pªG§Ú¦A¦¸¤U¹F¡G¡y ls -l /home > ~/rootfile ¡z«á¡A¨º»ò¨º­Ó ~/rootfile Àɮתº¤º®eÅܦ¨¤°»ò¡H ¨þ¨þ¡IÅܦ¨¡y¶È¦³ ls -l /home ªº¸ê®Æ¡z¦Ó¤w¡I«x¡I­ì¥»ªº ls -l / ¸ê®Æ´N¤£¨£¤F¶Ü¡H¬Oªº¡I ¦]¬°¸ÓÀɮתº«Ø¥ß¤è¦¡¬O¡G
    1. ¸ÓÀÉ®× (¥»¨Ò¤¤¬O ~/rootfile) ­Y¤£¦s¦b¡A¨t²Î·|¦Û°Êªº±N¥L«Ø¥ß°_¨Ó¡A¦ý¬O¡A
    2. ·í³o­ÓÀɮצs¦bªº®É­Ô¡A¨º»ò¨t²Î´N·|¥ý±N³o­ÓÀɮפº®e²MªÅ¡AµM«á¦A±N¸ê®Æ¼g¤J¡I
    3. ¤]´N¬O­Y¥H > ¿é¥X¨ì¤@­Ó¬J¦sÀɮפ¤¡A¨þ¨þ¡A¨º­ÓÀÉ®×´N·|³QÂл\±¼Åo¡I
    ¨º¦pªG§Ú·Q­n±N¸ê®Æ²Ö¥[¡A¤£·Q­n±Nªº¸ê®Æ§R°£¡A¨º¸Ó¦p¦ó¬O¦n¡H ¨þ¨þ¡I´N§Q¥Î >> ´N¦n°Õ¡I¨Ò¦p¤W­±ªº¨Ò¤l¤¤¡A´NÅܦ¨¡yls -l / >> ~/rootfile¡z ¦p¦¹¤@¨Ó¡A·í ~/rootfile ¤£¦s¦b®É¡A¨t²Î·|¥D°Ê«Ø¥ß³o­ÓÀɮסA­Y¸ÓÀɮפw¦s¦b¡A «h¸ê®Æ·|¦b¸ÓÀɮתº³Ì¤U¤è²Ö¥[¶i¥h¡I°ò¥»¤W¡A«ü¥Oªº¤U¹F¤è¦¡¡G

    command>
    1>
    2>
    2>>
    <
    ¸Ë¸m©ÎÀÉ®×

    ·íµM°Õ¡A¤@¦ê«ü¥Oªº³Ì¥ªÃä¤@©w¬O«ü¥O¡A¦Ó¦b >,2>,< ¥kÃ䪺¡A¥²¶·¬OÀɮשθ˸m¤~¦æ¡I ¦¹¥~¡A¨º­Ó > ·|µ¥©ó 1> ¡A¦]¬° standard output ¥N½X¬O 1 ¡A¥i¥H¬Ù²¤°Õ¡I ¦AªÌ¡A 1 »P > ¤§¶¡¨Ã¨S¦³ªÅ®æ³á¡I¬Oºò±µ¦b¤@°_ªº¡Iª`·Nª`·N¡I§Ú­Ì©³¤U¨Óª±´X­ÓªF¦è¦n¤F¡G
    ½d¨Ò¤@¡G±N¥Ø«e¥Ø¿ý¤UªºÀɮ׸ê°T¥þ³¡Àx¦s¨ì list.txt Àɮפ¤
    [root@linux ~]# ls -al > list.txt
    
    ½d¨Ò¤G¡G±N®Ú¥Ø¿ý¤Uªº¸ê®Æ¤]Àx¦s¨ì list.txt Àɮפ¤
    [root@linux ~]# ls -al / >> list.txt
    
    ¦n¤F¡A¹ï©ó¡y > , >> ¡z³o¨â­ÓªF¦è¦³¤@©wªº·§©À¤§«á¡A§Ú­Ì¨Ó²`¤Jªº½Í¤@½Í¡y¸ê®Æ¬y­«¾É¦V¡zªºÆ[©À§a¡I ¦p«e©Ò­z¡A°ò¥»¤W¡A Linux °õ¦æªºµ²ªG¤¤¡A¥i¥H¬ù²¤ªº¤À¦¨¡y¥¿½T¿é¥X¡z»P¡y¿ù»~¿é¥X¡z¨âºØ¸ê®Æ¡C ¨Ò¦p¡A·í§A¥H¤@¯ë¨­¥÷°õ¦æ find ³o­Ó«ü¥O®É¡A¨Ò¦p°õ¦æ¡y find / -name testing ¡z®É¡A¥Ñ©ó§A¬O¤@¯ë¨­¥÷¡A¤S¦³¨Ç¸ê®Æ§¨¬O¤£¤¹³\¤@¯ë¨­¥÷ªÌ¶i¤Jªº¡A ©Ò¥HÅo¡A·í§A¨Ï¥Î find ®É¡A´N·|¦³¿ù»~°T®§µo¥Í¤F¡I¦ý¦P®É¦pªG¦³ testing ³o­ÓÀɮצb§A¥i¥H¶i¤Jªº¸ê®Æ§¨·í¤¤¡A¨º»ò¿Ã¹õ¤]·|¿é¥X¨ìµ¹§A¬Ý¡I¦]¦¹¡A ´N¨ã¦³¥¿½Tªº»P¿ù»~ªº¿é¥X¨âºØÅo¡I¡]¤À§OºÙ¬° Stdout »P Stderror¡^¨Ò¦p¤U­±¬°°õ¦æµ²ªG¡G ¸Ì­±ªº¡y find: /home/root: Permission denied ¡z´N§i¶D§A¸Ó¸ê®Æ§¨§A¨S¦³Åv­­¶i¤J¡A ³o´N¬O¿ù»~ªº¿é¥X¤F¡A¨º»ò¡y /home/dmtsai/tseting ¡z´N¬O¥¿½Tªº¿é¥X¤F¡I
    [dmtsai@linux ~]$ find /home -name testing
    find: /home/test1: Permission denied   <== Starndard error
    find: /home/root: Permission denied    <== Starndard error
    find: /home/masda: Permission denied   <== Starndard error
    /home/dmtsai/testing                   <== Starndard output
    
    ¦n¤F¡A¨º»ò°²¦p§Ú­Ì·Q­n±N¸ê®Æ¿é¥X¨ì list ³o­ÓÀɮפ¤©O¡H°õ¦æ¡y find / -name testing > list ¡z ·|¦³¤°»òµ²ªG¡H¨þ¨þ¡A§A·|µo²{ list ¸Ì­±¦s¤F­è­è¨º­Ó¡y¥¿½T¡zªº¿é¥X¸ê®Æ¡A ¦Ü©ó¿Ã¹õ¤WÁÙ¬O·|¦³¿ù»~ªº°T®§¥X²{©O¡I¶Ë¸£µ¬¡I¦pªG·Q­n±N¥¿½Tªº»P¿ù»~ªº¸ê®Æ¤À§O¦s¤J¤£¦PªºÀɮפ¤»Ý­n«ç»ò°µ¡H¡I ¨þ¨þ¡I¨ä¹ê¦b¸ê®Æªº­«¾É¦V¤è­±¡A¥¿½Tªº¼gªkÀ³¸Ó¬O¡y 1> ¡z»P¡y 2> ¡z¤~¹ï¡I¦ý¬O¦pªG¥u¦³ > «h¹w³]¬O¥H 1> ¨Ó¶i¦æ¸ê®Æªº¡I¨º­Ó 1> ¬O¿é¥X¥¿½T¸ê®Æ¡A 2> «h¬O¿ù»~¸ê®Æ¿é¥X¶µ¥Ø¡C¤]´N¬O»¡¡G
    • 1> ¡G¬O±N¥¿½Tªº¸ê®Æ¿é¥X¨ì«ü©wªº¦a¤è¥h
    • 2> ¡G¬O±N¿ù»~ªº¸ê®Æ¿é¥X¨ì«ü©wªº¦a¤è¥h
    ¦n¤F¡A¨º»ò¤W­±ªº¨Ò¤l¤¤¡A§Ú­Ì¦p¦ó±N¸ê®Æ¿é¥X¨ì¤£¦Pªº¦a¤è¥h©O¡H¥i¥H³o»ò¼g¡G
    [dmtsai@linux ~]$ find /home -name testing > list_right 2> list_error
    
    ³o¼Ë¤@¨Ó¡A­è­è°õ¦æªºµ²ªG¤¤¡A¦³ Permission ªº¨º´X¦æ¿ù»~¸ê°T³£·|¶]¨ì list_error ³o­ÓÀɮפ¤¡A¦Ü©ó¥¿½Tªº¿é¥X¸ê®Æ«h·|¦s¨ì list_right ³o­ÓÀɮפ¤Åo¡