· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Bash Prog IntroHOWTO

BashProgIntroHowto ¿¡ ÃֽŹöÀüÀ» ¹ø¿ªÇØ ¿Ã¸®°í Áö±Ý ÀÌ ¹®¼­´Â Áö¿ï °èȹÀÔ´Ï´Ù.

DocbookSgml/Bash-Prog-Intro-HOWTO ¸¦ Àß ¸ø °Çµå¸®´Â ¹Ù¶÷¿¡ ¹®¼­°¡ ¸Á°¡Á³´õ±º¿ä. ÀÌ Âü¿¡ ¾Æ¿¹ À§Å°Çü½ÄÀ¸·Î ¸¸µé¾ú´Âµ¥ ³ªÁß¿¡ º¸´Ï ´©±º°¡ DocbookSgml/Bash-Prog-Intro-HOWTO¸¦ º¹±¸ ÇØ ³õÀ¸¼Ì±º¿ä. ÀÌ¿Õ ÀÌ·¸°Ô ¸¸µé¾î ³õÀº °Å BashProgIntroHOWTO (Áö±Ý ÀÌ ¹®¼­)´Â ¿µ¹® ÃÖ±Ù ¹öÀüÀ» º¸¸ç ´Ùµë¾î °¡°Ú½À´Ï´Ù. --¼¼¹ú

¿ø ÀúÀÚ Mike G

2000.7.27 09:36:18

ÀÌ ¹®¼­´Â ÃÊÁß±Þ ¼Ð ½ºÅ©¸³Æ® ÇÁ·Î±×·¡¹ÖÀÇ ±âº»ÀûÀÎ ³»¿ëÀ» ¼³¸íÇÏÀÚ´Â ÃëÁö·Î ÀÛ¼ºµÈ °ÍÀ̸ç, Á¦¸ñÀ» º¸¸é ¾Ë ¼ö ÀÖ°ÚÁö¸¸ ±âÃÊÀûÀÎ ³»¿ëÀ» ´Ù·ç°í ÀÖ´Ù. ³»°¡ Ưº°È÷ ¶Ù¾î³ª°Å³ª Àü¹®ÀûÀÎ ¼Ð ÇÁ·Î±×·¡¸Ó¶ó¼­ ÀÌ·± ±ÛÀ» ¾²°Ô µÇ¾ú´Ù±â º¸´Ù´Â, ³»°¡ ÀÌ ±ÛÀ» ¾²´Â °úÁ¤¿¡¼­ ´Ù¸¥ »ç¶÷¿¡°Ôµµ Áö½ÄÀ» Àü´ÞÇÒ ¼ö ÀÖÀ¸¸ç ³ª¿¡°Ôµµ °øºÎ°¡ µÉ °ÍÀ̶ó´Â »ý°¢À¸·Î ÀÌ ±ÛÀ» ¾²±â ½ÃÀÛÇÑ °ÍÀÌ´Ù. Áú¹® »çÇ×À̳ª ÷°¡ÇÒ ³»¿ëÀÌ ÀÖ´Ù¸é ¾ðÁ¦¶óµµ ¿¬¶ôÇØ ÁÖ¾úÀ¸¸é ÇÑ´Ù. ±×·± ³»¿ëÀº ÃßÈÄ¿¡ ÀÌ ¹®¼­¿¡ Ãß°¡ÇÒ °ÍÀÌ´Ù.

½ÃÀÛÇϸ鼭

ÀÌ ¹®¼­ÀÇ ÃֽŠ¹öÀüÀ» ÀÔ¼öÇÏ·Á¸é?


ÀÌ ±ÛÀ» Àбâ Àü¿¡

¾Æ¹«¸® BASHÀÇ ±âÃÊÀûÀÎ ³»¿ëÀ» ´Ù·é´Ù°í Çصµ, GNU/LINUX ¸í·É ü°è¿¡ °üÇÑ Áö½ÄÀº ÀÖ¾î¾ß ÇÑ´Ù. ¸®´ª½ºÀÇ ±âÃʱîÁö ì°Ü ÁÖ´Â ¹®¼­´Â ¾Æ´Ï¹Ç·Î, ¹Ì¸® ¸í·É ü°è¸¦ °øºÎÇØ µÎ°í ÀÌ ¹®¼­¸¦ Àеµ·Ï ÇÏÀÚ.....¶ó°í °ÅâÇÏ°Ô ¶°µé°í´Â ÀÖÁö¸¸, ls, mv °°Àº ±âº» ¸í·ÉÇÏ°í, vi ¾µ ÁÙ¸¸ ¾Ë¸é µÇ´Ï Çϳªµµ ½Å°æ ¾µ °Í ¾ø´Ù. ±×Á¤µµ¸¦ ¸ð¸£´Â ºÐÀÌ kldp¿¡ ¿Í °è½Ç °¡´É¼ºÀº µå¹°´Ù°í »ý°¢ÇÑ´Ù.

ÀÌ ¹®¼­°¡ ÇÊ¿äÇÑ »ç¶÷Àº

ÀÌ ¹®¼­´Â ´ÙÀ½°ú °°Àº »ç¶÷µéÀ» À§ÇÑ °ÍÀÌ´Ù.

  • ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¾ÆÀ̵ð¾î¸¦ ¼Ð ½ºÅ©¸³Æ®·Î ±¸ÇöÇØ º¸°íÀÚ ÇÏ´Â »ç¶÷
  • ¼Ð ÇÁ·Î±×·¡¹Ö¿¡ °üÇÑ ¸·¿¬ÇÑ °³³äÀº ÀÖÁö¸¸ Á¤¸®¸¦ ÇØ ÁÙ ÇÊ¿ä°¡ ÀÖÀ» ¶§
  • Á÷Á¢ ÇÁ·Î±×·¥À» ÀÛ¼ºÇϱ⿡ ¾Õ¼­ ¿¹Á¦¿Í Âü°íÇÒ ¸¸ÇÑ ¸»µéÀ» ÀÐ¾î º¸°í ½ÍÀ» ¶§
  • DOS/Windows »ç¿ëÀڷμ­, ¹èÄ¡ ÆÄÀÏÀ» ¸¸µé¾î º¸°íÀÚ ÇÒ ¶§
  • ³ª¿Í ÀÖ´Â ÇÏ¿ìÅõ¶õ ÇÏ¿ìÅõ´Â ´Ù ÀÐ¾î ºÁ¾ß Á÷¼ºÀÌ Ç®¸± ¸¸Å­ È£»ç°¡ÀÏ ¶§
  • ±×¸®°í ¾Æ¸¶µµ, À§¿¡ ³ª¿Í ÀÖ´Â °ü½ÉÀÖ´Â »ç¶÷µé°ú´Â »ó°ü¾øÀÌ, ¼÷Á¦ ¶§¹®¿¡ º¸´Â »ç¶÷µµ ÀÖÀ» Áö ¸ð¸£°Ú´Ù.

¾ÆÁÖ °£´ÜÇÑ ½ºÅ©¸³Æ®

ÀÌ ÇÏ¿ìÅõ´Â ¿¹Á¦¸¦ ¹ÙÅÁÀ¸·Î ¼Ð ½ºÅ©¸³Æ® ÇÁ·Î±×·¡¹ÖÀÇ ¹æ¹ýÀ» Á¦½ÃÇÒ °ÍÀÌ´Ù.

¸ÕÀú ÀÌÇØÇϱ⠽¬¿î °£´ÜÇÑ ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÏ¿© ±âº» ¹®¹ýÀ» ¾Ë¾Æº¸ÀÚ.

hello world¸¦ Ãâ·ÂÇÏ´Â ½ºÅ©¸³Æ®

#!/bin/bash 
echo Hello World

ÀÌ ½ºÅ©¸³Æ®´Â ´ÜÁö µÎ ÁÙ·Î µÇ¾î ÀÖÀ» »ÓÀÌÁö¸¸, ½ºÅ©¸³Æ®·Î¼­ °®Ãß¾î¾ß ÇÒ ±âº»ÀûÀÎ ¿ä¼Ò´Â °®Ãß°í ÀÖ´Ù. ¸ÕÀú ù ¹ø° ÁÙ¿¡¼­´Â ÀÌ ÆÄÀÏÀ» ½ÇÇàÇϱâ À§ÇØ ÇÊ¿äÇÑ ÇÁ·Î±×·¥ÀÇ °æ·Î¸¦ ¸í±âÇß´Ù. ¾Æ¸¶µµ ´Ùµé ¾Ë°í ÀÖ°ÚÁö¸¸, bash¶õ ¼ÐÀÇ ÀÏÁ¾À̸ç, /bin/bash´Â ÀÌ ¼ÐÀÇ ½ÇÇà ÆÄÀÏÀÌ ÀÖ´Â °æ·ÎÀÌ´Ù. ¼ÐÀº ¸í·É¾î Çؼ®±â·Î µé¾î¿À´Â ¸í·ÉÀ» Çؼ®ÇÏ¿© ÀÌ°ÍÀÌ ³»ºÎ ¸í·É¾î¶ó¸é ¹Ù·Î ½ÇÇàÀ», ¿ÜºÎ ¸í·É¾î¶ó¸é ÇØ´çÇÏ´Â ½ÇÇà ÆÄÀÏÀ» ã¾Æ ¸Þ¸ð¸®¿¡ ÇÊ¿äÇÑ ºÎºÐÀ» ÀûÀçÇÑ´Ù. ÀÌ ºÎºÐÀÌ ¾ø´Ù¸é ´ÙÀ½¿¡ ¿À´Â ¸í·ÉÀ» ½ÇÇàÇÒ ¼ö´Â ¾øÀ» °ÍÀÌ´Ù.

µÎ ¹ø° ÁÙÀº ½ÇÁ¦ÀûÀÎ ¸í·ÉÀ» ³»¸®´Â ºÎºÐÀÌ´Ù. ¿©±â¿¡¼­´Â 'Hello World'¶ó´Â ¸»À» Å͹̳ο¡ Ãâ·ÂÇ϶ó´Â ¸í·ÉÀ» ³»·È´Ù. ¹°·Ð ´Ù¸¥ ¸»·Î ¹Ù²Ù¾îµµ ÁÁÀ» °ÍÀÌ´Ù.

¿©´ã! ¿ì¸®ÀÇ ¸®´©½º Åä¹ßÁî ¾ÆÀú¾¾°¡ óÀ½ ¸¸µé¾ú´ø °Íµµ È­¸é¿¡ ¹®ÀåÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À̾ú´Ù. ¾Æ¸¶ ±× ÇÁ·Î±×·¥ÀÇ ¾÷¹öÀüÀº 'sarah is the best'¶ó´Â ¹®ÀåÀ̾ú´Ù³ª ¹¹¶ó³ª..... (»ç¶ó´Â ¸®´©½º ¾ÆÀú¾¾ÀÇ µ¿»ý À̸§ÀÌ´Ù.)

¸¸¾à¿¡
./hello.sh: Command not found.
¿Í °°Àº ²ÃÀ» º¸°Ô µÇ¾ú´Ù¸é, ¾Æ¸¶µµ ù ¹ø° ÁÙÀÇ
#!/bin/bash
°¡ ¹®Á¦ÀÏ °ÍÀÌ´Ù. 'whereis bash'³ª 'finding bash' ¸í·ÉÀ» ³»·Á bashÀÇ °æ·Î¸¦ È®ÀÎÇØ º¸ÀÚ. ±×¸®°í ÀÌ °æ·Î¸¦ ù ¹ø° ÁÙ¿¡ ±âÀÔÇÑ´Ù.

