1장. ¿Ö ½© ÇÁ·Î±×·¡¹ÖÀ» ÇØ¾ßÇÏÁÒ?

½©Àº ¸í·É¾î ÇØ¼®±â(command interpreter)·Î, Ä¿³Î°ú »ç¿ëÀÚ Áß°£¿¡ ³õ¿© ÀÖ½À´Ï´Ù. ±×·¸Áö¸¸ ¾ÆÁ÷±îÁö´Â ²Ï °­·ÂÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÔ´Ï´Ù. º¸Åë script ¶ó°í ºÎ¸£´Â ½© ÇÁ·Î±×·¥Àº ½Ã½ºÅÛ ÄÝ, Åø, À¯Æ¿¸®Æ¼, ½ÇÇàÆÄÀϵîÀ» "¹­¾î" ¾îÇø®ÄÉÀ̼ÇÀ» ½±°Ô ¸¸µé¾î ÁÝ´Ï´Ù. »ç½Ç»ó ½© ½ºÅ©¸³Æ®¿¡¼­´Â ¿Â°® Á¾·ùÀÇ À¯´Ð½º ¸í·É¾î, À¯Æ¿¸®Æ¼, ÅøµéÀ» ¾µ ¼ö°¡ ÀÖ½À´Ï´Ù. ¸¸¾à À̰ɷΠºÎÁ·ÇÏ´Ù¸é test³ª loop ¹® µîÀÇ ³»ºÎ ½© ¸í·É¾î¸¦ ½á¼­ Ãß°¡ÀûÀÎ °­·ÂÇÔ°ú À¯¿¬ÇÔÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ½© ½ºÅ©¸³Æ®´Â ¿ÏÀüÈ÷ ±¸Á¶ÀûÀÎ ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ Æ¯¼öÇÑ ±â´ÉµéÀÌ ÇÊ¿ä¾ø´Â °ü¸®ÀÚÀÇ ½Ã½ºÅÛ °ü·Ã ÀÛ¾÷À̳ª ¹Ýº¹ÀûÀÎ Àϵ鿡 ¾ÆÁÖ Àß ¸Â½À´Ï´Ù.

½© ½ºÅ©¸³Æ®¿¡ ´ëÇÑ Áö½ÄÀº ½Ç·ÂÀÖ´Â ½Ã½ºÅÛ °ü¸®ÀÚ°¡ µÇ°í ½Í¾î ÇÏ´Â À̵鿡°Ô ÇʼöÀûÀÔ´Ï´Ù. ºñ·Ï ½ÇÁ¦·Î ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏÁö ¾Ê´Â´Ù°í ÇØµµ ¸»ÀÌÁÒ. ¿©·¯ºÐÀÇ ¸®´ª½º ¸Ó½ÅÀÌ ºÎÆÃµÉ ¶§¸¦ »ý°¢ÇØ º¾½Ã´Ù. ½Ã½ºÅÛ ¼³Á¤ Á¤º¸µéÀ» ÀÐ¾î µéÀÌ°í ¼­ºñ½ºµéÀ» ±¸µ¿Çϱâ À§ÇØ /etc/rc.d ¿¡ ÀÖ´Â ½© ½ºÅ©¸³Æ®¸¦ µ¹¸³´Ï´Ù. ÀÌ ½ºÅ©¸³Æ®µéÀ» ÀÚ¼¼È÷ ÀÌÇØÇÏ´Â °ÍÀº ½Ã½ºÅÛÀÇ µ¿ÀÛÀ» ºÐ¼®Çϱâ À§Çؼ­ ¸Å¿ì Áß¿äÇÕ´Ï´Ù. ¶Ç, °íÄ¥ Çʿ䰡 ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù.

