ÇÁ·Î±×·¡¹Ö ȯ°æ°ú ÇÁ·Î±×·¡¹Ö Åø

ÁÖ¼º½Ä / liks@doit.ajou.ac.kr

 

 

¸®´ª½º¿¡¼­ÀÇ ÇÁ·Î±×·¡¹Ö ȯ°æ

    ¸®´ª½º¿¡¼­´Â MSÀÇ µµ½º ½ÃÀýºÎÅÍ Áö±ÝÀÇ À©µµ¿ì ±â¹Ý¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í À¯´Ð½º ±â¹Ý¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Á¦À۵ǾîÁø °ÅÀÇ ¸ðµç ¾ð¾î¿Í ÅøµéÀ» Áö¿øÇÑ´Ù. °¡Àå Àαâ ÀÖ´Â ¾ð¾îÀÎ ¡®C¡¯,¡¯C++¡¯À» ¿Ïº®È÷ Áö¿øÇϸç(¸®´ª½º°¡ ¡®C¡¯·Î Â¥¿©Á® ÀÖÀ½À» »ý°¢ÇØ º¸ÀÚ. ^^;) ¼±Ç³ÀûÀÎ Àα⸦ ²ø°í ÀÖ´Â ½ãÀÇ ÀÚ¹Ù, ¿¹Àü¿¡ Àαâ ÀÖ´ø Æ÷Æ®¶õ, ÄÚº¼ µîµµ ¿Ïº®È÷ Áö¿øÇÑ´Ù. ÃÖ±Ù µé¾î¼­ ÀÏ»óÀÇ ÀϺΰ¡ µÇ¾î ¹ö¸° WWW (World Wide Web)ÀÇ °³¹ß µµ±¸ÀÎ ¡®perl¡¯ °ú PHP µîÀÇ È°¾àµµ ¸®´ª½ºÀÇ µµ¿òÀÌ ÄÇÀ¸¸®¶ó »ý°¢ÇÑ´Ù.

    À̹ø ±ÛÀÇ ¸ñÀûÀº ¸®´ª½º¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¡¹Ö µµ±¸µéÀÇ °£·«ÇÑ »ç¿ë¹ý°ú ¿©·¯ ÇÁ·Î±×·¡¹Ö ¾ð¾îµé¿¡ ´ëÇؼ­ °£·«È÷ ¾Ë¾Æº¸´Â °ÍÀÌ´Ù. óÀ½ ºÎºÐ¿¡´Â ¸®´ª½º¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â °¢ ¾ð¾î¿¡ ´ëÇÑ ÄÄÆÄÀÏ·¯³ª ÀÎÅÍÇÁ¸®ÅÍ, ȤÀº ÇÁ·Î±×·¡¹Ö µµ±¸ÀÇ °£·«ÇÑ »ç¿ë¹ý¿¡ ´ëÇؼ­ ´Ù·ç·Á ÇÑ´Ù. ³¡ ºÎºÐ¿¡´Â À¯´Ð½º°è¿­ÀÇ ¿î¿µÃ¼Á¦¿¡¼­ ¾ÆÁÖ ÇʼöÀûÀÎ ½©(shell) ½ºÅ©¸³Æ®¿¡ ´ëÇؼ­ ¾Ë¾Æ º¸µµ·Ï ÇÏ°Ú´Ù. ½© ½ºÅ©¸³Æ®´Â ¿©·¯ºÐÀÌ ¸®´ª½º¸¦ °¨Ä¥¸À ³ª°Ô È°¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØÁÙ °ÍÀÌ´Ù. ¿ì¸®´Â ÀÌ ºÎºÐÀ» °£´ÜÇÑ ¿¹Á¦¸¦ µé¾î¼­ ½±°Ô ¾Ë¾Æ º¸µµ·Ï ÇÏ°Ú´Ù. . ½ÇÁúÀûÀÎ °¢ ¾ð¾î¿¡ ´ëÇÑ ÇÁ·Î±×·¡¹ÖÀº ¿©·¯ºÐµéÀÇ °ü½É ¿©ÇÏ¿¡ µû¶ó ÁÁÀº ÀÔ¹®¼­¸¦ ¼±ÅÃÇÏ¿© °øºÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

 

¸®´ª½º¿¡¼­ÀÇ ¡®C¡¯¾ð¾î

    ¸®´ª½º¿Í °°Àº À¯´Ð½º °è¿­ ȯ°æ¿¡¼­ ¡®C¡¯´Â ¶¿·¡¾ß ¶¿ ¼ö ¾ø´Â µ¶º¸ÀûÀÎ Á¸ÀçÀÌ´Ù. ¶Ç °¡Àå ¡®Popular¡¯ÇÑ ·©±ÍÁö Àε¥´Ù°¡ ÃÖ±Ù¿¡ »õ·Î °³¹ßµÇ¾î Áö°í ÀÖ´Â ¾ð¾îµéÀÇ ¸ðü°¡ µÇ°í ÀÖ´Â ´õ ÀÌ»ó ¸»ÀÌ ÇÊ¿ä ¾ø´Â ±âº»ÀûÀÎ ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÌ´Ù.

 

¡®C¡¯¾ð¾î¸¦ »ç¿ëÇÏ·Á¸é..

    ¿ì¸®°¡ ¡®C¡¯¾ð¾î¸¦ ÀÌ¿ëÇØ ÇÁ·Î±×·¥ÀÇ ¼Ò½º¸¦ ¸¸µé¸é ±×°ÍÀ» »ç¶÷ÀÇ ÀÔÀåÀÌ ¾Æ´Ñ ±â°è ÀÔÀåÀÇ ¹ÙÀ̳ʸ® ÄÚµå·Î ¸¸µé¾îÁÖ´Â ÇÁ·Î±×·¡¹Ö µµ±¸°¡ ÇÊ¿äÇÏ´Ù. ¸®´ª½º¿¡¼­ÀÇ ÇÁ·Î±×·¡¹Ö °³¹ß¿¡´Â ±âº» ÀûÀ¸·Î ÄÄÆÄÀÏ·¯¿Í ¶óÀ̺귯¸® , Çì´õ ÆÄÀÏ µîÀ» °®Ãß°í ÀÖ¾î¾ß ÇÑ´Ù. ¿ì¸®°¡ ¸®´ª½º¿¡¼­ ¡®C¡¯¾ð¾î¸¦ ÀÌ¿ëÇØ ÇÁ·Î±×·¡¹ÖÇϱâ À§Çؼ­´Â ¡®GNU C Library¡¯(glibc-2.1)¶ó´Â °ÍÀÌ ±âº»ÀûÀ¸·Î ÇÊ¿äÇÏ´Ù. ÀÌ ¶óÀ̺귯¸®´Â °¡Àå ±âº»ÀûÀÎ ¡®C¡¯¶óÀ̺귯¸®ÀÌ´Ù. ¶Ç °³¹ßÇÏ·Á´Â ¼ÒÇÁÆ®¿þ¾îÀÇ ¿ëµµ¿¡ µû¶ó ¿©·¯ °¡Áö ¶óÀ̺귯¸®µéÀ» ÇÊ¿ä·Î ÇÒ °ÍÀÌ´Ù.

 

¡®gcc¡¯»ç¿ëÇϱâ

    gcc´Â GNU ÇÁ·ÎÁ§Æ®¿¡ ÀÇÇؼ­ °³¹ßµÇ¾îÁø ¡®GNU C Compiler¡¯ÀÌ´Ù. ¡®gcc¡¯´Â ¾î¶»°Ô ¼³Ä¡ÇØ¾ß ÇÒ±î?! Àû¾îµµ ¸®´ª½º¿¡¼­ ¸¸Å­Àº ¡®gcc¡¯ÀÇ ¼³Ä¡¿¡ ´ëÇؼ­ °ÆÁ¤ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¡®gcc¡¯´Â °¡Àå ±âº»ÀûÀÎ ¡®ÇÁ·Î±×·¥¡¯ À̱⠶§¹®¿¡ ÇʼöÀûÀ¸·Î ¼³Ä¡µÇ±â ¶§¹®ÀÌ´Ù. ¸¸¾àÀÇ °æ¿ì ¡®gcc¡¯¸¦ ¼³Ä¡ÇØ¾ß ÇÑ´Ù¸é ¡®http://www.gnu.org¡¯ µî¿¡¼­ ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Ù.
    °£´ÜÇÑ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ ÈÄ¿¡ ¡®gcc¡¯¸¦ ÀÌ¿ëÇؼ­ ÄÄÆÄÀÏ Çغ¸µµ·Ï ÇÏÀÚ.
     

    #include <stdio.h>
    main ()
    {
              printf(¡°hello,world¡¬n¡±);
    }

     

    ¿ì¸®´Â À§¿Í °°Àº ¼Ò½º Äڵ带 ¡®vi¡¯ ¿¡µðÅͳª ¡®cat¡¯¸í·É¾î¿Í ¸®´ÙÀÌ·º¼Ç ±âÈ£¸¦ ÀÌ¿ëÇÏ¿© ¸¸µé ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÆÄÀÏ À̸§Àº ¡®hello.c¡¯¶ó°í ÇÏÀÚ. È®ÀåÀÚ°¡ ¡®.c¡¯°¡ ¾Æ´Ï¸é gcc´Â ¡®C¡¯¾ð¾î ¼Ò½º ÄÚµåÀÓÀ» ÀνÄÇÏÁö ¸øÇÑ´Ù. ¼Ò½º Äڵ带 ÄÄÆÄÀÏ Çغ¸µµ·Ï ÇÏÀÚ.
     

    22% liks@Hero:~/programming/test> gcc hello.c
    23% liks@Hero:~/programming/test> ls -l
    ÇÕ°è 6
    -rwx--x--x 1 liks liks 4681 3¿ù 8 21:17 a.out
    -rw-r--r-- 1 liks liks 57 3¿ù 8 21:17 hello.c
    24% liks@Hero:~/programming/test> ./a.out
    hello,world
    25% liks@Hero:~/programming/test>

     

    gcc [¼Ò½ºÄÚµåÆÄÀÏÀ̸§]À» ½ÇÇàÇÏ¸é ´ÙÀ½°ú °°ÀÌ ±âº»ÀûÀ¸·Î ¡®a.out¡¯À̶ó´Â ½ÇÇàÄڵ带 »ý¼ºÇÏ°Ô µÇ´Âµ¥ ¿ì¸®°¡ ¿øÇÏ´Â ÆÄÀÏÀ̸§À» ¾ò±â À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ ¡®-o¡¯ ¿É¼ÇÀ» ÁÙ ¼ö ÀÖ´Ù. ¡®gcc -o hello hello.c¡¯ ¡®o¡¯¿É¼ÇÀº ÁÖ¾îÁø À̸§À¸·Î ½ÇÇà ÆÄÀÏÀ» »ý¼ºÇ϶ó´Â ¡®Place the output into <file>¡¯ÀÇ Àǹ̸¦ °¡Áö°í ÀÖ´Ù.
    ¡®gcc¡¯¸¦ »ç¿ëÇϴµ¥ ÇÊ¿äÇÑ ±âº»ÀûÀÎ ¿É¼ÇµéÀ» ¾Ë¾Æ º¸µµ·Ï ÇÏÀÚ.
     

    ¿É¼Ç

    ±â´É

    -o

    »ç¿ëÀÚ°¡ ¿øÇÏ´Â À̸§ÀÇ ½ÇÇà ÆÄÀÏ »ý¼º

    -M

    'Makefile'À» »ý¼º½ÃÄÑ ÁØ´Ù.

    -O

    ½ÇÇà Äڵ带 ÃÖÀûÈ­ ½ÃÄÑÁØ´Ù.

    -g

    µð¹ö°Å¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â Äڵ带 Æ÷ÇÔ ½ÃÄÑÁØ´Ù.

    -v

    ÄÄÆÄÀÏ·¯¿¡ ÀÇÇؼ­ ÄÄÆÄÀϵǴ °úÁ¤À» º¸¿©ÁØ´Ù.

    -c

    ¼Ò½º ÆÄÀϷκÎÅÍ ¸ñÀû Äڵ常À» »ý¼ºÇÏ¿© ÁØ´Ù.

    -S

    ¾î¼Àºí¸®(Assembler) ¼Ò½º Äڵ带 »ý¼ºÇØ ÁØ´Ù.

     

    ÇÁ·Î±×·¥À» Á¦ÀÛÇÒ ¶§ ÄÄÆÄÀÏÀ» ÇÏ°í ¼Ò½º¸¦ °ü¸®Çϴµ¥ ÆíÀǸ¦ µÎ±â À§ÇØ ¡®make¡¯, ¡®Makefile¡¯ µîÀÇ À¯Æ¿¸®Æ¼¿Í CVSµîÀÇ ÇÁ·Î±×·¥µéÀ» »ç¿ëÇÑ´Ù. Àü¹® °³¹ßÀÚ°¡ ¾Æ´Ï¶ó¸é ÀÌ·¯ÇÑ ºÎºÐ±îÁö´Â ½Å°æ¾²Áö ¾Ê¾Æµµ µÈ´Ù.

 