¾öû³ª°Ô °£´ÜÇÑ ¹é¾÷ ½ºÅ©¸³Æ®
#!/bin/bash 
tar -cZf /var/my-backup.tgz /home/me/ 
ÀÌ ½ºÅ©¸³Æ®´Â Å͹̳ο¡ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ´Â ´ë½Å »ç¿ëÀÚÀÇ È¨ µð·ºÅ丮¸¦ tar-ballÇü½ÄÀ¸·Î ¹­´Â´Ù. ÀÌ ½ºÅ©¸³Æ®´Â ½ÇÁ¦·Î »ç¿ëÇÒ ¸¸ÇÑ °ÍÀº ¾Æ´Ï´Ù. ¸ÕÀú »ç¿ëÀÚ¿¡ µû¶ó °æ·Î¸¦ ÀÏÀÏÈ÷ Á¶ÀýÇØ¾ß Çϸç, ¿©·¯ »ç¶÷ÀÌ »ç¿ëÇÏ¸é ¹é¾÷ ÆÄÀÏÀÌ ¼­·Î µ¤¾î ¾²°Ô µÇ¾î ¹é¾÷ÀÌ ¸Á°¡Áú ¼öµµ ÀÖ´Ù. ÀÌ·± ¹é¾÷ ½ºÅ©¸³Æ®¸¦ ½ÇÁ¦·Î »ç¿ëÇÒ ¸¸ ÇÏ°Ô ¸¸µé¾î ³õÀº °ÍÀÌ µÞ ºÎºÐ¿¡ ³ª¿Ã °ÍÀÌ´Ù. ÀÌ°ÍÀº ±×³É ¿¹Á¦ÀÏ »ÓÀ̴ϱî, Çѹø ½ÃÇèÇØ º¸°í´Â ¹Ù·Î »èÁ¦ÇÏ´Â °ÍÀÌ ÁÁÀ» °ÍÀÌ´Ù.

¸®µð·º¼ÇÀÇ ¸ðµç °Í

Á¤ÀÇ¿Í ±âº» ¼³¸í

stdin(Ç¥ÁØ ÀÔ·Â), stdout(Ç¥ÁØ Ãâ·Â), stderr(Ç¥ÁØ ¿¡·¯)¶ó´Â ¼¼ °¡ÁöÀÇ ÆÄÀÏ µð½ºÅ©¸³ÅÍ°¡ ÀÖ´Ù. ÆÄÀÏ µð½ºÅ©¸³ÅÍ°¡ ¹«¾ùÀÎÁö ÀÏÀÏÈ÷ ¼³¸íÇϱâ´Â ±×·¸°í.... °£´ÜÇÏ°Ô ÀÌÇØÇØ º¸ÀÚ. ¾î¶² ÇÁ·Î±×·¥À» ½ÇÇàÇßÀ» ¶§ È­¸é¿¡ ÁÖ·ç·è ÇÏ°í ¿øÇÏ´Â °á°ú°¡ ¶ß´Â °ÍÀÌ Ç¥ÁØ Ãâ·ÂÀÌ´Ù. ¾î¶² ÇÁ·Î±×·¥À» ½ÇÇàÇϱâ À§ÇØ ²À ÇÊ¿äÇÑ ¿ä¼Ò¸¦ ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¶§ °°ÀÌ ÀÔ·ÂÇØ ÁÖ´Â °ÍÀÌ Ç¥ÁØ ÀÔ·ÂÀÌ´Ù. ÀÌ Á¤µµ¸¸ ¾Ë°í ½ÃÀÛÇÏ¸é µÉ °ÍÀÌ´Ù.

¸ÕÀú ´ÙÀ½°ú °°Àº ³»¿ëÀ» °£´ÜÈ÷ ½ÇÇàÇØ º¸ÀÚ. ¹é¹®ÀÌ ºÒ¿©ÀÏ°ß, ¹é°ßÀÌ ºÒ¿©ÀÏÇàÀÎ ¹ý.

  1. Ç¥ÁØ Ãâ·ÂÀ» ÆÄÀÏ·Î º¸³»±â
  2. Ç¥ÁØ ¿¡·¯¸¦ ÆÄÀÏ·Î º¸³»±â
  3. Ç¥ÁØ Ãâ·ÂÀ» Ç¥ÁØ ¿¡·¯·Î º¸³»±â
  4. Ç¥ÁØ ¿¡·¯¸¦ Ç¥ÁØ Ãâ·ÂÀ¸·Î º¸³»±â
  5. Ç¥ÁØ ¿¡·¯¿Í Ç¥ÁØ Ãâ·ÂÀ» ÆÄÀÏ·Î º¸³»±â
  6. Ç¥ÁØ ¿¡·¯¿Í Ç¥ÁØ Ãâ·ÂÀ» Ç¥ÁØ Ãâ·ÂÀ¸·Î º¸³»±â 1.Ç¥ÁØ ¿¡·¯¿Í Ç¥ÁØ Ãâ·ÂÀ» Ç¥ÁØ ¿¡·¯·Î º¸³»±â

¸ÕÀú °£´ÜÈ÷ ¸»Çصΰڴµ¥, ¹öÆÛ¿¡ ³²¾Æ Àִ ǥÁØ Ãâ·ÂÀ̳ª Ç¥ÁØ ¿¡·¯¸¦ È­¸é¿¡ Ãâ·ÂÇØ º¸´Â °ÍÀº ¾ÆÁÖ ½±Áö¸¸, ±× ½Ãµµ¿Í µ¿½Ã¿¡ ³»¿ëÀÌ ³¯¾Æ°£´Ù´Â Á¡À» »ó±âÇÏÀÚ.

¿¹Á¦ : Ç¥ÁØ Ãâ·ÂÀ» ÆÄÀÏ·Î º¸³»±â

ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú¸¦ ÆÄÀÏ¿¡ ¹Ù·Î ÀúÀåÇÏ´Â ¹æ¹ýÀÌ´Ù. ÀÌ ¹æ¹ýÀº ¾ðÁ¦ ¾²¸é ÁÁÀ¸³Ä Çϸé.... ±×·¸´Ù, ¼öÄ¡Çؼ® ¼÷Á¦ ÇÒ ¶§ ÁÙÁÙÀÌ ¿¡·¯°ª ³ª¿À´Â °Í, ÀÌ ¹æ¹ýÀ¸·Î Çϸé ÆÄÀÏ¿¡ ±â·ÏÇÏ´Â ÄÚµå ¾øÀ̵µ, È­¸é ĸó µûÀ§ ÇÏÁö ¾Ê¾Æµµ ¾ÆÁÖ °£´ÜÇÏ°Ô ÇØ°áµÈ´Ù.
ls -l > ls-l.txt
ÀÌ ³»¿ëÀ» ½ÇÇàÇÏ°í ³ª¸é, È­¸é¿¡ 'ls -l' ¸í·ÉÀÇ ½ÇÇà °á°ú°¡ Ãâ·ÂµÇ´Â ´ë½Å 'ls-l.txt'¶ó´Â À̸§ÀÇ ÆÄÀÏÀÌ »ý±ä´Ù. ÀÌ ÆÄÀÏÀ» ¿­¾î º¸¸é ¿ø·¡ 'ls -l' À» ½ÇÇàÇßÀ» ¶§ÀÇ °á°ú°¡ ±×´ë·Î ÀúÀåµÇ¾î ÀÖ´Ù. ÀÌ·± À̸§ÀÇ ÆÄÀÏÀÌ ¿ø·¡ ÀÖ¾ú´Ù¸é, ÆÄÀÏÀÇ ¾ÕºÎºÐ¿¡ ±×´ë·Î Ãâ·Â ³»¿ëÀÌ µ¤¾î ¾º¿öÁ® ¹ö¸®´Ï ÁÖÀÇÇÏÀÚ.

¿¹Á¦ : Ç¥ÁØ ¿¡·¯¸¦ ÆÄÀÏ·Î º¸³»±â

¹æ¹ýÀº ¸¶Âù°¡ÁöÀÌ´Ù. ÀÌ °æ¿ì¿¡´Â ¿¡·¯ ¸Þ½ÃÁö¸¦ ÆÄÀÏ¿¡ ÀúÀåÇÏ´Â °Í »ÓÀÌ´Ù. ¿ª½Ã °°Àº ¹æ¹ýÀ¸·Î ´ÙÀ½°ú °°ÀÌ ÇØ º¸ÀÚ.
grep da * 2> grep-errors.txt
¾Õ¼­ Ç¥ÁØ Ãâ·ÂÀ» ÆÄÀÏ·Î º¸³ÂÀ» ¶§¿Í ¸¶Âù°¡Áö·Î, 'grep-errors.txt' ÆÄÀÏÀÌ ¸¸µé¾îÁö¸ç È­¸é ´ë½Å ÀÌ ÆÄÀÏ ¾È¿¡ ¿¡·¯ ¸Þ½ÃÁö°¡ ±â·ÏµÈ´Ù. ¿©±â¿¡¼­ ¼ýÀÚ 2´Â Ç¥ÁØ ¿¡·¯¸¦ ¶æÇÏ´Â ÆÄÀÏ µð½ºÅ©¸³ÅÍÀÌ´Ù. 2°¡ µé¾î°¡Áö ¾ÊÀ¸¸é Ç¥ÁØ Ãâ·ÂÀÌ ÀúÀåµÈ´Ù.

¿¹Á¦ : Ç¥ÁØ Ãâ·ÂÀ» Ç¥ÁØ ¿¡·¯·Î º¸³»±â

ÀÌ ¹æ¹ýÀº ÇÁ·Î±×·¥À» ½ÇÇàÇßÀ» ¶§ÀÇ Ç¥ÁØ Ãâ·ÂÀ» Ç¥ÁØ Ãâ·Â µð½ºÅ©¸³ÅÍ ´ë½Å Ç¥ÁØ ¿¡·¯¿Í °°Àº ¹æ½ÄÀ¸·Î Ãâ·ÂÇÏ´Â °ÍÀÌ´Ù.
grep da * 1>&2
ÀÌ¿Í °°Àº ¹æ¹ýÀ¸·Î ¸í·ÉÀÇ Ç¥ÁØ Ãâ·ÂÀÌ Ç¥ÁØ ¿¡·¯¿¡°Ô ³Ñ°ÜÁ³´Ù. ±×·±µ¥ Á¤¸» À̰͸¸À¸·Î ÀÌÇØ°¡ ÂøÂø °£´Ù¸é Á¤¸» ÀÌ ¹®¼­ º¼ ÇÊ¿ä ¾ø´Ù. ¾î¿ ¼ö ¾øÀÌ Ãß°¡ ¼³¸íÀ» ´Þ¾Æ¾ß¸¸ ÇÏ´Â ºÎºÐÀε¥..... °£´ÜÈ÷ ¼³¸íÇÏ°Ú´Ù. 'grep da *'´Â ¿ì¸®°¡ ÀÍÈ÷ ¾Ë°í ÀÖ´Â ´Ü¼øÇÑ ¸í·ÉÀÌ´Ù. ÀÌ µÚ¿¡ ºÙÀº ¼ýÀÚ´Â ÆÄÀÏ µð½ºÅ©¸³ÅÍÀ̸ç ƯÈ÷ 1Àº Ç¥ÁØ Ãâ·ÂÀ» ÀǹÌÇÑ´Ù. 2´Â Ç¥ÁØ ¿¡·¯ µÇ°Ú´Ù. ±×·±µ¥ »ç½Ç, Á¶±Ý¸¸ ½Å°æ ¾²¸é ¾Ë ¼ö ÀÖ´Â ºÎºÐÀÌÁö¸¸ '1>'´Â ±×³É '>'¿Í °°Àº °ÍÀÌ´Ù. ÀÌÀ¯´Â °¢ÀÚ »ý°¢ÇØ º¸ÀÚ. ±Ý¹æ °á·ÐÀÌ ³ª¿Ã °ÍÀÌ´Ù. Âü°í·Î 0Àº Ç¥ÁØ ÀÔ·Â, 3 ÀÌÈÄ´Â ´Ù¸¥ ÆÄÀÏÀÌ ÀÔÃâ·Â¿ëÀ¸·Î ÇÒ´çµÉ ¶§ »ç¿ëÇÏ´Â °ÍÀ¸·Î, ±×³É Àû¾î ³ÖÀ¸¸é ¿¡·¯ ¸Þ½ÃÁö¸¦ º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

