¸®´ª½º °ü·Ã °Á¶õ |
---|
Á¦¸ñ | shell script #2 1998/05/08 (10:20) |
À̸§ | ±èÈ¿¿ø |
¹øÈ£ | 29 |
Á¶È¸ | 2581 |
º»¹® |
5) For ¹® ÀÌ ¹®¹ýÀº Á¶°ÇÀ» ¸¸Á·ÇßÀ»¶§¿¡ °è¼ÓÇؼ ·çÇÁ¸¦ ½ÇÇàÇÏ°Ô ÇÕ´Ï´Ù. for i in 0 1 2 3 4 5; do echo $i done À§¿Í °°Àº ¿¹°¡ ÀÖ´Ù°í ÇսôÙ. ±×·¯¸é º¯¼ö i¶ó´Â °ª¿¡ 0ºÎÅÍ 5±îÁö ¼ø¼ ´ë·Î ´ëÀÔÀÌ µË´Ï´Ù. ±×·¡¼ echo¶ó´Â ¸í·ÉÀ» »ç¿ëÇÏ¿© Ãâ·ÂÇÏ°Ô µÇ¸é °ªÀÌ ÂïÈ÷°Ô µÇ´Â °ÍÀÔ´Ï´Ù. Çü½ÄÀ» Àß ºÁµÎ±â ¹Ù¶ø´Ï´Ù. 6) While ¹® ÀÌ ¹®¹ýÀº Á¶°ÇÀÌ ÂüÀÏ °æ¿ì ¸í·ÉÀ» ¼öÇàÇÏ°í ±×·¸Áö ¾ÊÀ» °æ¿ì ¼öÇàÀ» ÇÏ Áö ¾Ê½À´Ï´Ù. mount | awk '/ext2/ { printf $3}' | while read line; do echo $line done À§ÀÇ ¿¹¸¦ ½ÇÇà ÇÏ°Ô µÇ¸é ¸®´ª½º¿¡ ¸¶¿îÆ®µÈ ³»¿ëÁß EXT2ÆÄÀÏ ½Ã½ºÅÛ¸¸À» ȸ鿡 º¸¿©ÁÖ°Ô µË´Ï´Ù. 6) Until¹® ÀÌ ¹®¹ýÀº While¹®°ú´Â ¹Ý´ë·Î Á¶°Ç¹®ÀÌ ¸¸Á·ÇÏÁö ¾ÊÀ» °æ¿ì¿¡¸¸ ¸í·ÉÀ» ¼ö ÇàÇÏ°Ô µÇ¹Ç·Î Ç×»ó ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù. Áï Á¶°Ç¿¡ ´ëÇؼ °ÅÁþÀÎ °æ¿ì¿¡¸¸ ¸í·É¼öÇàÀÌ ÀÌ·ç¾î Áý´Ï´Ù. 7) Case ¹® ÀÌ ¹®¹ýÀº If¹®À» ¿©·¯°³ »ç¿ëÇÏ´Â °Í°ú °°Àº È¿°ú¸¦ ³¾¼ö ÀÖ½À´Ï´Ù. ´ÜÁö If¹® ó·³ ´Ù¾çÇÑ Á¶°Ç½Ä º¸´Ù´Â °£´ÜÇÑ ºñ±³¿¡ Àû´çÇÕ´Ï´Ù. case "$1" in start) echo "start" ;; stop) echo "stop" ;; *) echo "syntax error" ;; esac À§¿¡¼ "$1"Àº ½ºÅ©¸³Æ®·Î µé¾î¿Â ù¹ø° ÀÎÀÚ¸¦ ¶æÇÏ´Â °ÍÀ̸ç ù¹ø° ÀÎ ÀÚÀÇ ¹®ÀÚ¿¿¡ µû¶ó¼ ¸í·ÉÀ» ¼öÇàÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. ¿©±â¼ *Àº ±×ÀÌ¿Ü¿¡¶ó´Â ¶æÀ¸·Î ÀÌÇØÇÏ¸é µË´Ï´Ù. À§ ¹®¹ýÀ¸·Î ¾Æ·¡¿Í °°ÀÌ ¿©·¯ °ªÀ» µ¿½Ã¿¡ ¼±ÅÃÇÒ¼ö ÀÖµµ·Ï ÇÒ¼öµµ ÀÖ½À´Ï ´Ù. case $1 in '') echo '$0: Usage: daemon [+/0nicelevel] {program}' exit 1;; -*|+*) nicelevel=$1 shift;; *) nicelevel=0;; esac Áï '|'¸¦ »ç¿ëÇÔÀ¸·Î½á OR Á¶°ÇÀ¸·Î »ç¿ëµÉ¼ö ÀÖ½À´Ï´Ù. ¿©±â¼ '-*'´Â ó À½ ¹®ÀÚ°¡ '-'¸¦ ½ÃÀÛÇÑ´Ù¸éÀ̶ó´Â ¶æÀÔ´Ï´Ù. shift´Â ÀÔ·ÂµÈ ¿ÜºÎ ÀÎÀÚ¸¦ ²ø¾î ´ç±â°Ô µÇ´Âµ¥ ¸¸¾à À§ÀÇ ¿¹¸¦ ½ÇÇàÇÒ ¶§ µÎ°³ÀÇ ÀÎÀÚ°¡ µé¾î ¿Â´Ù¸é shift¸¦ »ç¿ëÇÔÀ¸·Î½á µÎ¹ø° ÀÎÀÚ°¡ ù¹ø° ÀÎÀÚÀÇ ¹öÆÛ·Î µé¾î ¿À°Ô µÇ ´Â °ÍÀÔ´Ï´Ù. <Âü°í ½ÃÀÛ> º¯¼öÀÇ ÂüÁ¶. ½ºÅ©¸³Æ®¿¡¼ º¯¼ö¸¦ ÂüÁ¶Çϱâ À§Çؼ´Â $¶ó´Â Å°¿öµå¸¦ »ç¿ëÇÏ¿© °¡´ÉÇѵ¥ ¸¸¾à i¶ó´Â °ªÀÇ º¯¼ö¸¦ ÀÐ°í ½Í´Ù¸é $i¶ó°í »ç¿ëÇÏ¿©¾ß °¡´ÉÇÏ°Ô µË´Ï´Ù. i="test" echo $i ¶ó°í ÇßÀ»¶§, ºñ·Î½á i¶ó´Â º¯¼ö¸¦ Àоî ȸ鿡 Ç¥½ÃÇÏ°Ô µÇ´Âµ¥ ¿ÜºÎ¿¡¼ Àü´ÞµÇ´Â ÀÎÀÚ¿ª½Ã ÀÌ·¯ÇÑ ¹æ½ÄÀ¸·Î »ç¿ë°¡´ÉÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù. Áï ù¹ø ° ÀÎÀÚ´Â $1 µÎ¹ø° ÀÎÀÚ´Â $2 ÀÌ·±½ÄÀ¸·Î Àü´ÞµÇ¸ç $0¿¡´Â ½ÇÇàµÇ´Â ½º Å©¸³Æ®ÀÇ À̸§ÀÌ µé¾î °¡°Ô µË´Ï´Ù. ÀÌ¹Ì ¾Õ¿¡¼ ¾Ë¾Æº» »çÇ×ÀÌÁÒ? <Âü°í ³¡> 8) ÇÔ¼ö ½© ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÒ¶§¿¡ ÇÔ¼öµµ ¸¸µé¾î »ç¿ëÇÒ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡´Â ÇÔ¼ö ÀÇ ¿¹ÀÔ´Ï´Ù. testfunc() { echo "test func" } testfunc ÀÌ°ÍÀº °£´ÜÇÏ°Ô ³ª¸¶ ÇÔ¼ö¸¦ ¸¸µé¾î º»°ÍÀε¥ À§ÀÇ ³»¿ëÀ» ¼öÇàÇÏ°Ô µÇ¸ç ȸ鿡 "test func"¸¦ Ãâ·ÂÇÏ°Ô µË´Ï´Ù. ¸¸¾à¿¡ ¿©·¯ºÐµéÀÌ ÇÔ¼ö¿¡¼ ÀÎÀÚ ¸¦ Àü´ÞÇÏ·Á¸é ¾î¶»°Ô ÇÏ¸é µÉ±î¿ä? ¾Æ·¡ ¿¹¸¦ º¾½Ã´Ù. # A function to start a program. daemon() { # Test syntax. case $1 in '') echo '$0: Usage: daemon [+/-nicelevel] {program}' return 1;; -*|+*) nicelevel=$1 shift;; *) nicelevel=0;; esac # Save basename. base=`basename $1` # See if it's already running. [ "`pidofproc $base`" != "" ] && return # echo basename of the program. echo -n "$base " # make sure it doesn't core dump anywhere; while this could mask # problems with the daemon, it also closes some security problems ulimit -c 0 # And start it up. nice -n $nicelevel "$@" } À§ÀÇ ¿¹´Â ·¹µåÇÞ ¸®´ª½º¿¡¼ »ç¿ëµÇ´Â ½ºÅ©¸³Æ®ÁßÀÇ ÇϳªÀε¥ ±â´ÉÀº ÇÁ·Î ±×·¥À» ¼öÇà½ÃÅ°´Â °ÍÀÔ´Ï´Ù. ±×·¯¸é ÀÌ ½ºÅ©¸³Æ®¸¦ ¾î¶»°Ô ¼öÇàÇÒ±î¿ä? daemon <¼öÇàÇÒ ÇÁ·Î±×·¥> ÀÌ·±½ÄÀ¸·Î »ç¿ëÀ» ÇÏ¿© ¼öÇàÇÒ¼ö ÀÖ°Ô µË´Ï´Ù. À§¿¡¼ º¸¸é ÀÎÀÚÀÇ Àü´Þ ¶ÇÇÑ ¿ÜºÎ ÀÎÀÚÀÇ Àü´Þ°ú ¸¶Âù°¡Áö·Î $1À» »ç¿ëÇÏ ¿´À½À» ¾Ë¼ö ÀÖ½À´Ï´Ù. Áï ÇÔ¼ö·Î Àü´ÞµÇ´Â ÀÎÀÚ¶ÇÇÑ ¿ÜºÎ ÀÎÀÚ¿Í ¸¶Âù°¡Áö ·Î 󸮵ǹǷΠ$1Àº ù¹ø° ÀÎÀÚ¸¦ $2´Â µÎ¹ø° ÀÎÀÚ¸¦ ¶æÇÏ°Ô µÇ´Â °ÍÀÔ´Ï ´Ù. ¸¶Áö¸·À¸·Î $@Àº ¸ðµç ÀÎÀÚ¸¦ ¶æÇÏ°Ô µË´Ï´Ù. À§ÀÇ ¿¹¸¦ Á»´õ »ìÆì º¸¸é, ulimit -c 0 ¶ó´Â ºÎºÐÀ» º¼¼ö Àִµ¥ ÀÌ ºÎºÐÀº ÇÁ·Î±×·¥ÀÇ ¼öÇàÁß ¿À·ù°¡ ¹ß»ýµÉ °æ¿ì Core¶ó´Â ¸Þ¸ð¸® DumpÆÄÀÏÀ» ¸¸µé°Ô µÇ´Âµ¥ ÀÌ°ÍÀ» »ý¼ºÇÏÁö ¸øÇϵµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÚ À̷μ ´ë·«ÀûÀÎ šv ½ºÅ©¸³Æ®¿¡ ´ëÇØ ¾Ë¾Æ º¸¾Ò´Âµ¥ ¾î¶§¿ä? ´ëÃæ °¨ Àâ À»¼ö ÀÖ°ÚÁÒ? ±×·¯¸é À̹ø¿¡´Â ½ÇÁ¦·Î ¸®´ª½º¿¡¼ »ç¿ëµÇ´Â ½ºÅ©¸³Å͸¦ ºÐ ¼®ÇÏ¸é¼ ¼³¸íÇØ ³ª°¡°Ú½À´Ï´Ù. ÀÚ ±×·¯¸é ¸ÕÀú ¿©·¯ºÐµéÀÌ °¡Àå ¸¹ÀÌ Á¢ÇÏ°Ô µÇ´Â profileÀ» ºÐ¼®ÇØ º¾½Ã ´Ù. <Âü°í ½ÃÀÛ> profileÀ̶ó´Â ÆÄÀÏÀº /etc ¹Ø¿¡ ÀÖ°í µµ½º¿¡¼ÀÇ ¹èÄ¡ ÆÄÀÏ°ú ¸¶Âù°¡Áö·Î ¸®´ª½º°¡ ±¸µ¿µÇ¸é¼ ÀÚµ¿À¸·Î ½ÇÇàÇØÁÖ´Â ½ºÅ©¸³Æ® ÆÄÀÏÀÔ´Ï´Ù. <Âü°í ³¡> PATH="$PATH:/usr/X11R6/bin" ½ÇÇà °¡´ÉÇÑ ÇÁ·Î±×·¥ÀÇ °æ·Î¸¦ ÁöÁ¤ÇÏ¿© µÒÀ¸·Î½á, ½ÇÇàÀ» Á»´õ Æí¸®ÇÏ°Ô ÇÒ¼öÀÖµµ·Ï ÇÕ´Ï´Ù. PATH´Â DOS¿¡¼ÀÇ PATH¿Í °°´Ù°í º¸¸é °¡Àå Á¤È®ÇÒ°Í ÀÔ´Ï´Ù. PS1="[\u@\h \W]\\$ " ÀÌ°ÍÀº ¸í·É ÇÁ·ÒÇÁÆ®¸¦ ÁöÁ¤ÇØ ÁÖ´Â °ÍÀÔ´Ï´Ù. USER=`id -un` »ç¿ëÀÚÀÇ ¾ÆÀ̵𸦠ÁöÁ¤ÇØ ÁÖ´Â °ÍÀÔ´Ï´Ù. MAIL="/var/spool/mail/$USER" »ç¿ëÀÚÀÇ ¸ÞÀÏ Æú´õ¸¦ Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù. À§¿Í°°ÀÌ Á¤ÀÇµÈ ³»¿ëÀ» ¿ÜºÎ·Î ¾Ë·ÁÁÖ¾î¾ß Çϴµ¥ ÀÌ·¯ÇÑ ±â´ÉÀ» "export" ¶ó´Â Å°¿öµå¸¦ »ç¿ëÇÏ¿© ÇÒ¼ö ÀÖ½À´Ï´Ù. export PATH PS1 USER MAIL ¹Ý´ë·Î export·Î ¾Ë·ÁÁø º¯¼ö¸¦ ¾ø¾Ö·Á¸é unset À» »ç¿ëÇÏ¸é °¡´ÉÇØ Áý´Ï´Ù. ÀÚ ±×·¯¸é ÀÌ ÀÌ¿ÜÀÇ È¯°æ ¼³Á¤Àº ¾î¶»°Ô ÇØ¾ß ÇÒ±î¿ä? ÀÏÀÏÀÌ /etc/profileÀ» ÆíÁýÇϱ⠺¸´Ù´Â ¾Æ·¡¿Í °°Àº ºÎºÐÀ» /etc/profile¿¡ Ãß°¡ ÇØ ÁÜÀ¸·Î½á, ÀÌÈÄ¿¡ ȯ°æ ¼³Á¤À» /etc/profile.d/ ¶ó´Â µð·¢Å丮¿¡ ³Ö¾î µÒÀ¸·Î ÀÚµ¿ÀûÀ¸·Î °¡´ÉÇÏ°Ô ÇÒ¼ö ÀÖ½À´Ï´Ù. for i in /etc/profile.d/*.sh ; do if [ -x $i ]; then . $i else source $i fi done unset i ºÐ¼®ÇØ º¸¸é ¿ì¼± /etc/profile.d/¿¡¼ È®ÀåÀÚ°¡ sh·Î ³¡³ª´Â ÆÄÀÏÀ» ¸ðµÎ ã¾Æ¼ i¶ó´Â º¯¼ö¿¡ Çϳª¾¿ ´ëÀÔ½ÃÄÑ ³ª°¡°Ô µË´Ï´Ù. ±×ÈÄ i¶ó´Â º¯¼ö¿¡ Á¤ÀÇµÈ ÆÄÀÏÀÌ ½ÇÇà °¡´ÉÇÏ´Ù¸é(if ÀÇ -x¿É¼Ç) ½ÇÇàÇÏ¸ç ±×·¸Áö ¾ÊÀ¸¸é profile¿¡¼ ÀÐ¾î µé¿©(source ¸í·ÉÀº ½ºÅ©¸³Æ®¸¦ ÇöÀç ½ºÅ©¸³Æ®¿¡ ÇÕÄ¡´Â ±â´ÉÀ» ÇÑ´Ù) 󸮸¦ ÇÕ´Ï´Ù. ¸¶Áö¸· ÁÙÀ» º¸±â ¹Ù¶ø´Ï´Ù. unsetÀ̶ó´Â ¸í·ÉÀÌ ÀÖÁÒ? ÀÌ ¸í·ÉÀº Á¤ÀÇµÈ È¯°æº¯¼ö¸¦ ÇØÁ¦ÇÏ´Â ±â´ÉÀ» Çϴµ¥ ¿©±â¿¡¼´Â i¶ó´Â º¯¼ö¸¦ Á¦°ÅÇÕ´Ï´Ù. ¸¸¾à¿¡ ¿©·¯ºÐµéÀÌ "unset PATH" ¶ó´Â ¸í·ÉÀ» »ç¿ëÇÑ´Ù¸é ¿©·¯ºÐµéÀº ¿ÜºÎ ¸í·ÉÀ» ¼öÇàÇÒ¼ö ¾ø°Ô µÉ °ÍÀÔ´Ï´Ù. ÀÚ ±×·¯¸é À̹ø¿¡´Â ¿©·¯ºÐÇÑÅ× µµ¿òÀÌ µÉ ¸¸ÇÑ ¸î°¡Áö ½© ½ºÅ©¸³Æ®¸¦ ¼Ò°³ ÇÏ°íÀÚ ÇÕ´Ï´Ù. ¾Æ¸¶ ¸¹Àº µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù. ¸ÕÀú Color ls¿¡ ´ëÇÑ šv ½ºÅ©¸³Æ®ÀÔ´Ï´Ù. ¿©·¯ºÐµéÀÌ ½½·¢¿þ¾î¸¦ ¼³Ä¡Çß´Ù¸é ±âº»ÀûÀ¸·Î Ä÷¯ ls¸¦ »ç¿ëÇÏ°í ÀÖÀ» °Ì´Ï´Ù. ±×·¯³ª ·¹µåÇÞ ¸®´ª½º³ª µ¥ºñ¾È ¸®´ª½º´Â ±×·¸Áö ¾ÊÁÒ? ´ÙÀ½°ú ½© ½ºÅ©¸³Æ®¸¦ »ç¿ëÇϸé Ä÷¯ ls¸¦ »ç¿ëÇÒ¼ö ÀÖÀ» °Ì´Ï´Ù. export LS_OPTIONS="--color -F -b -T 0" alias ll='/bin/ls $LS_OPTIONS --format=long' alias ls='/bin/ls $LS_OPTIONS' # set up the color-ls environment variables: eval `dircolors -b` À§ÀÇ ³»¿ëÀ» /etc/profile.d/color-ls.sh·Î ÀúÀåÇÑ´ÙÀ½, »õ·Î¿î ½©À» ¿°Ô µÇ¸é color·Î Ç¥½ÃµÇ´Â ls¸¦ º¼¼ö ÀÖÀ» °Ì´Ï´Ù. ¿©±â¼ »õ·Î¿î ¸í·ÉÀ» º¼¼ö ÀÖ½À´Ï´Ù. ù¹ø°·Î "alias" ´Â °¡»óÀûÀÎ ¸í·É¾î ¸¦ ¸¸µå´Â °ÍÀ¸·Î ls¸í·ÉÀº ÀÌÈÄ¿¡ /bin/ls $LS_OPTIONS·Î ¼öÇàµÇ¾î Áö°Ô µË´Ï´Ù. µÎ¹ø°·Î, "eval `dircolors -b`"´Â Color ls ȯ°æ º¯¼ö¸¦ ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï ´Ù. µÎ ¹ø°·Î ¸®´ª½º¿¡ ÇѱÛÀ» »ç¿ëÇÏ·Á¸é ¾Æ·¡¿Í °°Àº ³»¿ëÀ» ȯ°æº¯¼ö¿¡ Á¤ÀÇ ÇؾßÇÕ´Ï´Ù. µÚ¿¡°¡¼ i18nÀ̶ó´Â °Í¿¡ ´ëÇØ ¾Ë¾Æ º¼ÅÙµ¥ À̶§¿¡ ¾Æ·¡ ³»¿ë ÀÌ È¯°æº¯¼ö¿¡ Á¤ÀǵǾî ÀÖ¾î¾ß Çϰŵç¿ä. export PERL_BADLANG=0 export LANG=ko À§ÀÇ ³»¿ëÀ» /etc/profile.d/korean-basic.sh·Î ÀúÀåÇÑ ´ÙÀ½ »õ·Î¿î ½©À» ¿ °Ô µÇ¸é ȯ°æ º¯¼ö°¡ ¼³Á¤µÇ¾î LANGº¯¼ö¸¦ ÂüÁ¶ÇÏ´Â ÇÁ·Î±×·¥¿¡¼ ÇÑ±Û Ã³ ¸®°¡ °¡´ÉÇØ Áý´Ï´Ù. ¿©±â¼ ù ¹ø°¿¡ »ç¿ëµÈ PERL_BADLANG´Â PerlÀ» »ç¿ëÇÒ¶§¿¡ LANG°¡ 'C'Çü Å°¡ ¾Æ´Ï¸é °æ°í ¸Þ½ÃÁö¸¦ Ãâ·ÂÇϴµ¥ À̸¦ Ãâ·ÂÇÏÁö ¸øÇÏ°Ô ÇÏ´Â ¿É¼ÇÀÔ ´Ï´Ù. ÀÚ ±×·¯¸é ¸¶Áö¸·À¸·Î ½ÇÇà ½ºÅ©¸³Æ®¸¦ Çϳª º¾½Ã´Ù. #!/bin/sh which="" if echo $0 | grep 'navigator' >/dev/null; then which=netscape-navigator elif echo $0 | grep 'communicator' >/dev/null ; then which=netscape-communicator fi if [ -z $which ]; then if rpm -q netscape-communicator >/dev/null 2>&1; then which=netscape-communicator elif rpm -q netscape-navigator >/dev/null 2>&1; then which=netscape-navigator else echo "You don't have netscape installed." >&2 fi fi if ! rpm -q $which >/dev/null 2>&1; then echo "You don't have $which installed." >&2 exit 1 fi I="`rpm -q $which --qf '%{INSTALLPREFIX}\n'`" if [ "$I" = "(none)" ]; then I=/usr fi if [ -f $I/lib/netscape/gnumalloc.glibc.so ]; then export LD_PRELOAD=$I/lib/netscape/gnumalloc.glibc.so fi if [ -x $I/lib/netscape/$which ]; then if [ -d $I/lib/netscape/tclplug ]; then export TCL_PLUGIN_DIR=$I/lib/netscape/tclplug fi export LD_PRELOAD=$I/lib/netscape/gnumalloc.glibc.so if [ -z "$*" ]; then exec $I/lib/netscape/$which /usr/doc/HTML/index.html else exec $I/lib/netscape/$which $* fi fi echo "An error occurred running and $I/lib/netscape/$which." À§ÀÇ ³»¿ëÀ» º¸¸é ¾Ë°ÚÁö¸¸ Netscape¸¦ ½ÇÇàÇϱâ À§ÇÑ ½ºÅ©¸³Æ®ÀÔ´Ï ´Ù. ÀÌ ½ºÅ©¸³Æ®¸¦ ºÐ¼®Çغ¸¸é ¸¹Àº ºÎºÐ¿¡¼ µµ¿òÀ» ¾òÀ»¼ö ÀÖ°Ô µÇ¸®¶ó º¾´Ï´Ù. ¾î·Æ´Ù±¸¿ä? ÂùÂùÈ÷ º¸½Ê½Ã¿À. ±×·¯¸é ¿©±â¼ ÇÊÀÚ°¡ ¸î°¡Áö Áß¿ä ÇÑ È¯°æ º¯¼ö¿¡ ´ëÇؼ¸¸ ¼³¸í µå¸®°Ú½À´Ï´Ù. export LD_PRELOAD=$I/lib/netscape/gnumalloc.glibc.so ÀÌ ºÎºÐÀº µ¿Àû ¶óÀ̺귯¸®¿¡ °ü·ÃµÈ ºÎºÐÀε¥ ¸®´ª½º¿¡¼´Â µ¿Àû ¶óÀ̺귯 ¸®ÀÇ À§Ä¡°¡ /etc/ld.so.conf¿¡ µî·Ï µÇ¾î ÀÖ½À´Ï´Ù. ±×·¯³ª À§ ȯ°æ º¯¼ö ¸¦ »ç¿ëÇÔÀ¸·Î½á /etc/ld.so.conf¿¡ Á¸ÀçÇÏ´Â µ¿Àû ¶óÀ̺귯¸® º¸´Ù ¿ì¼±Àû À¸·Î ó¸®Çϵµ·Ï ÇÏ´Â ±â´ÉÀ» °®°Ô ÇÕ´Ï´Ù. ÀÌ¿Ü¿¡ "exec"¶ó´Â ¸í·ÉÀÌ Àִµ¥ ÀÌ ¸í·ÉÀº ¿ÜºÎ ÇÁ·Î±×·¥À» ¼öÇàÇ϶ó´Â ¶æÀ¸·Î ÀϹÝÀûÀ¸·Î ¼öÇàµÇ´Â ¸í·É°ú´Â Â÷ÀÌ°¡ ÀÖ½À´Ï´Ù. ¸¸¾à¿¡ exec /bin/netscape $* ·Î ¼öÇàÀÌ µÇ¸é /bin/netscapeÀÇ ¼öÇàÈÄ netscape¸¦ Á¾·áÇÏ¸é ´Ù½Ã ½ºÅ©¸³ Æ®·Î µÇµ¹¾Æ ¿ÀÁö ¾Ê°í ¹Ù·Î ÇÁ·Î±×·¥À» Á¾·áÇÏ°Ô µÇ´Âµ¥ ¹Ý´ë·Î /bin/netscape $* ·Î ¼öÇàÀÌ µÇ¸é netscape ¼öÇàÈÄ netscape¸¦ Á¾·áÇÏ¸é ½ÇÇàÇÏ´ø ½ºÅ©¸³Æ®·Î ´Ù½Ã µ¹¾Æ¿Í ´ÙÀ½ ¹®ÀåÀ» °è¼Ó ¼öÇàÇÏ°Ô µË´Ï´Ù. <Âü°í ½ÃÀÛ> ÇÊÀÚ°¡ ¹«¾ùÀ» ¹è¿ï¶§ ¸¶´Ù ´À³¢´Â °ÍÀε¥ Çѹø¿¡ ¸ðµÎ ÀÌÇØÇϱâ´Â Èûµì´Ï´Ù. Ã¥À» ¾²´Â ÇÊÀÚµµ ¸ðµÎ¸¦ ¾Æ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ´ÜÁö ÇÊÀÚ°¡ Ç×»ó ¸»ÇÏ´Â °Í Àº "³, ³»°¡ »ç¿ëÇϴµ¥ ¾î·Á¿òÀÌ ¾øÀ» ¸¸ÅÀº ÇÑ´Ù."¶ó°í ¸»À» ÇÕ´Ï´Ù. ´ÜÁö ¿©·¯ºÐµéÀÌ ÀÌ Ã¥À» ÅëÇؼ ¸®´ª½º¸¦ »ç¿ëÇϴµ¥ ¾î·Æ¿òÀÌ ¾øÀ» ¸¸Å µ½°í ½ÍÀ» »ÓÀÌ´Ù. <Âü°í ³¡> |