½© ½ºÅ©¸³Æ®¸¦ ¸¸µå´Â °ÍÀº ¾î·ÆÁö ¾Ê½À´Ï´Ù. ¿Ö³ÄÇÏ¸é ½ºÅ©¸³Æ®´Â ¸î °³ÀÇ ½©¿ë ¿¬»êÀÚ¿Í ¿É¼Çµé¸¸À¸·Î ¾ÆÁÖ ÀÛ°Ô ¸¸µé ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. ¹®¹ýÀº °£´ÜÇÏ°í ¸íÈ®ÇÕ´Ï´Ù. ¸í·É¾î ÁÙ»ó¿¡¼­ ¸í·É¾îµéÀ» ½ÇÇà½ÃŰ°Å³ª À¯Æ¿¸®Æ¼¸¦ ¿¬°áÇØ¼­ ½ÇÇà½ÃŰ´Â °Í°ú °ÅÀÇ ºñ½ÁÇÏÁö¸¸ ´ÜÁö ¸î °³ÀÇ "±ÔÄ¢"¸¸ ¹è¿ì¸é µË´Ï´Ù. °ÅÀÇ ´ëºÎºÐÀÇ ½ºÅ©¸³Æ®°¡ ÇÑ ¹ø¿¡ Àß µ¿ÀÛÇÏÁö¸¸ ¾ÆÁÖ Å©±â°¡ Å« °ÍÀ̶ó ÇÒ Áö¶óµµ µð¹ö±ëÀº ¾ÆÁÖ ¼ö¿ùÇÕ´Ï´Ù.

½© ½ºÅ©¸³Æ®´Â ¾ÆÁÖ º¹ÀâÇÑ ¾îÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇϱâ Àü¿¡ " ºü¸£°í °£´ÜÇÑ" ÇÁ·ÎÅäŸÀÔÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ºÅ©¸³Æ®°¡ Å« ÇÁ·ÎÁ§Æ® °³¹ß¿¡ À־ ¿ø·¡ ±â´Éº¸´Ù Á¦ÇÑµÈ ºÎºÐ¸¸À» ´Ù·êÁö¶óµµ, ¶Ç ´À¸®´õ¶óµµ ÀÌ´Â ÇÁ·ÎÁ§Æ® °³¹ßÀÇ Ã¹ ´Ü°è¿¡ ÀÖ¾î ¾ÆÁÖ À¯¿ëÇÕ´Ï´Ù. ÀÌ·¸°Ô ÇÏ¸é ½ÇÁ¦·Î C, C++, Java, Perl µîÀ¸·Î ¸¶Áö¸· ÄÚµù¿¡ µé¾î°¡±â¿¡ ¾Õ¼­ µ¿ÀÛ »óŸ¦ Á¡°ËÇØ º¼ ¼ö Àֱ⠶§¹®¿¡ Àüü ±¸Á¶»óÀÇ Áß¿äÇÑ °áÇÔÀ» ¹ß°ßÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

½© ½ºÅ©¸³ÆÃÀº º¹ÀâÇÑ ÀϵéÀ» ÀÛÀº ´ÜÀ§·Î ³ª´©¾î ó¸®Çϰųª ¿©·¯ ¿ä¼Òµé°ú À¯Æ¿¸®Æ¼¸¦ ¹­¾î ó¸®ÇÏ´Â °íÀüÀûÀÎ À¯´Ð½º öÇÐÀ» µû¸¨´Ï´Ù. ¸¹Àº »ç¶÷µéÀÌ ÀÌ·± À¯´Ð½º½ÄÀ» ´õ ³´´Ù°í »ý°¢Çϰųª Àû¾îµµ ¹ÌÀûÀ¸·Î´Â ´õ À¯ÄèÇÑ ÇØ°á¹ýÀ̶ó°í »ý°¢ÇÕ´Ï´Ù. ÆÞó·³ ¸ðµç ÀÌ¿¡°Ô ¸ðµç °ÍÀ» Á¦°øÇϰí, ¸ðµç °ÍÀ» °®°í ÀÖ´Â ½Å¼¼´ë ¾ð¾î¸¦ ¾²´Â °ÍÀº ¹®Á¦¸¦ Ǫ´Âµ¥ ¾µ ½Ã°£À» ±× µµ±¸¸¦ ÀÍÈ÷´Âµ¥ ´õ ¸¹ÀÌ ¾²µµ·Ï ÇÕ´Ï´Ù.

½© ½ºÅ©¸³Æ®¸¦ ¾²¸é ¾È µÉ ¶§

À§¿¡¼­ Çϳª¶óµµ ¸Â´Â »óȲÀ̶ó¸é PerlÀ̳ª Tcl, ÆÄÀ̽㠰°Àº ´Ù¸¥ ½ºÅ©¸³ÆÃ ¾ð¾î¸¦ ¾²°Å³ª C, C++, Java °°Àº °í¼öÁØ ¾ð¾î¸¦ ¾²´Â°ÍÀ» °í·ÁÇØ º¸´Â°Ô ³´½À´Ï´Ù. ¾î·µç, ½© ½ºÅ©¸³Æ®¸¦ ¾îÇø®ÄÉÀ̼ÇÀÇ ÇÁ·ÎÅäŸÀÔÀ¸·Î ¾²´Â °ÍÀº À¯¿ëÇÑ °³¹ß ´Ü°è°¡ µÉ °ÍÀÔ´Ï´Ù.