¸®µð·º¼ÇÀ» '2>&1'°ú °°ÀÌ ÁÖ¸é Ç¥ÁØ ¿¡·¯¸¦ Ç¥ÁØ Ãâ·Â°ú °°Àº °÷À¸·Î º¸³»¶ó´Â ¶æÀ̸ç, '1>&2'ÀÇ °æ¿ì´Â Ç¥ÁØ Ãâ·ÂÀ» Ç¥ÁØ ¿¡·¯¿Í °°Àº °÷À¸·Î º¸³»¶ó´Â ¶æÀÌ´Ù.

¿¹Á¦ : Ç¥ÁØ ¿¡·¯¸¦ Ç¥ÁØ Ãâ·ÂÀ¸·Î º¸³»±â

À§ ³»¿ëÀ» Àß ¼··ÆÇØ ¿Ô´Ù¸é »ý°¢ÇØ º¼ ÇÊ¿äµµ ¾ø´Â ºÎºÐÀÌ´Ù.
grep * 2>&1
ÀÚ, Ç¥ÁØ ¿¡·¯¸¦ Ç¥ÁØ Ãâ·ÂÀ¸·Î º¸³»¾î ÇÔ²² Ãâ·ÂÇÏ¿´´Ù. ¸¸¾à¿¡ ÀÌ °á°ú¸¦ ÆÄÀÌÇÁ¸¦ ÅëÇØ more³ª less µîÀ¸·Î º¸³½´Ù¸é, Ç¥ÁØ Ãâ·Â°ú Ç¥ÁØ ¿¡·¯°¡ µÚ¼¯ÀÎ ÇüŸ¦ º¸°Ô µÉ °ÍÀÌ´Ù.

¿¹Á¦ : Ç¥ÁØ Ãâ·Â°ú Ç¥ÁØ ¿¡·¯¸¦ ÆÄÀÏ·Î º¸³»±â

ÀÌ ³»¿ë ¿ª½Ã À§¿Í ¶È.°°.´Ù. ¶ó°í ºÁµµ ¹«¹æÇÏÁö¸¸..... ÀÌ°ÍÀ» Çѹø¿¡ ÆÄÀÏ·Î º¸³»´Â ºÎºÐÀº ÇÔ²² º¸µµ·Ï ÇÏÀÚ.
rm -f $(find / -name core) &> /dev/null
µû·Î ÀÌ µð½ºÅ©¸³Æ®¸¦ »ç¿ëÇÒ ÇÊ¿ä ¾øÀÌ '&>'·Î ¸®µð·º¼Ç ÇÏ´Â °Í ¸¸À¸·Î ÇØ°áµÈ´Ù. ÀÌ ¹æ½ÄÀº Ç¥ÁØ Ãâ·Â°ú Ç¥ÁØ ¿¡·¯¸¦ ÇÔ²² ÆÄÀÏ·Î º¸³¾¶§ »ç¿ëÇÑ´Ù. ÀÌ ¸í·ÉÀ» Å©·Ð¿¡ ³Ö¾î µÎ¸é, ÀÏÁ¤ÇÑ ½Ã°£¸¶´Ù ¸ðµç µð·ºÅ丮¿¡ ÀÖ´Â core ÆÄÀÏÀ» »èÁ¦ÇÑ´Ù. ¿©±â¿¡¼­´Â Ç¥ÁØ Ãâ·Â°ú Ç¥ÁØ ¿¡·¯¸¦ ¸ðµÎ '/dev/null'·Î º¸³» ½ÇÁ¦·Î´Â ³¯·Á ¹ö¸®Áö¸¸, ±»ÀÌ ÀÌ ³»¿ëÀ» È®ÀÎÇÏ°í ½Í´Ù¸é Àû´çÇÑ ÆÄÀÏ·Î Ãâ·ÂÇÏ¿© »ìÆ캸µµ·Ï ÇÏÀÚ.

ÆÄÀÌÇÁ(pipes)

ÀÌ Àå¿¡¼­´Â ÆÄÀÌÇÁ¸¦ »ç¿ëÇÏ´Â °£´ÜÇϸ鼭µµ ½ÇÁúÀûÀÎ ¿¹¸¦ µé¾î º¸°Ú´Ù.

ÆÄÀÌÇÁ·Î ¹«¾ùÀ» ÇÒ ¼ö ÀÖÀ»±î

ÆÄÀÌÇÁ´Â Á¤¸» °£´ÜÇÑ ¹æ¹ýÀ¸·Î, ÇÑ ÇÁ·Î±×·¥¿¡¼­ÀÇ Ãâ·ÂÀ» ´Ù¸¥ ÇÁ·Î±×·¥ÀÇ ÀÔ·ÂÀ¸·Î º¸³½´Ù. ÀÌ·¸°Ô "Èê·Á º¸³»±â"¶§¹®¿¡ ÆÄÀÌÇÁ´Ù.... ¶ó°í »ý°¢ÇÏ¸é µü ¸ÂÀ» °ÍÀÌ´Ù.

¿¹Á¦ : sed¸¦ ÀÌ¿ëÇÑ ¾ÆÁÖ °£´ÜÇÑ ÆÄÀÌÇÁ ¿¹Á¦

´ÙÀ½Àº ÆÄÀÌÇÁ¸¦ ÀÌ¿ëÇÏ´Â °¡Àå °£´ÜÇÑ ½Ç·ÊÀÌ´Ù.
ls -l | sed -e "s/[aeio]/u/g"
±×·¯¸é Çѹø À§ ³»¿ëÀ» ÂùÂùÈ÷ »ìÆ캸ÀÚ. ¸ÕÀú 'ls -l' ¸í·ÉÀÌ ½ÇÇàµÇ¾ú´Ù. ±×¸®°í ÀÌ °á°ú´Â È­¸é¿¡ Ãâ·ÂµÇ´Â ´ë½Å, ÆÄÀÌÇÁ¸¦ Ÿ°í sed ÇÁ·Î±×·¥¿¡ Àü´ÞµÇ¾î ´Ù½Ã Çѹø ó¸®µÈ ÈÄ È­¸é¿¡ Ãâ·ÂµÈ´Ù.

¿¹Á¦ : 'ls -l *.txt'ÀÇ »ö´Ù¸¥ ÇüÅÂ

¾Æ¸¶µµ ÀÌ ¹æ¹ýÀº 'ls -l *.txt'¸¦ »ç¿ëÇÏ´Â °Í º¸´Ù´Â ±î´Ù·Î¿î °ÍÀÌ°ÚÁö¸¸, ÆÄÀÌÇÁÀÇ »ç¿ë¿¡ ´ëÇؼ­¸¸Å­Àº È®½ÇÈ÷ º¸¿©ÁÙ ¼ö ÀÖ´Ù.
ls -l | grep "\.txt$"
¿©±â¼­ 'ls -l'ÀÇ °á°ú´Â grepÀ¸·Î ³Ñ¾î°¡, "\.txt$"¶ó´Â Á¶°Ç¿¡ ¸Â´Â °ª¸¸À» È­¸é¿¡ Ãâ·ÂÇÑ´Ù. ÀÌ °á°ú´Â 'ls -l *.txt'¿Í °°´Ù.

º¯¼ö

´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇÒ ¶§¿Í ¸¶Âù°¡Áö·Î, ¼Ð ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¶§µµ º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. °Ô´Ù°¡ bash¿¡¼­´Â µ¥ÀÌÅÍ Å¸ÀÔÀ» ¹Ì¸® Á¤ÇÒ ÇÊ¿ä ¾øÀÌ, ¼ýÀÚ³ª ¹®ÀÚ, ȤÀº ¹®ÀÚ¿­À» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.

¾î¶² º¯¼ö°¡ óÀ½ »ç¿ëµÇ´Â ¼ø°£ ÂüÁ¶°¡ »ý¼ºµÇ¹Ç·Î, º¯¼ö¸¦ µû·Î ¼±¾ðÇÒ ÇÊ¿ä´Â ¾ø´Ù.

¿¹Á¦ : º¯¼ö¸¦ »ç¿ëÇÑ Hello World! Ãâ·Â
#!/bin/bash 
STR="Hello World!" 
echo $STR 
2¹ø° ÁÙ¿¡¼­ STRÀ̶ó´Â À̸§ÀÇ º¯¼ö°¡ »ý¼ºµÇ¸ç "Hello World!"¸¦ ¹Þ¾Ò´Ù. ÀÌ º¯¼ö¿¡ µé¾îÀÖ´Â °ªÀ» »ç¿ëÇϱâ À§Çؼ­´Â '$'¸¦ º¯¼ö À̸§ ¾Õ¿¡ »ç¿ëÇÏ¿© ÀÌ°ÍÀÌ º¯¼ö¶ó´Â »ç½ÇÀ» ¾Ë·Á ÁÖ¾î¾ß ÇÑ´Ù. º¯¼ö À̸§ ¾Õ¿¡ '$'¸¦ »©³õ¾ÒÀ» °æ¿ì¿¡´Â ¿¹»óÇß´ø °Í°ú´Â ´Ù¸¥ °á°ú°¡ ³ª¿Ã °ÍÀÌ´Ù. ¿¹ÄÁ´ë, ÀÌ·± °æ¿ì ¼ÐÀº ÀÌ º¯¼ö ÀÚü¸¦ ¹®ÀÚ¿­·Î ÀνÄÇØ ¹ö¸®°Å³ª Çϱ⠶§¹®¿¡ ÁÖÀÇÇØ¾ß ÇÑ´Ù.

¿¹Á¦ : ¿©ÀüÈ÷ °£´ÜÇÑ ¹é¾÷ ½ºÅ©¸³Æ®
#!/bin/bash 
OF=/var/my-backup-$(date +%Y%m%d).tgz 
tar -cZf $OF /home/me/ 
ÀÌ ½ºÅ©¸³Æ®´Â ¾Õ¼­ »ìÆ캻 °Í°ú´Â ÁúÀûÀ¸·Î ´Ù¸¥ ¹°°ÇÀÌ´Ù. ÀÏ´Ü ÀÌ°ÍÀº »ý¼º ³¯Â¥°¡ ÆÄÀÏ À̸§ÀÌ µÇ±â ¶§¹®¿¡ ÆÄÀϸíÀÌ Áߺ¹µÇÁö ¾Ê¾Æ, ¹é¾÷Çϱ⠿ëÀÌÇÏ´Ù. µÎ ¹ø° ÁÙÀÇ '$(date +%Y%m%d)'°¡ ¹Ù·Î ±× ºÎºÐÀÌ´Ù. ¸ÅÀÏ ÆÄÀÏ À̸§ÀÌ ´Þ¶óÁø´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. date´Â ¿øÇÏ´Â ´ë·Î ¿É¼ÇÀ» Á¶ÀýÇÏ¿© ´Ù¸¥ Æ÷¸ËÀ¸·Î Ãâ·ÂÇÒ ¼öµµ ÀÖÀ¸´Ï È®ÀÎÇØ º¸ÀÚ. ¶ÇÇÑ ÀÌ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ¸é ¸í·É ½ÇÇà °úÁ¤ÀÌ È­¸é¿¡ ±×´ë·Î Ãâ·ÂµÈ´Ù´Â Á¡µµ Âü°íÇØ µÎÀÚ.

