±ä ¸í·ÉÁÙÀ» °£´ÜÇÏ°Ô ¾²±â À§Çؼ .BAT¸¦ »ç¿ëÇغ» ÀûÀÌ ÀÖÀ¸¸é(³ª´Â ¾ÆÁÖ ¸¹´Ù), profileÀ̳ª .bash_profile¿¡ ÀûÀýÇÑ alias ÇàÀ» »ðÀÔÇÔÀ¸·Î½á °°Àº ¸ñÀûÀÌ ¾ò¾îÁú ¼ö ÀÖ´Ù. ÇÏÁö¸¸ Á» ´õ º¹ÀâÇÑ .BAT¿¡ ´ëÇؼ´Â ½©¿¡¼ »ç¿ë °¡´ÉÇÑ ½ºÅ©¸³Æ® ¾ð¾î¸¦ ¾ÆÁÖ ÁÁ¾ÆÇÒ °ÍÀÌ´Ù. ¹Ù·Î °·ÂÇÑ QBasicÀÌ ±× Áß Çϳª´Ù. ¿©±â¿£ º¯¼ö¿Í while, for, case if... then... else°°Àº ±¸Á¶¸¦ ºñ·ÔÇÏ¿© ¿©·¯ °¡Áö ±â´ÉµéÀÌ ÀÖ´Ù: 'ÁøÂ¥' ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ÁÁÀº ´ë¾ÈÀÌ µÉ ¼ö ÀÖ´Â °ÍÀÌ´Ù.
½ºÅ©¸³Æ®---µµ½ºÀÇ .BAT ÆÄÀÏ¿¡ ÇØ´çÇÏ´Â °Í---¸¦ ÀÛ¼ºÇÏ´Â °ÍÀº ´ÜÁö ÀνºÆ®·°¼Çµé·Î µÈ Ç¥ÁØ ASCII ÆÄÀÏÀ» ÀÛ¼ºÇÏÇÑ ´ÙÀ½ ÀúÀåÇÏ°í chmod +x <½ºÅ©¸³Æ®ÆÄÀÏ>À» »ç¿ëÇÏ¿© ½ÇÇà °¡´ÉÇÏ°Ô ¸¸µé¾îÁÖ¸é µÈ´Ù. ½ÇÇàÇÏ´Â °ÍÀº À̸§À» ÀÔ·ÂÇÏ¸é µÈ´Ù.
ÁÖÀÇ ÇÒ Á¡ ÇÑ°¡Áö. vi¶ó ºÒ¸®´Â ½Ã½ºÅÛ ÆíÁý±â°¡ Àִµ¥ ³» °æÇè¿¡ ÀÇÇϸé óÀ½ »ç¿ëÇÏ´Â »ç¶÷µéÀº ¸Å¿ì ¾î·Á¿öÇÑ´Ù. vi ÆíÁý±âÀÇ »ç¿ë¹ý¿¡ ´ëÇؼ´Â ¼³¸íÇÏÁö ¾Ê°Ú´Ù. Matt WelshÀÇ Ã¥À̳ª ÀÎÅͳݿ¡¼ ¼³¸í¼¸¦ ã¾Æº¼ °ÍÀ» ±ÇÇÑ´Ù. ¿©±â¼´Â ´ÙÀ½°ú °°Àº °ÍµéÀ» ¾ð±ÞÇÏ´Â °ÍÀ¸·Î ÃæºÐÇÒ °Í °°´Ù.
bashÀÇ ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏ´Â °ÍÀº ¸Å¿ì Å« ÁÖÁ¦À̱⠶§¹®¿¡ ±× ÀÚü¸¸À¸·Îµµ Ã¥ ÇÑ ±ÇÀÌ µÈ´Ù. ±×·¡¼ ´õ ±íÀÌ ¼³¸íÇÏÁö´Â ¾Ê°Ú´Ù. ´ÜÁö ±âº»ÀûÀÎ ±ÔÄ¢À» ±ú´ÞÀ» ¼ö ÀÖ´Â ½© ½ºÅ©¸³Æ® ¿¹Á¦ ¸î °³¸¦ º¸¿©ÁÖ°Ú´Ù:
#!/bin/sh # sample.sh # ³ª´Â ÄÚ¸àÆ®(ÁÖ¼®) # ù¹ø° ÁÙÀº ¹Ù²ÙÁö ¸» °Í °Å±â¿¡ ÀÖ¾î¾ß ÇÔ echo "ÀÌ ½Ã½ºÅÛÀº: 'uname -a'" # ¸í·ÉÀÇ Ãâ·ÂÀ» »ç¿ëÇÔ echo "³» À̸§Àº $0" # ³»Àå º¯¼ö echo "´ç½ÅÀº ´ÙÀ½À» ÁÖ¾úÀ½ $# ¸Å°³º¯¼ö: "$* echo "ù ¹ø° ¸Å°³º¯¼ö´Â: "$1 echo -n "À̸§Àº?" ; read your_name echo Â÷ÀÌÁ¡À» Àß º¸ÀÚ: "¾È³ç $your_name" # "·Î Àο빮 ³Ö±â echo Â÷ÀÌÁ¡À» Àß º¸ÀÚ: '¾È³ç $your_name' # '·Î Àο빮 ³Ö±â DIRS=0 ; FILES=0 for file in 'ls .' ; do if [ -d ${file} ] ; then # fileÀÌ µð·ºÅ丮¶ó¸é DIRS='exr $DIRS + 1' # DIRS = DIRS + 1 elif [ -f ${file} ] ; then FILES='expr $FILES +1' fi case ${file} in *.gif|*jpg) echo "${file}: graphic file" ;; *.txt|*.tex) echo "${file}: text file" ;; *.c|*.f|*.for) echo "${file}: source file" ;; *) echo "${file}: genric file" ;; esac done echo " ${DIRS} µð·ºÅ丮¿Í ${FILES}°¡ Á¸ÀçÇÑ´Ù" ls | grep "ZxY--!!!WKW" if [ $? != 0 ] ; then # ¸¶Áö¸· ÄÚµå Á¾·á echo "ZxY--!!!WKW ¸ø ãÀ½" fi echo "ÀÌ»ó... Ãß°¡ Á¤º¸°¡ ÇÊ¿äÇϸé 'man bash'¸¦ ÀÔ·ÂÇÒ °Í."
À¯´Ð½º¿¡¼´Â ÁÁ°Ç ½È°Ç ½Ã½ºÅÛ ¾ð¾î°¡ C´Ù. ¿©·¯ ´Ù¸¥ ¾ð¾îµé(Java, FORTRAN, Pascal, Lisp, Basic, Perl awk...)µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
C¸¦ ¾È´Ù´Â °ÍÀ» °¡Á¤ÇÏ°í Åͺ¸ C++ µî µµ½º¿ë¿¡ ¹ö¸©ÀÌ ³ªºüÁø »ç¶÷µéÀ» À§ÇÑ °¡À̵带 ¸î °³ ¾Ë·ÁÁÖ°Ú´Ù. ¸®´ª½ºÀÇ C ÄÄÆÄÀÏ·¯´Â gcc¶ó°í ºÒ¸®¸ç DOS ¿ë¿¡ ÀÖ´Â ¼ö ¸¹Àº º§°ú ÈÖ½½µéÀÌ ¾ø´Ù. ´Ù½Ã ¸»Çؼ IDE, ¿Â¶óÀÎ µµ¿ò¸», ÅëÇÕµÈ µð¹ö°Å µîÀÌ ¾ø´Ù. ±×³É °ÅÄ£ ¸í·ÉÇà ÄÄÆÄÀÏ·¯ÀÏ »ÓÀÌ¸ç ¾ÆÁÖ °·ÂÇÏ°í È¿À²ÀûÀÌ´Ù. ´©±¸³ª ´Ù ¹è¿ì´Â Ç¥ÁØ hello.c¸¦ ÄÄÆÄÀÏ ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù.
$ gcc hello.c
±×·¯¸é ½ÇÇà °¡´É ÆÄÀÏÀÎ a.outÀÌ ¸¸µé¾îÁø´Ù. ±× ½ÇÇà ÆÄÀÏ¿¡ ´Ù¸¥ À̸§À» ÁÖ·Á¸é ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù.
$ gcc -o hola hello.cÇÁ·Î±×·¥¿¡ ¶óÀ̺귯¸®¸¦ ¸µÅ©ÇÏ·Á¸é -l<libname>¸¦ ½ºÀ§Ä¡·Î ºÙÀÌ¸é µÈ´Ù. ¿¹¸¦ µé¾î, math ¶óÀ̺귯¸®¸¦ ¸µÅ©ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù:
$ gcc -o mathprog mathprog.c -lm( -l<libname> ½ºÀ§Ä¡´Â gcc·Î ÇÏ¿©±Ý ¶óÀ̺귯¸®ÀÎ /usr/lib/lib<libname> ¸¦ ¸µÅ©ÇÏ°Ô ¸¸µç´Ù. so; so -lmÀº /usr/lib/libm.so¸¦ ¸µÅ©ÇÑ´Ù).
ÀÌÁ¦±îÁö´Â ¼øÁ¶·Î¿ü´Ù. ÇÏÁö¸¸ ÇÁ·Î±×·¥ÀÌ ¿©·¯ °³ÀÇ ¼Ò½º ÆÄÀÏ·Î ¸¸µé¾îÁ³À» ¶§´Â À¯Æ¿¸®Æ¼ÀÎ make¸¦ »ç¿ëÇØ¾ß µÈ´Ù. Ç¥Çö Çؼ®±â¸¦ ÀÛ¼ºÇß´Ù°í °¡Á¤ÇÏÀÚ. ±× ¼Ò½º ÆÄÀÏÀ» parser.c ¶ó°í ºÎ¸£°í parser.h¿Í calc.c µÎ °³ÀÇ Çì´õ ÆÄÀÏÀ» #include ½ÃŲ´Ù. ±×·± ´ÙÀ½ calc.c¶ó°í ÇÏ´Â ÇÁ·Î±×·¥¿¡¼ parser.c¿¡ ÀÖ´Â ·çƾÀ» »ç¿ëÇÏ°í ½Í´Ù°í ÇÏÀÚ. ±×·¯¸é ¼øÂ÷ÀûÀ¸·Î parser.h°¡ #include µÈ´Ù. ¾ó¸¶³ª º¹ÀâÇÑ°¡! calc.c¸¦ ÄÄÆÄÀÏ ÇÏ·Á¸é ¾î¶»°Ô ÇØ¾ß ÇÑ´Ü ¸»Àΰ¡?
¼ÒÀ§ MakefileÀ̶ó°í Ç®¸®´Â °ÍÀ» ÀÛ¼ºÇØ¾ß ÇÑ´Ù. ÀÌ´Â ÄÄÆÄÀÏ·¯¿¡°Ô ¼Ò½ºµé°ú °´Ã¼ ÆÄÀϵéÀÇ Á¾¼Ó¼ºÀ» ¾Ë·ÁÁØ´Ù.
¿¹Á¦¿¡¼:
# ÀÌ°ÍÀº Makefile·Î calc.c¸¦ ÄÄÆÄÀÏ Çϴµ¥ »ç¿ëµÈ´Ù. # Áö½ÃµÈ °÷¿¡¼ <TAB> Å°¸¦ ´©¸¥´Ù! calc: calc.o parser.o <TAB>gcc -o calc calc.o parser.o -lm # calc´Â ´ÙÀ½ µÎ °³ÀÇ °´Ã¼ ÆÄÀÏ¿¡ ÀÇÁ¸ÇÑ´Ù: calc.o, parser.ocalc.o: calc.c parser.h <TAB>gcc -c calc.c # calc.o´Â µÎ ¼Ò½º ÆÄÀÏ¿¡ ÀÇÁ¸ÇÑ´Ù parser.o: parser.c parser.h xh.h <TAB>gcc -c parser.c # parser.o´Â ¼¼ °³ÀÇ ¼Ò½º ÆÄÀÏ¿¡ ÀÇÁ¸ÇÑ´Ù. # MakefileÀÇ ³¡
ÀÌ ÆÄÀÏÀ» Makefile·Î ÀúÀåÇÏ°í make¸¦ ÀÔ·ÂÇÏ¿© ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ ÇÑ´Ù. ´Ù¸¥ ¹æ¹ýÀ¸·Î calc.mak·Î ÀúÀåÇÑ ´ÙÀ½ make -f calc.mak ¶ó°í ÀÔ·ÂÇÑ´Ù. RMP´Â µÎ¸» ÇÒ ÇÊ¿äµµ ¾ø´Ù. ´ÙÀ½°ú °°ÀÌ Çϸé man ÆäÀÌÁö ¼½¼Ç 3¿¡ ÀÖ´Â C ±â´É¿¡ ´ëÇÑ ¾à°£ÀÇ µµ¿ò¸»À» ºÒ·¯¿Ã ¼ö ÀÖ´Ù.
$ man 3 printfÇÁ·Î±×·¥À» µð¹ö±ëÇÏ·Á¸é gdb¸¦ »ç¿ëÇÑ´Ù. gdbÀÇ »ç¿ë¹ýÀ» ¾Ë°í ½ÍÀ¸¸é info gdb¶ó°í ÀÔ·ÂÇÑ´Ù. »ç¿ë °¡´ÉÇÑ ¶óÀ̺귯¸®´Â ¸¹ÀÌ ÀÖ´Ù. ±× Áß Á¦ÀÏ ¸ÕÀú »ç¿ëÇÏ°í ½ÍÀº °ÍÀº ncurse(ÅؽºÆ® ¸ðµå È¿°ú)¿Í svgalib(ÄÜ¼Ö ±×·¡ÇȽº)ÀÏ °ÍÀÌ´Ù. Çѹø °ú°¨ÇÏ°Ô X11 ÇÁ·Î±×·¡¹ÖÀ» Çغ¸°í ½ÍÀ¸¸é(±×·¸°Ô ¾î·Á¿î °ÍÀº ¾Æ´Ï´Ù) X11 ÇÁ·Î±×·¡¹ÖÀ» ¾ÆÁÖ ½±°Ô Çϵµ·Ï µµ¿ÍÁÖ´Â ¶óÀ̺귯¸®°¡ ¿©·µ ÀÖ´Ù. Gtk°¡ ¸®´ª½ºÀÇ Ç¥ÁØÀÌ µÇ¾î°¡°í ÀÖ´Ù´Â »ç½ÇÀ» ¿°µÎ¿¡ µÎ°í www.xnet.com/~blatura/linapp6.html¸¦ »ìÆ캸¶ó.
¸¹Àº ¿¡µðÅ͵éÀÌ IDE ¿ªÇÒÀ» ÇÒ ¼ö ÀÖ´Ù. ±× ¿¹·Î emacs¿Í jed°¡ Àִµ¥ ½ÅÅýº ÇÏÀ̶óÀÌÆ®, ÀÚµ¿ µé¿©¾²±â µîÀÇ ±â´ÉÀÌ ÀÖ´Ù. ´Ù¸¥ °ÍÀ¸·Î´Â sunsite.unc.edu:/pub/Linux/devel/debuggers/ ¿¡¼ rhide ÆÐÅ°Áö¸¦ °¡Á®¿Â´Ù. ÀÌ°ÍÀº Borland IDE Ŭ·ÐÀ¸·Î ¾Æ¸¶ ÁÁ¾ÆÇÒ °ÍÀÌ´Ù.