ÀÓÁ¾±Õ : hermes44@secsm.org
/
|
||||||||||||
Ç¥ÁØ ÀÔÃâ·Â ÀÌÀü ±â»ç¿¡¼ Ç¥ÁØ Ãâ·Â(stdout)À¸·Î Ãâ·ÂÀ»
Çϱâ À§Çؼ echo ¸í·ÉÀ» - ¿ÜºÎ ÇÁ·Î±×·¥À¸·Î °°Àº ¿ªÇÒÀ» ÇÏ´Â
echo°¡ ÀÖÁö¸¸ ¿©±â¼ÀÇ echo´Â ½©ÀÇ ³»Àå(built-in)¸í·ÉÀÌ´Ù. -
»ç¿ëÇÏ¿´´Ù. ±×·¸´Ù¸é Ç¥ÁØ ÀÔ·Â(stdin)À¸·Î »ç¿ëÀÚ ÀÔ·ÂÀ» ¹ÞÀ»
¼ö ÀÖ´Â ¹æ¹ýÀº? Ç¥ÁØ ÀÔ·ÂÀ» ¹Þ¾Æ º¯¼ö¿¡ ÀúÀåÀ» ÇØÁÖ´Â read ¸í·ÉÀÌ
ÀÖ´Ù.
stdio ¿¹Á¦¿¡¼ ó·³ read´Â Ç¥ÁØ ÀÔ·ÂÀÇ ÇÑ
ÁÙÀ» ¸ðµÎ filenameÀ̶ó´Â º¯¼ö¿¡ ³Ö´Â´Ù. (ÇÑ ÁÙÀº ¿£Å͸¦ ÀÔ·ÂÇÔÀ¸·Î¼
³¡³´Ù.) ÇÏÁö¸¸ À§¿Í °°ÀÌ ÇÒ °æ¿ì, ÀԷ°ªÀÌ ¿©·¯ °³¶ó¸é ¹®Á¦°¡
»ý±æ ¼ö ÀÖ´Ù. µÎ °³ÀÇ ÆÄÀϸíÀ» °ø¹éÀ¸·Î ±¸ºÐÇÏ¿© ÀÔ·ÂÇÒ °æ¿ì
°¢°¢ÀÌ µû·Î ÀúÀåµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó ÇϳªÀÇ filename º¯¼ö¿¡ µé¾î°¡±â
¶§¹®¿¡ if Á¶°Ç½Ä¿¡¼ ½ÇÆи¦ ÇÑ´Ù. ÀÌ·± °æ¿ì °¡Àå óÀ½¿¡ ÀԷµÈ
ÆÄÀÏ¸í¸¸À» ¹Þ¾Æ ó¸®ÇÏ°í ³ª¸ÓÁö´Â ¹«½ÃÇÏ·Á¸é? read ´ÙÀ½¿¡ º¯¼ö¸¦
¿©·¯ °³¸¦ ¸í½ÃÇÏ¸é µÈ´Ù. Ç¥ÁØ ÀÔ·ÂÀº °ø¹é ¹®ÀÚ·Î - ½ºÆäÀ̽º¿Í
ÅÇ - ±¸ºÐÀÌ µÇ°í ±¸ºÐµÈ °¢°¢ÀÇ °ªµéÀº read ´ÙÀ½¿¡ ¸í½ÃµÈ º¯¼ö¿¡
Â÷·Ê·Î ä¿öÁø´Ù. °¡Àå ¸¶Áö¸· º¯¼ö¿¡´Â ³ª¸ÓÁö ³²¾ÆÀÖ´Â ÀԷ°ªµéÀÌ
¸ðµÎ ´Ù µé¾î°£´Ù.
Áï, stdio2ÀÇ ¿¹¿¡¼ °ø¹éÀ¸·Î ±¸ºÐµÈ ÀÔ·Â /dev/hda1Àº
filename1¿¡, /etc/bashrc´Â filenam2¿¡ /bin/sh /bin/ls´Â dummy¿¡
µé¾î°¡°Ô µÇ´Â °ÍÀÌ´Ù.
¸®´ÙÀÌ·º¼Ç (Redirection) ¿ì¸®´Â ½© »ó¿¡¼ <, >, >>¸¦ ÀÌ¿ëÇÏ¿©
Ç¥ÁØ ÀÔÃâ·ÂÀ» ¸®´ÙÀÌ·º¼Ç(redirection)ÇÒ ¼ö ÀÖ´Ù.
redirect ¿¹Á¦¿¡¼ exec ¸í·É¿¡ ÀÇÇؼ Ç¥ÁØ
ÀÔ·ÂÀÌ /tmp/delme$$ ÆÄÀÏ·Î ¸®´ÙÀÌ·º¼ÇµÇ¾î read ¸í·ÉÀº ±× ÆÄÀÏ¿¡¼
ÇÑ ÁÙ¾¿ ÀÔ·ÂÀ» ¹Þ°Ô µÈ´Ù. º» ½©ÀÇ ¸®´ÙÀÌ·º¼Ç¿¡¼ °¢ Ç¥ÁØ ÀÔ·Â,
Ç¥ÁØ Ãâ·Â, Ç¥ÁØ ¿¡·¯´Â ÆÄÀÏ µð½ºÅ©¸³ÅÍ 0, 1, 2¿¡ ÇØ´çÇÑ´Ù. ±×
¿Ü¿¡ 3~9±îÁö µð½ºÅ©¸³Å͸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
while, until, for, if, case ±¸¹®¿¡¼ °¡Àå
¸¶Áö¸· ÁÙ¿¡ - done, fi, esac µÚ¿¡ - ¸®´ÙÀÌ·º¼ÇÀ» ÁöÁ¤ÇÏ¿© ±×
±¸¹® ³»¿¡¼ÀÇ ÀÔÃâ·Â¸¸À» º¯°æÇÒ ¼ö ÀÖ´Ù. ±× ±¸¹®À» ºüÁ®³ª¿Ã
¶§¿¡´Â ¿ø·¡´ë·Î º¹¿øÀÌ µÈ´Ù.
°æ·Î¸í ½© ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇÏ¿©¼ ÆÄÀÏÀ» ´Ù·ç´Ùº¸¸é °æ·Î¸íÀ» Á¶ÀÛÇؾßÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. º¸Åë °æ·Î¸íÀº ¡®µð·ºÅ丮¸í/ÆÄÀÏ¸í¡¯ Çü½ÄÀ¸·Î µÇ¾î ÀÖ´Ù. ÀÌ·¸°Ô »ç¿ëÀÚÀÇ ÀÔ·ÂÀ̳ª ȯ°æ º¯¼ö µîÀ» ÅëÇؼ ¾ò¾îÁø °æ·Î¸í¿¡¼ µð·ºÅ丮¸í¿Í ÆÄÀϸíÀ» ºÐ¸®ÇØÁÖ´Â basename°ú dirnameÀ̶ó´Â ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù. basename <°æ·Î¸í> Àº °æ·Î¸í¿¡¼ ÆÄÀÏ¸í¸¸À» ³Ñ°ÜÁØ´Ù. ÀÌ ¶§ ÆÄÀÏÀÌ ½ÇÁ¦·Î Á¸ÀçÇÒ ÇÊ¿ä´Â ¾ø´Ù. basename <°æ·Î¸í> <È®ÀåÀÚ> Àº ÆÄÀÏ¸í¿¡¼ ÁöÁ¤ÇÑ È®ÀåÀÚ ºÎºÐÀ» ¾ø¾Ø´Ù. dirname <°æ·Î¸í> Àº °æ·Î¸í¿¡¼ µð·ºÅ丮 ºÎºÐ¸¸À» ³Ñ°ÜÁØ´Ù.
¼ö½Ä °è»ê : expr ½ºÅ©¸³Æ®¿¡¼´Â ±âº»ÀûÀÎ ¸ðµç °ªµéÀ» ¹®ÀÚ¿·Î ó¸®Çϱ⠶§¹®¿¡ ¼ýÀÚ°ªÀ» ÀÌ¿ëÇÑ ¼ö½Ä °è»êÀ» Çϱâ À§Çؼ´Â expr ÇÁ·Î±×·¥À» ÀÌ¿ëÇØ¾ß ÇÑ´Ù. expr ÀÎÀÚ1 ¿¬»êÀÚ ÀÎÀÚ2 [¿¬»êÀÚ ÀÎÀÚ3 ...] ÀÎÀÚ´Â ¼ýÀÚ°ªÀ̳ª ¹®ÀÚ¿ÀÌ µÉ ¼ö ÀÖ°í, ¿¬»êÀÚ´Â ¼ö½Ä ¿¬»êÀÚ, °ü°è ¿¬»êÀÚ, ³í¸® ¿¬»êÀÚ ¼¼ °¡Áö Á¾·ù°¡ ÀÖ´Ù. ÀÎÀÚ¿Í ¿¬»êÀÚ »çÀÌ¿¡´Â ¹Ýµå½Ã °ø¹éÀ¸·Î ±¸ºÐµÇ¾î¾ß¸¸ ÇÑ´Ù. exprÀÇ °á°ú°ªÀÌ 0ÀÌ ¾Æ´Ï°Å³ª nullÀÌ ¾Æ´Ï¸é Á¾·á »óÅ°ªÀº 0ÀÌ´Ù. 0À̳ª nullÀÏ °æ¿ì¿¡´Â 1ÀÌ°í ¼ö½ÄÀÌ À¯È¿ÇÏÁö ¾ÊÀ» °æ¿ì´Â 2ÀÌ´Ù. Áö¿øÇÏ´Â ¼ö½Ä ¿¬»êÀÚ´Â +, -, *, /, %°¡ ÀÖ°í,
¿¬»ê ¼øÀ§´Â ÀϹÝÀûÀÎ ¼øÀ§¸¦ µû¸¥´Ù. ¿¬»ê ¼øÀ§ º¯°æÀ» À§ÇÑ °ýÈ£
¶ÇÇÑ »ç¿ëÇÒ ¼ö ÀÖ´Ù. *, (, )´Â ½©¿¡¼ Ưº°È÷ »ç¿ëµÇ±â ¶§¹®¿¡
¼ö½Ä¿¡¼ »ç¿ëÇÏ·Á¸é ¡¬¿Í ÇÔ²² ¾²¿©¾ß ÇÑ´Ù. ¼ö½Ä ¿¬»êÀÚ°¡ ¿Ã
¶§ÀÇ ÀÎÀÚ´Â Á¤¼ö°ªÀÌ µÇ¾î¾ß¸¸ ÇÑ´Ù. ¼ö½Ä °è»êÀÇ °á°ú°ªÀÌ Ãâ·ÂµÈ´Ù.
Áö¿øÇÏ´Â °ü°è ¿¬»êÀÚ´Â =, !=, >, >=,
<, <= ÀÌ ÀÖ°í, >¿Í <´Â ¡¬°ú ÇÔ²² »ç¿ëµÇ¾î¾ß ÇÑ´Ù.
ºñ±³ÇÑ °á°ú°¡ ÂüÀ̸é 1À» Ãâ·ÂÇÏ°í, °ÅÁþÀ̸é 0À» Ãâ·ÂÇÏ´Ù. ÀÌ
¶§ ÀÎÀÚ´Â Á¤¼ö, ½Ç¼ö, ¹®ÀÚ¿ÀÌ ¸ðµÎ ´Ù ¿Ã ¼ö ÀÖ´Ù.
³í¸® ¿¬»êÀÚ´Â 3°¡Áö°¡ ÀÖ´Ù. |, &, :ÀÌ´Ù. °¢ OR, AND, Á¤±Ô½Ä °Ë»öÀ» ³ªÅ¸³»¸ç |¿Í &´Â \¿Í ÇÔ²² »ç¿ëµÇ¾î¾ß ÇÑ´Ù. ¡¤|´Â ORÀÌ´Ù. ÀÎÀÚ1°ú ÀÎÀÚ2°¡ µÑ ´Ù 0ÀÌ ¾Æ´Ï¸é
ÀÎÀÚ1À» Ãâ·ÂÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é 0À»
¿©·¯ ÇÁ·Î±×·¥À» ÇϳªÀÇ ½ºÅ©¸³Æ®·Î ¸¹Àº ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÀ» ÇÏ´Ù º¸¸é ´ÙÀ½°ú °°Àº °æ¿ì°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. ¡¤°°Àº µ¿ÀÛÀ» ÇÏ´Â ´Ù¸¥ À̸§ÀÇ ÇÁ·Î±×·¥µé.
¿¹¸¦ µé¾î ¹®¼ ÆíÁý±âÀÎ ex, vi, view´Â À̸§Àº ÀÌ¿Í °°Àº °æ¿ì¿¡ °øÅëµÇ´Â ºÎºÐÀ» Çϳª·Î ¹¾î ÁÖ°Ô µÈ´Ù¸é µð½ºÅ© °ø°£À» Àý¾àÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó, ÄÚµù¿¡ µå´Â ³ë·Âµµ ÁÙ¿©ÁÙ ¼ö ÀÖ°í, °¢ °øÅëµÇ´Â ºÎºÐ¿¡ ´ëÇÑ ÀÏ°ü¼ºÀ» À¯ÁöÇÒ ¼ö°¡ ÀÖ´Ù. ½© ½ºÅ©¸³Æ®¿¡¼´Â °øÅëµÇ´Â ºÎºÐÀ» ó¸®ÇÏ°í ½ÇÇàÇÑ ÇÁ·Î±×·¥ÀÇ À̸§À» »ìÆ캸¾Æ °¢°¢¿¡ ÇØ´çÇϴ ó¸®¸¦ ÇÑ´Ù. °øÅë ºÎºÐ¿¡ ´ëÇÑ ÇÙ½É ½ºÅ©¸³Æ®¸¦ ¸¸µç´Ù. °¢°¢ÀÇ
ÇÁ·Î±×·¥Àº ÇÙ½É ½ºÅ©¸³Æ®¿¡ ´ëÇÑ ¸µÅ©·Î ¸¸µç´Ù. ±× ½ºÅ©¸³Æ®¿¡¼´Â
°øÅëµÈ ºÎºÐÀ» ó¸®ÇÏ°í ÇÁ·Î±×·¥ÀÇ À̸§, $0¸¦ º¸°í¼ °¢ ÇÁ·Î±×·¥¿¡
´ëÇÑ ÀÛ¾÷À» ¼öÇàÇÑ´Ù.
½ÇÇàÇÑ ÆÄÀÏÀ̸§À» ãÀ» ¶§ sc_core ¿¹Á¦¿¡¼¿Í
°°ÀÌ ¡®*ÆÄÀÏ¸í¡¯ ÆÐÅÏÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ýµµ ÀÖ°í basename ÇÁ·Î±×·¥À»
»ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
°á·Ð ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏ´Â ÀÏÀÌ ´Ù ³¡ÀÌ ³µ´Ù¸é ÀÌÁ¦ ¸¶Áö¸·À¸·Î ³²Àº °ÍÀº ½ºÅ©¸³Æ®ÀÇ À̸§À» Á¤ÇÏ´Â °ÍÀÌ´Ù. ¾î¶² À̸§À» Áþ´øÁö »ó°üÀº ¾øÁö¸¸ ÇÑ °¡Áö ÁÖÀÇÇÒ °ÍÀº ÀÌ¹Ì ÀÖ´Â ÇÁ·Î±×·¥ÀÇ À̸§À» »ç¿ëÇؼ´Â ¾È µÈ´Ù´Â °ÍÀÌ´Ù. ¿ì¸®°¡ Á¤ÇÑ À̸§ÀÌ ÀÌ¹Ì Á¸ÀçÇÏ´Â Áö´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ã¾Æº¸¸é µÈ´Ù. man 1 <½ºÅ©¸³Æ® À̸§> ¸ðµç °¡´É¼ºÀ» °Ë»çÇØ º¸°í ¾ø´Â À̸§À¸·Î Á¤ÇÑ´Ù. ÀÌ·¸°Ô ½ºÅ©¸³Æ®ÀÇ ÀÛ¼ºÀÌ ³¡ÀÌ ³µ´Ù. ÀÌÁ¦´Â ¹Ýº¹ÀûÀÎ ÀÏÀ» °£´ÜÈ÷ ó¸®ÇØÁÖ´Â ³ª¸§´ë·ÎÀÇ ½ºÅ©¸³Æ®´Â ÀÛ¼ºÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ºÎÁ·ÇÑ ºÎºÐÀÌ ÀÖ±â´Â ÇÏÁö¸¸ ±×·± ºÎºÐµéÀº ¸¹Àº ½Ãµµ¸¦ ÅëÇؼ äµæÇÒ ¼ö ÀÖÀ» °ÍÀ̶ó »ý°¢ÇÑ´Ù. ¶ÇÇÑ ½© ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇϱâ À§Çؼ´Â »ç¿ëÇÏ´Â ½©¿¡ ´ëÇÑ ÀÌÇصµ ÇÊ¿äÇÏ´Ù. ´ÙÀ½ ±â»ç¿¡¼´Â ÀÛ¼ºÇÑ ½ºÅ©¸³Æ®¸¦ µð¹ö±ëÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ.
¡¤Âü¡¤°í¡¤ÀÚ¡¤·á¡¤ ¡¤UNIX POWER TOOLS, 2ed. Jerry Peek, Tim O¡¯Reilly,
Mike Loukides. O¡¯Reilly |