Âü°íÇÒ ¸¸ÇÑ °ÍÀ» Á» º¸ÀÚ. ´ÙÀ½ ³»¿ëÀ» °¢°¢ Á÷Á¢ ½ÇÇàÇØ º¸ÀÚ.
echo ls 
echo $(ls) 
¹«¾ùÀÌ ´Ù¸¥Áö È®ÀÎÇÏ°í, ¿Ö ´Ù¸¥Áöµµ ¾Ë¾Æº¸ÀÚ.

Áö¿ª º¯¼ö

Áö¿ª º¯¼ö´Â local À̶ó´Â Å°¿öµå¸¦ »ç¿ëÇÏ¿© »ý¼ºµÈ´Ù.
#!/bin/bash 
HELLO=Hello 
function hello { 
local HELLO=World 
echo $HELLO 
} 
echo $HELLO 
hello 
echo $HELLO
ÀÌ ¿¹Á¦´Â Áö¿ª º¯¼ö¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ °ÍÀÌ´Ù. ÀÌ¹Ì ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ Á¶±ÝÀÌ¶óµµ ´Ù·ç¾î º¸¾Ò´Ù¸é ÀÌ·± ¹æ½ÄÀÇ Äڵ带 º» ÀûÀÌ ÀÖÀ» °ÍÀÌ´Ù. ¿©±â¿¡¼­´Â ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¹æ¹ý¿¡µµ ÁÖÀÇÇÏÀÚ.

Á¶°Ç¹®

Á¶°Ç¹®Àº ¾î¶² ÀÏÀ» ¼öÇàÇϴ°¡ ȤÀº ÇÏÁö ¾Ê´Â°¡ÀÇ ¹®Á¦¸¦ Ç¥ÇöÇϱâ À§ÇÑ ¹æ¹ýÀÌ´Ù.

¿äÁ¡¸¸ ¸»ÇÏÀÚ¸é

Á¶°Ç¹®Àº ´Ù¾çÇÑ Çü½ÄÀ¸·Î Ç¥ÇöÇÒ ¼ö ÀÖÁö¸¸ °¡Àå ´ëÁßÀûÀ¸·Î »ç¿ëÇÏ´Â °ÍÀº ´ÙÀ½°ú °°Àº Çü½ÄÀÌ´Ù.

if expression then statement

'statement'´Â 'expression'¿¡ ÇØ´çÇÏ´Â Á¶°ÇÀÌ ÃæÁ·µÇ¾úÀ» ¶§¸¸ ½ÇÇàµÈ´Ù. C¾ð¾î Ã¥ »ç¼­ ù À常 º¸°í ¼Õ ¾È´í ºÐÀ̶ó ÇÒÁö¶óµµ ±¸°æÇØ º¸¼ÌÀ» ¸¸ÇÑ Çü½ÄÀÌ´Ù.

Á¶°Ç¹®ÀÇ Çü½Ä Áß¿¡´Â ´ÙÀ½°ú °°Àº °Íµµ ÀÖ´Ù.

if expression then statement1 else statement2

ÀÌ°Í ¿ª½Ã ¸¹ÀÌµé º¸½Å ÇüÅÂÀÌ°ÚÁö¸¸, 'expression'¿¡ ÇØ´çÇÏ´Â Á¶°ÇÀÌ ÃæÁ·µÇ¸é 'statement1'ÀÌ ½ÇÇàµÇ°í, ±×·¸Áö ¾ÊÀ¸¸é 'statement2'°¡ ½ÇÇàµÇ´Â ¹æ½ÄÀÌ´Ù.

if expression1 then statement1 else if expression2 statement2 else statement3

ÀÌ ¹æ½Ä¿¡¼­µµ 'expression1'À» ÃæÁ·Çϸé 'statement1'ÀÌ ½ÇÇàµÈ´Ù´Â Á¡¿¡¼­´Â ¾Õ¼­ »ìÆ캻 ¿¹¿Í °°´Ù. ±×·¯³ª 'expression1'ÀÌ ÃæÁ·µÇÁö ¾ÊÀ» °æ¿ì¿¡´Â 'expression2'¶ó´Â »õ·Î¿î Á¶°ÇÀÌ ³ªÅ¸³­´Ù. ¸¸ÀÏ ÀÌ·¸°Ô 'expression2'¿Í ºñ±³ÇÏ¿© Á¶°ÇÀ» ÃæÁ·Çϸé statement2'°¡ ½ÇÇàµÇÁö¸¸ ±×·¸Áö ¾ÊÀ» °æ¿ì¿¡´Â 'statement3'ÀÌ ½ÇÇàµÈ´Ù. ÀÌ °úÁ¤Àº 'else if'¶ó´Â ³à¼®À» ÀÌ¿ëÇϴµ¥, 'else if'¸¦ ¾ó¸¶µçÁö Ãß°¡ÇÏ¿© ´Ù¾çÇÑ ºÐ±â¸¦ ¸¸µé ¼ö ÀÖ´Ù.

°£´ÜÇÑ ¹®¹ý Çü½ÄÀ» º¸µµ·Ï ÇÏÀÚ.

bash¿¡¼­ if¸¦ »ç¿ëÇÒ ¶§¿¡´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ÀÛ¼ºÇÑ´Ù.
if [expression];
then
('expression'ÀÌ ÂüÀ϶§ ½ÇÇàÇÒ ÄÚµå )
fi
¿¹Á¦ : ´Ü¼øÇÑ if - then Á¶°Ç¹®
#!/bin/bash 
if [ "foo" = "foo" ]; then 
echo expression evaluated as true 
fi 

ÀÌ ÄÚµå´Â if µÚ¿¡ ³ª¿Â Á¶°ÇÀÌ ÂüÀ϶§ 'expression evaluated as true' ¶ó´Â ¹®ÀåÀ» Ãâ·ÂÇÏ´Â ³»¿ëÀÌ´Ù. º¸¸é ¾Ë°ÚÁö¸¸ Á¶°Ç µÚ¿¡´Â 'then'À̶ó°í ÀûÇôÀÖ°í, Á¶°ÇÀÌ ÂüÀ϶§ ½ÇÇàÇÒ ³»¿ëÀ» ÀûÀº µÚ¿¡´Â 'fi'¶ó°í Àû¾î Á¶°Ç¹®ÀÌ ³¡³µÀ½À» ¾Ë·ÁÁØ´Ù.

¿¹Á¦ : ´Ü¼øÇÑ if-then-else Á¶°Ç¹®
#!/bin/bash 
if [ "foo" = "foo" ]; then 
echo expression evaluated as true 
else 
echo expression evaluated as false 
fi 

¿¹Á¦ : º¯¼ö¸¦ »ç¿ëÇÏ¿©
#!/bin/bash 
T1="foo" 
T2="bar" 
if [ "$T1" = "$T2" ]; then 
echo expression evaluated as true 
else 
echo expression evaluated as false 
fi 

for, while, untilÀ» »ç¿ëÇÏ´Â ¼øȯ¹®

¿©±â¿¡¼­´Â for, while, untilÀ» »ç¿ëÇÑ ¼øȯ¹®¿¡ ´ëÇØ ¾Ë¾Æº¸°Ú´Ù.

for¸¦ »ç¿ëÇÑ ¼øȯ¹®ÀÇ °æ¿ì ÀϹÝÀûÀÎ ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇÒ ¶§¿Í Á» ´Ù¸¥ Á¡ÀÌ ÀÖ´Ù. ¿¹ÄÁ´ë ¹®ÀÚ¿­¿¡¼­ÀÇ °¢ ´Ü¾î¸¦ Áö³ªÃÄ°¡¸ç ¹®ÀÚ¿­ÀÌ ³¡³¯ ¶§ ±îÁö ·çÇÁ¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

whileÀÇ Á¶°ÇÀÌ ÂüÀÎ µ¿¾È¿¡´Â °è¼Ó ·çÇÁ ¾ÈÀÇ ¸í·ÉÀÌ µ¿ÀÛÇÑ´Ù. ÇÏÁö¸¸ Á¶°ÇÀÌ °ÅÁþÀÎ °æ¿ì ·çÇÁ´Â ¹Ù·Î ÁßÁöµÇ°í ·çÇÁ ¹ÛÀÇ Äڵ带 ½ÇÇàÇÏ´Â °ÍÀÌ´Ù.

untilµµ µûÁö°í º¸¸é °°Àº ¸Æ¶ôÀ̱â´Â ÇÏÁö¸¸, ÀÌ °æ¿ì¿¡´Â Á¶°ÇÀÌ °ÅÁþÀÎ µ¿¾È ·çÇÁ°¡ µ¿ÀÛÇÑ´Ù´Â Á¡ÀÌ ´Ù¸£´Ù.

¹°·Ð »ç¿ëÇÏ´Â »ç¶÷ ÀÔÀå¿¡¼­´Â whileÀ̳ª untilÀ̳ª °æ¿ì¿¡ µû¶ó ÆíÇÏ°Ô ½á ÁÖ¸é µÇ´Â °ÍÀÌ´Ù.

¿¹Á¦ : for
#!/bin/bash 
for i in $( ls ); do 
echo item: $i 
done 
µÎ ¹ø° ÁÙ¿¡¼­ ƯÀÌÇÑ º¯¼ö¸¦ Çϳª º¼ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº lsÀÇ ½ÇÇà °á°ú¸¦ Åë°·Î º¯¼ö·Î ¹Þ°í ÀÖ´Ù. ¿©±â¿¡¼­ $i´Â ls ÀÇ ½ÇÇà °á°ú¸¦ ¼ø¼­´ë·Î ÇÑ ´Ü¾î¾¿ ¹Þ´Â´Ù.

¼¼ ¹ø° ÁÙÀº ·çÇÁ°¡ ÁøÇàµÇ´Â µ¿¾È ½ÇÇàÇÒ ³»¿ëÀÌ´Ù. ¿©±â¿¡¼­´Â ÇÑ Á٠¥¸®·Î µÇ¾î ÀÖÁö¸¸ ÇÊ¿ä¿¡ µû¶ó ¸î ÁÙÀÌ°í Ãß°¡ÇÒ ¼ö ÀÖ´Ù. ¾ó¸¶µçÁö Ãß°¡ÇÑ ´ÙÀ½, ¸¶Áö¸· ³»¿ëÀÇ ´ÙÀ½ ÁÙ¿¡ doneÀ» ÀÔ·ÂÇÏ¿© ·çÇÁ°¡ ³¡À̶ó°í ¾Ë·Á ÁÖ¸é µÈ´Ù.