¿ì¸®´Â Bash¸¦ »ç¿ëÇÒ °ÍÀε¥ Bash¶õ "Born-Again Shell" ÀÇ ¾Õ ±ÛÀÚ¸¦ µý °ÍÀÔ´Ï´Ù. ÀÌÁ¦´Â °íÀüÀÌ µÈ Stephen bourneÀÇ Born Shell¿¡ ´ëÇÑ ¸»Àå³­ °°Àº °Ì´Ï´Ù. Bash´Â ÀÌÁ¦ °ÅÀÇ ¸ðµç UNIX ¿¡¼­ ½© ½ºÅ©¸³Æ®¿¡ °üÇÑ ½ÇÁúÀûÀΠǥÁØÀÔ´Ï´Ù. ÀÌ ¹®¼­¿¡¼­ ´Ù·ç°í ÀÖ´Â °ÅÀÇ ´ëºÎºÐÀÇ ¿ø¸®µéÀº Bash°¡ ¸î¸î Ư¡À» À̾î¹ÞÀº Korn ½©À̳ª, C ½©°ú ±× º¯Çüµé¿¡µµ µ¿ÀÏÇÏ°Ô Àû¿ëµË´Ï´Ù(C ½© ÇÁ·Î±×·¡¹ÖÀº Tom ChristiansenÀÌ 1993³â 10¿ù¿¡ ´º½º ±×·ì Æ÷½ºÆÃÀ» ÅëÇØ ÁöÀûÇßµíÀÌ Å¸°í³­ ¹®Á¦Á¡À» °®°í À־ Ãßõ ÇÏÁö ¾Ê½À´Ï´Ù).

´ÙÀ½ºÎÅÍ´Â ½© ½ºÅ©¸³ÆÃ¿¡ ´ëÇÑ Æ©Å丮¾óÀÔ´Ï´Ù. ½©ÀÇ Æ¯Â¡µéÀ» ¼³¸íÇϱâ À§Çؼ­ ÃÖ´ëÇÑ ¿¹Á¦µéÀ» ÅëÇØ Á¢±ÙÀ» Çß½À´Ï´Ù. °¡´ÉÇÑ ¿¹Á¦µéÀº ¸ðµÎ Å×½ºÆ®ÇØ º¸¾Ò°í, ¸î¸îÀº ½ÇÁ¦·Î ¾µ ¸¸ÇÕ´Ï´Ù. µ¶ÀÚ ¿©·¯ºÐÀº ÀÌ ÇÏ¿ìÅõÀÇ ¼Ò½º¿¡¼­ ½ÇÁ¦ ¿¹Á¦¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù(scriptname.sh ). ÀÌ ¶§, ½ÇÇà ±ÇÇÑÀ» ÁÖ°í (chmod u+x scriptname.sh) ½ÇÇàÀ» ½ÃŲ ´ÙÀ½ ¾î¶² ÀϵéÀÌ ÀϾ´ÂÁö »ìÆìº¸½Ê½Ã¿À. ¼Ò½º¸¦ ±¸ÇÒ ¼ö ¾ø´Ù¸é ¿©·¯ºÐÀÌ º¸°í ÀÖ´Â HTMLÀ̳ª pdf, text »ó¿¡¼­ º¹»ç-ºÙ¿©³Ö±â¸¦ ÇÏ½Ã¸é µË´Ï´Ù. ¸î¸î ¿¹Á¦µéÀº ¼³¸íÇϱâ Àü¿¡ Ư¡À» ¼Ò°³ÇÒ ÅÙµ¥ ÀÌ´Â ¿©·¯ºÐµé¿¡°Ô ¸µÅ©¸¦ µû¶ó À̰÷ Àú°÷À» ¿Ô´Ù °¬´Ù ÇÏ°Ô ÇÒ Áöµµ ¸ð¸¨´Ï´Ù.

Ưº°ÇÑ ¾ð±ÞÀÌ ¾ø´Ù¸é ÀÌ ¹®¼­¿¡¼­ ¾²ÀÎ ¿¹Á¦µéÀº ¸ðµÎ ÀúÀÚ°¡ ÀÛ¼ºÇÑ °ÍÀÔ´Ï´Ù.