¸®´ª½º¿¡¼­ ÀÚ¹Ù¸¦ »ç¿ëÇØ º¸ÀÚ.

    ÀÚ¹Ù¿¡ ´ëÇÑ ¼Ò°³ : ÀÚ¹Ù´Â ¡®SUN Micro Systems¡¯¿¡¼­ °³¹ßµÇ¾îÁø ÄÄÇ»ÅÍ ¾ð¾îÀÌ´Ù. Ãʱ⿡´Â °¡Àü Á¦Ç°¿¡ »ç¿ëµÇ¾îÁú ¸ñÀûÀ¸·Î ¼³°èµÇ¾úÀ¸³ª ÀÚ¹Ù °¡»ó ¸Ó½ÅÀ» ÀÌ¿ëÇÏ¿© ¸ÖƼ Ç÷§Æû¿¡¼­ °°Àº ¸ð½ÀÀ¸·Î µ¿ÀÛÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°Ô µÇ¾ú´Ù. ¾î´À °÷¿¡¼­µçÁö Çѹø ÀÛ¼ºÇÏ°Ô µÇ¸é ´Ù¸¥ Æ÷Æðú °°Àº °úÁ¤À» °ÅÄ¡Áö ¾Ê°í °ð¹Ù·Î ½ÇÇàÇÒ ¼ö ÀÖ´Ù´Â °ÍÀº ÀÚ¹ÙÀÇ °¡Àå °­·ÂÇÑ ±â´ÉÀÌ´Ù. ¸ðµç °ÍÀÌ ¿Ïº®ÇÑ °´Ã¼ÁöÇâÀ¸·Î ¼³°èµÇ¾îÁ³°í ÀÎÅͳݿ¡ °¡Àå Àß ¸Â´Â ¾ð¾îÀÌ´Ù.

JAVA¸¦ À§ÇØ JDK¸¦ ¼³Ä¡ÇÏ°í »ç¿ëÇØ º¸ÀÚ.

    ¿ì¼± ÀÚ¹Ù¸¦ ÀÌ¿ëÇϱâ À§Çؼ­´Â ¡®JDK(Java Development Kit)¡¯¸¦ ¼³Ä¡ÇÏ¿©¾ß ÇÑ´Ù. ¡®JDK¡¯ÀÇ ÃֽŠ¹öÀüÀ» ±¸ÇÒ ¼ö ÀÖ´Â °÷Àº ¡®http://www.blackdown.org¡¯ÀÌ´Ù. ÀÌ °÷¿¡ Á¢¼ÓÇÏ¿© °¡±î¿î ¹Ì·¯ »çÀÌÆ®¸¦ ¼±ÅÃÇؼ­ JDK¸¦ ´Ù¿î·Îµå ¹Þµµ·Ï ÇÏÀÚ. ÇöÀç JDKÀÇ °¡Àå ÃֽŠ¹öÀüÀº 1.2.2ÀÌ´Ù.

    ´ÙÀ½ÀÇ ¹Ì·¯ »çÀÌÆ®¿¡¼­ ¡®ftp://ftp.lab.kdd.co.jp/Linux/java-linux/JDK-1.2.2/i386/rc4/¡¯
    ¡®jdk-1.2.2-RC4-linux-i386-glibc-2.1.2.sh¡¯ (21.4MB)¸¦ ´Ù¿î·Îµå ¹Þ¾Æ ¿Àµµ·Ï ÇÏÀÚ. È®ÀåÀÚ°¡ ¡®sh¡¯·Î ³¡³ª´Â ÆÄÀÏÀ» ´Ù¿î·Îµå ¹Þ¾Æ ¿À´Â ÀÌÀ¯´Â ¼³Ä¡°¡ °£ÆíÇϱ⠶§¹®ÀÌ´Ù. ½©½ºÅ©¸³Æ®Ã³·³ ½ÇÇà ¿É¼ÇÀ» ÁÖ¸é ÀÚµ¿À¸·Î ¼³Ä¡°¡ µÈ´Ù.

 

JDK1.2.2¸¦ ¼³Ä¡Çϱâ

    ÀÏ´Ü ¡®su¡¯¸¦ »ç¿ëÇØ ·çÆ® ±ÇÇÑÀ» ¾òÀº ÈÄ ¡®jdk-1.2.2-RC4-linux-i386-glibc-2.1.2.sh¡¯ ÆÄÀÏÀ» /usr/local/ µð·ºÅ丮¿¡ Ä«ÇÇÇÑ´Ù. Ä«ÇÇÇÑ ÈÄ ´ÙÀ½°ú °°Àº ÀýÂ÷·Î ÀνºÅç ÇÑ´Ù.

    % cd /usr/local
    % chmod +x ./jdk-debug-1.2.2-RC4-linux-i386-glibc-2.1.2.sh
    % ./jdk-debug-1.2.2-RC4-linux-i386-glibc-2.1.2.sh

    ÀÌÁ¦´Â ÀÌ°÷¿¡ ¡®jdk-debug-1.2.2-RC4-linux-i386-glibc-2.1.2.sh¡¯°¡ ÀÚµ¿ ¾ÐÃà Ç®¸²À¸·Î ¼³Ä¡°¡ µÈ´Ù. ¼³Ä¡°¡ ¿Ï·áµÇ¸é ¡®JDK¡¯¸¦ »ç¿ëÇϱâ À§Çؼ­ /etc/profileµî¿¡ ¡®JDK¡¯ÀÇ ½ÇÇà °æ·Î¸¦ Æнº¿¡ Àâ¾Æ ÁÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½°ú °°Àº ³»¿ëÀ» ³¡ ºÎºÐ¿¡ »ðÀÔ ½ÃÄÑ ÁÖÀÚ.

    ¡®export PATH=$PATH:/usr/local/jdk1.2.2/bin¡¯
    »õ·Î¿î ȯ°æ ¼³Á¤À» Àû¿ë ½ÃÅ°±â À§Çؼ­ ¡®source¡¯,¡¯.¡¯ ¸í·É¾î µîÀ» ÀÌ¿ëÇؼ­ ¡®/etc/profile¡¯ÀÇ ³»¿ëÀ» ¾÷µ¥ÀÌÆ® ½ÃÄÑÁØ´Ù. ¡®% source /etc/profile¡¯ ÀÌÁ¦ JDK¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸ðµç Áغñ´Â ³¡³µ´Ù. °£´ÜÇÑ ¿¹Á¦¸¦ ÄÄÆÄÀÏÇØ º¸µµ·Ï ÇÏÀÚ.
    (Çï·Î ¿ùµå¸¦ ¿¢½º À©µµ¿ì È­¸é¿¡ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥)
     

    import java.awt.*;
    public class HelloWindow extends Frame {

                HelloWindow(String title) {
                            super(title);
                }
                public static void main(String args[]){
                            HelloWindow frame=new HelloWindow
                               (¡°Hello_,_Window¡±);
                            frame.setSize(300,300);
                            frame.setVisible(true);
                } 

                public void paint(Graphics g) {
                            g.drawString(¡°Hello_,_java_Graphic_Interfaces?¡±                            ,50,100);
                }
    }

 

    vi ¿¡µðÅÍ µîÀ» ÀÌ¿ëÇÏ¿© ¡®HelloWorld.java¡¯¶ó´Â À̸§À¸·Î ÀúÀåÇϵµ·Ï ÇÏÀÚ. ¿ì¼± ¿ì¸®´Â ÀÌ ¼Ò½º ÆÄÀÏÀ» ÀÚ¹Ù °¡»ó¸Ó½Å¿¡¼­ µ¿ÀÛÇÒ ¼ö ÀÖ´Â ¹ÙÀ̳ʸ®·Î ÄÚµå·Î ¸¸µé¾î ÁÖ¾î¾ß ÇÑ´Ù.
    ¹ÙÀ̳ʸ® Äڵ带 ¸¸µé±â À§ÇØ ÀÚ¹Ù ÄÄÆÄÀÏ·¯ ¡®javac¡¯À» »ç¿ëÇÑ´Ù.

    ¡®% javac HelloWorld.java¡¯

    ¾Æ¹«ÀÌ»ó ¾øÀÌ ÇÁ·ÒÇÁÆ®°¡ ¶³¾î Á³´Ù¸é ÄÄÆÄÀÏÀÌ ¼º°øÀûÀ¸·Î ³¡³­ °ÍÀÌ´Ù. ¡®ls -l¡¯ ¸í·É¾î¸¦ »ç¿ëÇÏ¿© È®ÀÎÇÏ¿© º¸¸é ¡®HelloWorld.class¡¯ÆÄÀÏÀÌ »ý¼ºµÇ¾úÀ½À» ¾Ë ¼ö ÀÖ´Ù. ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú¸¦ º¸±â À§ÇØ ÀÚ¹Ù ÀÎÅÍÇÁ¸®Å͸¦ ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ È®ÀÎÇÒ ¼ö ÀÖ´Ù.

    ¡®% java HelloWorld¡¯

    JDK1.2.2°¡ ¼º°øÀûÀ¸·Î ¼³Ä¡ÇÏ°í ÇÁ·Î±×·¡¹ÖÇÒ ¼ö Àִ ȯ°æÀ» ¸¸µé¾î º¸¾Ò´Ù.

 

Jbuilder ¼³Ä¡ÇÏ¿© »ç¿ëÇØ º¸±â

    º¼·£µå(Borland)ÀÇ ¡®Jbuilder¡¯´Â ÀÚ¹Ù¸¦ À§ÇÑ ÃÖ°íÀÇ ÅøÀ̶ó°í ºÒ¸®¿öÁö´Â °³¹ß ÅøÀÌ´Ù.
    ¡®Jbuilder¡¯ÀÇ Æ¯Â¡À» »ìÆ캸¸é ´ÙÀ½°ú °°´Ù.

    ÄÄÆ÷³ÍÆ® ±â¹ÝÀÇ ÇÁ·Î±×·¡¹Ö
    ¡®Jbuilder¡¯´Â ÄÄÆ÷³ÍÆ® ±â¹ÝÀÇ ÇÁ·Î±×·¡¹ÖÀ» µµ¿Í Áִµ¥ , GUI ÄÄÆ÷³ÍÆ®¸¦ ÀÌ¿ëÇÒ ¶§¿¡´Â ¸¶¿ì½º·Î µå·¡±×¾Øµå·ÓÇÏ¿© ÇÁ·Î±×·¥¿¡ ÄÄÆ÷³ÍÆ®¸¦ »ðÀÔÇϱ⸸ ÇÏ¸é µÈ´Ù. ¹°·Ð »ç¿ëÀÚ°¡ ÄÄÆ÷³ÍÆ®¸¦ ¸¸µé¾î µî·ÏÇÒ ¼öµµ ÀÖ´Ù. ÀÚ¹ÙºóÁî(JavaBeans) ¿ª½Ã ½±°Ô ¸¸µé ¼ö ÀÖ°í ÀÚ¹ÙºóÁî ¸¶¹ý»ç¸¦ ÀÌ¿ëÇÏ¿© µî·Ï ÈÄ ½±°Ô ÇÁ·Î±×·¥¿¡ »ðÀÔÇÒ ¼ö ÀÖ´Ù.

    °­·ÂÇÑ µð¹ö±ë ±â´É
    ¡®Jbuilder¡¯´Â ÇÁ·Î±×·¥»óÀÇ ¿À·ù¸¦ Àâ±â À§ÇÑ ¸¹Àº µð¹ö±ë ¿É¼ÇÀ» °¡Áö°í ÀÖ´Ù.

    ÄÚµå ºê¶ó¿ì¡ ±â´É
    ¡®Jbuilder¡¯´Â Äڵ忡¼­ »ç¿ëµÇ¾îÁø ¶óÀ̺귯¸® ¹× »ç¿ëÀÚ°¡ ÀÛ¼ºÇÑ ÇÔ¼öµéÀ» ½±°Ô ÂüÁ¶ÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. Ŭ·¡½º¸í ¶Ç´Â º¯¼ö¸íµéÀ» ÅëÇØ »çÀ§ Ŭ·¡½ºÀÇ Å¸ÀÔ ¹× Á¤ÀǸ¦ ¸ðµÎ È­¸é¿¡ º¼ ¼ö ÀÖ´Ù.

    ¸ÖƼ ÄÄÆ÷³ÍÆ® ¶óÀ̺귯¸®
    ¡®Jbuilder¡¯´Â AWT , Swing , JBCL µîÀÇ ´Ù¾çÇÑ ÄÄÆ÷³ÍÆ®µéÀ» Á¦°øÇÑ´Ù. ¡®AWT¡¯,¡¯Swing¡¯Àº ¼ø¼öÇÑ ÀÚ¹Ù ¶óÀ̺귯¸®·Î½á ½ã¿¡¼­ Á¦°øÇÏ´Â ±âº»ÀûÀÎ °ÍµéÀÌ´Ù.

    ¡®Jbuilder¡¯¿¡ ´ëÇÑ ¾ð±ÞÀº ÀÌ Á¤µµ¿¡¼­ ³¡³»±â·Î ÇÏ°í ¸®´ª½º¿ë ¡®Jbuilder¡¯ÀÇ ¶óÀ̼¾½º¸¦ µî·ÏÇÏ°í ¼³Ä¡ÇÏ¿© »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æ º¸µµ·Ï ÇÏÀÚ. ¸®´ª½º¿¡¼­´Â »ç¿ëÀÚ µî·Ï¸¸ ÇÏ¸é ¹«·á·Î ´Ù¿î·ÎµåÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¹èÆ÷µÇ°í ÀÖ´Ù.

 

¡®Jbuilder¡¯¸¦ ±¸ÇÒ ¼ö ÀÖ´Â °÷Àº?

    ¡®http://www.borland.com/jbuilder/linux/¡¯¿¡¼­ ¸®´ª½º¿ë ¡®Jbuilder¡¯¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ¸®´ª½º¿ë ¡®Jbuilder¡¯ÀÇ ±ÇÀå »çÇ×Àº ´ÙÀ½°ú °°´Ù.

    ¸®´ª½º¿ë ¡®Jbuilder¡¯¸¦ ´Ù¿î·Îµå ¹Þ±â À§ÇÑ URLÀº ´ÙÀ½°ú °°´Ù.
    http://www.borland.com/jbuilder/foundation/download/linux.html#download
    ¡®unix_jb30foundation_novm.tar.gz¡¯ ÆÄÀÏÀ» ´Ù¿î·Îµå ¹Þµµ·Ï ÇÏÀÚ.
     

    ¹èÆ÷º»

    RedHat Linux 6.x

    ¸ÞÀÎ ¸Þ¸ð¸®

    128 MB

    ÇÏµå µð½ºÅ© °ø°£

    150 MB hard disk space

    x86 CPU

    Pentim ¥± 200§Ö


    <JbuilderÀÇ ½Ã½ºÅÛ »ç¾ç>

 