¸¶Áö¸· ÁÙÀÇ 'done'Àº, $i°¡ Áö±Ý ¹Þ¾Æ¼­ »ç¿ëÇÑ º¯¼ö´Â Æó±âÇÏ°í »õ·Î¿î º¯¼ö¸¦ ¹Þ¾Æ¾ß ÇÑ´Ù´Â ¶æÀÌ´Ù. done ÀÌÀü¿¡ ÀÖ´ø ³»¿ëÀº ½ÇÇàµÇ¾ú°í, ÀÌÁ¦ ´Ù½Ã »õ º¯¼ö¸¦ ³Ö¾î °°Àº ³»¿ëÀ» ÁøÇàÇÒ °ÍÀÌ´Ù.

ÀÌ ½ºÅ©¸³Æ®´Â Á¤¸» ´Ü¼øÇϱâ ¦ÀÌ ¾øÁö¸¸, ·çÇÁ¿¡ ´ëÇØ ÇÊ¿äÇÑ ³»¿ëÀº ´Ù ±¸»öÀÌ °®ÃçÁ® ÀÖ´Ù. ÀÌ ³»¿ë¸¸ Á¦´ë·Î ÀÌÇØÇصµ ±âº»ÀûÀ¸·Î ·çÇÁ¸¦ »ç¿ëÇÏ´Â µ¥¿¡´Â ¾î·Á¿òÀÌ ¾øÀ» °ÍÀÌ´Ù.

¿¹Á¦ : C¾ð¾î ¹æ½ÄÀ¸·Î »ç¿ëÇÏ´Â for

ÀÌ·± ¹æ½ÄÀ¸·Î »ç¿ëÇÏ´Â forµµ Çѹø »ý°¢ÇØ º¸ÀÚ. ÀÌ°ÍÀº C³ª Perl¿¡¼­ »ç¿ëÇÏ´Â ¹æ½Ä°ú ºñ½ÁÇÑ ±¸¼®ÀÌ ¸¹´Ù.
#!/bin/bash 
for i in `seq 1 10`; 
do 
echo $i 
done 

¿¹Á¦ : while
#!/bin/bash 
COUNTER=0 
while [ $COUNTER -lt 10 ]; do 
echo The counter is $COUNTER 
let COUNTER=COUNTER+1 
done 
ÀÌ ½ºÅ©¸³Æ®´Â C³ª ÆĽºÄ®, Perl µîÀÇ À¯¸íÇÑ ¾ð¾î¿¡¼­ »ç¿ëÇÏ´Â ¹æ½ÄÀ» Èä³»³»°í ÀÖ´Ù.

¿¹Á¦.... Çϳª ´õ!
#!/bin/bash 
COUNTER=20 
until [ $COUNTER -lt 10 ]; do 
echo COUNTER $COUNTER 
let COUNTER-=1 
done 

ÇÔ¼ö

´ëºÎºÐÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­´Â ³í¸®ÀûÀÎ È帧°ú Àç±Í Ç¥Çö µîÀ» À§ÇØ ÇÔ¼ö¶ó´Â À̸§À¸·Î Äڵ带 ¹­¾î »ç¿ëÇÏ´Â ÀÏÀÌ ¸¹´Ù.

ÇÔ¼ö¸¦ Á¤ÀÇÇÏ´Â µ¥¿¡´Â ½É¶õÇÏ°í ¾î·Á¿î ¹æ¹ý °°Àº °ÍÀº ÀüÇô ÇÊ¿äÇÏÁö ¾Ê´Ù. ´ÜÁö ÀÌ·¸°Ô ÀÔ·ÂÇÒ ¼ö¸¸ ÀÖÀ¸¸é µÈ´Ù.

ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§´Â ´Ù¸¥ ÇÁ·Î±×·¥À» È£ÃâÇÏ´Â °Í°ú ¶È°°ÀÌ À̸§À» Àû¾îÁÖ¸é µÈ´Ù.

ÇÔ¼ö ¿¹Á¦
#!/bin/bash 
function quit { 
exit 
} 
function hello { 
echo Hello! 
} 
hello 
quit 
echo foo 
2~4ÁÙÀº 'quit' ÇÔ¼öÀ̸ç, 5~7ÁÙÀº 'hello' ÇÔ¼öÀÌ´Ù. ÀÌ ½ºÅ©¸³Æ®°¡ ¹«½¼ ¶æÀÎÁö Àß ÀÌÇØ°¡ °¡Áö ¾Ê´Â´Ù¸é, ¹é¹®ÀÌ ºÒ¿©ÀÏ°ßÀÌ´Ù. Çѹø ½ÇÇàÇØ º¸¸é ¹«½¼ ¸»ÀÎÁö ´Ù ¾Ë °ÍÀÌ´Ù.

ÇÔ¼ö¸¦ ¼±¾ðÇÏ´Â µ¥¿¡´Â Ưº°È÷ ½Å°á ¾µ ¸¸ÇÑ ÀÏÀº ÀüÇô ¾ø´Ù. ³Ñ¾î°¡ÀÚ.

ÀÌ ½ºÅ©¸³Æ®°¡ ½ÇÇàµÇ¸é ¸ÕÀú hello ÇÔ¼ö°¡ È£ÃâµÇ°í ´ÙÀ½À¸·Î quit ÇÔ¼ö°¡ È£ÃâµÈ´Ù. 10¹ø° ÁÙÀº °áÄÚ ½ÇÇàµÇÁö ¾ÊÀ» °ÍÀÌ´Ù.

ÀÎÀÚ¸¦ ¹Þ´Â °æ¿ì
#!/bin/bash 
function quit { 
exit 
} 
function e { 
echo $1 
} 
e Hello 
e World 
quit 
echo foo 
ÀÌ ½ºÅ©¸³Æ®´Â ¹æ±Ý Àü¿¡ »ìÆì º» °Í°ú ¸Å¿ì ºñ½ÁÇÏ´Ù. °¡Àå Å« Â÷ÀÌ´Â 'e'¶ó´Â À̸§ÀÇ ÇÔ¼öÀÌ´Ù. ÀÌ ÇÔ¼ö´Â ¹Þ¾ÆµéÀΠù ¹ø° ÀÎÀÚ¸¦ Ãâ·ÂÇÑ´Ù.

»ç¿ëÀÚ ÀÎÅÍÆäÀ̽º

select¸¦ ÀÌ¿ëÇÏ¿© °£´ÜÇÑ ¸Þ´º ¸¸µé±â
#!/bin/bash 
OPTIONS="Hello Quit" 
select opt in $OPTIONS; do 
if [ "$opt" = "Quit" ]; then 
echo done 
exit 
elif [ "$opt" = "Hello" ]; then 
echo Hello World 
else 
clear 
echo bad option 
fi 
done 
ÀÌ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ¸é ¿©·¯ºÐÀº ÇÁ·Î±×·¡¸ÓÀÇ ·Î¸Á(-_-;;;)ÀÎ ÅؽºÆ® ±â¹ÝÀÇ ¸Þ´º¸¦ º¸°Ô µÉ °ÍÀÌ´Ù. ¶ÇÇÑ À§ ³»¿ëÀº for¸¦ »ç¿ëÇÒ ¶§¿Í ¸¶Âù°¡Áö·Î $OPTIONÀ» ÀÌ¿ëÇÏ¿© °¢ ´Ü¾î¸¦ ¹Þ¾ÒÁö¸¸, »ç¿ëÀÚ¿¡°Ô ÀÔ·ÂÀ» ¹Þ¾Æ ¼±ÅÃÇÏ°Ô ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.

¸í·É ÇàÀ» »ç¿ëÇÏ¿©
#!/bin/bash 
if [ -z "$1" ]; then 
echo usage: $0 directory 
exit 
fi 
SRCD=$1 
TGTD="/var/backups/" 
OF=home-$(date +%Y%m%d).tgz 
tar -cZf $TGTD$OF $SRCD 
ÀÌ ÇÁ·Î±×·¥ÀÇ Ã¹ ¹ø° ºÐ±â´Â ÀÌ°ÍÀÌ ($1)ÀÇ °ªÀ» ¹ÝȯÇÒ ¼ö Àִ°¡¸¦ È®ÀÎÇÏ¿© °ªÀ» ¹ÝȯÇÒ °æ¿ì¿¡´Â ÇÁ·Î±×·¥À» Á¾·áÇÑ´Ù. ±×·¸Áö ¾ÊÀ» °æ¿ì¿¡´Â ªÀº °æ°í¹®°ú ÇÔ²² ½ºÅ©¸³Æ®¸¦ °è¼Ó ÁøÇàÇØ ³ª°£´Ù.

read·Î »ç¿ëÀÚ ÀÔ·Â ¹Þ±â

¸¹Àº °æ¿ì ÇÁ·ÒÇÁÆ® »ó¿¡¼­ »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¹Þ¾Æ¾ß ÇÒ Áöµµ ¸ð¸¥´Ù. ´ÙÀ½Àº ÇÁ·ÒÇÁÆ®¿¡¼­ »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¹Þ¾ÆµéÀÌ´Â ¹æ¹ýÀÌ´Ù.
#!/bin/bash 
echo Please, enter your name 
read NAME 
echo "Hi $NAME!" 
ÀÌ ¹æ¹ýÀº 2°³ ÀÌ»óÀÇ ÀÔ·ÂÀ» µ¿½Ã¿¡ ¹Þ¾Æ µéÀÏ ¼ö ÀÖ´Ù.
#!/bin/bash 
echo Please, enter your firstname and lastname 
read FN LN 
echo "Hi! $LN, $FN !" 
»ê¼ú °è»ê

