ÀÓ Á¾ ±Õ : hermes44@secsm.org
|
||||
µð¹ö±ë ÀÌÀü ±â»ç¸¦ ÅëÇØ ¿ì¸®´Â °£´ÜÇÑ Á¤µµÀÇ ½© ½ºÅ©¸³Æ®´Â ÀÛ¼ºÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. ÀÌÁ¦´Â ´ÙÀ½ ´Ü°è·Î ÀÛ¼ºÇÑ ½© ½ºÅ©¸³Æ®¸¦ µð¹ö±ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ ´Ù·çµµ·Ï ÇÏ°Ú´Ù. ÇÁ·Î±×·¥À» ÇÑ ¹ø¿¡ ¿¡·¯¾øÀÌ ÀÛ¼ºÇÒ ¼ö Àִ õÀç ÇÁ·Î±×·¡¸Ó°¡ ¾Æ´Ñ ÀÌ»ó µð¹ö±ëÀ̶õ ÄÚµåÀÇ ¾ÈÁ¤¼º°ú ¿Ïº®ÇÔÀ» ³ôÀÌ´Â ÇʼöÀûÀÎ ÀÛ¾÷ÀÌ´Ù. ¶ÇÇÑ ´ëºÎºÐÀÇ °æ¿ì, Äڵ带 ÀÛ¼ºÇÏ´Â °Íº¸´Ùµµ ´õ ¸¹Àº ½Ã°£ÀÌ °É¸®´Â ÀÏÀÌ µð¹ö±ëÀÌ´Ù. º¸Åë ¸®´ª½º °³¹ß ȯ°æ¿¡¼ C·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿´´Ù¸é µð¹ö±ë µµ±¸·Î gdb¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù. ÇÏÁö¸¸ gdbÀÌÀü¿¡ °¡Àå ÁÁÀº µð¹ö±ë ¹æ¹ýÀº ÄÚµå °÷°÷¿¡ printf¸¦ Ãß°¡ÇÏ¿© ½ÇÇà °á°ú¸¦ º¸°í ¹®Á¦Á¡À» ÆľÇÇÏ´Â °ÍÀÏ °ÍÀÌ´Ù. ½© ½ºÅ©¸³Æ®¿¡µµ º°´Ù¸¥ µð¹ö°Å°¡ Á¸ÀçÇÏÁö ¾Ê±â ¶§¹®¿¡ echo¸¦ »ç¿ëÇÏ¿© µð¹ö±ëÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÌ´Ù. ÇÏÁö¸¸ ´ÙÀ½¿¡¼´Â ±× ¹æ¹ý ÀÌ¿Ü¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú´Ù.
½© ¿É¼Ç ±â´É ½© ÀÚüÀûÀ¸·Î µð¹ö±ëÀ» À§ÇØ »ç¿ëµÇ´Â ¸í·ÉÇà ¿É¼ÇÀÌ ÀÖ´Ù. -v´Â ½©ÀÌ ½ºÅ©¸³Æ®¸¦ ¼öÇàÇϱâ À§Çؼ ÀÐÀº ºÎºÐÀ» ȸ鿡 Ãâ·ÂÇØÁØ´Ù. -x´Â ÀоîµéÀÎ ºÎºÐ Áß¿¡¼ ½ÇÁ¦ ½ÇÇàÀ» ÇÑ ºÎºÐÀ» º¸¿©ÁØ´Ù. ÀÌ °á°ú´Â stderr·Î Ãâ·ÂÀÌ µÇ¸é ´ÙÀ½ÀÇ ¼¼ °¡Áö ¹æ¹ý Áß Çϳª·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¡¤½© ½ºÅ©¸³Æ®ÀÇ Ã¹ ÁÙ¿¡ ´ÙÀ½°ú °°ÀÌ ¿É¼ÇÀ»
ÁöÁ¤ÇÑ´Ù. ¡¤¼Ò½º¸¦ ¼öÁ¤ÇÏÁö ¾Ê°í ÇÑ ¹ø¸¸ ½ÇÇàÇÏ·Á¸é
´ÙÀ½°ú °°ÀÌ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÑ´Ù. ¡¤½ºÅ©¸³Æ®ÀÇ Àüü°¡ ¾Æ´Ñ ÀϺκп¡¼¸¸ ÀÌ ±â´ÉÀ»
»ç¿ëÇÏ·Á¸é »ç¿ëÇÏ·Á°í ÇÏ´Â ºÎºÐ ¾Õ¿¡ ¡¤ÀÌ ±â´ÉÀ» ¾ø¾Ö±â À§Çؼ ÇÊ¿äÇÑ ºÎºÐ ÀÌÈÄ¿¡
´ÙÀ½À» Ãß°¡ÇÑ´Ù. ù ¹ø ±â»ç¿¡¼ ´Ù·ç¾ú´ø ¿¹Á¦¸¦ ´Ù½Ã º¸¸é¼ »ç¿ë¹ýÀ» ¼³¸íÇϵµ·Ï ÇÏ°Ú´Ù. º¸¸é ½±°Ô ¾Ë ¼ö ÀÖµíÀÌ prarg ½ºÅ©¸³Æ®´Â ¼¼ ÀÎÀÚ¸¦ ÀԷ¹޾Ƽ Ãâ·ÂÇÏ´Â ¸Å¿ì °£´ÜÇÑ ½ºÅ©¸³Æ®ÀÌ´Ù. µÎ¹ø° ¹æ¹ýÀ» ÀÌ¿ëÇÏ¿©¼ ½ÇÇàÇØ º¸ÀÚ.
-x ¿É¼Ç¸¸À¸·Î ½ÇÇàÀ» ÇÒ °æ¿ì¿¡´Â ½ºÅ©¸³Æ®¿¡¼ ½ÇÇàÇÏ´Â ºÎºÐ¸¸À» º¸¿©ÁØ´Ù. + Àº ½©ÀÌ ½ÇÇàÇÏ´Â ºÎºÐ, ++´Â ´Ù¸¥ ¿ÜºÎ ÇÁ·Î±×·¥ÀÌ (ÀÌ ¿ÜºÎ ÇÁ·Î±×·¥Àº ½©ÀÌ ½ÇÇàÇÑ´Ù.) ½ÇÇàÇÏ´Â ºÎºÐÀ» ÀǹÌÇÑ´Ù. -v ¿É¼Ç°ú °°ÀÌ ½ÇÇàÇÏ¸é ½ºÅ©¸³Æ®¸¦ ÀÐÀº ºÎºÐÀ» º¸¿©ÁØ´Ù. if, for, while, case µîÀÇ ºí·°µéÀº ÇÑ ¹ø¿¡ ºí·° Àüü¸¦ ÀÐ¾î¼ ¼öÇàÇϱ⠶§¹®¿¡ À§ÀÇ ¿¹Á¦¿¡¼¿Í °°Àº °á°ú°¡ ³ª¿Â´Ù. Ãâ·Â½Ã¿¡´Â ½ºÅ©¸³Æ®ÀÇ ½ÇÇà °á°ú¿Í µð¹ö±ëÀ» À§ÇÑ Ãâ·ÂÀÌ °°Àº ȸéÀ¸·Î º¸ÀÌ´Â µíÇÏÁö¸¸ ÀüÀÚ´Â stdoutÀ¸·Î, ÈÄÀÚ´Â stderr·Î Ç¥½ÃµÇ´Â °ÍÀÌ´Ù. µû¶ó¼ ÀÌ °á°ú¸¦ ÆÄÀÏ·Î ¸®´ÙÀÌ·º¼ÇÇϱâ À§Çؼ´Â ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇØ¾ß ÇÑ´Ù. $ sh -xv [½ºÅ©¸³Æ®À̸§] >[ÆÄÀϸí] 2>&1 2>&1Àº stderr(2)ÀÇ °á°ú¸¦ stdout(1)°ú °°Àº °÷À¸·Î ¸®´ÙÀÌ·º¼ÇÇÏ´Â °ÍÀÌ´Ù. ¶ÇÇÑ ½ÇÇ๮ÀÇ °á°ú¸¦ °Ë»çÇϱâ À§ÇÑ -e
¿É¼ÇÀÌ ÀÖ´Ù. -e´Â -x¿¡ ÀÇÇØ Ãâ·ÂµÇ´Â ½ÇÇ๮µéÀÇ ½ÇÇà °á°ú°¡
0ÀÌ ¾Æ´Ñ °ª Áï, ½ÇÆи¦ ¸®ÅÏÇÏ¿´À» °æ¿ì ½© ½ºÅ©¸³Æ®¸¦ Á¾·áÇÑ´Ù.
ÇÏÁö¸¸ while, until, if¹®¿¡¼ »ç¿ëÇÏ´Â Á¶°Ç½ÄÀ̳ª &&,
||, !ÀÌ Æ÷ÇÔµÇÀÖ´Â ½ÇÇ๮¿¡¼´Â -e°¡ È¿°ú ¾ø´Ù.
-e ¿É¼ÇÀ» ÁÖ°í ½ÇÇàÇÑ °æ¿ì if ÀÌÀüÀÇ ½ÇÇ๮ÀÌ ½ÇÆи¦ ÇÏ¿© if °¡ ½ÇÇàµÇ±â Àü¿¡ Á¾·áÇÔÀ» ¾Ë ¼ö ÀÖ´Ù.
Á¶°Ç½Ä Á¶°Ç½ÄÀ» ÀϹÝÀûÀÎ ÄÄÆÄÀÏ ¾ð¾î¿¡¼¿Í ºñ½ÁÇÏ°Ô »ç¿ëÇÒ °æ¿ì »ý°¢Áöµµ ¾Ê´Â ¿¡·¯°¡ ¹ß»ýÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ¼ö½Ä °Ë»ç Á¶°Ç½Ä¿¡¼ °Ë»çÇÏ·Á´Â º¯¼ö°¡ Á¸ÀçÇÏÁö ¾Ê°Å³ª °ªÀÌ ¼³Á¤µÇÁö ¾Ê¾ÒÀ» °æ¿ì ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. Áï, ´ÙÀ½°ú °°Àº Á¶°Ç½Ä¿¡¼ if [ ¡°$count¡± -eq 3 ] count º¯¼ö°¡ Á¸ÀçÇÏÁö ¾Ê°Å³ª °ªÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀ¸¸é ´ÙÀ½°ú °°ÀÌ Çؼ®ÀÌ µÇ¾î if [ ¡°¡± -eq 3 ] ¾Æ·¡¿Í °°Àº ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. [: integer expression expected before -eq À̸¦ ¹æÁöÇϱâ À§Çؼ´Â À§ÀÇ ¼ö½ÄÀ» ´ÙÀ½°ú °°ÀÌ ¹Ù²Û´Ù. if [ ¡°0$count¡± -eq 3 ] ÀÌ ¶§´Â À§¿Í °°Àº ¿¡·¯ »óȲÀÏ ¶§ 0À» ¸®ÅÏÇÏ°Ô µÇ°í count º¯¼ö°ªÀÌ 3ÀÏ °æ¿ì¿¡´Â 03À» ¸®ÅÏÇÏ°Ô µÇ¾î ¿¡·¯¾øÀÌ Á¶°Ç½ÄÀÌ ¼öÇàÀÌ µÈ´Ù. ¹®ÀÚ¿ °Ë»ç Á¶°Ç½Ä¿¡¼´Â °Ë»çÇÏ·Á´Â ¹®ÀÚ¿ÀÌ Á¶°Ç½Ä¿¡¼ »ç¿ëÇÏ´Â Å°¿öµåÀÏ °æ¿ì ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. Áï, ±× ¹®ÀÚ¿ÀÌ -eq, -ne, -gt, -r, -w, -z, -fµîÀÇ °ÍµéÀÏ ¶§ÀÌ´Ù. ÀÌ °æ¿ì¿¡´Â ºñ±³ÇÏ·Á´Â ¹®ÀÚ¿ ¾Õ¿¡ Àû´çÇÑ ¹®ÀÚ¸¦ Ãß°¡ÇÏ¿© ¾Õ¿¡¼¿Í °°Àº °ÍµéÀÌ Á¶°Ç½Ä¿¡¼ ³ª¿ÀÁö ¾Êµµ·Ï ÇÑ´Ù. if [ ¡°$op¡± = -gt ] ¸¦ ´ÙÀ½°ú °°ÀÌ º¯°æÀ» ÇÑ´Ù. if [ ¡°Z$op¡± = Z-gt ] ¾ÕÀÇ -e ¿É¼ÇÀ» ¼³¸íÇÒ ¶§ º¸¾Ò´ø °Í°ú °°ÀÌ ½© ½ºÅ©¸³Æ®¿¡¼ ½ÇÇ๮ÀÌ ½ÇÆÐÇÑ´Ù°í Çؼ ½ºÅ©¸³Æ®°¡ ÁߴܵÇÁö´Â ¾Ê´Â´Ù. (ÁߴܽÃÅ°·Á¸é -e ¿É¼ÇÀ» ÁÖ¾î¾ß ÇÑ´Ù.) ÇÏÁö¸¸ Áß´ÜÀÌ µÈ´Ù´Â À߸øµÈ Âø°¢À» ÇÏ¿© ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ´ÙÀ½ÀÇ °æ¿ì¿¡´Â ±×°ÍÀÌ Ä¡¸íÀûÀÎ °á°ú¸¦ ³ªÀ» ¼ö ÀÖ´Ù.
¡®cd $dir¡¯ÀÌ ½ÇÆÐÇÒ °æ¿ì¿¡µµ ´ÙÀ½ ½ÇÇ๮ÀÎ ¡®rm -rf *¡¯Àº ½ÇÇàÀÌ µÈ´Ù. cd°¡ ½ÇÆи¦ ÇÑ´Ù¸é »ý°¢Áöµµ ¾Ê´Â µð·ºÅ丮ÀÇ ³»¿ëÀ» ´Ù Áö¿ö¹ö¸®´Â °á°ú¸¦ ³ªÀ» ¼ö ÀÖ´Ù. ÀÌ·± ¹®Á¦¸¦ ¹æÁöÇϱâ À§ÇØ ÀÌ¿Í°°ÀÌ ´ÙÀ½¿¡ Ä¡¸íÀûÀÎ ½ÇÇ๮ÀÌ ¿Ã °æ¿ì ÀÌÀüÀÇ ½ÇÇ๮ÀÌ ½ÇÆÐÇÏ¸é ½ÇÇàÇÏÁö ¾Êµµ·Ï ÇÑ´Ù. || Á¶°ÇÀ» ÀÌ¿ë cd ½ÇÇ๮À» ¹Ù²Û´Ù. cd $dir || exit ÀÌ °æ¿ì || ¾ÕÀÇ cd°¡ ½ÇÆÐÇÒ °æ¿ì exit°¡ ½ÇÇàµÇ¾î ´õ ÀÌ»ó ÁøÇàµÇÁö ¾Êµµ·Ï ÇÑ´Ù. cd°¡ ¼º°øÇÑ °æ¿ì¿¡´Â || Á¶°Ç½ÄÀº Ç×»ó ÂüÀÌ µÇ±â ¶§¹®¿¡ || ¿ìÃøÀÇ exit´Â ½ÇÇàµÇÁö ¾Ê´Â´Ù. À§ÀÇ ¿¹Á¦¿¡¼´Â exit ´ë½Å continue¸¦ ½áµµ ¹«¹æÇÏ´Ù.
º¯¼ö°ª È®ÀÎÇϱ⠽© ½ºÅ©¸³Æ®¿¡ ´ëȽÄÀ¸·Î º¯¼ö°ªÀ» È®ÀÎÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÖ´Ù. ±×·± ±â´ÉÀ» ÇÏ´Â Äڵ带 ½© ½ºÅ©¸³Æ® Áß°£¿¡ »ðÀÔÇÏ´Â ¹æ¹ýÀÌ´Ù. while echo -n ¡°Enter a variable name
you want to know; ¡¬ ÀÌ Æ®·¹À̽º(trace) ÄÚµå ÀÌÀü¿¡ »ç¿ëµÈ º¯¼öÀÇ °ªÀ» È®ÀÎÇØ º¼ ¼ö°¡ ÀÖ´Ù.
([ENTER]Àº ENTER¸¦ ´·¶À½À» ÀǹÌÇÑ´Ù.)
°á·Ð ÀÌÁ¦±îÁö ½© ½ºÅ©¸³Æ®ÀÇ ÀÛ¼º°ú µð¹ö±ë¿¡ °üÇÑ
»çÇ×À» ¾Ë¾Æº¸¾Ò´Ù. ¹°·Ð Áö±Ý±îÁö ´Ù·é ³»¿ëÀÌ ½© ½ºÅ©¸³Æ®ÀÇ ÀüºÎ´Â
¾Æ´Ï´Ù. ÀÚÀßÇÏ°í ¹Ì¹¦ÇÑ ºÎºÐµé ÇÏÁö¸¸ Áß¿äÇÑ ºÎºÐµéÀº ´Ù·çÁö
¸øÇßÀ¸¸ç, ÇöÀç ¸¹ÀÌ »ç¿ëÇÏ´Â bash³ª tcshÀÇ È®Àå ±â´Éµµ ³²¾Æ
ÀÖ´Ù. ÀÌÁ¦ ±× ºÎºÐÀº µ¶Àڵ鿡°Ô ³²°ÜÁø ¸òÀ̸ç ÀÌ ±â»ç¸¦ ÅëÇØ
±× ½ÃÀÛÀ» ÇÒ ¼ö Àֱ⸦ ¹Ù¶õ´Ù. ÀÏ´ÜÀº ´Ù¸¥ »ç¶÷µéÀÌ ¸¸µé¾î ³õÀº
½ºÅ©¸³Æ®¸¦ º¸°í ÀÌÇØÇÏ¸é¼ Äڵ带 ¼öÁ¤Çغ¸°í ÇÊ¿äÇÑ ½ºÅ©¸³Æ®¸¦
Çϳª¾¿ ¸¸µé¾î °¡¸é¼ ÀÍÈ÷¸é µÉ °ÍÀÌ´Ù. ±×¸®°í ÀÛ¼ºÁß¿¡ ¸·È÷´Â
ºÎºÐÀº ¸Å´º¾ó ÆäÀÌÁö°¡ Å« µµ¿òÀÌ µÉ °ÍÀÌ´Ù. man bash !
UNIX POWER TOOLS, 2ed. Jerry Peek, Tim O¡¯Reilly,
Mike Loukides. O¡¯Reilly |