¡®Jbuilder¡¯¸¦ ¼³Ä¡Çϱâ

    ¡¯JBuilder¡¯¸¦ ¼³Ä¡Çϱâ Àü¿¡ ¿ì¼± º¼·£µå ȨÆäÀÌÁö¿¡¼­ ¡®Activation Key¡¯¸¦ ¾ò¾î¾ß ÇÑ´Ù.
    ¡®Activation Key¡¯ºÎºÐÀ» Ŭ¸¯ÇÏ¿© ¸µÅ©µÇ¾îÁø ÆäÀÌÁö·Î À̵¿µÇ´Âµ¥ ±×°÷¿¡¼­ ¡®New user¡¯¸¦ ¼±ÅÃÇÏ¿© »ç¿ëÀÚ µî·ÏÀ» ¸¶Ä¡¸é ´ÙÀ½°ú °°Àº ¡®Activation Key¡¯¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

    ¡®Jbuilder¡¯¸¦ ¼³Ä¡ÇÒ ¶§ ÇÊ¿äÇÏ´Ï ¸Þ¸ð¸¦ Çصΰųª ÆÄÀÏ·Î ÀúÀåÇØ µÎ±â ¹Ù¶õ´Ù.

    (ÀνºÅç·¹ÀÌ¼Ç Å°¿Í ½Ã¸®¾ó Å°¸¦ ¾òÀº È­¸é)

    Activation Å°¸¦ ¾ò¾ú´Ù¸é ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÑ´Ù.
    ¡®% tar xvzf unix_jb30foundation_novm.tar.gz¡¯ ¾ÐÃàÀÌ  ´Ù Ç®¸®¸é »õ·Î »ý¼ºµÈ Jbuilder µð·ºÅ丮·Î À̵¿ÇÏ¿© ÀνºÅç ½ºÅ©¸³Æ®¸¦ ½ÇÇà ½ÃŲ´Ù.
     

    ÀνºÅç ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÒ ¶§¿¡´Â óÀ½ºÎÅÍ ¡®root¡¯·Î ¿¢½º À©µµ¿ì¿¡ ·Î±×ÀÎ ÇÏÁö ¾Ê¾Ò´Ù¸é ·Î±× ¾Æ¿ôÀ» ÇÑ ÈÄ¿¡ ¿¢½ºÀ©µµ¿ì ·Î±×ÀÎÀ» ¡®root¡¯·Î Çϱ⠹ٶõ´Ù. ÀÌ°ÍÀº ¿¢½º À©µµ¿ì ÀÚüÀÇ Security ±â´ÉÀÌ Àֱ⠶§¹®¿¡ ´Ù¸¥ À¯Àú·Î ¡®Xsession¡¯À» ¿¬ »óÅ¿¡¼­ ¡®su¡¯µîÀ¸·Î ±ÇÇÑÀÌ ¹Ù²î°Ô µÇ¸é ¿¢½ºÀ©µµ¿ì È­¸é¿¡ µð½ºÇ÷¹ÀÌÇÒ ±ÇÇÑÀÌ ¾ø±â ¶§¹®ÀÌ´Ù.

     

    ¡¯JDK¡¯°¡ ¼³Ä¡µÈ µð·ºÅ丮¸¦ ¹°¾î º¸´Âµ¥ ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡ ¸Â°Ô ¼±ÅÃÇÏ¿© ÁÖ¸é ¶óÀ̼¾½º Å°¸¦ ¹¯´Â È­¸éÀÌ ³ª¿Â´Ù. »ç¿ëÀÚ À̸§°ú ¶óÀ̼¾½º Å°¸¦ µî·Ï ½ÃÅ°¸é Jbuilder¿ÍÀÇ Ã¹ ´ë¸éÀ» ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

 

    <JbuilderÀÇ ÀÛ¾÷È­¸é>

    º¼·£µå´Â MSÀÇ ºñÁÖ¾ó º£ÀÌÁ÷°ú ÄÄÆ÷³ÍÆ® ÇÁ·Î±×·¡¹Ö ÅøÀÇ ¾ç´ë »ê¸ÆÀÎ µ¨ÆÄÀÌ(Delphi)µµ °ð ¸®´ª½º·Î Æ÷ÆÃÇÏ¿© ¹ßÇ¥ÇÒ ¿¹Á¤À̶ó°í ÇÑ´Ù. ÀÌÁ¦ ¸®´ª½º¿¡´Â ÀüÅëÀûÀÎ À¯´Ð½º °³¹ß ȯ°æ°ú ºñÁÖ¾óÇÑ ÄÄÆ÷³ÍÆ®Åø µéÀ» µ¿½Ã¿¡ °®Ãâ ¼ö ÀÖ°Ô µÇ¾ú´Ù. ¡®Jbuilder¡¯ÀÇ ±¸Ã¼ÀûÀÎ »ç¿ë¹ý¿¡ ´ëÇؼ­´Â ½ÃÁß¿¡ ³ª¿Í ÀÖ´Â ÁÁÀº ÀÔ¹®¼­µéÀ» Âü°í ÇϽñæ..

 

¸®´ª½º¿¡¼­ÀÇ ¡®perl¡¯

    ¡®perl¡¯ÀÇ ¼Ò°³
    PERL(Practical Extraction and Report Language)Àº ÁÖ·Î CGI ÇÁ·Î±×·¡¹Ö¿¡ »ç¿ëµÇ¾î Áö´Âµ¥ ¿ø·¡ óÀ½ºÎÅÍ CGI¸¦ ¸ñÀûÀ¸·Î ž ¾ð¾î´Â ¾Æ´Ï´Ù. ±×·¯³ª, PERLÀ» ÀÌ¿ëÇÏ¿© CGIÇÁ·Î±×·¡¹ÖÀ» Çغ¸¸é, ¿Ö PERLÀÌ ¿äÁîÀ½ÀÇ CGI ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ÁÖ·ù°¡ µÇ¾ú´Â°¡¸¦ ¾Ë ¼ö ÀÖ°Ô µÉ °ÍÀÌ´Ù. (¿äÁò¿£ perl º¸´Ù PHP°¡ ¾ÐµµÀûÀ¸·Î ¸¹ÀÌ ¾²ÀδÙ.)

    PERLÀÇ ÀåÁ¡À» »ìÆì º¸¸é ´ÙÀ½°ú °°´Ù.
    ¡Ü ÄÄÆÄÀÏÀÌ ÇÊ¿ä¾ø´Â ½ºÅ©¸³Æ® ¾ð¾î´Ù.
    ¡Ü ÇÁ·Î±×·¥ÀÇ Å©±â°¡ Ưº°È÷ Å©Áö ¾Ê´Â ÇÑ ÄÄÆÄÀÏµÈ ½ÇÇà ÆÄÀϸ¸Å­ ºü¸¥ ½ÇÇà ¼Óµµ¸¦
        Á¦°øÇÑ´Ù.
    ¡Ü ¹è¿ì±â ½±´Ù.
    ¡Ü ¹®ÀÚ¿­ ¹× ¹è¿­ ó¸® ±â´ÉÀÌ ¶Ù¾î³ª´Ù.

    ¸®´ª½º¿¡¼­ ¡®perl¡¯À» »ç¿ëÇÏ¿© °£´ÜÇÑ ¿¹Á¦¸¦ ½ÇÇà ½ÃÄÑ º¸µµ·Ï ÇÏÀÚ.
    ¸®´ª½º¿¡¼­ ¡®perl¡¯ ÀÎÅÍÇÁ¸®ÅÍÀÇ À§Ä¡´Â ¡®/usr/bin/¡¯ ,¡¯ /usr/local/bin/¡¯ ÀÌ´Ù. ´ÙÀ½°ú °°Àº ¿¹Á¦¸¦ ¸¸µé¾î º¸ÀÚ.
     

    #!/usr/bin/perl
    # hello.pl

    print ¡°Hello World¡¬n¡±;

     

    vi ¿¡µðÅÍ µîÀ¸·Î ÆÄÀÏÀ» ¸¸µç ÈÄ hello.pl À̶ó°í À̸§À» ºÙ¿© ÁÖÀÚ.

    À§ÀÇ ¼Ò½º´Â Á¤¸» °£´ÜÇÏÁö¸¸ ¿Ïº®ÇÑ ÇÁ·Î±×·¥ÀÌ´Ù.
    print´Â ´ÙÀ½ÀÇ ¹®ÀÚ¿­, ¼ýÀÚ, º¯¼ö µîÀ» Ç¥ÁØ Ãâ·Â±âÀÎ STDOUT¿¡ Ãâ·ÂÇÑ´Ù. (éÅÍ 3ÀÇ ¸®´ÙÀÌ·º¼Ç ºÎºÐ ÂüÁ¶.)
    Âü ½±±º¿ä. ùÁÙÀÇ #!/usr/bin/perlÀº UNIX, LinuxµîÀÇ ¿î¿µÃ¼Á¦¿¡¼­ ¡®/usr/bin/¡¯¿¡ ¡®perl¡¯ÀÎÅÍ ÇÁ¸®ÅÍ°¡ ÀÖ´Ù´Â °ÍÀ» ¾Ë·Á ÁÖ´Â °ÍÀÌ´Ù. ¡¬n : C++ÀÇ ¡¬n°ú °°Àº ¿ªÇҷνá Ä¿¼­¸¦ ´ÙÀ½ÁÙ ¾ÕÀ¸·Î º¸³»´Â ÀÏÀ» ÇÑ´Ù. (new line) # : ÀÌ ¹®ÀÚ ÀÌÈĺÎÅÍ ³¡±îÁö´Â ÁÖ¼®¹®À¸·Î½á perl·ÎºÎÅÍ ¹«½ÃµÇ´Â °÷ÀÌ´Ù.
    ¡®;¡¯ ÇÑ ¸í·É¹®Àº ¾ðÁ¦³ª ;(colon)À¸·Î ³¡³­´Ù. ÀÌ°ÍÀÌ ºüÁö¸é ¡®perl¡¯ ÀÎÅÍÇÁ¸®ÅÍ°¡ ´ÙÀ½ ¶óÀΰú ÇöÀç ¶óÀÎÀ» ±¸ºÐÇÒ ¼ö ¾ø°Ô µÇ¾î error°¡ ¹ß»ýÇÑ´Ù. ¡®perl¡¯·Î ÇÁ·Î±×·¡¹Ö µÇ¾îÁø ÆÄÀϵéÀ» Å͹̳Π»ó¿¡¼­ ½ÇÇà ½ÃÄÑ º¸·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù.
     

    2% liks@Hero:~> perl hello.pl
    Hello World
    3% liks@Hero:~>

     

    ¡®hello.pl¡¯À» ¡®perl¡¯À̶ó´Â ÀÎÅÍÇÁ¸®ÅÍ·Î Çؼ®ÇÏ¿© ½ÇÇàÇ϶ó´Â ÀǹÌÀÌ´Ù.
    ȤÀº ´ÙÀ½°ú °°ÀÌ ½ÇÇà ±ÇÇÑÀ» Á־ °ð¹Ù·Î ½ÇÇàÇÒ ¼öµµ ÀÖ´Ù.
     

    3% liks@Hero:~> chmod 755 hello.pl
    4% liks@Hero:~> ./hello.pl
    Hello World
    5% liks@Hero:~>

     

 