¸í·É ÇàÀ̳ª ¼Ð¿¡¼­ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇØ º¸ÀÚ.
echo 1 + 1
¹¹°¡ ³ª¿À°Ú´Â°¡? ÀÔ·ÂÇÑ ±×´ë·Î ³ª¿Í ¹ö¸°´Ù! Èì, ÀÌ °æ¿ì¿¡ 2¶ó´Â °á°ú°¡ ³ª¿Â´Ù¸é ¹º°¡ ½Ç¼öÇÑ °Å´Ù. ±×·¸´Ù¸é ¾î¶»°Ô Çϸé ÀÌ °è»êÀÇ °á°ú¸¦ È­¸é¿¡¼­ º¼ ¼ö ÀÖÀ»±î. ¹æ¹ýÀº °£´ÜÇÏ´Ù. ÀÌ°ÍÀÌ ¹®ÀÚ¿­ÀÌ ¾Æ´Ï¶ó °è»êÀ̶ó´Â °ÍÀ» ÀνÄÇÏ¸é µÇ´Â °ÍÀÌ°í, ´õ ³ª¾Æ°¡ ÀÌ °è»êÀ» º¯¼ö¿¡ ³Ö¾î ¹ö¸®¸é echo ¸í·ÉÀ¸·Î º¼ ¼ö ÀÖ´Â °ÍÀº ÀÎÁö»óÁ¤ÀÎ °ÍÀÌ´Ù. ^^ ±×·¸´Ù~! ´äÀº ¹Ù·Î Àú°ÍÀÌ´Ù!
echo $((1+1)) 
Á» ´õ ³í¸®ÀûÀÌ°í Á¦´ë·Î µÈ ¹æ¹ýÀº Àú°ÍÀÌ´Ù. ¼öÇÐÀûÀΠǥÇöÀ¸·Î ÇÑ ¹æ¿¡ ÀνÄÇØ ¹ö¸°´Ù. È¿°ú´Â È®½ÇÇÏ´Ù!!
echo $[1+1] 
³ª´°¼ÀÀ» Á¦´ë·Î ÇÏ°í ½Í°Å³ª ȤÀº ´õ º¹ÀâÇÑ ¼öÇÐ °è»êÀ» ÇÏ°í ½Í´Ù¸é ¼öÇÐÀûÀÎ °è»êÀ» bc¿¡¼­ ó¸®ÇØ ¹ö¸®´Â °ÍÀÌ Çö¸íÇÏ´Ù. ¾Æ´Â ºÐÀº ´Ù ¾Æ´Â À̾߱âÀÌÁö¸¸ ¸ð¸£´Â ºÐÀ» À§ÇØ ¾ÆÁÖ Âª°Ô ¶°µé¾î º¸°Ú´Ù. bc´Â Å͹̳ο¡¼­ ±×³É ÀÔ·ÂÇؼ­ »ç¿ëÇÒ ¼ö ÀÖ´Â °è»ê±â·Î¼­, ¾ÆÁÖ Á¤¹ÐÇÑ ¼Ò¼öÁ¡ °è»ê±îÁö ÇÒ ¼ö ÀÖ°í, °øÇÐ °è»êµµ ½Ä¸¸ ¼¼¿ï ¼ö ÀÖ´Ù¸é À¢¸¸Çϸé Ç® ¼ö Àִµ¥´Ù°¡ ¸¶Ä¡ ¼öÇÐ ÆÐÅ°Áö¸¦ »ç¿ëÇϵíÀÌ, ¾î´À Á¤µµ °£´ÜÇÑ ½ºÅ©¸³Æ® ÇüŸ¦ ¸¸µé¾î ¼öÇÐ °è»êÀ» ÇÒ ¼öµµ ÀÖ´Â, ±×¾ß¸»·Î ³¡³»ÁÖ´Â ¹°°ÇÀÌ´Ù. À̾߱Ⱑ ±æ¾îÁ³´Âµ¥, ¹é°ßÀÌ ºÒ¿©ÀÏÇàÀ̶ó°í ¹¹°¡ ´Ù¸¥Áö Çѹø º¸±â³ª ÇÏÀÚ.

3/4¸¦ °è»êÇÑ´Ù°í "echo $[3/4]" ¶ó°í ÀÔ·ÂÇØ º¸ÀÚ. ¿ø·¡ Á¤»óÀûÀÎ ´äÀº 0.75ÀÌ°ÚÁö¸¸ ¿©±â¿¡¼­´Â ¸ÛûÇÏ°Ôµµ 0À̶ó°í ³ª¿Ã °ÍÀÌ´Ù. ±×µµ ±×·² °ÍÀÌ, ¹è½¬¿¡¼­´Â ¿ÀÁ÷ Á¤¼ö °è»ê¸¸ ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. "echo 3/4 | bc -l"¶ó°í ÀÔ·ÂÇÏ¿© ÀÌ ³»¿ëÀ» bc·Î º¸³»¸é 0.75¶ó´Â ´äÀ» ¾òÀ» ¼ö ÀÖ´Ù.

bashÀÇ °æ·Î ã±â

ÀÌ ºÎºÐÀº ¸¶ÀÌÅ©°¡ Ãß°¡ÇØ ÁØ ºÎºÐÀÌ´Ù.

¿ì¸®´Â ´ë°³ ½ºÅ©¸³Æ®ÀÇ Ã¹ ÁÙ¿¡ #!/bin/bash ¶ó°í ÀÔ·ÂÇÏÁö¸¸, ¿©±â¿¡¼­´Â ´Ù¸¥ °æ·Î¿¡ bash°¡ ÀÖÀ» ¶§ ±×°ÍÀ» ã¾Æ³»´Â ¹æ¹ýÀ» °£´ÜÈ÷ ¤°í ³Ñ¾î°¡°Ú´Ù. ´ëºÎºÐÀÇ ½Ã½ºÅÛ¿¡¼­´Â /bin/bashÀÇ °æ·Î¿¡ ÀÖ°ÚÁö¸¸, ¸ðµç ½Ã½ºÅÛÀÌ ±×·¸´Ù°í´Â ¸»ÇÒ ¼ö ¾ø±â ¶§¹®ÀÌ´Ù.

'find ./ -name bash' ¸í·ÉÀº ·çÆ® µð·ºÅ丮ºÎÅÍ ¸ðµç µð·ºÅ丮¸¦ ¾µ¾î³»¸®¸ç bash¸¦ ã´Â´Ù. ±×·¯³ª ÀÌ·¸°Ô ±îÁö ÇÒ °ÍÀº ¾ø´Ù. bash°¡ ÀÖ´Â À§Ä¡¶ó´Â °ÍÀº ´ë°³ ´ÙÀ½ Áß ÇϳªÀÎ °ÍÀÌ´Ù. ÀÌ °æ·Î¸¦ ¸ðµÎ È®ÀÎÇØ º¸°íµµ ¾øÀ» ¶§¿¡¾ß find¸¦ ½á º¸ÀÚ. »ç½Ç, ¸ðµç µð·ºÅ丮¸¦ È®ÀÎÇÏ´Â °ÍÀº Á» ½Ã°£ ³¶ºñ´Ù.
ls -l /bin/bash
ls -l /sbin/bash
ls -l /usr/local/bin/bash
ls -l /usr/bin/bash
ls -l /usr/sbin/bash
ls -l /usr/local/sbin/bash
ȤÀº 'which bash'¸¦ »ç¿ëÇÏ¿© ãÀ» ¼öµµ ÀÖ´Ù. ÃëÇâ¿¡ µû¶ó ½á º¸ÀÚ.

ÇÁ·Î±×·¥ÀÌ µÇµ¹¸®´Â °ª ¹Þ±â

bash¿¡¼­, ÇÁ·Î±×·¥ÀÌ µÇµ¹¸®´Â °ªÀº Ưº°ÇÑ º¯¼öÀÎ $?·Î ¹Þ´Â´Ù.

´ÙÀ½Àº ¾î¶»°Ô ÇÁ·Î±×·¥ÀÌ µÇµ¹¸®´Â °ªÀ» ¹Þ¾Æ³»´À³Ä¸¦ º¸¿© ÁÖ´Â °ÍÀÌ´Ù. ³ª´Â ¿©±â¿¡¼­ dada ¶ó´Â µð·ºÅ丮°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù°í °¡Á¤ÇÏ°Ú´Ù. È­¸é¿¡ ¹º°¡ ³ª¿ÀÁö ¾Ê´Â°¡?
#!/bin/bash 
cd /dada &> /dev/null 
echo rv: $? 
cd $(pwd) &> /dev/null 
echo rv: $? 

¸í·É ½ÇÇà °á°ú ÀúÀåÇϱâ

¸ÕÀú MySQLÀÌ ±ò·Á ÀÖ´Ù´Â °¡Á¤ ÇÏ¿¡¼­ ÇÏ´Â ¸»ÀÌÁö¸¸, À̹ø¿¡ ¼³¸íÇÒ °£´ÜÇÑ ½ºÅ©¸³Æ®´Â ÀÌ ½Ã½ºÅÛ¿¡ Á¸ÀçÇÏ´Â ¸ðµç µ¥ÀÌÅÍ º£À̽ºÀÇ ¸ðµç Å×ÀÌºí ¸ñ·ÏÀ» º¼ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀÌ´Ù. ¹°·Ð mysql ¸í·ÉÀ» »ç¿ëÇÏ´Â µ¥ ÇÊ¿äÇÑ »ç¿ëÀÚ À̸§°ú Æнº¿öµå´Â ÀÖ¾î¾ß ÇÒ °ÍÀÌ´Ù.
#!/bin/bash 
DBS=`mysql -uroot -e"show databases"` 
for b in $DBS ; 
do 
mysql -uroot -e"show tables from $b" 
done 

´ÙÁß ¼Ò½ºÆÄÀÏ »ç¿ëÇϱâ

¿©·¯ ÆÄÀÏ¿¡ °ÉÃÄ ¸í·É ¼Ò½º¸¦ ÀÔ·ÂÇÏ¿© ½ÇÇàÇÒ ¼öµµ ÀÖ´Ù.

ÇÊÀÚ´Â ÀÌ ºÎºÐÀ» ±×³É ¾Ë¾Æ¼­ ÇØ º¸¶ó°í ºñ¿ö µÎ¾ú°í ¾ÆÁ÷±îÁö ä¿ï ±â¹Ì°¡ º¸ÀÌÁö¸¦ ¾ÊÁö¸¸..... ¹¹, ¸»ÇÏÀÚ¸é °£´ÜÇÏ´Ù. ¿¹ÄÁ´ë, ÀÎÅͳݿ¡¼­ ¿øÇÏ´Â ¸¸È­ ±×¸² ÆÄÀÏÀ» ¸ÅÀÏ ¾Æħ ´Ù¿î·Îµå ¹Þ´Â ½ºÅ©¸³Æ®°¡ ÀÖ´Ù°í °¡Á¤ÇÏÀÚ. ÀÌ ¸¸È­ ±×¸²À» ¸ÅÀÏ ¹ÙÅÁ È­¸é¿¡ ±ò¾Æ ³õ°í ½Í´Ù¸é ÀÌ ³»¿ëÀ» »õ·Î¿î ½ºÅ©¸³Æ®¿¡ Åë°·Î Áý¾î ³Ö¾îµµ »ó°ü ¾ø°ÚÁö¸¸, ¿øÇÏ´Â ±×¸²À» ¹ÙÅÁ È­¸é¿¡ ÀÚµ¿À¸·Î ±ò¾Æ ³õ´Â ½ºÅ©¸³Æ®¿¡¼­ ÀÌ ±×¸²À» ´Ù¿î¹Þ´Â ½ºÅ©¸³Æ®¸¦ ºÒ·¯µé¿© ½ÇÇàÇصµ ¾Æ¹« »ó°üÀÌ ¾ø´Ù´Â ¶æÀÌ´Ù. ÀÌ¿Í °°Àº ´ÙÁß ¼Ò½ºÆÄÀÏÀº ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼­µµ °°Àº ±â´ÉÀ» ¶Ç »ç¿ëÇÒ ¶§ »õ ÇÁ·Î±×·¥ ¾È¿¡¼­ ºÒ·¯ µéÀÌ´Â °Í ¸¸À¸·Îµµ ÃæºÐÈ÷ Á¦ ±â´ÉÀ» Çϱ⠶§¹®¿¡ Æí¸®ÇÏ°Ô ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.

¹®ÀÚ¿­ ºñ±³ ¿¬»êÀÚ

  1. s1 = s2
  2. s1 != s2
  3. s1 < s2
  4. s1 > s2
  5. -n s1
  6. -z s1

Áö±Ý ¼³¸íÇÏ´Â ³»¿ëÀº ¹®ÀÚ¿­À» ºñ±³ÇÏ´Â ¿¬»êÀÚÀÌ´Ù. ÀÌ ¿¬»êÀÚ¸¦ ¹®Àå Çü´ë·Î ¹Ù²Ù¸é ´ÙÀ½°ú °°´Ù.

  1. s1 matches s2
  2. s1 does not match s2
  3. TO-DO
  4. TO-DO
  5. s1 is not null (contains one or more characters)
  6. s1 is null

¹®ÀÚ¿­ ºñ±³ÀÇ ¿¹Á¦

´ÙÀ½Àº ¹®ÀÚ¿­ $S1°ú $S2¸¦ ºñ±³ÇÏ´Â ¿¹Á¦ÀÌ´Ù.
#!/bin/bash 
S1='string' 
S2='String' 
if [ $S1=$S2 ]; 
then 
echo "S1('$S1') is not equal to S2('$S2')" 
fi 
if [ $S1=$S1 ]; 
then 
echo "S1('$S1') is equal to S1('$S1')" 
fi 
º¸ÅëÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­ »ç¿ëÇÏ´Â ¹æ¹ý°ú ¾ÆÁÖ ºñ½ÁÇÏ´Ù.

ÀÌ ºÎºÐ¿¡ ´ëÇؼ­´Â ¾Èµå·¹ º£Å©ÀÇ ¸ÞÀÏÀ» Âü°íÇÏ¿´´Ù.

ÀÌ°ÍÀº »ó´çÈ÷ ÁÁÀº ¹æ¹ýÀÌ´Ù. $S1À̳ª $S2 µÑ Áß Çϳª¶óµµ ºñ¾î ÀÖÀ» ¶§¿¡´Â ¿¡·¯°¡ ¹ß»ýÇÒ °ÍÀÌ´Ù. x$1=x$2 À̳ª "$1"="$2" ¿Í °°ÀÌ ¾²´Â ÆíÀÌ ÁÁ´Ù.

»ê¼ú ¿¬»êÀÚ

+

-

*

/

% (³ª¸ÓÁö)

»ê¼ú °ü°è ¿¬»êÀÚ
-lt (<)

-gt (>)

-le (<=)

-ge (>=)

-eq (==)

-ne (!=)

C ¾ð¾î¸¦ »ç¿ëÇÏ´Â »ç¶÷À̶ó¸é ÀÌ°ÍÀÌ ¹«½¼ ÀǹÌÀÎÁö ÇÑ´«¿¡ ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×·¸Áö ¾Ê´õ¶óµµ ÀÌ ±ÛÀ» ÀÐÀ» Á¤µµÀÇ »ç¶÷À̶ó¸é ºÐ¸í ¹«½¼ ¸»ÀÎÁö ¾Ë°í ÀÖÀ» Å×´Ï ³Ñ¾î°¡ÀÚ.

¾µ¸ðÀÖ´Â ¸í·É

ÀÌ ºÎºÐÀº Å°Áî°¡ ³»¿ëÀ» ¼öÁ¤ÇÏ¿© ´Ù½Ã ½á ÁÖ¾ú´Ù.

ÀÌ °÷ÀÇ ¸î¸î ¸í·ÉÀº ´ëºÎºÐ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ Æ÷ÇԵǾî ÀÖ´Â °ÍÀÌ´Ù. ¹°·Ð ¿©±â ³ª¿À´Â ¼³¸íÀº Á¤¸» ´«¹°³ª°Ô °£´ÜÇÑ °ÍÀ̹ǷÎ, ÀÌ¿Í °°Àº ¸í·É¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀº ¸Ç ÆäÀÌÁö¸¦ Âü°íÇÏÀÚ.

sed

sed´Â ºñ´ëÈ­Çü(non-interactive) ¸ðµåÀÇ ¶óÀÎ ÆíÁý±âÀÌ´Ù. ¶ÇÇÑ ÇÊÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖ¾î ¼Ð ÇÁ·Î±×·¡¹Ö¿¡¼­ ¾ÆÁÖ Àß! »ç¿ëÇÒ ¼ö ÀÖ´Â µµ±¸ÀÌ´Ù. ¸ÕÀú °£´ÜÈ÷ ¿¹Á¦¸¦ »ìÆ캸ÀÚ.
$ sed 's/to_be_replaced/replaced/g' /tmp/dummy

Sed ´Â /tmp/dummy ÆÄÀÏÀ» Àоîµé¿© 'to_be_replaced'¶ó´Â ¹®ÀÚ¿­À» 'replaced'·Î °£´ÜÈ÷ ¹Ù²ã ¹ö¸°´Ù. ÀÌ °á°ú´Â ±×³É È­¸é¿¡ Ãâ·ÂµÉ »ÓÀ̹ǷÎ, ÆÄÀÏ·Î ÀúÀåÇϱâ À§Çؼ­´Â À§ ¸í·ÉÀÇ ³¡¿¡ '> ÆÄÀÏÀ̸§'À» Ãß°¡ÇØ¾ß ÇÒ °ÍÀÌ´Ù. Àû´çÇÑ ÆÄÀÏ À̸§À» ³Ö¾î ÁÖ¸é ±× À̸§À¸·Î ÀÌ °á°ú°¡ ÀúÀåµÉ °ÍÀÌ´Ù.
$ sed 12, 18d /tmp/dummy
Sed ´Â ¿øº» ÆÄÀÏ¿¡¼­ 12¿¡¼­ 18ÁÙ ±îÁö¸¦ Á¦¿ÜÇÑ ¸ðµç ÁÙÀ» º¸¿©ÁØ´Ù.

awk

awk´Â C ¾ð¾î¿Í ºñ½ÁÇÑ ¹æ½ÄÀ¸·Î ÀÛµ¿ÇÏ´Â, ÅؽºÆ® ó¸® ¾ð¾îÀÌ´Ù. awk´Â ÆÐÅÏÀ» °Ë»öÇÏ¿© °°Àº °ÍÀ» ã¾Æ ó¸®ÇÑ´Ù´Â Á¡¿¡¼­´Â °£´ÜÇÑ ±â´ÉÀ» °¡Áø °Í ó·³ º¸ÀÌÁö¸¸, »ç½Ç ¾ÆÁÖ Á¤±³ÇÏ°Ô µ¿ÀÛÇÒ ¼ö ÀÖ´Ù.

ÀÚ, ´ÙÀ½ ÇàÀ» /tmp/dummy ÆÄÀÏ¿¡ Áý¾î³ÖÀÚ.
"test123
test
tteesstt"

$ awk '/test/ {print}' /tmp/dummy

test123
test

awk´Â test°¡ Æ÷ÇÔµÈ ÁÙÀ» È­¸é¿¡ Ãâ·ÂÇÏ¿´´Ù. ±×·¯³ª ÀÌ°ÍÀº awkÀÇ ±â´É Áß¿¡¼­´Â °¡Àå ´Ü¼øÇÑ ºÎºÐ¿¡ ¼ÓÇÑ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ´Ù¸¥ ¹®¼­¸¦ Âü°íÇϵµ·Ï ÇÏ°í, ¿©±â¿¡¼­´Â ÇÑ °¡Áö¸¸ ´õ »ìÆì º¸°í ³Ñ¾î°¡°Ú´Ù.
$ awk '/test/ {i=i+1} END {print i}' /tmp/dummy 

3

´Ù¾çÇÑ ÆÐÅÏÀ» °Ë»öÇϱâ À§ÇØ '-f file.awk'¿Í °°Àº ½ÄÀ¸·Î ÆÄÀÏ À̸§À» ÁöÁ¤ÇÏ°í, ÀÌ ÆÄÀÏ ¾È¿¡ ÇÊ¿äÇÑ ÆÐÅÏÀ» ¸ðµÎ ÀÔ·ÂÇØ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

¹°·Ð grep¿¡ ´ëÇؼ­´Â µû·Î ¼³¸íÇÒ ÇÊ¿ä°¡ ¾øÀ» Áöµµ ¸ð¸£°Ú´Ù. ÇØ´çµÇ´Â ¹®ÀÚ¿­ÀÌ ÀÖ´Â ÇàÀ» ¹ÝȯÇÏ´Â grep ¸í·ÉÀº ³Î¸® ¾²ÀÌ°í ÀÖÀ¸´Ï±î. ÇÏÁö¸¸ grepÀº ´Ù¸¥ ´Ù¾çÇÑ ±â´Éµµ ¹ßÈÖÇÒ ¼ö ÀÖ´Ù.
$ grep "look for this" /var/log/messages -c 

12

"look for this"¶ó´Â ¹®ÀåÀÌ /var/log/messages¶ó´Â ÆÄÀÏ ¾È¿¡¼­ 12¹ø ¹ß°ßµÇ¾ú´Ù´Â ¶æÀÌ´Ù.

ÀÌ ¸í·ÉÀº ´Ü¾î ¼ö¸¦ ¼¼¾î ÁÖ´Â ¸í·ÉÀÌ´Ù. ¾î´À ¿Ü±¹ Ã߸® ¼Ò¼³¿¡¼­, ´Ü¾î´ç 5¼¾Æ®¸¦ ¹Þ´Â ÀÛ°¡ÀÇ À̾߱Ⱑ ³ª¿À±âµµ Çߴµ¥, Á¤¸» ¿ø°í·á¸¦ Ã¥Á¤ÇÒ ¶§ »ç¿ëÇÒ Áöµµ ¸ð¸£°Ú´Ù. ´ÙÀ½°ú °°Àº ³»¿ëÀ» dummy ÆÄÀÏ·Î ÀúÀåÇÏ°í ¸í·ÉÀ» ½ÇÇàÇØ º¸ÀÚ.
"bash introduction
howto test file"

$ wc --words --lines --bytes /tmp/dummy 

2 5 34 /tmp/dummy

sort

±×·¯¸é ´ÙÀ½°ú °°Àº ³»¿ëÀÌ µé¾î ÀÖ´Â Àӽà ÆÄÀÏ /tmp/dummy¸¦ ¸¸µé¾î º¸ÀÚ.
b
c
a

$ sort /tmp/dummy 

À§ ¸í·ÉÀÇ °á°ú·Î ´ÙÀ½°ú °°Àº Ãâ·ÂÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
a
b
c

¶ÇÇÑ ½±Áö¸¸Àº ¾ÊÀº ³à¼®À¸·Î bcµµ ÀÖ´Ù. bc´Â ¸í·É Çà¿¡¼­ »ç¿ëÇÏ´Â °è»ê±âÀÌ´Ù. ÆÄÀÏÀ̳ª Á÷Á¢ ÀԷ ȤÀº ¸®µð·º¼ÇÀ¸·Î ÀÔ·Â¹Þ¾Æ Ã³¸®ÇÑ´Ù. -q ¿É¼ÇÀ» »ç¿ëÇϸé óÀ½ ½ÃÀÛÇÒ ¶§ ³ª¿À´Â ¸Þ½ÃÁö¸¦ ¾È º¸°í ³Ñ¾î°¥ ¼ö ÀÖ´Ù.
$ bc -q

1 == 5

0 0.05 == 0.05 1 5 != 5 2 ^ 8 256 sqrt(9) 3 while (i != 9) { i = i + 1; print i } 123456789 quit tput ¶Ç ´Ù¸¥ ½ºÅ©¸³Æ®µé... ¿¹Á¦ : ÃÊ°£´Ü ¹é¾÷ ½ºÅ©¸³Æ®-Á¶±Ý ¹ßÀüµÈ ¹öÀü
#!/bin/bash 
SRCD="/home/" 
TGTD="/var/backups/" 
OF=home-$(date +%Y%m%d).tgz 
tar -cZf $TGTD$OF $SRCD 
¿¹Á¦ : ÆÄÀÏÀ̸§ ¹Ù²Ù´Â ÇÁ·Î±×·¥(renna)
#!/bin/sh 
# renna: ¿©·¯ ÆÄÀÏÀÇ À̸§À» ±ÔÄ¢¿¡ µû¶ó Çѹø¿¡ ¹Ù²Ü ¼ö ÀÖ´Â ÇÁ·Î±×·¥
# Æ丯½º Çãµå½¼ÀÌ 2000³â 1¿ù¿¡ ¸¸µé¾ú´Ù. 