¡®perl¡¯ ¹®¹ýÀÇ °£´ÜÇÑ ¼Ò°³

    º¯¼ö(VARIABLE)
    PERLÀÇ º¯¼ö´Â Å©°Ô 3 °¡Áö·Î ³ª´©¾îÁø´Ù..

    scalar variable.
    array.
    associative array.

    Perl ¾ð¾î´Â º¯¼öÀ̸§ÀÇ ¾Õ¿¡ Ưº°ÇÑ ±âÈ£¸¦ ºÙ¿© ÁÜÀ¸·Î½á º¯¼öÀÇ ÇüŸ¦ ±¸ºÐÇÑ´Ù. scalar º¯¼ö´Â º¯¼ö¸í ¾Õ¿¡ $¸¦ ºÙ¿©¼­ ±¸ºÐÇϴµ¥ ÀϹÝÀûÀÎ º¯¼ö¶ó°í º¼ ¼ö ÀÖ´Ù. ¡®scalar¡¯¶ó´Â ¸»Àº ´ë°³ ¡®½Ç¼ö(ãùâ¦)·Î Ç¥½ÃÇÒ ¼ö ÀÖ´Â ¼ö·®¡¯À̶õ ¶æÀÌ´Ù. PERL ¿¡¼­´Â ¹®ÀÚ¿­µµ ½ºÄ®¶ó µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î ÀúÀåµÈ´Ù. ¡®C¡¯¾ð¾î¸¦ °øºÎÇϽŠºÐÀº ´çȲ½º·¯¿ïÁöµµ ¸ð¸£°ÚÁö¸¸, »ó´çÈ÷ Æí¸®ÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â º¯¼öÇüÅÂÀÌ´Ù.

    $num = 1000;
    print ¡°$num¡¬n¡±; # <- ¡®¡¬n¡¯Àº »õ·Î¿î ¶óÀÎÀ» ³ªÅ¸³½´Ù.
    $num = ¡°One Thousand.¡±;
    print ¡°$num¡¬n¡±;

    À§ÀÇ ¿¹¿¡¼­¿Í °°ÀÌ ¼ýÀÚ¸¦ ÇÒ´çÇß´ø º¯¼ö¿¡ ¹®ÀÚ¿­À» Àç ÇÒ´çÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¡®C¡¯¾ð¾î¸¦ °øºÎÇϽŠºÐµéÀº ¡®¿Í~!!¡¯ ¶ó´Â ¼Ò¸®¸¦ Áö¸£½ÇÁöµµ ¸ð¸£°Ú³×¿ä.
    array´Â ¡®C¡¯¾ð¾î¿¡¼­¿Í ¸¶Âù°¡Áö·Î ¹è¿­À» ¶æÇÑ´Ù. ¹è¿­À̶õ º¹¼öÀÇ ÀϹݺ¯¼öµéÀ» º¯¼ö °¢°¢ÀÇ À̸§ÀÌ ¾Æ´Ñ ƯÁ¤º¯¼ö ÂüÁ¶ÇÏ¿© Çϳª ÇϳªÀÇ ¼¼ºÎ Ç׸ñ¿¡ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â µ¥ÀÌÅÍ Å¸ÀÔÀÔ´Ï´Ù. º¯¼ö°¡ ¹è¿­ÀÓÀ» °¡¸£ÃÄ ÁÙ ¶§¿¡´Â º¯¼ö ¾Õ¿¡ $°¡ ¾Æ´Ñ ¡®@¡¯ ±âÈ£¸¦ »ç¿ëÇÑ´Ù. ¹è¿­ÀÇ ¿¹¸¦ »ìÆì º¸µµ·Ï ÇÏÀÚ.
     

    @testarray; --> ¡®testarray¡¯°¡ ¹è¿­ÀÓÀ» ¼±¾ðÇÑ´Ù.
    $testarray[0] = ¡°È«±æµ¿¡±; --> ¹è¿­ °¢°¢ÀÇ ±¸¼º¿ä¼ÒµéÀ» ³ªÅ¸³¾ ¶§´Â ¡®$¡¯¸¦
                                               »ç¿ëÇÑ´Ù.
    $testarray[1] = ¡°ÀÓ²©Á¤¡±;
    $testarray[2] = ¡°¶ÊÀÌÀ屺¡±;
    $testarray[3] = ¡°Å±ǺêÀÌ¡±;
    print $testarray[2], ¡°¡¬n¡±;
    print ¡°$testarray[2]¡¬n¡±;

     

    ¡®[ ]¡¯ ¾È¿¡ µé¾îÀÖ´Â ¼ýÀÚ´Â ¹è¿­ ¾È¿¡¼­ÀÇ À§Ä¡¸¦ ³ªÅ¸³»´Â °ÍÀ¸·Î½á ¡®ÂüÁ¶¹øÈ£¡¯¶ó°í ºÎ¸¥´Ù.
    ¶§¶§·Î ÇÁ·Î±×·¥À» Â¥´Ù º¸¸é ¸¶Áö¸· ÂüÁ¶ ¹øÈ£, Áï ¹è¿­ÀÇ Å©±â¸¦ ¾Ë¾Æ¾ß ÇÒ ¶§°¡ Àִµ¥ ±×·² °æ¿ì¿¡´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ¾Ë¾Æ º¼ ¼ö ÀÖ´Ù .

    $lastIndex = $#testarray;

    À§¿¡¼­Ã³·³ ¹è¿­ÀÇ À̸§ ¾Õ¿¡ $#¸¦ ºÙÀÌ¸é ¹è¿­ @testarrayÀÇ ¸Ç ¸¶Áö¸· ¿ä¼ÒÀÇ ÂüÁ¶¹øÈ£(index number)¸¦ ¾Ë ¼ö ÀÖ´Ù. Áï $lastIndex ¶Ç´Â $#testarrayÀÇ °ªÀÌ 2 ¶ó¸é ¹è¿­ÀÇ Ã¹ ÂüÁ¶¹øÈ£´Â 0 À̹ǷΠ¿ä¼ÒÀÇ °¹¼ö´Â ¸ðµÎ 3°³ÀÎ ¼ÀÀÌ´Ù. ¹è¿­ÀÇ Å©±â¸¦ Á¶ÀýÇÒ ¶§¿¡µµ ´ÙÀ½°ú °°ÀÌ ¸¶Áö¸· ÂüÁ¶¹øÈ£¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.

    $#testarray = 2; # ¸¶Áö¸· ÂüÁ¶¹øÈ£¸¦ 2·Î Á¦ÇÑ...

    $testarray[2]´Â »ç¶óÁö°Ô µÇ°í 3°³ÀÇ ¿ä¼Ò($testarray[0], $testarray[1], $testarray[2])¸¸ ³²°ÜÁö°Ô µÈ´Ù. ¹è¿­ÀÇ Å©±â¸¦ ¾Ë¾Æ³»´Â ¹æ¹ý¿¡´Â ¸¶Áö¸· ÂüÁ¶¹øÈ£($#testarray)¸¦ º¸´Â °Í ¿Ü¿¡µµ ¹è¿­ À̸§À» ±×´ë·Î »ç¿ëÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù.
     

    @testarray = ( a, b, c, d );
    $last = @testarray;
    print ¡°$last¡¬n¡±;

     

    À§ÀÇ ¿¹¿¡¼­´Â º¯¼ö ¡®$last¡¯¿¡ ¹è¿­ ¾ÈÀÇ ¿ø¼ÒÀÇ °³¼öÀÎ ¡®4¡¯¶ó´Â ¼ýÀÚ°¡ È­¸é¿¡ Ãâ·ÂµÈ´Ù.

    ¡®print¡¯ÇÔ¼ö´Â ¡®hello.pl¡¯¿¡¼­µµ °£´ÜÇÏ°Ô »ç¿ëÇØ º¸¾Ò´Âµ¥ , Á»´õ ÀÚ¼¼È÷ ¾Ë¾Æ º¸µµ·Ï ÇսôÙ.
     

    # hellohello.pl 

    print <<end_greeting;
    ¾È³ç Çϼ¼¿ä~!
    ÆÞÀÌ Àç¹ÌÀÖ´Ù°í¿ä?!
    ÁÁÀº ÇÏ·çµÇ½Ã±â¸¦~..
    end_greeting
    print ¡°Hello , Hello ~!! ¡¬n¡±;

     

    print ´ÙÀ½¿¡ ³ª¿À´Â <<end_greeting À̶ó´Â °ÍÀÇ Àǹ̴ ¹®ÀåÀ» printÇϴµ¥ À־ ù end_greeting (ȤÀº ¶Ç´Â »ç¿ëÀÚ°¡ ÀÓÀÇ·Î Á¤ÇÏ´Â ±× ¹«¾ù, end_hello À̳ª asdf_endµî) °¡ ³ª¿Ã ¶§±îÁö ÁøÇàÇ϶ó´Â ÀǹÌÀÌ´Ù.

    ÆÞÀº »ç¿ë¹æ¹ýÀÌ ½±°í °£´ÜÇϱ⠶§¹®¿¡ ¸¹ÀÌ »ç¿ëµÇ¾î Áø´Ù. ÀÎÅͳÝÀ̳ª °¢ Åë½Å¸Áµî¿¡ ÆÞ¿¡ ´ëÇÑ °­Á°¡ ³Î¸® º¸±ÞµÇ¾î ÀÖÀ¸¹Ç·Î ¿©·¯ºÐµéÀº ½±°Ô °øºÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

 

¿¢½º À©µµ¿ì¿¡¼­ÀÇ ÇÁ·Î±×·¡¹Ö

    ¿¢½º À©µµ¿ì »ó¿¡¼­ ÇÁ·Î±×·¡¹ÖÀ» Çϱâ À§Çؼ­´Â ¡®X server¡¯ , ¡®X client¡¯ , ¡®X protocol¡¯ , ¡®X library¡¯ À̵éÀÇ °ü°è¸¦ °£´ÜÇÏ°Ô Ç¥Çö ÇÏÀÚ¸é ¡®»ç¿ëÀÚ¿Í »óÈ£ ´ëÈ­¡¯,¡¯¾ÖÇø®ÄÉÀ̼ǡ¯,¡¯Å¬¶óÀ̾ðÆ® ¼­¹ö ÀÇ Åë½Å¡¯,¡¯ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º¡¯ ·Î ¹Ù²Ù¾î »ý°¢ÇÒ ÀÖ´Ù. ¿¢½º À©µµ¿ì´Â ¼³°è ´ç½ÃºÎÅÍ ¡®Å¬¶óÀ̾ðÆ® /¼­¹ö¡¯ ¸ðµ¨·Î ¼³°èµÇ¾ú´Ù. °ú°Å¿¡´Â ¿¢½º À©µµ¿ì¿¡¼­ÀÇ ÇÁ·Î±×·¡¹ÖÀº ¡®X library¡¯¸¦ ÅëÇؼ­ ÇÏ´Â °ÍÀÌ ÀϹÝÀû À̾úÀ¸³ª ¿äÁò¿¡´Â ½±°í °£´ÜÇÏ°Ô ¡®À§Á¬(widget)¡¯À» ¸¸µé¾îÁÖ´Â ¶óÀ̺귯¸®µéÀÌ ¸¹ÀÌ °³¹ßµÇ¾îÁ® ÀÖ´Ù.

    ¡®À§Á¬¡¯À̶õ GUI ȯ°æ¿¡¼­ »ç¿ëµÇ¾îÁö´Â ¿©·¯ °¡Áö ÀÎÅÍÆäÀ̽º Çü½ÄµéÀ» ¸»ÇÑ´Ù. ´ëȭâÀ̶ó´ø°¡ ÆÄÀÏÀ» ¿­°í ´Ý´Â ¸Þ´º¶ó´ø°¡.. ¿ì¸®´Â ¡®Tcl/TK¡¯¿Í ¡®GTK+¡¯¶óÀ̺귯¸®¿¡ ´ëÇؼ­ ¾Ë¾Æ º¸µµ·Ï ÇÏ°Ú´Ù.

 

Tcl/TK

    ¡®Tcl¡¯Àº John Ousterhout¾¾°¡ °³¹ßÇÑ ÀÎÅÍÇÁ¸®ÅÍ ¹æ½ÄÀÇ ¾ð¾îÀÌ´Ù.
    Tcl(Tool Command Lanuage : ¡®Æ¼Å¬¡¯)Àº ´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥¿¡ ½±°Ô Æ÷Ç﵃ ¼ö ÀÖµµ·Ï ¼³°èµÈ ½ºÅ©¸³Æ® ¾ð¾î·Î Jone K. Ousterhout¿¡ ÀÇÇØ ¸¸µé¾îÁ³´Ù. (¡®Tcl¡¯Àº ÇöÀç ¡®perl¡¯,¡¯Pytho¡¯µî°ú ¹ÙÀεùÀÌ °¡´ÉÇÏ´Ù.) TclÀÇ ±âº»°ñ°Ý ÀÚü´Â ½ÉÇÃÇÑ °ÍÀ¸·Î ¾ð¾î ±× ÀÚü¿¡ ´ëÇÑ ÀÌÇØ´Â ½±°Ô ÇÒ ¼ö ÀÖ´Ù. C·Î ÀÛ¼ºµÈ ±× ÇÙ½É ºÎºÐÀº ¼Ò½º±îÁö ¿ÏÀüÈ÷ °ø°³µÇ¾î ÀÖÀ¸¸ç, ¶ÇÇÑ ÀÌ¹Ì ´Ù¾çÇÑ Ç÷§Æû¿¡ ´ëÇÑ Æ÷ÆÃÀÌ ÀÌ·ç¾îÁ® ÀÖ´Ù. Tclsh(wish)·Î ¾Ë·ÁÁø ÀÎÅÍÇÁ¸®ÅÍ´Â TclÀÇ ÇϳªÀÇ ÀÀ¿ëÀÎ µ¿½Ã¿¡ Tcl ÀÚü¸¦ ±¸µ¿ÇÏ´Â ±âº» ÇÁ·Î±×·¥ÀÌ´Ù. Tk(Toolkit : ¡®Æ¼ÄÉÀÌ¡¯)´Â Tcl¿¡ ±â¹ÝÇÏ´Â À©µµ¿ì ½Ã½ºÅÛÀÇ GUI¸¦ À§ÇÑ È®ÀåÀÌ´Ù. wish·Î ¾Ë·ÁÁø ÀÎÅÍÇÁ¸®ÅÍ¿¡ ÀÇÇØ ±¸µ¿µÈ´Ù. ÇöÀç Tcl/Tk´Â Sun Microsystems°¡ Jone K. Ousterhout¸¦ ¿µÀÔÇÏ¿© Àû±Ø Áö¿øÇÔÀ¸·Î½á »ç½Ç»ó Sun¿¡ ÀÇÇØ °³¹ßµÇ°í ÀÖ´Ù°í º¼ ¼ö ÀÖ´Ù. ±×·± ±î´ß¿¡ ÃÖ½ÅÀÇ Á¤º¸´Â SunÀÇ http://sunscript.sun.com¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù.

    ¿¹Á¦¸¦ ÅëÇÏ¿© »ìÆì º¸µµ·Ï ÇÏÀÚ.
     

    #!/usr/bin/wish -f

    pack [button .b -text ¡°Hello¡¬n Debian/GNU Linux¡¬n ¡° ¡¬
    -justify center ¡¬
    -width 20 ¡¬
    -command { puts ¡°^^;?}]

     

    ¡®perl¡¯¿¡¼­¿Í ¸¶Âù°¡Áö·Î ÀÎÅÍÇÁ¸®ÅÍÀÇ °æ·Î¸¦ ¡®#!¡¯¿Í ÇÔ²² Ç¥½ÃÇØ ÁØ´Ù. ¡®-f¡¯¿É¼ÇÀº ½ºÅ©¸³Æ®¸¦ ½ÇÇà ½Ãų ¶§¿¡ »óÈ£ ´ëÈ­Àû ¡®wish¡¯Ã¢ÀÌ ¶ßÁö ¾Êµµ·Ï ÇÏ´Â °ÍÀÌ´Ù.¡¯button¡¯ ºÎºÐÀ» º¸¸é ½±°í °£´ÜÇÏ°Ô À§Á¬À» È®Àå½Ãų ¼ö ÀÖ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
    -text ºÎºÐ¿¡´Â ¸» ±×´ë·Î ±Û¾¾°¡ µé¾î°¡°í , -justify ºÎºÐ¿¡´Â ÅؽºÆ®ÀÇ À§Ä¡ ¼Ó¼ºÀÌ µé¾î °¬´Ù. -width ºÎºÐ¿¡´Â ³ÐÀÌÀÇ ¼Ó¼º °ªÀÌ µé¾î °¡ÀÖ°í -command ºÎºÐ¿¡´Â tcl¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸í·É¾î ºÎºÐÀÌ Æ÷ÇԵǾî ÀÖ´Ù.

     

    (¿¹Á¦ÀÇ ½ÇÇà È­¸é)

    ¡®Tcl/TK¡¯¿¡ ´ëÇÑ ºÎºÐÀº SunÀÇ È¨ÆäÀÌÁö¿¡¼­ ¸¹Àº Á¤º¸¸¦ ±¸ÇÒ ¼ö ÀÖ°í ¡®Tcl/TK¡¯¸¦ ÀÌ¿ëÇÏ¿© ¡®X À©µµ¿ì¡¯ ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ºÎºÐÀ» ´Ù·é Ã¥µéµµ ¿©·¯ ±Ç ³ª¿Í ÀÖ´Ù.(ÇÑ±Û ÆÇÀº º»ÀûÀÌ ¾ø³×¿ä.) ¡®Tcl/TK¡¯¸¦ ÀÍÈù´Ù¸é ¿¢½º À©µµ¿ì»ó¿¡¼­ ½±°Ô ¸ÚÁø ÇÁ·Î±×·¥µéÀ» ±¸ÇöÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

 

GTK/Library¸¦ ÀÌ¿ëÇÑ ¿¢½º À©µµ¿ì ÇÁ·Î±×·¡¹Ö.

    ¿¢½º À©µµ¿ì ÇÁ·Î±×·¡¹Ö¿¡¼­´Â ¿©·¯ °¡Áö ¶óÀ̺귯¸®µéÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ëÇ¥ÀûÀÎ °ÍÀ¸·Î ¿¹Àü¿¡ ¸¹ÀÌ »ç¿ëµÇ¾ú´ø ¡®motiff¡¯ °¡ ÀÖ°í ÃÖ±Ù¿¡ ¸¹ÀÌ »ç¿ë µÇ¾îÁö°í ÀÖ´Â GTK+ , qt ¶óÀ̺귯¸® µîÀÌ ÀÖ´Ù. GTK+ °°Àº °æ¿ì´Â ¸®´ª½º ¿ë ¡®Æ÷Åä¼¥¡¯À̶ó°í ºÒ¸®¿öÁö´Â GIMP¶ó´Â ÇÁ·Î±×·¡¹ÖÀ» °³¹ßÇÏ´ø µµÁß¿¡ ¿©·¯ °¡Áö À§Á¬µéÀÌ ¸ð¿© Áö¸é¼­ °³¹ßµÇ¾îÁø ¶óÀ̺귯¸®ÀÌ´Ù.
    GTK´Â ¡®Gimp ToolKit¡¯ÀÇ ¾àÀÚÀÌ´Ù. GTK+À» ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¡¹ÖÀ» ÇÏ·Á¸é gtk+ ÆÐÅ°Áö¿Í gtk+-devel ÆÐÅ°Áö°¡ ÇÊ¿äÇѵ¥ ÃÖ±ÙÀÇ ¹èÆ÷º»µé¿¡´Â ±âº»ÀûÀ¸·Î ¼³Ä¡µÇ¾î ÀÖ´Ù. Ȥ½Ã¶óµµ ¼³Ä¡µÇ¾î ÀÖÁö ¾Ê´Ù¸é http://www.gtk.org¿¡¼­ RPMÇüÅÂÀÇ ÆÐÅ°Áö¸¦ ´Ù¿î·Îµå ¹Þ¾Æ ½±°Ô ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù.

 

GTK+ ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇØ ¡®Hello World¡¯¸¦ Ãâ·ÂÇØ º¸µµ·Ï ÇÏÀÚ.

    ¡®Hello GTK+¡¯À̶ó´Â ¹öÆ°À» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µé¾î º¸ÀÚ.
     

    #include <gtk/gtk.h>

    void hello (GtkWidget *widget, gpointer data)
    {
                  g_print (¡°Hello world¡¬n¡±);
    }
    gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
    {
                  g_print (¡°delete event occured¡¬n¡±);
                  return (FALSE);
    }
    void destroy (GtkWidget *widget,gpointer data)
    {
                  gtk_main_quit();
    }
    int main (int argc,char *argv[])
    {
                  GtkWidget *window;
                  GtkWidget *button;
                  gtk_init (&argc,&argv);
                  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

                  gtk_signal_connect (GTK_OBJECT (window), 
                               ¡±delete_event¡±, GTK_SIGNAL_FUNC                            (delete_event),NULL);

                  gtk_signal_connect (GTK_OBJECT (window),¡±destroy¡±,                            GTK_SIGNAL_FUNC (destroy),NULL);

                  gtk_container_border_width (GTK_CONTAINER (window),                            20);
                  button = gtk_button_new_with_label (¡°Hello GTK+¡±);
                  gtk_signal_connect (GTK_OBJECT (button),¡±clicked¡±,                            GTK_SIGNAL_FUNC (hello),NULL);

        gtk_signal_connect_object (GTK_OBJECT (button),¡±clicked¡±, GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (window));

                  gtk_container_add (GTK_CONTAINER (window),button);
                  gtk_widget_show (button);
                  gtk_widget_show (window);
                  gtk_main ();
                  return 0;
    }

     

    À§ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÏ´Â ¹æ¹ýÀº ´Ù¸¥ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÒ ¶§¿Í´Â »ç¹µ ´Ù¸£´Ù.
     

    % gcc -Wall -g -o hello hello-gtk .c ¡¬gtk-config --cflags gtk-config --libs
    % ./hello

     

    ¡®gtk-config¡¯¸í·É¾î´Â gtk ¶óÀ̺귯¸®¸¦ »ç¿ëÇÒ ¶§¿¡ ÇÊ¿äÇÑ Çì´õ ÆÄÀÏ°ú ¶óÀ̺귯¸®ÀÇ ¸µÅ© ¿É¼ÇÀ» ´ë½Å ó¸®ÇØ ¸í·É¾î·Î½á ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇØ º¸¸é ¾Ë ¼ö ÀÖ´Ù.
     

    5% liks@TioD:~> gtk-config
    Usage: gtk-config [OPTIONS] [LIBRARIES]
    Options:
               [--prefix[=DIR]]
               [--exec-prefix[=DIR]]
               [--version]
               [--libs]
               [--cflags]
    Libraries:
               gtk
               gthread
    6% liks@TioD:~>

     

    ÄÄÆÄÀÏÇÒ ¶§¿¡ »ç¿ëÇÑ ¡®gtk-config --libs¡¯,¡¯gtk-config --cflags¡¯¸¦ ½ÇÇàÇØ º¸ÀÚ.
     

    6% liks@TioD:~> gtk-config --libs
    -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lX
    ext -lX11 -lm
    7% liks@TioD:~> gtk-config --cflags
    -I/usr/lib/glib/include -I/usr/X11R6/include
    8% liks@TioD:~>

     

    GTK´Â ¿¢½º À©µµ¿ì ±â¹ÝÀÇ ÇÁ·Î±×·¥À» ¸¸µé±â À§ÇÑ ¶óÀ̺귯¸®À̱⠶§¹®¿¡ ÄÄÆÄÀÏÇÒ ¶§´Â ¿¢½º À©µµ¿ì»óÅ°¡ ¾Æ´Ï¾îµµ »ó°üÀÌ ¾øÁö¸¸ ½ÇÇà½Ãų ¶§¿¡´Â ¹Ýµå½Ã ¿¢½º À©µµ¿ì »óÅÂÀ̾î¾ß ÇÑ´Ù.

    <¡¯hello GTK+¡¯ ½ÇÇà È­¸é>

 

½© ½ºÅ©¸³Æ®¿¡ ´ëÇؼ­..

    ½©¿¡ ´ëÇؼ­(½©ÀÌ ¾î¶² ¿ªÇÒÀ» ÇÏ´ÂÁö)´Â ¾ÕÀÇ Ã©Å͵鿡¼­ ¾Ë¾Æº¸¾Ò´Ù. ¿î¿µÃ¼Á¦ÀÇ ÇÙ½É ºÎºÐÀÎ Ä¿³Î. ±× ±â¹Ý À§¿¡¼­ »ç¿ëÀÚ¿Í ¿î¿µÃ¼Á¦¸¦ ¿¬°á ½ÃÄÑÁÖ´Â ºÎºÐÀ» ¿ì¸®´Â ÀϹÝÀûÀ¸·Î ½©(shell) À̶ó°í ºÎ¸¥´Ù. ½©Àº »ç¿ëÀÚ°¡ ¿ä±¸ÇÏ´Â ÀÀ¿ëÇÁ·Î±×·¥À» ¿î¿µÃ¼Á¦¿¡ Àü´ÞÇØ »ç¿ëÀÚ°¡ ¿øÇÏ´Â °á°ú¸¦ ¾òµµ·Ï ÇØÁÖ´Â ¿ªÇÒÀ» ´ã´çÇÏ´Â ÀÎÅÍÆäÀ̽º¶ó°í ÇÒ ¼ö ÀÖ´Ù..

    ½©ÇÁ·ÒÇÁÆ® »ó¿¡¼­´Â »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ¸í·É¾î¸¦ Çؼ®ÇÏ°í ¶æÀ» È®Á¤ Áþ±â Àü¿¡ ¸ÕÀú È®ÀÎÇÏ´Â ÀüÀ̹®ÀÚ(meta character)µéÀÌ Á¸ÀçÇÑ´Ù. À̵鿡 ´ëÇؼ­ °£´ÜÈ÷ º¸µµ·Ï ÇÏÀÚ.
     

    > --> Ç¥ÁØ Ãâ·ÂÀ» ¡®>¡¯ µÚ¿¡ ÁöÁ¤ÇÏ´Â À̸§ÀÇ ÆÄÀÏ·Î ±â·ÏÇÏ´Â ¸®´ÙÀÌ·º¼Ç.
    < --> Ç¥ÁØ ÀÔ·ÂÀ» ÆÄÀϷκÎÅÍ ÀԷ¹޴ ¸®´ÙÀÌ·º¼Ç.
    >> --> Ç¥ÁØ Ãâ·ÂÀ» ÆÄÀÏÀÇ µÚ¿¡ Ãß°¡ÇÏ´Â Ãâ·Â ¸®´ÙÀÌ·º¼Ç.
    <<asdf --> ¡®asdf¡¯±îÁö Ç¥ÁØ ÀÔ·ÂÀ» Àд ÀÔ·Â ¸®´ÙÀÌ·º¼Ç.
    * --> 0 °³ ÀÌ»óÀÇ ¹®ÀÚ¸¦ ´ëÇ¥Çϴ ġȯ¹®ÀÚÀÔ´Ï´Ù.ÈçÈ÷ ¿ÍÀϵå Ä«µå¶ó°í ÇÑ´Ù.
    ? --> ÇϳªÀÇ ¹®ÀÚ¸¦ ´ëÇ¥Çϴ ġȯ ´ëÇ¥ ¹®ÀÚÀÌ´Ù.
    ¡® ¡® --> ÀÛÀº µû¿ÈÇ¥ »çÀÌÀÇ ¸í·ÉÀÇ ¼öÇà °á°ú·Î ´ëÄ¡µÇ´Â ¸í·É ġȯ
    | --> ÇÑ ÇÁ·Î¼¼½ºÀÇ Ãâ·ÂÀ» ´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ ÀÔ·ÂÀ¸·Î ¿¬°áÇÏ´Â ÆÄÀÌÇÁ
    || --> ¾ÕÀÇ ¸í·ÉÀÌ ½ÇÆÐÇÏ¸é µÚÀÇ °ÍÀ» ½ÇÇØÇÏ´Â or Á¶°Ç ÆǴܹ®
    && --> ¾ÕÀÇ ¸í·ÉÀÌ ¼º°øÇØ¾ß µÚÀÇ °ÍÀ» ½ÇÇàÇÏ´Â and Á¶°Ç ÆǴܹ®
    ( ) --> ¸í·ÉµéÀ» ±×·ìÀ¸·Î ¹­´Â ÀüÀÌ ¹®ÀÚ.
    & --> ¸í·ÉÀ» ¹é±×¶ó¿îµå(background)¿¡¼­ ½ÇÇàÇÏ´Â ÀüÀÌ ¹®ÀÚ.
    $ --> º¯¼ö Á¢±ÙÀ» ÀǹÌÇÏ´Â ÀüÀ̹®ÀÚ

     

    À§¿Í °°Àº ÀüÀÌ ¹®ÀÚ Áß¿¡¼­ »ç¿ë¿¡ ÁÖÀÇÇØ¾ß ÇÒ ºÎºÐÀÌ Àִµ¥ ¹Ù·Î ¸ðµç ¹®ÀÚ¸¦ ´ëü ÇÏ´Â ¡®*¡¯ ¿ÍÀϵå Ä«µåÀÌ´Ù. ¿ÍÀϵå Ä«µå´Â ƯÈ÷ rm ¸í·É¾î¿Í °°ÀÌ »ç¿ëµÉ ¶§ ¸Å¿ì À§ÇèÇѵ¥ ´ÙÀ½°ú °°Àº °æ¿ì¸¦ »ý°¢ÇØ º¸ÀÚ. ¸¸¾à¿¡ ½Ç¼ö·Î ¡®*.txt¡¯ ¶ó´Â ÆÄÀÏÀ» ¸¸µé¾ú´Ù°í ÇÏÀÚ.
    ÀÌ ÆÄÀÏÀ» ¾î¶»°Ô Áö¿ö¾ß ÇÒ±î? ^^; ¡®*¡¯ ¶ó´Â ÀüÀ̹®ÀÚ¸¦ ÀÏ¹Ý ¹®ÀÚ·Î ´ëü ½ÃÄÑÁִ Ư¼ö¹®ÀÚ(¡®¡¬¡¯)°¡ Á¸ÀçÇÑ´Ù.

    rm ¡¬*.txt ÀÌ·¸°Ô Áö¿ì¸é À§¿Í °°Àº »óȲÀ» ÇØ°áÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.(¿©´ãÀ̾ú½À´Ï´Ù.^^;)

    ¸®´ÙÀÌ·º¼Ç°ú ÆÄÀÌÇÁ¿¡ ´ëÇؼ­´Â éÅÍ 3À» ÂüÁ¶ ÇÏ½Ã¸é µË´Ï´Ù.

    ½© ½ºÅ©¸³Æ®´Â ½ÇÇàµÉ ¶§¿¡ ¿©·¯ °¡Áö ȯ°æ º¯¼öÀÇ °ª¿¡ ¿µÇâÀ» ¹Þ´Â´Ù. ÀÌ º¯¼öµéÀº º¸Åë ´ë¹®ÀڷΠǥ½ÃµÇ´Âµ¥, »ç¿ëÀÚ Á¤ÀÇ º¯¼öµé°ú ±¸º°Çϱâ À§Çؼ­ ÀÔ´Ï´Ù.(»ç¿ëÀÚ Á¤ÀÇ º¯¼öµéÀº ÆíÀÇ»ó ´ëºÎºÐ ¼Ò¹®ÀÚ¸¦ Áñ°Ü ¾²ÁÒ..) ÇÙ½ÉÀûÀΠȯ°æ º¯¼öµéÀº ´ÙÀ½°ú °°´Ù.
    ( ÀÚ¼¼ÇÑ ³»¿ëÀº ¡®man¡¯ ÆäÀÌÁö¸¦ ÀÌ¿ëÇÏ½Ã¸é º¸´Ù ¸¹ÀÌ ¾Ë ¼ö ÀÖ½À´Ï´Ù.)

    ȯ°æ º¯¼ö - º¯¼ö ¼³¸í..
     

    $PATH - ½ÇÇà ¸í·É¾î¸¦ ã±â À§ÇØ »ç¿ëµÇ´Â µð·ºÅ丮 ¸ñ·Ï ¡®;¡¯·Î ±¸ºÐ
    $HOME - »ç¿ëÀÚÀÇ È¨µð·ºÅ丮 Á¤º¸
    $PS1 - ¸í·ÉÇà ÇÁ·ÒÇÁÆ® , º¸ÅëÀº $ÀÔ´Ï´Ù.
    $PS2 - µÎ ¹ø° ÇÁ·ÒÇÁÆ® , Ãß°¡ÀûÀÎ ÀÔ·ÂÀ» À§ÇÑ ÇÁ·ÎÇÁÆ®¸¦ ³ªÅ¸³»±â À§ÇØ »ç¿ëµÇ¸ç,
                º¸ÅëÀº > ÀÔ´Ï´Ù.
    $IFS - ÀÔ·ÂÇÊµå ±¸ºÐÀÚ.½©»ó¿¡¼­ ÀÔ·ÂÀ» ÀоîµéÀÏ ¶§ ³¹¸»À» ±¸ºÐÇϱâÇÑ ¸ñÀûÀ¸·Î
              »ç¿ëµÇ´Â ¹®ÀÚ ¸ñ·Ï, º¸ÅëÀº ½ºÆäÀ̽º,ÅÇ,..
    $0 - ½©½ºÅ©¸³Æ® À̸§
    $# - Àü´ÞµÈ ÀÎÀÚÀÇ °³¼ö

     

    $$ - ½© ½ºÅ©¸³Æ®ÀÇ ÇÁ·Î¼¼½º ID,½© ½ºÅ©¸³Æ® ³»ºÎ¿¡¼­ Áߺ¹µÇÁö ¾Ê´Â Àӽà ÆÄÀÏÀÇ
            À̸§À» ¸¸µé ¶§ ÀÚÁÖ »ç¿ëµÊ.
           ex) /tmp/trash_$%.µî..
    $MAIL - ÀüÀÚ ¿ìÆí ÆÄÀÏÀÇ °æ·Î¿Í À̸§À» °¡Áö°í ÀÖ´Ù.
    $LOGNAME - »ç¿ëÀÚ À̸§ º¯¼ö
    $HOSTNAME - ÇöÀç ÄÄÇ»ÅÍÀÇ À̸§À» °¡Áö°í ÀÖ´Ù.
    $HOSTTYPE - ÄÄÇ»ÅÍÀÇ Á¾·ù¸¦ ³ªÅ¸³À´Ï´Ù.i486 °°ÀÌ..
    $OSTYPE - ¹«¾ùÀϱî¿ä?~ ^^; Linux ·Î Á¤ÀǵǾî ÀÖ½À´Ï´Ù.
    $LS_COLORS - ls ¸í·ÉÀ» »ç¿ëÇÒ ¶§ ÆÄÀÏÀÇ Á¾·ù¿¡ µû¶ó ÁöÁ¤µÈ »ö»ó

 

    ÀÎÀÚ º¯¼ö - º¯¼ö ¼³¸í
     

    $1,..$2.. - ½ºÅ©¸³Æ®·Î Àü´ÞµÈ argument ÀÔ´Ï´Ù.
    $* - ½ºÅ©¸³Æ®·Î Àü´ÞµÈ ÀÎÀÚ Àüü·Î ÇϳªÀÇ º¯¼ö¿¡ ±â¾ï ÀúÀåµÇ¸ç
    $IFS - ȯ°æ º¯¼öÀÇ Ã¹¹ø° ¹®ÀÚ·Î ±¸ºÐµÈ´Ù.
    $@ - $*¿Í´Â ¹Ì¹¦ÇÑ Â÷ÀÌ°¡ ÀÖ´Ù. ÀÌ º¯¼ö´Â IFS ȯ°æ º¯¼ö¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù.
            °¢ º¯¼ö°¡ µû¿ÈÇ¥·Î ±¸ºÐµÈ ¸ðµç Àμö °ªÀ» °®´Â´Ù.
    $! - ¸¶Áö¸· ½ÇÇàµÈ ¸í·ÉÀÇ ÇÁ·Î¼¼½º ID °ªÀ» °®´Â´Ù.
    $? - ¸¶Áö¸· ½ÇÇàµÈ ¸í·ÉÀÇ ¸®ÅÏ °ªÀ» °®´Â´Ù.

     

    Áß¿äÇÑ È¯°æº¯¼ö¿Í ÀÎÀÚ º¯¼öµéÀ» »ìÆì ºÃ½À´Ï´Ù. °£´ÜÈ÷ ȯ°æº¯¼öµéÀÇ ³»¿ëÀ» »ìÆì º¾½Ã´Ù.

    39% liks@doit:~> echo $HOSTNAME
    doit
    40% liks@doit:~> echo $OSTYPE
    linux-gnu
    41% liks@doit:~>

    ¿ì¸®´Â ¡®echo¡¯ ¸í·É¾î¸¦ ÀÌ¿ëÇØ °¢ º¯¼öÀÇ ¼³Á¤ °ªÀ» ¾Ë¾Æ º¼ ¼ö ÀÖ´Ù. °¢ º¯¼öµéÀÌ °ªÀ» ¾î¶² ½ÄÀ¸·Î °¡Áö°í ÀÖ´ÂÁö ¾Ë¾Æ º¸´Â °ÍÀÌ ³ªÁß¿¡ ¸¹Àº µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
    ±×·³ °£´ÜÇÑ »ç¿ëÀÚ º¯¼ö¸¦ ¸¸µé¾î º¸°í È­¸é¿¡ Ãâ·ÂÇØ È®ÀÎÇØ º¸µµ·Ï ÇսôÙ.

    86% liks@doit:~> linux=¡±It is a nice Operation System¡±
    87% liks@doit:~> echo -e ¡®How about linux?¡¬n¡¯$aicc
    How about linux?
    It is a nice Operation System
    88% liks@doit:~>

 

    #### ^^; ¡®echo¡¯ ¸í·É¾î¿¡ ´ëÇؼ­ °£´ÜÈ÷ ¾Ë¾Æ º¾½Ã´Ù. ^^; ####
    ¡®echo¡¯ ´Â Àμö·Î ÁöÁ¤µÈ ¹®ÀÚ¿­À» ±×´ë·Î È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.ÀÌ°ÍÀº Àμö·Î ÁÖ¾îÁø ¹®ÀÚ¿­ÀÌ ¿ÀÆÛ·¹ÀÌÆà ½Ã½ºÅÛÀ¸·Î ÀÐÇôÁø ÈÄ¿¡ ´Ù½Ã ±×´ë·Î È­¸é¿¡ µð½ºÇ÷¹ÀÌ ÇØÁÖ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù.

    echo [ -ne ] ½ºÆ®¸µ
    OPTIONS;
    -n : »õ·Î °³ÇàÇÏÁö ¾Ê°í Ãâ·ÂÇÏ°Ô ÇÑ´Ù.
    -e : ¹®ÀÚ¿­ Áß¿¡¼­ ¹é½½·¡½¬¿Í Á¶ÇյǴ Ư¼ö ¹®ÀÚ¸¦ ÀνÄÇÏ°Ô ÇÑ´Ù.

    ÀÌ·¯ÇÑ Æ¯¼ö ¹®ÀÚµéÀº ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.
    ¡¬a »à¼Ò¸®.(º°·Î µè±â¿¡ ¾ÈÁÁ±º¿ä ^^;) ¡¬b ¹é½ºÆäÀ̽º
    ¡¬f ¿ëÁö ¹Ù²Þ (form feed) ¡¬n Çà¹Ù²Þ
    ¡¬v ¼öÁ÷ÅÇ ¡¬¡¬¹é½½·¡½¬ ¹®ÀÚ.
    ¡¬nnn 8Áø¹ýÀ¸·Î Ç¥±âµÇ´Â ASCII ¹®ÀÚ ¡¬c Ãâ·Â ÈÄ Çà¹Ù²Þ ±ÝÁö

 

    À̹ø¿¡´Â ¼ÂÆÃµÈ »ç¿ëÀÚ º¯¼ö¸¦ Ŭ¸®¾î ½ÃÄÑ º¾½Ã´Ù.

    91% liks@doit:~> unset linux
    92% liks@doit:~> echo -e ¡®How abour linux? ¡¬n¡¯$linux
    How about linux

    93% liks@doit:~>

    ȯ°æº¯¼ö ¡®$linux¡¯ ¿¡ ÀúÀåµÈ °ªÀÌ Å¬¸®¾îµÈ °ÍÀ» È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. À§¿¡¼­ ¼³¸íÇÑ ¡®echo¡¯ ¸í·ÉÀº ½ÇÁ¦·Î ÇÁ·ÒÇÁÆ® »ó¿¡¼­´Â °ÅÀÇ ¾²ÀÌÁö ¾ÊÁö¸¸ ½©½ºÅ©¸³Æ® »ó¿¡¼­´Â ¾ÆÁÖ ºó¹øÈ÷ »ç¿ëµÇ´Â ¸í·É¾îÀÔ´Ï´Ù.

    ÀÌÁ¦ °£´ÜÇÑ ½© ½ºÅ©¸³Æ®¸¦ Â¥ º¸µµ·Ï ÇսôÙ.

    108% liks@doit:/tmp> cat > test.sh
    #!/bin/sh
    clear
    cal
    echo
    echo $1
    echo GREAT!!

    109% liks@doit:/tmp>chmod +x test.sh
    110% liks@doit:/tmp>./test.sh niceGuy

    September 1999
    S M Tu W Th F S
    1 2 3 4
    5 6 7 8 9 10 11
    12 13 14 15 16 17 18
    19 20 21 22 23 24 25
    26 27 28 29 30

    niceGuy
    GREAT!!

    111% liks@doit:/tmp>

    ´«¿©°Ü º¸½Ç °ÍÀº ½©½ºÅ©¸³Æ®ÀÇ ½ÃÀÛÀº ¡®#!¡¯¿Í ½©ÀÇ Àý´ë °æ·Î¸íÀ» ÇÔ²² Àû¾î Áشٴ °ÍÀÌÁö¿ä. ¡®sh¡¯ ´Â ¡®bash¡¯¿Í ½Éº¼¸¯ ¸µÅ©µÇ¾î ÀÖ½À´Ï´Ù. ¡®/tmp¡¯ °¡ ½ÇÇà PATH °¡ ¾Æ´Ï±â ¶§¹®¿¡ test.sh ¸¦ ¡®/tmp¡¯ ¿¡¼­ ãµµ·Ï¡¯./¡¯µÚ¿¡ ¡®test.sh¡¯ ¸¦ ½áÁÖ¼Å¾ß ÇÕ´Ï´Ù. ¡®.¡¯Àº ÇöÀç µð·ºÅ丮¸¦ ÀǹÌÇÕ´Ï´Ù. chmod +x ´Â ½© ½ºÅ©¸³Æ®¸¦ ½ÇÇà °¡´ÉÇÑ ¸í·É¾î·Î ¹Ù²Ù±â À§Çؼ­ »ç¿ëµÇ¾ú½À´Ï´Ù. À§ÀÇ ½ºÅ©¸³Æ®´Â È­¸éÀ» Ŭ¸®¾îÇÏ°í ´Þ·ÂÀ» Ãâ·ÂÇÏ°í echo ¸í·ÉÀ¸·Î µÎ ÁÙÀÇ °ø¹éÀ» ¸¸µé°í ÀÎÀÚ·Î ¹ÞÀº niceGuy¸¦ Ãâ·ÂÇÏ°í ´Ù½Ã GREAT!!¸¦ Ãâ·ÂÇÏ´Â °£´ÜÇÑ ½ºÅ©¸³Æ®¿´½À´Ï´Ù.

    Á»´õ Áøº¸ÇÑ ½© ½ºÅ©¸³Æ®¸¦ ¸¸µé¾î º¸±â À§ÇØ ÀÚÁÖ »ç¿ëµÇ¾îÁö´Â Á¶°Ç ÆÇ´Ü ,¹Ýº¹ ¹®¹ýµî¿¡ ´ëÇؼ­ ¾Ë¾Æ º¾½Ã´Ù.

     

    ### Á¶°Ç¹® ###
    Á¶°Ç¹®Àº ¸ðµç ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ±âº»À̶ó°í ÇÒ ¼ö ÀÖ´Ù. ¾î¶² Á¶°ÇÀ» ÆÇ´ÜÇÏ°í ±×¿¡ µû¸¥ ¿©·¯ ´Ù¸¥ ÇൿµéÀ» ÃëÇÒ ¼ö ÀÖ´Â.. ½© ½ºÅ©¸³Æ®¿¡¼­´Â ¡®test¡¯ ¿Í [ ] ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© Âü, °ÅÁþÀ» ÆÇ´ÜÇØ ³À´Ï´Ù.

    ¡®test¡¯ ¸í·É¾î´Â ½©¿¡ Æ÷ÇԵǾî ÀÖ´Â ³»ºÎ ¸í·É¾î°¡ ¾Æ´Ï¶ó ¿ÜºÎ ¸í·É¾îÀÔ´Ï´Ù.
    Çѹø È®ÀÎÇØ º¸½ÃÁÒ. ¡®which test¡¯ ȤÀº ¡®whereis test¡¯ ȤÀº ¡®find / -name test¡¯ ¡®/bin/test¡¯ ³ª ¡®/usr/bin/test¡¯ ¸¦ ãÀ¸½Ç ¼ö ÀÖÀ» °Ì´Ï´Ù.

    ¡®test¡¯ ¸í·É¾î¿¡¼­´Â ¼¼°¡Áö ÇüÅÂÀÇ ¸í·É¾î ŸÀÔÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×°ÍÀº ¹®ÀÚ¿­ ºñ±³, »ê¼ú ºñ±³, ÆÄÀÏ Á¶°ÇÀÔ´Ï´Ù. ¸í·É¾î ŸÀÔÀº ´ÙÀ½°ú °°½À´Ï´Ù.

    == ¹®ÀÚ¿­ ºñ±³ ==
     

    string : ½ºÆ®¸µÀÌ ºó ¹®ÀÚ¿­ÀÌ ¾Æ´Ï¶ó¸é Âü.
    string1 = string2 : µÎ ¹®ÀÚ¿­ÀÌ °°´Ù¸é Âü.
    string1 != string2 : µÎ ¹®ÀÚ¿­ÀÌ °°Áö ¾Ê´Ù¸é Âü.
    - n string : ¹®ÀÚ¿­ÀÌ ³ÎÀÌ ¾Æ´Ï¶ó¸é Âü
    - z string : ¹®ÀÚ¿­ÀÌ ³ÎÀ̶ó¸é Âü.

     

    == »ê¼ú ºñ±³ ==
     

    exp1 -eq exp2 : µÎ Ç¥Çö½Ä °ªÀÌ °°´Ù¸é Âü.
    exp1 -ne exp2 : µÎ Ç¥Çö½Ä °ªÀÌ °°Áö ¾Ê´Ù¸é Âü.
    exp1 -gt exp2 : exp.1 ÀÌ exp.2 º¸´Ù Å©´Ù¸é Âü.
    exp1 -ge exp2 : exp.1 ÀÌ exp.2 º¸´Ù Å©°Å³ª °°´Ù¸é Âü.
    exp1 -lt exp2 : exp.1 ÀÌ exp.2 º¸´Ù ÀÛ´Ù¸é Âü.
    exp1 -le exp2 : exp.1 ÀÌ exp.2 À۰ųª °°´Ù¸é Âü.
    !exp : expression ÀÌ °ÅÁþ À̶ó¸é Âü. Âü À̶ó¸é °ÅÁþ.

     

    == ÆÄÀÏ Á¶°Ç ==
     

    -d file : fileÀÌ µð·ºÅ丮¶ó¸é Âü.
    -e file : fileÀÌ Á¸ÀçÇÑ´Ù¸é Âü.
    -f file : fileÀÌ Á¤±Ô ÆÄÀÏÀ̶ó¸é Âü.
    -g file : file »ó¿¡ set-group-id°¡ ¼³Á¤µÇ¾î ÀÖ´Ù¸é Âü.
    -r file : file ÀÌ ÀбⰡ °¡´ÉÇÏ´Ù¸é Âü.
    -s file : file ÀÇ Å©±â°¡ 0ÀÌ ¾Æ´Ï¶ó¸é Âü.
    -u file : file»ó¿¡ set-user-id °¡ ¼³Á¤µÇ¾î ÀÖ´Ù¸é Âü.
    -w file : file ÀÌ ¾²±â °¡´ÉÇÏ´Ù¸é Âü.
    -x file : file ÀÌ ½ÇÇà °¡´ÉÇÏ´Ù¸é Âü.

     

    ¡®test¡¯ = ¡®[]¡¯ ¸¦ ¾Ë¾Æ ºÃÀ¸´Ï ÀÌÁ¦ if ¹®°úÀÇ È°¿ë ¹ýÀ» ¾Ë¾Æ º¾½Ã´Ù.

    --------------------------------------------------------
    if Á¶°Ç
        then
        ¹®Àå
             else
             ¹®Àå
    fi
    --------------------------------------------------------

    °£´ÜÇÑ ½ºÅ©¸³Æ®¸¦ ¸¸µé¾î¼­ Å×½ºÆ® Çغ¾½Ã´Ù.
     

    #!/bin/sh
    echo ¡°°ø CD ÇÑÀå¿¡ ¾ó¸¶ ÀԴϱî?¡±
    read price
     

    if [ $price = ¡°100¿ø¡± ] ; then
    echo ¡°¾ÆÁÖ ½Î±º¿©..^_^¡±
    elif [ $price = ¡°10000¿ø¡± ] ;then
    echo ¡°À¸Çä... ³Ê¹« ºñ½Î³ß.. ¾È»ç -_-;¡±
    else

    echo ¡°¸Û¸Û¸Û ¹Ùº¸.. 8-P¡±
    fi
    exit 0

     

    À§ ½ºÅ©¸³Æ®¸¦ »ìÆì º¾½Ã´Ù. ¡®read¡¯ ´Â º¯¼ö¸¦ ÀÐÀ» ¼ö ÀÖµµ·Ï ÇÏ´Â ±¸¹®ÀÔ´Ï´Ù.
    Çü½ÄÀº À§¿Í °°ÀÌ ¡®read º¯¼ö¡¯ ÇüÅ·Π»ç¿ëÇÏ½Ã¸é µË´Ï´Ù.
    if ¹®°ú then À» °°Àº ¶óÀο¡ »ç¿ëÇÒ ¶§¿¡´Â ¡®;¡¯ ¼¼¹ÌÄÝ·ÐÀ¸·Î ±¸ºÐÇÏ°Ô µË´Ï´Ù.
    ±×¸®°í ¿ì¸®°¡ À§¿¡¼­ ¾Ë¾Æº» ¡®test¡¯ ¸í·É¾î°¡ ¡®[]¡¯ ÇüÅ·Π»ç¿ëµÇ¾ú½À´Ï´Ù.

    ÇÑ°¡Áö Àç¹ÌÀÖ´Â ºÎºÐÀº ¡®if¡¯ ¹®ÀÌ ³¡³¯ ¶§´Â ¡®fi¡¯ ¾Ë·Á Áشٴ °ÍÀÌÁö¿ä. µÞ ºÎºÐ¿¡ ³ª¿À°ÚÁö¸¸ ¡®case¡¯ ¹®ÀÌ ³¡³¯ ¶§¿¡´Â ¡®esac¡¯ ÀÔ´Ï´Ù. ^^;

    ´ÙÀ½Àº ¡®for¡¯ ±¸¹®¿¡ ´ëÇؼ­ ¾Ë¾Æ º¸°Ú½À´Ï´Ù.

    --------------------------------------------------------
    for º¯¼ö in ¹ë·ù..
    do
    ¹®Àå
    done
    --------------------------------------------------------

    ¹ë·ù °ªµéÀº ´ë°³ ¹®ÀÚ¿­ÀÔ´Ï´Ù. º¯¼öµéÀ» ¹Ýº¹Çؼ­ Ãâ·ÂÇØ ÁÖ´Â °£´ÜÇÑ ½ºÅ©¸³Æ®¸¦ ¸¸µé¾î º¾½Ã´Ù.

    #!/bin/sh
    for name in liks love forever
    do
    echo $name
    done
    exit 0

    °á°ú´Â liks,love,forever ¸¦ ¼ø¼­´ë·Î Ãâ·ÂÇØ ÁÖ°ÚÁö¿ä. ¾Õ¿¡¼­ »ìÆ캻 echo ¸í·É¾î ¿É¼Ç¿¡¼­ -n À» ÁÖ°Ô µÈ´Ù¸é ÁÖ¿í ºÙ¾î¼­ ³ª¿À°ÚÁö¿ä. º¯¼öÀÇ °³¼ö¸¸Å­ echo ¹®ÀÌ ½ÇÇàµÇ´Â °£´ÜÇÑ ½ºÅ©¸³Æ®¿´½À´Ï´Ù. ÀÌ ¶§¿¡ º¯¼öÀÇ ¹ë·ù¿¡ °ø¹éÀ» ³Ö°í ½ÍÀ» ¶§¿¡´Â µû¿ÈÇ¥·Î ¹­¾î ÁÖ½Ã¸é µË´Ï´Ù. ¡°liks doit forever¡± ÀÌ·± ½ÄÀ¸·Î µÇ°ÚÁö¿ä.
    for ±¸¹®À» »ç¿ëÇÑ °£´ÜÇÑ ¿¹¸¦ Çϳª ´õ »ìÆì º¾½Ã´Ù.

    #!/bin/sh
    for print in $(ls asdf[123].txt)
    do
    cat $print | lpr
    done
     

    ÀÌ ½ºÅ©¸³Æ®´Â asdf1.txt , asdf2.txt , asdf3.txt ÆÄÀÏÀ» print ÀÇ °¢°¢ÀÇ º¯¼ö·Î ÀÐ¾î ¿Í¼­ for ¸í·ÉÀÇ ÀÎÀÚ ¸ñ·ÏÀ¸·Î µé¾î °©´Ï´Ù. ÀÏÁ¾ÀÇ ¿ÍÀϵå Ä«µå·Î »ç¿ëµÇ¾îÁø °ÍÀÔ´Ï´Ù. 

    $(¸í·É¾î) ´Â ÀÌ ºÎºÐÀº () ¾ÈÀÇ ¸í·É¾îÀÇ ½ºÅÄ´Ùµå ¾Æ¿ô Ãâ·ÂÀ» º¯¼ö·Î ÃëÇÒ ¼ö ÀÖµµ·Ï ÇØÁÝ´Ï´Ù. °¢°¢ÀÇ ÆÄÀÏÀ» cat À¸·Î Àо lpr ¿¡°Ô ÆÄÀÌÇÁ·Î Ãâ·ÂÀ» ³Ñ°ÜÁÖ¾î ÇÁ¸°ÆÃÀ» ÇÒ ¼ö ÀÖ°Ô µÇ°ÚÁö¿ä. cat $print | lpr ´ë½Å¿¡ lpr $print Çصµ »ó°ü ¾ø½À´Ï´Ù. 

    ¡°while ±¸¹®¡±
    ½©¿¡¼­ÀÇ º¯¼ö´Â ¸ðµÎ ±âº»ÀûÀ¸·Î ¹®ÀÚ¿­·Î Ãë±ÞµÇ±â ¶§¹®¿¡ , for ·çÇÁ´Â ÀÏ·ÃÀÇ ¹®ÀÚ¿­À» »ç¿ëÇϱ⿡´Â ÁÁÀ»Áö ¸ð¸£³ª ¾î¶² ¸í·ÉÀ» ÁöÁ¤µÈ Ƚ¼ö¸¸Å­ ½ÇÇà ½ÃÅ°±â¿¡´Â ½ÇÁ¦·Î ºÒÆíÇÕ´Ï´Ù. ¾î¶² ƯÁ¤ ¸í·ÉÀ» 100¹ø ½ÇÇà ½ÃÅ°°Ô µÈ´Ù¸é º¯¼öÀÇ ¹ë·ù°¡ 100°³°¡ ÇÊ¿äÇÏ°Ô µÇ°ÚÁö¿ä. ¹Ù·Î ÀÌ·² ¶§ ¡®while¡¯ ·çÇÁ¸¦ »ç¿ëÇÏ°Ô µË´Ï´Ù.
     

    ¡®while¡¯ ±¸¹®ÀÇ ¿ë¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.

    --------------------------------------------------------
    while Á¶°Ç¹®
    do
    ¹®Àå
    done
    --------------------------------------------------------

    Àç¹ÌÀÖ´Â °ÍÀ» Çϳª ¸¸µé¾î º¼±î¿ä~.. 

    #!/bin/sh
    echo ¡°¾ÏÈ£¸¦ ÀÔ·ÂÇϼ¼¿ä:¡±
    read passwd
     

    while [ ¡°$passwd¡± !=¡±ÃµÀç°­¹éÈ£¡± ]
    do
    echo ¡°´ç½ÅÀº ÀÎÁõµÈ »ç¿ëÀÚ°¡ ¾Æ´Õ´Ï´Ù.¾ÏÈ£¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä¡±
    read passwd
    done
    echo ¡°¿ÀÈ£~ ¾î¶»°Ô ¾Ë¾ÒÁö? --;¡±
    exit 0
     

    ¹°·Ð ÀÌ ÇÁ·Î±×·¥Àº º¸¾È¿¡ ÀüÇô µµ¿òÀÌ µÇÁö ¾Ê½À´Ï´Ù. -_-; ctrl+c ¸¦ ´­·¯ ¹ö¸®¸é ½ºÅ©¸³Æ®°¡ ±×³É Á¾·á µÇ¹ö¸± Å״ϱî.... ¿¹Àü¿¡ Å͹̳Îȯ°æ¿¡¼­ µ¹¾Æ°¡´ø BBS µé Áß¿¡ ½© ½ºÅ©¸³Æ®·Î ÀÛ¼ºµÈ BBS µéµµ ÀÖ¾ú´Ù°í ÇÕ´Ï´Ù. ±× ´ç½Ã ·Î±äÀ» ÇÒ ¶§¿¡ ctrl+c¸¦ »ç¿ëÇØ ·çÆ® ½©·Î ºüÁ® ³ª°¥ ¼ö ÀÖ¾ú´Ù´Â ¸»µéµµ ÀÖ±º¿ä. ^^; 

    ¾Æ¹«Æ° À§ ÇÁ·Î±×·¥Àº ¾ÏÈ£ ¡°ÃµÀç°­¹éÈ£¡± °¡ ÀÔ·ÂµÉ ¶§±îÁö ¿Ã¹Ù¸¥ ¾ÏÈ£ ÀÔ·ÂÀ» °è¼Ó ¿ä±¸ÇÏ°Ô µÇÁö¿ä. À̹ø¿¡´Â ƯÁ¤ ¸í·ÉÀ» ÀÏÁ¤ÇÑ È½¼ö¸¸Å­ ¹Ýº¹ÇÏ´Â ½ºÅ©¸³Æ®¸¦ ¸¸µé¾î º¾½Ã´Ù. 

    #!/bin/sh
    raw=1
    while [ ¡°$raw¡± -le 1000 ]
    do
    echo ¡°Ãµ°³ÀÇ ÃкÒÀÌ ÄÑÁö¸é Ưº°ÇÑ »ç¶ûÀÌ ÀÌ·ç¾î Áý´Ï´Ù.¡±
    raw=$(($raw+1))
    done
    exit
     

    ¡®[]¡¯ ºÎºÐÀº ¡®test¡¯ ¸í·É¾î¸¦ Âü°í Çϼ¼¿ä. À§¿¡¼­ ´«¿©°Ü º¼ ºÎºÐÀº $(()) ±¸¹®ÀÔ´Ï´Ù. $(()) ´Â ¡®()¡¯¾ÈÀÇ º¯¼ö¿¡ »ê¼ú ¿¬»êÀ» ÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â ±¸¹®ÀÔ´Ï´Ù. ¾Ë¾Æ µÎ½Ã¸é À¯¿ëÇÏ°Ô ½á¸ÔÀ» ¶§°¡ ÀÖÀ¸½Ç °Ì´Ï´Ù. Á÷Á¢ ½ÇÇàÇØ º¸½Ã°í °á°ú °ªÀ» È®ÀÎÇØ º¸½Ã±æ.. 

    À̹ø¿¡´Â ¡®case¡¯ ±¸¹®¿¡ ´ëÇؼ­ »ìÆ캸µµ·Ï ÇսôÙ.

    --------------------------------------------------------
    case º¯¼ö in
    ÆÐÅÏ) ¸í·É¾î ;;
    ÆÐÅÏ) ¸í·É¾î ;;
    esac
    --------------------------------------------------------

    °ð ¹Ù·Î ¿¹Á¦¸¦ »ìÆì º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. 

    #!/bin/sh
    echo ¡° õÀç °­¹éÈ£ÀÇ X-FILE ¡°
    echo
    echo 1¡¬) ³ªÀÇ »ýÀÏ
    echo 2¡¬) ¹éÈ£´Â ¾îµð¿¡ »ì±î¿ä?
    echo 3¡¬) ³»°¡ ÁÁ¾ÆÇÏ´Â °Í
    echo Q¡¬) ³¡!!
    echo 

    read choice
    case $choice in
    1) echo ¡°1979 ³â 04/14¡±
        echo ¡°ÁÖ¸ð±ºÀÇ »ýÀÏÀ̶û °°±º¿©¡±;;
    2) echo ¡°¾ÆÁÖ´ëÇб³ ÆÈ´Þ°ü 315È£ »óÁÖ¡±;;
    3) echo ¡°³ó±¸~ ±×¸®°í ä¼Ò¿¬..¡±;;
     

    Q|q) echo ¡°ÀÌ ÃµÀ縦 À̱â·Á¸é 10³âÀº ´õ ¼ö·ÃÇÏ°í ¿Í¶ó~!!¡±;; 

    *) echo ¡°¸Û¸Û¸Û.. ¹Ùº¸¡±;;
    esac
     

    À§ÀÇ ¿¹¿¡¼­ ´«¿©°Ü º¸½Ç ºÎºÐÀº echo ¹®¿¡¼­ ¡®)¡¯ ¸¦ ³ªÅ¸³»±â À§ÇØ ÀüÀ̹®ÀÚÀÎ ¡®¡¬¡¯ ÀÌ »ç¿ëµÇ¾îÁø Á¡ÀÔ´Ï´Ù. ±×¸®°í ¡®case¡¯ ¹® ¾È¿¡¼­ ¡®Q|q) ÀÇ or ¿¬»êÀÌ »ç¿ëµÇ¾ú´Ù´Â Á¡ÀÌÁÒ. ¡®*¡¯´Â ¿ÍÀϵå Ä«µå·Î ¾²¿´´Âµ¥ 1,2,3,Q,q ÀÌ¿ÜÀÇ ¸ðµç ¹®ÀÚµéÀÌ ÀÔ·ÂÀ¸·Î µé¾î ¿ÔÀ» ¶§ ó¸®Çϱâ À§ÇÑ ·çƾÀÔ´Ï´Ù. ¡®if¡¯¹®¿¡¼­ ±¸¹®ÀÇ ³¡À» ¾Ë·ÁÁÖ±â À§ÇØ ¡®fi¡¯ °¡ ¾²¿´µíÀÌ ¡®case¡¯ ¹®¿¡¼­´Â ¡®esac¡¯°¡ »ç¿ëµË´Ï´Ù. 

    ÀÌ ¹ø¿¡´Â AND ¿Í OR ¿¡ ´ëÇؼ­ °£´ÜÈ÷ ¾Ë¾Æ º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. 

    AND¸¦ »ç¿ëÇÏ¸é ¿©·¯ ¸í·ÉÀ» ÇѲ¨¹ø¿¡ ½ÇÇà ½Ãų ¼ö ÀÖ´Â ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù. AND ¿¬»ê¿¡¼­´Â ¹Ù·Î Àü ´Ü°èÀÇ ¸í·ÉÀÌ ¼º°øÇÏ¿´À» °æ¿ì¿¡¸¸ ´ÙÀ½ ¹ø ¸í·ÉÀ» ¼öÇàÇÏ°Ô µË´Ï´Ù. ±¸¹®ÀÇ ¹®¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.

    --------------------------------------------------------
    statement1 && statement2 && statement3 && .............
    --------------------------------------------------------

    AND ±¸¹®Àº ¸ðµç ¸í·É¾î°¡ ¼º°øÀûÀ¸·Î ¼öÇàµÇ¾úÀ» ¶§¿¡¸¸ ÂüÀÌ µÇ°í , ´Ù¸¥ °æ¿ì¿¡´Â °ÅÁþÀÌ µË´Ï´Ù.

    OR ±¸¹®Àº ¾î¶² ÇϳªÀÇ ¸í·ÉÀÇ ¼öÇàÀÌ ¼º°øÇÒ ¶§±îÁö ÀÏ·ÃÀÇ ¸í·ÉÀ» °è¼Ó ¼öÇàÇÏ°Ô µË´Ï´Ù. ±¸¹®ÀÇ ¹®¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.

    --------------------------------------------------------
    statement1 || statement2 || statement3 || .............
    --------------------------------------------------------

    ¿ÞÂÊ ±¸¹®ºÎÅÍ ½ÃÀÛÇÏ¿© ±× °á°ú °ªÀÌ °ÅÁþ(false) ¶ó¸é ¿À¸¥ÆíÀÇ ¸í·É¾î°¡ ½ÇÇàµÈ´Ù. ÇϳªÀÇ ±¸¹®ÀÌ Âü(true)ÀÌ µÉ ¶§±îÁö ¼öÇàÀÇ °è¼Ó ÇÏ°Ô µË´Ï´Ù. ¸¸ÀÏ ¾î¶² ±¸¹®ÀÌ ÂüÀ» ¹ÝȯÇÑ´Ù¸é ´õ ÀÌ»óÀÇ ±¸¹®Àº ¼öÇàµÇÁö ¾Ê½À´Ï´Ù.

    µ¿¾Æ¸® ȸ¿ø ÀüÈ­ ¹øÈ£ °ü¸®¸¦ À§ÇÑ °£´ÜÇÑ ½© ½ºÅ©¸³Æ®¸¦ Â¥ º¾½Ã´Ù.
    (tel.sh)
     
     

    #!/bin/sh 

    select_Memb(){
    echo -n ¡° ´Ù½Ã ãÀ»±î¿ä?(yes/no Á¾·á:¿£ÅÍ) : ¡°
    read sel
    case ¡°$sel¡± in
    ¡°yes¡± | ¡°YES¡± | ¡°¿¹¡± | ¡°y¡± | ¡°Y¡± )
    search_Memb
    select_Memb;;

    ¡°n¡± | ¡°N¡± | ¡°no¡± | ¡°NO¡± )
    echo ¡° ÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù.¡±
    echo
    ;;
    *) echo
    echo ¡° Good Bye~.. *^^* Always Happy to you.. - È«±æµ¿ -¡±
    echo
    ;;
    esac
    }
    search_Memb(){
    echo
    echo -n ¡° ã°í ½ÍÀ¸½Å À̸§ ȤÀº ±â¼ö¸¦ ¸»¾¸Çϼ¼¿ä(ex:¾Æ¹«°³ or 1±â) : ¡°
    read name
    echo
    if [ ¡°$name¡± = ¡°¡± ]; then
    echo
    elif [ ¡°$name¡± = ¡°1¡± ] ; then
    cat /usr/local/bin/tel.txt | grep 1±â
    elif [ ¡°$name¡± = ¡°2¡± ] ; then
    cat /usr/local/bin/tel.txt | grep 2±â
    elif [ ¡°$name¡± = ¡°3¡± ] ; then
    cat /usr/local/bin/tel.txt | grep 3±â
    elif [ ¡°$name¡± = ¡°4¡± ] ; then
    cat /usr/local/bin/tel.txt | grep 4±â
    elif [ ¡°$name¡± = ¡°5¡± ] ; then
    cat /usr/local/bin/tel.txt | grep 5±â
    elif [ ¡°$name¡± = ¡°6¡± ] ; then
    echo ¡° ȸºñ¸¦ ³» Áֽñ⠹ٶø´Ï´Ù.^^;;¡±
    else
    cat /usr/local/bin/tel.txt | grep $name
    fi
    echo }
    echo
    echo ¡° +------------------------------------------+¡±
    echo ¡° | ¿ì¸®µ¿¾Æ¸® ȸ¿ø ÀüÈ­ ¹øÈ£ºÎ ã±â |¡±
    echo ¡° +------------------------------------------+¡±
    echo ¡° made by È«±æµ¿. v0.1 ¡°
    search_Memb
    select_Memb
    exit 0
     

     

    ¡®tel.txt¡¯´Â ÀÌ·± ½ÄÀ¸·Î ÀÔ·ÂÇÏ¸é µÈ´Ù. 

    1±â 96.¸¶¸®¿À µ¥ÀÌÅÍ º£À̽º ¿¬±¸½Ç Tel 018-388-8888
    1±â 96.ÆÒ´õ Tel 02-718-5885 , 011-8883-8888
    2±â 97.ÀÓ²©Á¤ Á¤º¸°øÇÐ ¿¬±¸½Ç Tel 011-9037-0372
    2±â 97.³¯¶ó¸® ½Ã½ºÅÛ¼ÒÇÁÆ®¿þ¾î ¿¬±¸½Ç Tel 011-2222-2222
    3±â 98.°­¹éÈ£ Tel (±ºº¹¹«Áß)
    3±â 98.ä¼Ò¿¬ Tel (±ºº¹¹«Áß?)
    4±â 99.äġ¼ö Tel 012-3132-7436
    4±â 99.È«±æµ¿ Tel 016-366-6666
    5±â 00.¼­Å¿õ Tel 016-3000-3000, 222-2222 (Lab)
     

    À§ÀÇ ÇÁ·Î±×·¥Àº ¼öÁ¤ÀÇ ¿©Áö°¡ ¸¹ÀÌ ÀÖ´Ù. ¿©·¯ °¡Áö ´õ ³ªÀº ¹æ¹ýµéÀ» °í¾ÈÇØ º¸´Â °Íµµ ±¦ÂúÀ» °ÍÀÌ´Ù. (tel.sh¿¡ ½ÇÇà ±ÇÇÑÀ» ÁØ ÈÄ ½ÇÇà °¡´ÉÇÑ Æнº¿¡ ³Ö¾îÁÖ¸é µÈ´Ù. ÀÚ½ÅÀÇ ½Ã½ºÅÛÀÇ ´Ù¸¥ À¯Àúµé¿¡°Ôµµ ½ÇÇà ±ÇÇÑÀ» ÁÖµµ·Ï ÇÏÀÚ. ^^;) 

    <½©½ºÅ©¸³Æ®·Î ¸¸µç ÀüÈ­ ¹øÈ£ºÎ>




¡ã top

homeÀ¸·Î...