if [ $1 = p ]; then 

prefix=$2 ; shift ; shift 


if [$1 = ]; then 
echo "no files given" 
exit 0 
fi 

for file in $* 
do 
mv ${file} $prefix$file 
done 

exit 0 
fi 

if [ $1 = s ]; then 
suffix=$2 ; shift ; shift 

if [$1 = ]; then 
echo "no files given" 
exit 0 
fi 

for file in $* 
do 
mv ${file} $file$suffix 
done 

exit 0 
fi 

if [ $1 = r ]; then 

shift 

if [ $# -lt 3 ] ; then 
echo "usage: renna r [expression] [replacement] files... " 
exit 0 
fi 

OLD=$1 ; NEW=$2 ; shift ; shift 

for file in $* 
do 
new=`echo ${file} | sed s/${OLD}/${NEW}/g` 
mv ${file} $new 
done 
exit 0 
fi 

echo "usage;" 
echo " renna p [prefix] files.." 
echo " renna s [suffix] files.." 
echo " renna r [expression] [replacement] files.." 
exit 0 
°£´ÜÇÏ°Ô ÆÄÀÏ À̸§ ¹Ù²Ù±â ÆÄÀÏ À̸§À» ¹Ù²Ù±â À§Çؼ­´Â mv ¸í·ÉÀ» »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, ´ÙÀ½ÀÇ ¹æ¹ýÀ» »ç¿ëÇÏ¿© ÆÄÀÏ À̸§À» º¯°æÇØ º¸ÀÚ.
#!/bin/bash 
# renames.sh 
# °£´ÜÇÑ ÆÄÀÏ À̸§ ¹Ù²Ù±â ÇÁ·Î±×·¥

criteria=$1 
re_match=$2 
replace=$3 

for i in $( ls *$criteria* ); 
do 
src=$i 
tgt=$(echo $i | sed -e "s/$re_match/$replace/") 
mv $src $tgt 
done 
¾Æħ¸¶´Ù ½Å¹® ¸¸È­¸¦ ¹è°æ È­¸éÀ¸·Î »ç¿ëÇϱâ ÀÌ ÇÁ·Î±×·¥Àº GNOME¿¡¼­ Á¦´ë·Î µ¿ÀÛÇÑ´Ù. ´Ù¸¥ ȯ°æ¿¡¼­ »ç¿ëÇÒ ¶§¿¡´Â ȯ°æ ¼³Á¤ÆÄÀÏÀ» »õ·Î ¸¸µå´Â ºÎºÐÀ» ¼öÁ¤ÇØ¾ß ÇÒ °ÍÀÌ´Ù. ÀÌ ÇÁ·Î±×·¥Àº ±× ³¯ÀÇ ³¯Â¥·Î ÆÄÀÏ À̸§À» ¸¸µå´Â ½Å¹® ¸¸È­ÀÇ ±ÔÄ¢¼ºÀ» ÀÌ¿ëÇÏ¿© ÆÄÀÏÀ» ¹Þ´Â ÇÁ·Î±×·¥À¸·Î, crontab¿¡ ÁöÁ¤ÇØ µÎ¸é ´õ¿í Æí¸®ÇÏ´Ù.
#!/bin/bash
# bgimg.sh
# ±×³¯ÀÇ ³¯Â¥·Î µÈ ½Å¹® ¸¸È­¸¦ ¹Þ¾Æ¿Â´Ù. ¾Æ·¡ÀÇ ÁÖ¼Ò ºÎºÐ¿¡´Â
# »óȲ¿¡ µû¶ó Àû¾î ÁØ´Ù.
filename="http://www.domain.com/pwd/"$(date +%Y%m%d)"07_0.jpg"
wget $filename

mv $(date +%Y%m%d)*07_0.jpg ./bgimages

imagename="/mypwd/bgimages/"$(date +%Y%m%d)".jpg"
confname="./.gnome/Background"
rm $confname
touch $confname

echo "[Default]" >> $confname
echo "color1=#5477a0" >> $confname
echo "color2=#5477a0" >> $confname
echo "simple=solid" >> $confname
echo "gradient=vertical" >> $confname
echo "wallpaperAlign=1" >> $confname
echo "Enabled=true" >> $confname

comm="wallpaper="$imagename

echo $comm >> $confname
¹®Á¦°¡ »ý°åÀ» ¶§(µð¹ö±ë ¹æ¹ý) ÇÁ·Î±×·¥ ÁøÇà°úÁ¤ º¸±â ¾î¶² ÇÁ·Î±×·¥ÀÌ ÀÌÇØÇÒ ¼ö ¾ø´Â µ¿ÀÛÀ» ÇÒ °æ¿ì, ÇÁ·Î±×·¥ÀÇ Ã¹ ÁÙÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.
#!/bin/bash -x
ÀÌ·± ¿É¼ÇÀº ½ÇÇà °úÁ¤¿¡¼­ÀÇ Á¤º¸¸¦ ÇϳªÇϳª Ãâ·ÂÇØ ÁÖ¾î µð¹ö±×¿¡ µµ¿òÀ» ÁØ´Ù. °¢ ÇàÀÌ ½ÇÇàµÉ ¶§ÀÇ ¹ÝÀÀÀ» ¸ðµÎ º¼ ¼ö ÀÖ¾î, ¾î´À ºÎºÐ¿¡¼­ ¹®Á¦°¡ ÀϾ´ÂÁö¸¦ È®½ÇÇÏ°Ô È®ÀÎÇÒ ¼ö ÀÖ´Ù. ÀÌ ¹®¼­¿¡ ´ëÇÏ¿© ÀÌ ¹®¼­¿¡ Ãß°¡Çϰųª Á¤Á¤ÇÏ´Â °Í, ȤÀº ÀÌ ¹®¼­¸¦ º¸°í »ý°¢³ª´Â °ÍÀº ±×³É ÆíÇÏ°Ô ¾Ë·Á ÁáÀ¸¸é ÇÑ´Ù. ÀÌ·± ³»¿ëÀº ¸ðÀ¸°í ¸ð¾Æ¼­ °¡±ÞÀû »¡¸® ¹®¼­¿¡ Ãß°¡ÇØ µÎ°Ú´Ù. ÀÌ ¹®¼­¿¡ ´ëÇÑ Ã¥ÀÓ ÀÌ ¹®¼­´Â ¾î¶² Á¾·ùÀÇ Ã¥ÀÓµµ ÁöÁö ¾Ê´Â´Ù. ´Ù½Ã ¸»ÇÏÀÚ¸é ÀÌ ¹®¼­¸¦ µû¶óÇÏ´Ù°¡ ¸ðÁ¾ÀÇ ºÒ»ó»ç°¡ »ý±â´õ¶óµµ Ç×ÀÇÇÏÁö ¸»¶ó´Â ¸»ÀÌ´Ù. ¸»Àº ÆíÇÏ°Ô Çϴ±º.... À̶ó´Â »ý°¢ÀÌ µé Áö´Â ¸ð¸£°ÚÁö¸¸, ¿©±â ÀÖ´Â ³»¿ëÀº ´ëü·Î ¾ÈÀüÇÏ´Ï±î ±×³É µû¶ó Çصµ ¹«¹æÇÒ °ÍÀÌ´Ù. ¹ø¿ª http://web.tiscalinet.it/penguin_rules http://kldp.org http://www.insflug.org ´õ ¸¹Àº ¹ø¿ªº»ÀÌ ÀÖÀ¸¸®¶ó »ý°¢ÇÏÁö¸¸, ³»°¡ ¾Æ´Â °ÍÀº ÀÌ Á¤µµ ¼±ÀÌ´Ù. ¸¸¾à¿¡ ÀÌ ¹®¼­¸¦ ¹ø¿ªÇß´Ù¸é, ±× »ç½ÇÀ» ¾Ë·ÁÁÖ¸é °í¸¿°Ú´Ù. ¿©·¯ºÐ²² °¨»çµå¸³´Ï´Ù. ´Ù¸¥ ¿©·¯ ³ª¶ó ¸»·Î ÀÌ ¹®¼­¸¦ ¹ø¿ªÇØ ÁØ ¸ðµç ºÐµé À߸øµÈ ºÎºÐÀ» Á¤¸» ¿­½ÉÈ÷ Àâ¾Æ ÁØ ³ª»ê Ç㽺Ʈ ¼öÇÐÀûÀΠǥÇö¿¡ ´ëÇØ Ãß°¡ ¼³¸íÀ» º¸³»ÁØ Á¸ ¾Öº¸Æ® renna ½ºÅ©¸³Æ®¸¦ ¸¸µé¾î ÁØ Çãµå½¼ ³»¿ë Áß À߸øµÈ °ÍÀ» ±³Á¤ÇÏ¿© º¸³»ÁÖ°í ¸í·É¾î ºÎºÐÀ» ´Ù½Ã ½á ÁÖ±â±îÁö ÇÑ Å°½º ¹Ý µ§ ºê·ÚÅ© BASH¿¡ ´ëÇÑ Á¶¾ðÀ» ÇØÁÖ°í Äڵ带 Å×½ºÆ® ÇØ ÁØ ¸¶ÀÌÅ© ÇÎÅ© ·çÇÁ ºÎºÐÀ» ÀÛ¼ºÇÏ´Â µ¥ µµ¿òÀ» ÁÖ¾ú´ø ÇÇ¿¡½Ã ¸î °¡Áö ¿¡·¯¿¡ ´ëÇØ Á¶¾ðÀ» ÇØ ÁÖ¾ú´ø ¶óÀ̾ð ¼öÁ¤À» ÇØÁÖ°í ÁÖ¼®À» ´Þ¾ÆÁØ ¾Èµå·¹¾Æ½º º£Å© ¾÷µ« °úÁ¤.... ºÎºÐÀûÀÎ ¼öÁ¤À» ÇÏ°í ¹ø¿ª ¹®¼­¿¡ ´ëÇØ »õ Á¤º¸¸¦ ³Ö¾ú´Ù. À¯¿ëÇÑ ¸í·É¿¡ ´ëÇØ Å°½º°¡ ´Ù½Ã ½á ÁØ ¿ø°í¸¦ Ãß°¡ÇÏ¿´´Ù. ¼öÁ¤À» ÇÏ°í, ÀÇ°ßÀ» ¹Ý¿µÇÏ¿´´Ù. ¹®ÀÚ¿­ ÂÊ¿¡ ¿¹Á¦¸¦ Ãß°¡ÇÏ¿´´Ù v0.8 ¹öÀü ¸Å±â±â¸¦ Áß´ÜÇÏ¿´´Ù. v0.7 ¼öÁ¤À» ´õ ÇÏ°í Á¦´ë·Î ¾²Áö ¾Ê¾Ò´ø ¿¹Á¦ ºÎºÐÀ» Ãß°¡Çß´Ù. v0.6 ºÎºÐ ¼öÁ¤ v0.5 ºÎºÐ ¼öÁ¤ v0.4 ¹®¼­¸¦ linuxdoc.org »çÀÌÆ®·Î ÀÚ¸®¸¦ ¹Ù²Ù¾î ¿Ã·Á ³õ¾Ò´Ù.

ID
Password
Join
Beauty and harmony are as necessary to you as the very breath of life.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2004-12-13 18:46:57
Processing time 0.0144 sec