13Àå. ½Ã½ºÅÛ°ú °ü¸®ÀÚ¿ë ¸í·É¾î

½Ã½ºÅÛ°ú °ü¸®ÀÚ¿ë ¸í·É¾îÀÇ ÁÁÀº ¿¹´Â /etc/rc.d ¿¡ ÀÖ´Â ½ÃÀÛ, Á¾·á ½ºÅ©¸³Æ®µéÀÔ´Ï´Ù. ÀÌ ¸í·É¾îµéÀº º¸Åë ½Ã½ºÅÛ °ü¸®³ª ÆÄÀϽýºÅÛÀ» ±ä±ÞÇÏ°Ô °íÄ¡·Á°í ÇÒ ¶§ ·çÆ®°¡ »ç¿ëÇÕ´Ï´Ù. ÀÌµé ¸î¸îÀº À߸ø ¾²¸é ½Ã½ºÅÛÀ» ¸Á°¡Æ®¸± ¼ö Àֱ⠶§¹®¿¡ »ç¿ë¿¡ ÁÖÀǸ¦ ¿äÇÕ´Ï´Ù.

»ç¿ëÀÚ¿Í ±×·ì

chown, chgrp

chown ¸í·É¾î´Â ÆÄÀÏÀÇ ¼ÒÀ¯±ÇÀ» ¹Ù²ãÁÝ´Ï´Ù. root°¡ ƯÁ¤ »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÑ ÆÄÀÏÀ» ´Ù¸¥ »ç¿ëÀÚ¿ëÀ¸·Î ¹Ù²Ù·Á°í ÇÒ ¶§ À¯¿ëÇÏ°Ô ¾²ÀÔ´Ï´Ù. ÇÏÁö¸¸, ÀÏ¹Ý »ç¿ëÀÚ´Â ÀÚ½ÅÀÌ ¼ÒÀ¯ÇÑ ÆÄÀÏÁ¶Â÷µµ ¼ÒÀ¯±ÇÀ» ¹Ù²Ü ¼ö ¾ø½À´Ï´Ù. [1]

root# chown bozo *.txt

	      

chgrp ¸í·É¾î´Â ÆÄÀÏÀÇ ±×·ì ¼ÒÀ¯±ÇÀ» ¹Ù²ãÁÝ´Ï´Ù. ÀÌ ¸í·É¾î¸¦ ¾²·Á¸é ±× ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚÀÌ°í ¹Ù²Ù·Á´Â ±×·ìÀÇ ¸â¹ö¿©¾ß ÇÕ´Ï´Ù(ȤÀº rootÀ̰ųª).
chgrp --recursive dunderheads *.data
# $PWD µð·ºÅ丮ÀÇ ¸ðµç ÇÏÀ§ µð·ºÅ丮("recursive"¿¡ ÀÇÇØ)ÀÇ 
# ¸ðµç "*.data" ÆÄÀϵéÀº "dunderheads" ±×·ìÀÌ ±× ¼ÒÀ¯±ÇÀ» °®½À´Ï´Ù.

useradd, userdel

°ü¸®ÀÚ¿ë ¸í·É¾îÀÎ useradd´Â ½Ã½ºÅÛ¿¡ »ç¿ëÀÚ °èÁ¤À» Ãß°¡ÇØ ÁÖ°í ±× »ç¿ëÀÚ¿ëÀ¸·Î ÁöÁ¤µÈ Ȩ µð·ºÅ丮¸¦ ¸¸µé¾î ÁÝ´Ï´Ù. useradd¿Í ½ÖÀ» ÀÌ·ç´Â userdel´Â ½Ã½ºÅÛ¿¡¼­ »ç¿ëÀÚ °èÁ¤À» »èÁ¦ÇØ ÁÖ°í [2] ÇØ´ç ÆÄÀϵ鵵 »èÁ¦ÇØ ÁÝ´Ï´Ù.

Âü°í: adduser ¸í·É¾î´Â useraddÀÇ µ¿ÀǾî·Î¼­, º¸Åë useradd¸¦ °¡¸£Å°´Â ½Éº¼¸¯ ¸µÅ© ÆÄÀÏÀÔ´Ï´Ù.

id

id ¸í·É¾î´Â ÇöÀç »ç¿ëÀÚÀÇ ½ÇÁ¦ ID¿Í À¯È¿ »ç¿ëÀÚ ID, ±×·ì ID¸¦ º¸¿©ÁÝ´Ï´Ù. ³»ºÎ bash º¯¼öÀÎ $UID, $EUID, $GROUPS¿Í ¦À» ÀÌ·ì´Ï´Ù.

bash$ id
uid=501(bozo) gid=501(bozo) groups=501(bozo),22(cdrom),80(cdwriter),81(audio)

bash$ echo $UID
501

¿¹ 9-4 Âü°í.

who

½Ã½ºÅÛ¿¡ ÇöÀç ·Î±×ÀÎÇØ ÀÖ´Â ¸ðµç »ç¿ëÀÚ¸¦ º¸¿©ÁÝ´Ï´Ù.

bash$ who
bozo  tty1     Apr 27 17:45
bozo  pts/0    Apr 27 17:46
bozo  pts/1    Apr 27 17:47
bozo  pts/2    Apr 27 17:49
	      

-mÀ» ÁÖ¸é ¿ÀÁ÷ ÇöÀç »ç¿ëÀÚ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸¸¸À» º¸¿©ÁÝ´Ï´Ù. who am i³ª who The Manó·³ who¿¡ ¾Æ¹« ÀÎÀÚ³ª µÎ °³ ³Ñ°ÜÁÖ¸é who -m À̶ó°í ÇÑ °Í°ú °°½À´Ï´Ù.

bash$ who -m
localhost.localdomain!bozo  pts/2    Apr 27 17:49
	      

whoami´Â who -m °ú ºñ½ÁÇÏÁö¸¸ »ç¿ëÀÚ À̸§¸¸ º¸¿©ÁÝ´Ï´Ù.

bash$ whoami
bozo
	      

w

·Î±×ÀÎ µÇ¾î ÀÖ´Â »ç¿ëÀÚ¿Í ±× »ç¿ëÀÚ¿Í °ü·ÃµÈ ¸ðµç ÇÁ·Î¼¼½º¸¦ º¸¿© ÁÝ´Ï´Ù. ÀÌ´Â whoÀÇ È®Àå ¹öÀüÀε¥, wÀÇ Ãâ·Â¿¡ grepÀ¸·Î ÆÄÀÌÇÁ¸¦ °É¾î¼­ ƯÁ¤ÇÑ »ç¿ëÀÚ³ª ÇÁ·Î¼¼½º¸¦ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

bash$ w | grep startx
bozo  tty1     -                 4:22pm  6:41   4.47s  0.45s  startx
logname

ÇöÀç »ç¿ëÀÚÀÇ ·Î±×ÀÎ À̸§À» /var/run/utmp¿¡¼­ ã¾Æ¼­ º¸¿©ÁÝ´Ï´Ù. À§¿¡¼­ ¼³¸íÇÑ whoami¿Í °ÅÀÇ µ¿ÀÏÇÑ ¸í·É¾îÀÔ´Ï´Ù.

bash$ logname
bozo

bash$ whoami
bozo

±×·¸Áö¸¸...

bash$ su
Password: ......

bash# whoami
root
bash# logname
bozo
su

´Ù¸¥ »ç¿ëÀÚ(substitute user)·Î ÇÁ·Î±×·¥À̳ª ½ºÅ©¸³Æ®¸¦ ½ÇÇà ½Ãŵ´Ï´Ù. rjones¶õ »ç¿ëÀÚ·Î ½©À» »õ·Ó°Ô ½ÃÀÛÇÏ°í ½ÍÀ¸¸é su rjones¶ó°í ÇÏ¸é µË´Ï´Ù. ¿É¼Ç ¾øÀÌ su¸¸ ½ÇÇà½ÃŰ¸é ±âº»ÀûÀ¸·Î root ·Î ¹Þ¾ÆµéÀÔ´Ï´Ù. ¿¹ A-10¸¦ Âü°íÇϼ¼¿ä.

users

·Î±×ÀÎ Çϰí ÀÖ´Â ¸ðµç »ç¿ëÀÚ¸¦ º¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â who -q ¿Í °ÅÀÇ ºñ½ÁÇÑ ¸í·É¾îÀÔ´Ï´Ù.

ac

»ç¿ëÀÚ°¡ ·Î±×ÀÎ ÇØ ÀÖ´ø ½Ã°£À» /var/log/wtmp ¿¡¼­ Àо º¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â GNU °èÁ¤ À¯Æ¿¸®Æ¼(accounting utility) Áß ÇϳªÀÔ´Ï´Ù.

bash$ ac
        total       68.08
last

»ç¿ëÀÚ°¡ ¸¶Áö¸·À¸·Î ·Î±×ÀÎ ÇÑ ½Ã°£À» /var/log/wtmp¿¡¼­ Àо º¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â ¿ÜºÎ¿¡¼­ ·Î±×ÀÎ ÇÑ Á¤º¸µµ º¸¿©ÁÙ ¼ö ÀÖ½À´Ï´Ù.

groups

ÇöÀç »ç¿ëÀÚ°¡ ¼ÓÇØ ÀÖ´Â ±×·ìÀ» º¸¿©ÁÝ´Ï´Ù. ³»ºÎ º¯¼öÀÎ $GROUPS¿¡ ÇØ´çÇÏ´Â ¸í·É¾îÀÌÁö¸¸ ¼ýÀÚ°¡ ¾Æ´Ñ ±×·ì À̸§À¸·Î º¸¿©ÁÝ´Ï´Ù.

bash$ groups
bozita cdrom cdwriter audio xgrp

bash$ echo $GROUPS
501
newgrp

·Î±×¾Æ¿ô ¾øÀÌ »ç¿ëÀÚÀÇ ±×·ì ID¸¦ º¯°æÇϱâ. ÀÌ ¸í·É¾î¸¦ ¾²¸é »õ ±×·ìÀÇ ÆÄÀÏ¿¡ Á¢±ÙÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. »ç¿ëÀÚ´Â º¸Åë µ¿½Ã¿¡ ¿©·¯ ±×·ìÀÇ ¸â¹öÀ̱⠶§¹®¿¡ ÀÌ ¸í·É¾î¸¦ ¾µ ÀÏÀº º°·Î ¾ø½À´Ï´Ù.

Å͹̳Î

tty

ÇöÀç »ç¿ëÀÚÀÇ Å͹̳ΠÀ̸§À» º¸¿©ÁÝ´Ï´Ù. ¼­·Î ´Ù¸¥ ÇÑÅÒ, ¿¢½ºÅÒ À©µµ¿ì´Â ¼­·Î ´Ù¸¥ Å͹̳ηΠÀνĵǴ°Ϳ¡ ÁÖÀÇÇϼ¼¿ä.

bash$ tty
/dev/pts/1
stty

Å͹̳Π¼¼ÆÃÀ» º¸¿©Áְųª º¯°æÇØ ÁÝ´Ï´Ù. ÀÌ º¹ÀâÇÑ ¸í·É¾î´Â ½ºÅ©¸³Æ®¿¡¼­ ¾²¿© Å͹̳Πµ¿ÀÛÀ̳ª Ãâ·ÂÇÏ´Â ¹æ¹ýÀ» Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. info ÆäÀÌÁö¸¦ Âü°íÇϰí, Á¶½ÉÇØ¼­ °øºÎÇϼ¼¿ä.

¿¹ 13-1. Áö¿ò ±ÛÀÚ(erase character) ¼¼ÆÃÇϱâ

#!/bin/bash
# erase.sh: "stty"·Î ÀԷ½ÃÀÇ Áö¿ò ±ÛÀÚ(erase character)¸¦ ¼¼Æ®Çϱâ.

echo -n "À̸§ÀÌ ¹¹¿¡¿ä? "
read name                      # ¾Æ¹« ±ÛÀÚ³ª Ä¡°í Áö¿ì·Á°í ÇØº¸¼¼¿ä.
                               # ¾È µÉ °Ì´Ï´Ù.
echo "À̸§ÀÌ $name ±º¿ä."

stty erase '#'                 # "hashmark" (#) ¸¦ Áö¿ò ±ÛÀÚ·Î ¼¼Æ®.
echo -n "À̸§ÀÌ ¹¹ÁÒ? "
read name                      # ¸¶Áö¸·¿¡ Ä£ ±ÛÀÚ¸¦ # À¸·Î Áö¿öº¸¼¼¿ä.
echo "$name °¡ ´ç½Å À̸§À̱º¿ä."

exit 0

¿¹ 13-2. ºñ¹Ð½º·± ºñ¹Ð¹øÈ£: Å͹̳Π¿¡ÄÚ ²ô±â

#!/bin/bash

echo
echo -n "ºñ¹Ð¹øÈ£¸¦ ³ÖÀ¸¼¼¿ä "
read passwd
echo "ºñ¹Ð¹øÈ£´Â $passwd ÀÔ´Ï´Ù."
echo -n "´©±º°¡°¡ ¾î±ú ³Ê¸Ó·Î ´ç½ÅÀ» º¸°í ÀÖ¾ú´Ù¸é, "
echo "´ç½ÅÀÇ ºñ¹Ð¹øÈ£¸¦ ¾Ë¾Æ³ÂÀ» ¼öµµ ÀÖ½À´Ï´Ù."

echo && echo  # "and list"·Î ¹­ÀÎ ¶óÀÎ ÇÇµå µÎ ÁÙ"

stty -echo    # È­¸é ¿¡ÄÚ¸¦ ²ü´Ï´Ù.

echo -n "ºñ¹Ð¹øÈ£¸¦ ´Ù½Ã ³ÖÀ¸¼¼¿ä "
read passwd
echo
echo "ºñ¹Ð¹øÈ£´Â $passwd ÀÔ´Ï´Ù."
echo

stty echo     # È­¸é ¿¡ÄÚ¸¦ ŵ´Ï´Ù.

exit 0

stty¸¦ âÁ¶ÀûÀ¸·Î ½á¼­ »ç¿ëÀÚ°¡ ENTER¸¦ ¾È ´­·¯µµ ¾î¶² ۸¦ ´­·¶´ÂÁö¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù.

¿¹ 13-3. Ű´©¸§ ¾Ë¾Æ³»±â

#!/bin/bash
# keypress.sh: Ű´©¸§ ¾Ë¾Æ³»±â("hot keyboard").

echo

old_tty_settings=$(stty -g)   # ÇöÀç ¼¼ÆÃÀ» ÀúÀå.
stty -icanon
Keypress=$(head -c1)          # GNU ½Ã½ºÅÛÀÌ ¾Æ´Ï¶ó¸é 
                              # $(dd bs=1 count=1 2> /dev/null)

echo
echo "\""$Keypress"\" ۰¡ ´­·È½À´Ï´Ù."
echo

stty "$old_tty_settings"      # ¿ø·¡ ¼¼ÆÃÀ¸·Î º¹±¸.

# Thanks, Stephane Chazelas.

exit 0

¿¹ 9-3 Âü°í.

tset

Å͹̳Π¼¼ÆÃÀ» º¸¿©Áְųª ÃʱâÈ­ ÇÔ. sttyº¸´Ù ±â´ÉÀÌ ¶³¾îÁý´Ï´Ù.

bash$ tset -r
Terminal type is xterm-xfree86.
Kill is control-U (^U).
Interrupt is control-C (^C).
	      

setserial

½Ã¸®¾ó Æ÷Æ® ¸Å°³º¯¼ö¸¦ ¼¼Æ®Çϰųª º¸¿©ÁÝ´Ï´Ù. ·çÆ®·Î ½ÇÇà½ÃÄÑ¾ß ÇÏ°í º¸ÅëÀº ½Ã½ºÅÛ ¼Â¾÷ ½ºÅ©¸³Æ®¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

# /etc/pcmcia/serial ½ºÅ©¸³Æ®¿¡¼­ ¹ßÃé:

IRQ=`setserial /dev/$DEVICE | sed -e 's/.*IRQ: //'`
setserial /dev/$DEVICE irq 0 ; setserial /dev/$DEVICE irq $IRQ

getty, agetty

Å͹̳οë ÃʱâÈ­ ÇÁ·Î¼¼½º°¡ getty³ª agetty¸¦ ½á¼­ »ç¿ëÀÚÀÇ ·Î±×ÀÎÀ» ¼³Á¤ÇØ ÁÝ´Ï´Ù. ÀÌ ¸í·É¾îµéÀº »ç¿ëÀÚÀÇ ½© ½ºÅ©¸³Æ®¿¡¼­ ¾²ÀÌÁö ¾Ê±â ¶§¹®¿¡ ½© ½ºÅ©¸³Æ®¿¡¼­ ÀÌ·± ±â´ÉÀ» ¾²·Á¸é stty¸¦ ¾²±â ¹Ù¶ø´Ï´Ù.

mesg

ÇöÀç »ç¿ëÀÚÀÇ Å͹̳ο¡ ´ëÇÑ ¾²±â Á¢±ÙÀ» Á¦¾îÇÕ´Ï´Ù. Á¢±ÙÀ» ¸ø ÇÏ°Ô ¼³Á¤µÇ¸é ³×Æ®¿öÅ©¿¡ ÀÖ´Â ´Ù¸¥ »ç¿ëÀÚ°¡ ÇöÀç Å͹̳ηΠwrite¸¦ ÇÏÁö ¸øÇÏ°Ô ÇØ ÁÝ´Ï´Ù.

ÀÛÀº Á¤º¸: ¿©·¯ºÐÀÌ ÅØ½ºÆ® ÆÄÀÏÀ» ÆíÁýÇϰí Àִµ¥ °©ÀÚ±â ÇÇÀÚ ÁÖ¹® ¸Þ¼¼Áö°¡ ¶ß¸é ¾ÆÁÖ Â¥Áõ³¯ °ÍÀÔ´Ï´Ù. ´ÙÁß »ç¿ëÀÚ ³×Æ®¿öÅ©¿¡¼­´Â, ¹æÇعޱ⠽ÈÀ» ¶§ ¿©·¯ºÐÀÇ Å͹̳ο¡ ´ëÇÑ ¾²±â Á¢±ÙÀ» ¸·°í ½ÍÀº °æ¿ì°¡ »ý±æ°Ì´Ï´Ù.

wall

"write all"ÀÇ ¾Õ±ÛÀÚ¸¦ µû¼­ wallÀÌ µÈ ÀÌ ¸í·É¾î´Â ÇöÀç ·Î±×ÀÎ µÇ¾î ÀÖ´Â ¸ðµç »ç¿ëÀÚ¿¡°Ô ¸Þ¼¼Áö¸¦ ³¯¸³´Ï´Ù. ¿ø·¡´Â À¯¿ëÇÑ ½Ã½ºÅÛ °ü¸®ÀÚ¿ë µµ±¸ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ½Ã½ºÅÛ¿¡ ¹®Á¦°¡ »ý°Ü¼­ Àá±ñ µ¿¾È ´Ù¿î ½ÃÄÑ¾ß ÇÒ Çʿ䰡 »ý°åÀ» ¶§ ¸ðµç »ç¿ëÀڵ鿡°Ô °æ°í¸¦ ÇÒ ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù(¿¹ 17-2 Âü°í).

bash$ wall System going down for maintenance in 5 minutes!
Broadcast message from bozo (pts/1) Sun Jul  8 13:53:27 2001...

System going down for maintenance in 5 minutes!
	      

Âü°í: mesg·Î ¾²±â°¡ ¸·ÇôÀÖ´Â Å͹̳ÎÀº wall ¸Þ¼¼Áö¸¦ ¹ÞÀ» ¼ö ¾ø½À´Ï´Ù.

dmesg

½Ã½ºÅÛ ºÎÆÃ ¸Þ¼¼Áö¸¦ Ç¥ÁØÃâ·ÂÀ¸·Î º¸¿© ÁÝ´Ï´Ù. µð¹ö±ë ÇÒ ¶§, ¾î¶² µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ¼³Ä¡µÆ´ÂÁö È®ÀÎÇÒ ¶§, »ç¿ëÁßÀÎ ½Ã½ºÅÛ ÀÎÅÍ·´Æ®°¡ ¹«¾ùÀÎÁö È®ÀÎÇÒ ¶§ ÆíÇÏ°Ô ¾µ ¼ö ÀÖ½À´Ï´Ù. ½ºÅ©¸³Æ®¿¡¼­ dmesgÀÇ Ãâ·ÂÀ» grepÀ̳ª sed, awk·Î ÆÄ½ÌÇØ¼­ ¾µ ¼ö ÀÖ½À´Ï´Ù.

Á¤º¸¹× Åë°è

uname

½Ã½ºÅÛ »ç¾ç(OS, Ä¿³Î ¹öÀüµî)À» Ç¥ÁØÃâ·ÂÀ¸·Î º¸¿©ÁÝ´Ï´Ù. -a ¿É¼ÇÀ» ÁÖ¸é ½Ã½ºÅÛ Á¤º¸¸¦ ¾ÆÁÖ ÀÚ¼¼ÇÏ°Ô º¸¿©ÁÖ°í(¿¹ 12-4 Âü°í), -s ¿É¼ÇÀ» ÁÖ¸é OS Á¾·ù¸¸ º¸¿©ÁÝ´Ï´Ù.

bash$ uname -a
Linux localhost.localdomain 2.2.15-2.5.0 #1 Sat Feb 5 00:13:43 EST 2000 i686 unknown

bash$ uname -s
Linux
arch

½Ã½ºÅÛ ¾ÆÅ°ÅØÃĸ¦ º¸¿©ÁÝ´Ï´Ù. uname -m °ú µ¿ÀÏÇÑ ¸í·É¾îÀÔ´Ï´Ù. ¿¹ 10-24¸¦ Âü°íÇϼ¼¿ä.

bash$ arch
i686

bash$ uname -m
i686
lastcomm

/var/account/pacct ÆÄÀÏ¿¡ ÀúÀåµÅ ÀÖ´Â ÀÌÀü ¸í·É¾îµé¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÝ´Ï´Ù. ¿É¼ÇÀ¸·Î ¸í·É¾î¿Í »ç¿ëÀÚ À̸§À» ÁöÁ¤ÇØ ÁÙ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸í·É¾î´Â GNU °èÁ¤ À¯Æ¿¸®Æ¼(accounting utility)ÁßÀÇ ÇϳªÀÔ´Ï´Ù.

lastlog

½Ã½ºÅÛÀÇ ¸ðµç »ç¿ëÀÚ°¡ ¸¶Áö¸·À¸·Î ·Î±×ÀÎÇÑ ½Ã°£À» º¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â /var/log/lastlog ÆÄÀÏÀ» ÂüÁ¶ÇÕ´Ï´Ù.

bash$ lastlog
root          tty1                      Fri Dec  7 18:43:21 -0700 2001
bin                                     **Never logged in**
daemon                                  **Never logged in**
...
bozo          tty1                      Sat Dec  8 21:14:29 -0700 2001



bash$ lastlog | grep root
root          tty1                      Fri Dec  7 18:43:21 -0700 2001
             

°æ°í

/var/log/lastlog ÆÄÀÏ¿¡ ÀÐ±â ÆÛ¹Ì¼ÇÀÌ ¾ø´Â »ç¿ëÀÚ°¡ ÀÌ ¸í·É¾î¸¦ ½ÇÇà½ÃŰ¸é ½ÇÆÐÇÕ´Ï´Ù.

lsof

ÇöÀç ¿­·Á ÀÖ´Â ÆÄÀϵéÀ» º¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â ÇöÀç ¿­·Á ÀÖ´Â ¸ðµç ÆÄÀϵ鿡 ´ëÇÑ ÀÚ¼¼ÇÑ Ç¥¿Í °¢°¢ÀÇ ÆÄÀÏ¿¡ ´ëÇÑ ¼ÒÀ¯ÀÚ, Å©±â, °ü·Ã ÇÁ·Î¼¼½ºµîÀÇ Á¤º¸¸¦ º¸¿© ÁÝ´Ï´Ù. ´ç¿¬È÷, lsofÀÇ Ãâ·ÂÀº ÆÄÀÌÇÁ¸¦ ÅëÇØ grep³ª awk·Î ³Ñ°Ü¼­ ÆÄ½ÌÇØ¼­ ºÐ¼®ÇÒ ¼ö ÀÖ½À´Ï´Ù.

bash$ lsof
COMMAND    PID    USER   FD   TYPE     DEVICE    SIZE     NODE NAME
init         1    root  mem    REG        3,5   30748    30303 /sbin/init
init         1    root  mem    REG        3,5   73120     8069 /lib/ld-2.1.3.so
init         1    root  mem    REG        3,5  931668     8075 /lib/libc-2.1.3.so
cardmgr    213    root  mem    REG        3,5   36956    30357 /sbin/cardmgr
...
	      

strace

½Ã½ºÅÛ Äݰú ½Ã±×³ÎÀ» ÃßÀûÇØ¼­ Áø´ÜÇÏ°í µð¹ö±ëÇØ ÁÖ´Â µµ±¸ÀÔ´Ï´Ù. °¡Àå °£´ÜÇÏ°Ô ½ÇÇà½ÃŰ´Â ¹æ¹ýÀº strace COMMAND¶ó°í Ä¡´Â °ÍÀÔ´Ï´Ù.

bash$ strace df
execve("/bin/df", ["df"], [/* 45 vars */]) = 0
 uname({sys="Linux", node="bozo.localdomain", ...}) = 0
 brk(0)                                  = 0x804f5e4
 ...
	    

ÀÌ ¸í·É¾î´Â ¸®´ª½º¿¡¼­ÀÇ truss ÀÔ´Ï´Ù.

free

¸Þ¸ð¸®¿Í ij½¬ »ç¿ë·®À» ÅÇÀÌ µé¾î°£ ÇüÅ·Πº¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾îÀÇ Ãâ·ÂÀº grepÀ̳ª, awk, PerlÀ» ½á¼­ ÆÄ½ÌÇϱ⿡ ¾Ë¸ÂÀº ÇüÅÂÀÔ´Ï´Ù. procinfo ¸í·É¾î´Â free°¡ º¸¿©ÁÖ´Â Á¤º¸ À̿ܿ¡ ´õ ¸¹Àº Á¤º¸µµ º¸¿©ÁÝ´Ï´Ù.

bash$ free
                total       used       free     shared    buffers     cached
   Mem:         30504      28624       1880      15820       1608       16376
   -/+ buffers/cache:      10640      19864
   Swap:        68540       3128      65412

»ç¿ëÇÏÁö ¾Ê´Â ·¥ ¿ë·®À» º¸·Á¸é:

bash$ free | grep Mem | awk '{ print $4 }'
1880
procinfo

/proc °¡»ó ÆÄÀϽýºÅÛ¿¡¼­ ¿©·¯ Á¤º¸¿Í Åë°è¸¦ »Ì¾Æ³»¼­ ±¤¹üÀ§Çϰí ÀÚ¼¼ÇÏ°Ô º¸¿© ÁÝ´Ï´Ù.

bash$ procinfo | grep Bootup
Bootup: Wed Mar 21 15:15:50 2001    Load average: 0.04 0.21 0.34 3/47 6829
lsdev

¼³Ä¡µÈ Çϵå¿þ¾î µð¹ÙÀ̽ºÀÇ ¸ñ·ÏÀ» º¸¿©ÁÝ´Ï´Ù.

bash$ lsdev
Device            DMA   IRQ  I/O Ports
------------------------------------------------
cascade             4     2 
dma                          0080-008f
dma1                         0000-001f
dma2                         00c0-00df
fpu                          00f0-00ff
ide0                     14  01f0-01f7 03f6-03f6
...
	      

du

µð½ºÅ©ÀÇ ÆÄÀÏ »ç¿ë·®À» Àç±ÍÀûÀ¸·Î º¸¿©ÁÝ´Ï´Ù. Ưº°È÷ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÇöÀç µð·ºÅ丮¿¡ ´ëÇØ¼­ µ¿ÀÛÇÕ´Ï´Ù.

bash$ du -ach
1.0k    ./wi.sh
1.0k    ./tst.sh
1.0k    ./random.file
6.0k    .
6.0k    total
df

ÆÄÀϽýºÅÛ »ç¿ë·®À» ÅÇÀÌ µé¾î°£ ÇüÅ·Πº¸¿© ÁÝ´Ï´Ù.

bash$ df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hda5               273262     92607    166547  36% /
/dev/hda8               222525    123951     87085  59% /home
/dev/hda7              1408796   1075744    261488  80% /usr
stat

ÁÖ¾îÁø ÆÄÀÏ(µð·ºÅ丮³ª µð¹ÙÀ̽º ÆÄÀϵµ)¿¡ ´ëÇØ¼­ ÀÚ¼¼ÇÑ Åë°è(statistics)¸¦ ¾Ë·ÁÁÝ´Ï´Ù.

bash$ stat test.cru
  File: "test.cru"
  Size: 49970        Allocated Blocks: 100          Filetype: Regular File
  Mode: (0664/-rw-rw-r--)         Uid: (  501/ bozo)  Gid: (  501/ bozo)
Device:  3,8   Inode: 18185     Links: 1    
Access: Sat Jun  2 16:40:24 2001
Modify: Sat Jun  2 16:40:24 2001
Change: Sat Jun  2 16:40:24 2001
	      

Á¸ÀçÇÏÁö ¾Ê´Â ÆÄÀÏ¿¡ ´ëÇØ¼­ statÀ» ½ÇÇà½ÃŰ¸é ¿¡·¯ ¸Þ¼¼Áö¸¦ ³À´Ï´Ù.

bash$ stat nonexistent-file
nonexistent-file: No such file or directory
	      

vmstat

°¡»ó ¸Þ¸ð¸®(virtual memory) Åë°è(statistics)¸¦ º¸¿©ÁÜ.

bash$ vmstat
   procs                      memory    swap          io system         cpu
r  b  w   swpd   free   buff  cache  si  so    bi    bo   in    cs  us  sy id
0  0  0      0  11040   2636  38952   0   0    33     7  271    88   8   3 89
	    

netstat

¶ó¿ìÆÃ Å×À̺íÀ̳ª Ȱ¼ºÈ­µÇ¾î ÀÖ´Â ³×Æ®¿öÅ© ¿¬°á°°Àº ³×Æ®¿öÅ© Åë°è¿Í Á¤º¸¸¦ º¸¿© ÁÝ´Ï´Ù. ÀÌ À¯Æ¿¸®Æ¼´Â /proc/net(28Àå)¿¡¼­ Á¤º¸¸¦ ¾ò¾î ¿É´Ï´Ù. ¿¹ 28-2À» Âü°íÇϼ¼¿ä.

uptime

½Ã½ºÅÛÀÌ ¾ó¸¶³ª ¿À·§µ¿¾È µ¹°í ÀÖ¾ú´ÂÁö °ü·Ã Åë°è¿Í ÇÔ²² º¸¿©ÁÝ´Ï´Ù.

bash$ uptime
10:28pm  up  1:57,  3 users,  load average: 0.17, 0.34, 0.27
hostname

½Ã½ºÅÛÀÇ È£½ºÆ®¸íÀ» º¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â /etc/rc.d ¿¡ µé¾î ÀÖ´Â ¼Â¾÷ ½ºÅ©¸³Æ®¿¡¼­ È£½ºÆ®¸íÀ» ¼³Á¤ÇØ ÁÝ´Ï´Ù(/etc/rc.d/rc.sysinitÀ̳ª ºñ½ÁÇÑ ½ºÅ©¸³Æ®). uname -n°ú µ¿ÀÏÇÑ ¸í·É¾îÀÌ°í ³»ºÎ º¯¼öÀÎ $HOSTNAME°ú ¿¬°üÀÌ ÀÖ½À´Ï´Ù.

bash$ hostname
localhost.localdomain

bash$ echo $HOSTNAME
localhost.localdomain
hostid

È£½ºÆ® ¸Ó½Å¿¡ ´ëÇÑ 32ºñÆ® 16Áø¼ö ±¸ºÐÀÚ¸¦ ¿¡ÄÚÇØ ÁÝ´Ï´Ù.

bash$ hostid
7f0100

Âü°í: ÀÌ ¸í·É¾î´Â ƯÁ¤ ½Ã½ºÅÛ¿¡ ´ëÇØ "À¯ÀÏÇÑ"(unique) ½Ã¸®¾ó ¼ýÀÚ¸¦ ±¸ÇØÁÝ´Ï´Ù. ¸î¸î »ó¾÷¿ë Á¦Ç°ÀÇ µî·Ï °úÁ¤¿¡¼­ ÀÌ ¼ýÀÚ¸¦ ÀÌ¿ëÇØ »ç¿ëÀÚ ¶óÀ̼¾½º¸¦ ¸¸µé¾î ³À´Ï´Ù. ÇÏÁö¸¸ ºÒÇàÇϰԵµ hostid´Â ¿ÀÁ÷ ³×Æ®¿öÅ© ÁÖ¼Ò¸¦ µÎ ¹ÙÀÌÆ® ´ÜÀ§·Î µÚÁý¾î 16Áø¼ö·Î ¸®ÅÏÇØ ÁÝ´Ï´Ù.

³×Æ®¿öÅ©¿¡ ¹°¸®Áö ¾ÊÀº ¸®´ª½º ¸Ó½ÅÀÇ ÀüÇüÀûÀÎ ³×Æ®¿öÅ© ÁÖ¼Ò´Â /etc/hosts¿¡¼­ ¾Ë¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù.

bash$ cat /etc/hosts
127.0.0.1               localhost.localdomain localhost

°ø±³·Ó°Ôµµ 127.0.0.1À» µÎ ¹ÙÀÌÆ® ´ÜÀ§·Î µÚÁýÀ¸¸é 0.127.1.0ÀÌ µÇ°í À̸¦ 16Áø¼ö·Î º¯È¯Çϸé 007f0100ÀÌ µÇ´Âµ¥ ÀÌ´Â À§¿¡¼­ »ìÆìº» hostid°¡ ¸®ÅÏÇÏ´Â °ª°ú Á¤È®È÷ ÀÏÄ¡ÇÕ´Ï´Ù. °á±¹ µ¿ÀÏÇÑ hostid¸¦ °®´Â ¸®´ª½º ¸Ó½ÅÀÌ ¼ö ¹é¸¸ °³°¡ Á¸ÀçÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù.

½Ã½ºÅÛ ·Î±×

logger

»ç¿ëÀÚ°¡ ¸¸µé¾î³½ ¸Þ¼¼Áö¸¦ ½Ã½ºÅÛ ·Î±×(/var/log/messages)¿¡ Ãß°¡ ½Ãŵ´Ï´Ù. ÀÌ ¸í·É¾î´Â ÀÏ¹Ý »ç¿ëÀÚµµ ¾µ ¼ö ÀÖ½À´Ï´Ù.
logger Experiencing instability in network connection at 23:10, 05/21.
# ÀÚ, ÀÌÁ¦ 'tail /var/log/messages' ¶ó°í ÇØ º¸¼¼¿ä.

½ºÅ©¸³Æ®¿¡ logger ¸í·É¾î¸¦ ³Ö¾î¼­ µð¹ö±ë Á¤º¸¸¦ /var/log/messages¿¡ ¾µ ¼ö ÀÖ½À´Ï´Ù.
logger -t $0 -i Logging at line "$LINENO".
# "-t" ¿É¼ÇÀº logger ¿£Æ®¸®¿ë ű׸¦ ÁöÁ¤ÇÕ´Ï´Ù.
# "-i" ¿É¼ÇÀº ÇÁ·Î¼¼½º ID¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

# tail /var/log/message
# ...
# Jul  7 20:48:58 localhost ./test.sh[1712]: Logging at line 3.

logrotate

ÀÌ À¯Æ¿¸®Æ¼´Â ½Ã½ºÅÛ ·Î±× ÆÄÀϵéÀ» Àû´çÇÏ°Ô ·ÎÅ×ÀÌÆ® ½Ã۰í, ¾ÐÃàÇϰí, Áö¿ì°í, ¸ÞÀÏÀ» º¸³»´Â ÀϵéÀ» ó¸®ÇØ ÁÝ´Ï´Ù. º¸Åë crondÀº logrotate¸¦ °¡Àå ±âº»ÀûÀÎ ÇÏ·ç Àϰú·Î »ï½À´Ï´Ù.

/etc/logrotate.conf¿¡ Àû´çÇÑ ³»¿ëÀ» Àû¾îÁÖ¸é ½Ã½ºÅÛ Àüü ·Î±×»Ó¸¸ ¾Æ´Ï¶ó °³ÀÎ¿ë ·Î±× ÆÄÀÏÀ» °ü¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÛ¾÷ Á¦¾î

ps

ÇÁ·Î¼¼½º Åë°è(Process Statistics): ÇöÀç ½ÇÇàÁßÀÎ ÇÁ·Î¼¼½ºµéÀ» »ç¿ëÀÚ¿Í PID(ÇÁ·Î¼¼½º ¾ÆÀ̵ð)¿¡ ÀÇÇØ¼­ º¸¿©ÁÜ. º¸ÅëÀº ax ¿É¼ÇÀ» Á༭ ºÎ¸£°í, grepÀ̳ª sed·Î ÆÄÀÌÇÁ¸¦ °É¾î¼­ ƯÁ¤ ÇÁ·Î¼¼½º¸¦ ã½À´Ï´Ù(¿¹ 11-8¿Í ¿¹ 28-1 Âü°í).

bash$  ps ax | grep sendmail
295 ?	   S	  0:00 sendmail: accepting connections on port 25
pstree

ÇöÀç ½ÇÇàÁßÀÎ ÇÁ·Î¼¼½º¸¦ "³ª¹«"(tree) ÇüÅ·Πº¸¿© ÁÝ´Ï´Ù. -p ¿É¼ÇÀ» ÁÖ¸é ÇÁ·Î¼¼½º À̸§»Ó¸¸ ¾Æ´Ï¶ó PID±îÁö º¸¿© ÁÝ´Ï´Ù.

top

cpu¸¦ ÁýÁßÀûÀ¸·Î »ç¿ëÇÏ´Â ÇÁ·Î¼¼½º¸¦ Áß½ÉÀ¸·Î ÃֽŠÁ¤º¸¸¦ °è¼Ó º¸¿©ÁÝ´Ï´Ù. -b ¿É¼ÇÀº °á°ú¸¦ ÅØ½ºÆ® ¸ðµå·Î º¸¿©Áֱ⠶§¹®¿¡ ÆÄ½ÌÀ» Çϰųª ½ºÅ©¸³Æ®¿¡¼­ Á¢±ÙÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

bash$ top -b
  8:30pm  up 3 min,  3 users,  load average: 0.49, 0.32, 0.13
45 processes: 44 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: 13.6% user,  7.3% system,  0.0% nice, 78.9% idle
Mem:    78396K av,   65468K used,   12928K free,       0K shrd,    2352K buff
Swap:  157208K av,       0K used,  157208K free                   37244K cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
  848 bozo      17   0   996  996   800 R     5.6  1.2   0:00 top
    1 root       8   0   512  512   444 S     0.0  0.6   0:04 init
    2 root       9   0     0    0     0 SW    0.0  0.0   0:00 keventd
  ...  
	      

nice

¹é±×¶ó¿îµå ÀÛ¾÷ÀÇ ¿ì¼±¼øÀ§¸¦ ¹Ù²ãÁÝ´Ï´Ù. ¿ì¼±¼øÀ§´Â 19(Á¦ÀÏ ³·À½)¿¡¼­ -20(Á¦ÀÏ ³ôÀ½)±îÁö Àε¥, ¿ÀÁ÷ root¸¸ÀÌ À½¼ö(³ôÀº) ¿ì¼±¼øÀ§¸¦ ÁÙ ¼ö ÀÖ½À´Ï´Ù. °ü·Ã ¸í·É¾î·Î´Â renice, snice, skillÀÌ ÀÖ½À´Ï´Ù.

nohup

»ç¿ëÀÚ°¡ ·Î±× ¾Æ¿ôÀ» ÇÏ´õ¶ó°í ¸í·É¾î°¡ °è¼Ó µ¹°Ô ÇØ ÁÝ´Ï´Ù. ¸í·É¾î¿¡ &¸¦ ºÙ¿© ½ÇÇàÇÏÁö ¾ÊÀ¸¸é Æ÷±×¶ó¿îµå·Î ½ÇÇàÀÌ µÉ °ÍÀÔ´Ï´Ù. nohupÀ» ½ºÅ©¸³Æ®¿¡¼­ ¾µ ¶§´Â, °í¾Æ ÇÁ·Î¼¼½º³ª Á»ºñ ÇÁ·Î¼¼½º°¡ »ý±âÁö ¾Êµµ·Ï wait°ú °°ÀÌ ½á¾ß ÇÕ´Ï´Ù.

pidof

½ÇÇàÁßÀÎ ÀÛ¾÷ÀÇ ÇÁ·Î¼¼½º ID(pid)¸¦ ½Äº°ÇØ ÁÝ´Ï´Ù. killÀ̳ª renice°°Àº ÀÛ¾÷ Á¦¾î ¸í·É¾îµéÀº ÇÁ·Î¼¼½º À̸§ÀÌ ¾Æ´Ï¶ó pid¿¡ ´ëÇØ µ¿ÀÛÇϱ⠶§¹®¿¡ Á¾Á¾ pid·Î ±¸ºÐÇÒ Çʿ䰡 »ý±é´Ï´Ù. pidof ¸í·É¾î´Â ³»ºÎ º¯¼öÀÎ $PPID¿Í °ÅÀÇ ½ÖÀ» ÀÌ·ì´Ï´Ù.

bash$ pidof xclock
880
	      

¿¹ 13-4. pidof ·Î ÇÁ·Î¼¼½º¸¦ Á×À̱â

#!/bin/bash
# kill-process.sh

NOPROCESS=2

process=xxxyyyzzz  # Á¸ÀçÇÏÁö ¾Ê´Â ÇÁ·Î¼¼½º¸¦ °¡Áö°í,
# ±×³É µ¥¸ð¿ëÀÓ...
# ... ½ÇÁ¦·Î µ¹°í ÀÖ´Â ¾î¶² ÇÁ·Î¼¼½ºµµ Á×ÀÌ·Á°í ÇÏ´Â°Ô ¾Æ´Ï´Ï±î.
#
#  ÇÏÁö¸¸, ¿¹¸¦ µé¾î ÀÎÅͳݿ¡¼­ ·Î±×¿ÀÇÁÇÏ°í ½Í´Ù¸é 
#+      process=pppd
#+ µË´Ï´Ù.

t=`pidof $process`       # $processÀÇ pid(ÇÁ·Î¼¼½º ID)¸¦ ã°í,
# 'kill'Àº ÇÁ·Î±×·¥ À̸§ÀÌ ¾Æ´Ï¶ó pid¸¦ ¾²±â ¶§¹®¿¡

if [ -z "$t" ]           # ÇØ´ç ÇÁ·Î¼¼½º°¡ ¾ø´Ù¸é 'pidof'´Â ³ÎÀ» ¸®ÅÏÇÔ.
then
  echo "$process ´Â ÇöÀç ½ÇÇàÁßÀÌ ¾Æ´Ï¹Ç·Î ±×³É Á¾·áÇÕ´Ï´Ù."
  exit $NOPROCESS
fi  

kill $t                  # Àß Á×Áö ¾Ê´Â ÇÁ·Î¼¼½º¶ó¸é 'kill -9'¶ó°í ÇØ¾ß ÇÒÁöµµ ¸ð¸¨´Ï´Ù.

# Á×Áö ¾Ê°Ô µÅ ÀÖ´Â ÇÁ·Î¼¼½ºÀϼöµµ Àֱ⠶§¹®¿¡
# ´Ù½Ã ÇÑ ¹ø " t=`pidof $process` " ·Î È®ÀÎÇØ º¼ Çʿ䰡 ÀÖ½À´Ï´Ù.


# À§ Àüü ½ºÅ©¸³Æ®´Â 
#    kill $(pidof -x process_name)
# À̶ó°í ÇÒ ¼öµµ ÀÖ°ÚÀ¸³ª ±×·¯¸é ±³À°ÀûÀÌÁö´Â ¾ÊÀº°Í °°±º¿ä.

exit 0
fuser

¾î¶² ÆÄÀÏÀ̳ª, ÆÄÀÏ ÁýÇÕ, µð·ºÅ丮¿¡ Á¢±ÙÇϰí ÀÖ´Â ÇÁ·Î¼¼½º¸¦ PID·Î ½Äº°ÇØ ÁÝ´Ï´Ù. -k ¿É¼ÇÀ» ¾²¸é ÇØ´ç ÇÁ·Î¼¼½º¸¦ Á×ÀÏ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸í·É¾î´Â ½Ã½ºÅÛ º¸¾È Â÷¿ø¿¡¼­ ¾ÆÁÖ Èï¹Ì·Î¿î ±¸ÇöÀε¥ ÁÖ·Î ½ºÅ©¸³Æ®¿¡¼­ ¾²¿© ½Ã½ºÅÛ ¼­ºñ½º¿¡ ´ëÇØ Çã°¡ ¹ÞÁö ¾ÊÀº »ç¿ëÀÚÀÇ Á¢±ÙÀ» ¸·´Â ¿ëµµ·Î ¾²ÀÔ´Ï´Ù.

crond

½Ã½ºÅÛ °ü¸®¿ë ½ºÄÉÁì·¯ ÇÁ·Î±×·¥À¸·Î¼­, ½Ã½ºÅÛ ·Î±× ÆÄÀÏÀ» Á¤¸®Çϰí Áö¿î´Ù°Å³ª slocate µ¥ÀÌŸ º£À̽º¸¦ ¾÷µ¥ÀÌÆ® ÇÏ´Â µîÀÇ ÀÏÀ» ÇØ ÁÝ´Ï´Ù. atÀÇ ·çÆ® »ç¿ëÀÚ ¹öÀü¿ë ¸í·É¾îÀÔ´Ï´Ù(¹°·Ð, °¢ »ç¿ëÀÚ´Â crontab ¸í·É¾î¸¦ ½á¼­ ÀڽŸ¸ÀÇ crontab ÆÄÀÏÀ» °¡Áú¼öµµ ÀÖ½À´Ï´Ù). µ¥¸óÀ¸·Î µ¹¸é¼­ /etc/crontabÀÇ ³»¿ëµéÀ» ½ºÄÉÁì¿¡ µû¶ó ½ÇÇà½ÃÄÑ ÁÝ´Ï´Ù.

ÇÁ·Î¼¼½º Á¦¾î¹× ºÎÆÃ

init

init ¸í·É¾î´Â ¸ðµç ÇÁ·Î¼¼½ºÀÇ ºÎ¸ð ÇÁ·Î¼¼½º·Î¼­, ½Ã½ºÅÛ ºÎÆÃ °úÁ¤ÀÇ Á¦ÀÏ ¸¶Áö¸·¿¡ ºÒ¸®¸é¼­ /etc/inittabÀ» Àо ½Ã½ºÅÛÀÇ ·±·¹º§À» °áÁ¤ÇÕ´Ï´Ù. ¿ÀÁ÷ ·çÆ®¸¸ÀÌ º°¸íÀÎ telinitÀ¸·Î ºÎ¸¦ ¼ö ÀÖ½À´Ï´Ù.

telinit

init¸¦ °¡¸£Å°´Â ½Éº¼¸¯¸µÅ©·Î¼­, ½Ã½ºÅÛ ·±·¹º§À» ¹Ù²Ü ¶§ ¾²´Âµ¥ º¸ÅëÀº ½Ã½ºÅÛ °ü¸®³ª ±ä±ÞÇÏ°Ô ÆÄÀϽýºÅÛÀ» ¼ö¸®ÇØ¾ß ÇÒ ¶§ ¾¹´Ï´Ù. ¿ÀÁ÷ ·çÆ®¸¸ ÀÌ ¸í·É¾î¸¦ ¾µ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸í·É¾î´Â ¾ÆÁÖ À§ÇèÇϱ⠶§¹®¿¡ ¾²±â Àü¿¡ ÀÌ ¸í·É¾î¸¦ Àß ÀÌÇØÇϰí ÀÖ¾î¾ß ÇÕ´Ï´Ù!

runlevel

ÇöÀç¿Í ¹Ù·Î ÀüÀÇ ·±·¹º§À», ½Ã½ºÅÛÀÌ Á¤Áö »óÅÂÀÎÁö(·±·¹º§ 0), ´ÜÀÏ »ç¿ëÀÚ ¸ðµåÀÎÁö(1), ´ÙÁß »ç¿ëÀÚ ¸ðµåÀÎÁö(2³ª 3), X À©µµ¿ì ¸ðµåÀÎÁö(5), ¸®ºÎÆÃ ÁßÀÎÁö(6)µîÀ¸·Î º¸¿© ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â /var/run/utmp ÆÄÀÏÀ» ÅëÇØ Á¤º¸¸¦ ¾ò¾î ¿É´Ï´Ù.

halt, shutdown, reboot

º¸Åë ½Ã½ºÅÛ Àü¿øÀ» ²ô±â Àü¿¡ ½Ã½ºÅÛÀ» Á¤Áö½ÃŰ´Â ¸í·É¾îµé.

³×Æ®¿öÅ©

ifconfig

³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º ¼³Á¤¹× Æ©´× À¯Æ¿¸®Æ¼. ÀÌ ¸í·É¾î´Â ºÎÆÃ½Ã ÀÎÅÍÆäÀ̽º¸¦ ¼³Á¤ÇÒ ¶§³ª ¸®ºÎÆÃ¶§ ÀÎÅÍÆäÀ̽º¸¦ ³»¸®±â À§ÇØ ¾²ÀÔ´Ï´Ù.
# /etc/rc.d/init.d/network ÀÇ ÀϺκÐ

# ...

# ³×Æ®¿öÅ·ÀÌ °¡´ÉÇÑÁö È®ÀÎ.
[ ${NETWORKING} = "no" ] && exit 0

[ -x /sbin/ifconfig ] || exit 0

# ...

for i in $interfaces ; do
  if ifconfig $i 2>/dev/null | grep -q "UP" >/dev/null 2>&1 ; then
    action "Shutting down interface $i: " ./ifdown $i boot
  fi
# "grep"ÀÇ GNU Àü¿ëÀÎ "-q" ¿É¼ÇÀº "quiet"¸¦ ¶æÇϰí, ¾î¶² Ãâ·Âµµ ÇÏÁö ¾Ê°Ô ÇÕ´Ï´Ù.
# µû¶ó¼­ Ãâ·ÂÀ» /dev/null ·Î ÀçÁöÇâ ÇÏ´Â °ÍÀÌ ²À ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù.

# ...

echo "ÇöÀç µ¿ÀÛÁßÀÎ µð¹ÙÀ̽º:"
echo `/sbin/ifconfig | grep ^[a-z] | awk '{print $1}'`
#                            ^^^^^  globbing À» ¸·±â À§ÇØ Äõ¿ìÆ® ½ÃÄÑ¾ß ÇÕ´Ï´Ù.
#  ´ÙÀ½µµ ¿ª½Ã µ¿ÀÛÇÕ´Ï´Ù.
#    echo $(/sbin/ifconfig | awk '/^[a-z]/ { print $1 })'
#    echo $(/sbin/ifconfig | sed -e 's/ .*//')
#  S.C.°¡ ÁÖ¼®À» ´õ ³Ö¾î Áá½À´Ï´Ù. °í¸¶¿ö¿ä.
¿¹ 30-5 Âü°í.

route

Ä¿³Î ¶ó¿ìÆÃ Å×À̺í Á¤º¸¸¦ º¸°Å³ª ¹Ù²Ü ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù.

bash$ route
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
pm3-67.bozosisp *               255.255.255.255 UH       40 0          0 ppp0
127.0.0.0       *               255.0.0.0       U        40 0          0 lo
default         pm3-67.bozosisp 0.0.0.0         UG       40 0          0 ppp0
	      

chkconfig

³×Æ®¿öÅ© ¼³Á¤À» Ã¼Å©ÇØÁÜ. ÀÌ ¸í·É¾î´Â /etc/rc?.d µð·ºÅ丮¿¡ µé¾îÀÖ°í ºÎÆÃ½Ã ½ÃÀ۵Ǵ ³×Æ®¿öÅ© ¼­ºñ½ºµéÀ» º¸¿©ÁÖ°í °ü¸®ÇØ ÁÝ´Ï´Ù.

¿ø·¡´Â IRIX¿¡ ÀÖ´ø °ÍÀ» ·¹µåÇÞ ¸®´ª½º°¡ Æ÷ÆÃÇÑ °ÍÀ¸·Î ´Ù¸¥ ¸®´ª½º ¹èÆ÷ÆÇ¿¡¼­´Â ±âº» ¼³Ä¡¿¡ ¼ÓÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ½À´Ï´Ù.

bash$ chkconfig --list
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
rwhod           0:off   1:off   2:off   3:off   4:off   5:off   6:off
...
	      

tcpdump

³×Æ®¿öÅ© ÆÐŶ "½º´ÏÆÛ". ÁÖ¾îÁø ±âÁØ¿¡ ¸Â´Â ÆÐŶ Çì´õÀÇ ´ýÇÁ¸¦ ¶°¼­ ³×Æ®¿öÅ© Æ®·¡ÇÈÀ» ºÐ¼®ÇÏ°í ¹®Á¦Á¡À» ÇØ°áÇÒ ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù.

bozoville ¿Í caduceus µÎ È£½ºÆ®°£ÀÇ IP ÆÐŶ Æ®·¡ÇÈÀ» ´ýÇÁ:
bash$ tcpdump ip host bozoville and caduceus
	      

´ç¿¬È÷ tcpdumpÀÇ Ãâ·ÂÀº ¾Õ¿¡¼­ ³íÀÇÇß´ø ÅØ½ºÆ® ó¸® À¯Æ¿¸®Æ¼µéÀ» ÀÌ¿ëÇØ¼­ ÆÄ½ÌÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

ÆÄÀϽýºÅÛ

mount

ÆÄÀϽýºÅÛÀ» ¸¶¿îÆ®ÇØ ÁÝ´Ï´Ù. º¸ÅëÀº Ç÷ÎÇdzª ½Ãµð·Ò °°Àº ¿ÜºÎ µð¹ÙÀ̽º¿¡ ´ëÇØ¼­ ¾²ÀÔ´Ï´Ù. /etc/fstab¿¡ °¡´ÉÇÑ ÆÄÀϽýºÅÛÀ̳ª ÆÄƼ¼Ç, µð¹ÙÀ̽º, ¿É¼ÇµîÀ» Àû¾î ³õÀ¸¸é ÀÚµ¿À̳ª ¼öµ¿À¸·Î ¸¶¿îÆ®¸¦ ÆíÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. /etc/mtab ÆÄÀÏÀº /proc °°Àº °¡»ó ÆÄÀϽýºÅÛµµ Æ÷ÇÔÇØ¼­ ÇöÀç ¸¶¿îÆ® µÇ¾î ÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛÀ» º¸¿© ÁÝ´Ï´Ù.

mount -a ´Â /etc/fstab¿¡ µé¾î ÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛ°ú ÆÄƼ¼ÇÁß¿¡ noauto ¿É¼ÇÀÌ ÀÖ´Â Ç׸ñ¸¸ »©°í ¸ðµÎ ¸¶¿îÆ® ÇØ ÁÝ´Ï´Ù. ºÎÆÃµÉ ¶§, ¸ðµç ÆÄƼ¼ÇÀÌ ¸¶¿îÆ® µÇµµ·Ï /etc/rc.d µð·ºÅ丮¿¡ µé¾î ÀÖ´Â ½Ã½ºÅÛ ±¸µ¿ ½ºÅ©¸³Æ®(rc.sysinitÀ̳ª ºñ½ÁÇÑ °Í)¿¡¼­ ÀÌ ¸í·É¾î¸¦ ºÎ¸¨´Ï´Ù.

mount -t iso9660 /dev/cdrom /mnt/cdrom
# CDROM ¸¶¿îÆ®
mount /mnt/cdrom
# /mnt/cdrom ÀÌ /etc/fstab ¿¡ µé¾î ÀÖÀ» °æ¿ì ª°Ô ºÎ¸£±â

ÀÌ ´ÙÀç´Ù´ÉÇÑ ¸í·É¾î´Â º¸Åë ÆÄÀÏÀ» ºí·° µð¹ÙÀ̽º¿¡ Á¸ÀçÇÏ´Â ÆÄÀÏ ½Ã½ºÅÛó·³ ¸¶¿îÆ® ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·± ´É·ÂÀº ·çÇÁ¹é µð¹ÙÀ̽º(loopback device)¶ó°í ÇÏ´Â ÆÄÀÏÀ» ÀÌ¿ëÇØ¼­ °¡´ÉÇØ Áý´Ï´Ù. ÀÌ ·çÇÁ¹é µð¹ÙÀ̽º¸¦ Àû¿ëÇÑ ¿¹·Î¼­, ISO9660 À̹ÌÁö¸¦ CDR·Î ±Á±â Àü¿¡ ¸¶¿îÆ®ÇØ¼­ Å×½ºÆ® ÇØº¸´Â °ÍÀÌ ÀÖ½À´Ï´Ù. [3]

¿¹ 13-5. CD À̹ÌÁö È®ÀÎÇϱâ

# ·çÆ®·Î...

mkdir /mnt/cdtest  # ¸¶¿îÆ® Æ÷ÀÎÆ®°¡ ¾ø´Ù¸é ÁغñÇÔ.

mount -r -t iso9660 -o loop cd-image.iso /mnt/cdtest   # À̹ÌÁö ¸¶¿îÆ®.
#                  "-o loop" ¿É¼ÇÀº "losetup /dev/loop0" ¿Í °°À½.
cd /mnt/cdtest     # ÀÌÁ¦ À̹ÌÁö¸¦ È®ÀÎ.
ls -alR            # À̹ÌÁö¿¡ µé¾îÀÖ´Â µð·ºÅ丮 Æ®¸®¿¡ µé¾î ÀÖ´Â ÆÄÀϵéÀ» ³ª¿­.
                   # ±âŸ µîµî...
umount

ÇöÀç ¸¶¿îÆ® µÇ¾î ÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛÀ» ¾ð¸¶¿îÆ® ÇØ ÁÝ´Ï´Ù. ÀÌ¹Ì ¸¶¿îÆ® µÇ¾î ÀÖ´Â Ç÷ÎÇdzª ½Ãµð·Ò µð½ºÅ©¸¦ »©±â Àü¿¡ ²À umount¸¦ ÇØ Áà¾ß ÇÕ´Ï´Ù. ¾È ±×·¯¸é ÆÄÀÏ ½Ã½ºÅÛÀÌ ±úÁú ¼öµµ ÀÖ½À´Ï´Ù.
umount /mnt/cdrom
# ÀÌÁ¦ ÀÌÁ§Æ® ¹öưÀ» ´­·¯ µð½ºÅ©¸¦ ¾ÈÀüÇÏ°Ô »¬ ¼ö ÀÖ½À´Ï´Ù.

Âü°í: automount À¯Æ¿¸®Æ¼°¡ ÀûÀýÇÏ°Ô ¼³Ä¡µÇ¾î ÀÖ´Ù¸é Ç÷ÎÇdzª ½Ãµð·Ò µð½ºÅ©¿¡ Á¢±Ù½Ã³ª Á¦°Å½Ã¿¡ ÀÚµ¿À¸·Î ¸¶¿îÆ®¿Í ¾ð¸¶¿îÆ®¸¦ ÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç÷ÎÇdzª ½Ãµð·Ò µå¶óÀ̺긦 ²¼´Ù »°´Ù ÇÒ ¼ö ÀÖ´Â ·¦Å¾¿¡¼­´Â ¹®Á¦¸¦ ÀÏÀ¸Å³ ¼öµµ ÀÖ½À´Ï´Ù.

sync

¹öÆÛ¿¡ µé¾î ÀÖ´Â Ãֽе¥ÀÌŸ¸¦ ÇÏµå µå¶óÀ̺ê·Î Áï½Ã ¾²°Ô ÇÕ´Ï´Ù(¹öÆÛ¿Í µå¶óÀ̺긦 µ¿±âÈ­). ÀÌ ¸í·É¾î°¡ ²À ÇÊ¿äÇÑ °ÍÀº ¾Æ´ÏÁö¸¸ ½Ã½ºÅÛ °ü¸®ÀÚ³ª »ç¿ëÀÚ¿¡°Ô ÀڽŵéÀÌ º¯°æÇÑ µ¥ÀÌŸ°¡ °©ÀÛ½º·± Àü¿ø À̻󿡵µ »ì¾Æ³²À» ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù. ¿¹Àü¿¡´Â sync; sync(¾ÆÁÖ È®½ÇÈ÷ Çϱâ À§Çؼ­ µÎ ¹ø ³»¸²)¶ó°í ÇØ¼­ ½Ã½ºÅÛÀ» ¸®ºÎÆÃÇϱâ ÀüÀÇ À¯¿ëÇÑ ¿¹¹æÃ¥À¸·Î ¾²¿´½À´Ï´Ù.

ÆÄÀÏÀ» ¾ÈÀüÇÏ°Ô Áö¿ì°Å³ª(¿¹ 12-33) õÀåÀÇ ÀüµîÀÌ ±ôºýÀ̱⠽ÃÀÛÇßÀ» ¶§ ¹öÆÛ¸¦ Áï½Ã Ç÷¯½¬½ÃŰ°í ½ÍÀ» ¶§°¡ ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù.

losetup

·çÇÁ¹é µð¹ÙÀ̽º¸¦ ¼³Á¤ÇØ ÁÝ´Ï´Ù.

¿¹ 13-6. ÇÑ ÆÄÀÏ¿¡¼­ Çѹø¿¡ ÆÄÀÏ ½Ã½ºÅÛ ¸¸µé±â

SIZE=1000000  # 1 meg

head -c $SIZE < /dev/zero > file  # ÁöÁ¤µÈ Å©±â·Î ÆÄÀÏÀ» ¼³Á¤.
losetup /dev/loop0 file           # ·çÇÁ¹é µð¹ÙÀ̽º·Î ¼³Á¤.
mke2fs /dev/loop0                 # ÆÄÀÏ ½Ã½ºÅÛ ¸¸µé±â.
mount -o loop /dev/loop0 /mnt     # ¸¶¿îÆ®.

# Thanks, S.C.
mkswap

½º¿Ò ÆÄƼ¼ÇÀ̳ª ½º¿Ò ÆÄÀÏÀ» ¸¸µé¾î ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î ´ÙÀ½¿¡´Â ²À swaponÀ¸·Î Ȱ¼ºÈ­¸¦ ½ÃÄÑÁà¾ß ÇÕ´Ï´Ù.

swapon, swapoff

½º¿Ò ÆÄƼ¼ÇÀ̳ª ½º¿Ò ÆÄÀÏÀ» Ȱ¼ºÈ­/ºñȰ¼ºÈ­ ½ÃÄÑ ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â º¸Åë ºÎÆÃ½Ã³ª ¼Ë´Ù¿î½Ã¿¡ È¿·ÂÀ» °®½À´Ï´Ù.

mke2fs

¸®´ª½º ext2 ÆÄÀϽýºÅÛÀ» ¸¸µé¾î ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â ·çÆ®·Î ½ÇÇà ½ÃÄÑ¾ß ÇÕ´Ï´Ù.

¿¹ 13-7. »õ ÇÏµå µå¶óÀ̺ê Ãß°¡Çϱâ

#!/bin/bash

# ½Ã½ºÅÛ¿¡ µÎ ¹øÂ° ÇÏµå µå¶óÀ̺ê Ãß°¡Çϱâ.
# ¼ÒÇÁÆ®¿þ¾î ¼³Á¤. Çϵå¿þ¾î°¡ ÀÌ¹Ì ¸¶¿îÆ®µÅ ÀÖ´Ù°í °¡Á¤ÇÔ.
# º» ¹®¼­ÀÇ ÀúÀÚ°¡ "Linux Gazett", http://www.linuxgazette.com, 38È£¿¡
# ¾´ ±â»ç¿¡¼­ ¹ßÃé.

ROOT_UID=0     # ÀÌ ½ºÅ©¸³Æ®´Â ·çÆ®·Î ½ÇÇà ½ÃÄÑ¾ß µË´Ï´Ù.
E_NOTROOT=67   # root °¡ ¾Æ´Ñ °æ¿ìÀÇ Á¾·á ¿¡·¯.

if [ "$UID" -ne "$ROOT_UID" ]
then
  echo "ÀÌ ½ºÅ©¸³Æ®´Â ·çÆ®¸¸ ½ÇÇà½Ãų ¼ö ÀÖ½À´Ï´Ù."
  exit $E_NOTROOT
fi  

# ÀÌ ½ºÅ©¸³Æ®´Â Á¤¸» ÁÖÀÇÇØ¼­ ¾²±â ¹Ù¶ø´Ï´Ù!
# ¸¸¾à ¹«¾ð°¡°¡ À߸øµÈ´Ù¸é ¿©·¯ºÐÀÇ ÆÄÀÏ ½Ã½ºÅÛÀ» Ȧ¶ó´ç ³¯·Á¸ÔÀ» ¼ö ÀÖ½À´Ï´Ù.


NEWDISK=/dev/hdb         # /dev/hdb °¡ ºñ¾î ÀÖ´Ù°í °¡Á¤ÇÔ. ²À È®ÀÎÇØ º¼ °Í!
MOUNTPOINT=/mnt/newdisk  # ¾Æ´Ï¸é ´Ù¸¥ ¸¶¿îÆ® Æ÷ÀÎÆ® ÁöÁ¤.


fdisk $NEWDISK
mke2fs -cv $NEWDISK1   # ¹èµå ºí·° È®ÀÎ¹× ÀÚ¼¼ÇÑ Ãâ·Â.
#  ÁÖÀÇ:    /dev/hdb °¡ *¾Æ´Ï¶ó* /dev/hdb1 ÀÔ´Ï´Ù!
mkdir $MOUNTPOINT
chmod 777 $MOUNTPOINT  # »õ µå¶óÀ̺ê´Â ¸ðµç »ç¿ëÀÚ°¡ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇÔ.


# ÀÚ, Å×½ºÆ®¸¦ ÇØ º¸ÁÒ.
# mount -t ext2 /dev/hdb1 /mnt/newdisk
# µð·ºÅ丮¸¦ ¸¸µé¾î º¸°í Àß µÈ´Ù¸é umount ÇÑ ´ÙÀ½ ÇÏ´ø ÀÏÀ» °è¼ÓÇÏ¸é µË´Ï´Ù.

# ¸¶Áö¸· ´Ü°è:
# ´ÙÀ½À» /etc/fstab ¿¡ Ãß°¡ÇØ ÁÖ¼¼¿ä.
# /dev/hdb1  /mnt/newdisk  ext2  defaults  1 1

exit 0

¿¹ 13-6 ¿Í ¿¹ 29-3 µµ Âü°íÇϼ¼¿ä.

tune2fs

ext2 ÆÄÀÏ ½Ã½ºÅÛÀ» Æ©´×ÇØ ÁÝ´Ï´Ù. ÃÖ´ë ¸¶¿îÆ® ¼ýÀÚ°°Àº ÆÄÀÏ ½Ã½ºÅÛ ¸Å°³º¯¼ö¸¦ ¹Ù²Ù´Âµ¥ ¾²ÀÏ ¼ö ÀÖ½À´Ï´Ù. ·çÆ®·Î ½ÇÇàÇØ¾ß µË´Ï´Ù.

ÁÖÀÇ

ÀÌ ¸í·É¾î´Â ±²ÀåÈ÷ À§ÇèÇÕ´Ï´Ù. ºÎÁÖÀÇÇÏ°Ô ¾´´Ù¸é ¿©·¯ºÐ ÆÄÀÏ ½Ã½ºÅÛÀ» ¹Ú»ì³¾ ¼öµµ Àֱ⠶§¹®¿¡ ¿©·¯ºÐ ½º½º·Î Ã¥ÀÓÀ» Áö°í ½á¾ß ÇÕ´Ï´Ù.

dumpe2fs

¾ÆÁÖ ÀÚ¼¼ÇÑ ÆÄÀÏ ½Ã½ºÅÛ Á¤º¸¸¦ Ç¥ÁØÃâ·ÂÀ¸·Î ´ýÇÁÇØ ÁÝ´Ï´Ù. ·çÆ®·Î ½ÇÇàµÇ¾ß ÇÕ´Ï´Ù.

root# dumpe2fs /dev/hda7 | grep 'ount count'
dumpe2fs 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09
 Mount count:              6
 Maximum mount count:      20
hdparm

ÇÏµå µð½ºÅ© ¸Å°³º¯¼ö¸¦ º¸¿©Áְųª ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. ·çÆ®·Î ½ÇÇà½ÃÄÑ¾ß µÇ°í À߸ø ¾µ °æ¿ì À§ÇèÇÒ ¼ö ÀÖ½À´Ï´Ù.

fdisk

º¸ÅëÀº ÇÏµå µå¶óÀ̺êÀÏ, ÀúÀå¿ë µð¹ÙÀ̽º¿¡ ´ëÇØ¼­ ÆÄƼ¼Ç Å×À̺íÀ» ¸¸µé°í º¯°æÇÒ ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù. ·çÆ®·Î ½ÇÇàÇØ¾ß µË´Ï´Ù.

ÁÖÀÇ

ÀÌ ¸í·É¾î´Â ¾ÆÁÖ Á¶½ÉÇØ¼­ ½á¾ß µË´Ï´Ù. ¸¸¾à¿¡ ¹º°¡°¡ À߸øµÇ¸é ¿©·¯ºÐÀÇ ÆÄÀÏ ½Ã½ºÅÛÀ» ¸Á°¡Æ®¸± ¼öµµ ÀÖ½À´Ï´Ù.

fsck, e2fsck, debugfs

ÆÄÀÏ ½Ã½ºÅÛ Ã¼Å©, Ä¡·á, µð¹ö±×¿ë ¸í·É¾îµé.

fsck: À¯´Ð½º ÆÄÀÏ ½Ã½ºÅÛÀ» Ã¼Å©ÇØ ÁÖ´Â ÇÁ·ÐÆ® ¿£µå(front end)·Î¼­ ´Ù¸¥ À¯Æ¿¸®Æ¼°¡ ÀÌ ¸í·É¾î¸¦ ºÎ¸§. ½ÇÁ¦·Î üũÇÒ ÆÄÀÏ ½Ã½ºÅÛ Å¸ÀÔÀº ext2°¡ ±âº»À¸·Î ÀâÇô ÀÖ½À´Ï´Ù.

e2fsck: ext2 ÆÄÀÏ ½Ã½ºÅÛ Ã¼Ä¿.

debugfs: ext2 ÆÄÀÏ ½Ã½ºÅÛ µð¹ö°Å.

°æ°í

ÀÌ ¸í·É¾îµéÀº ·çÆ®·Î ½ÇÇà½ÃÄÑ¾ß ÇÕ´Ï´Ù. À߸ø ¾²¸é ÆÄÀÏ ½Ã½ºÅÛÀÌ ¼Õ»óµÇ°Å³ª ¸Á°¡Áú ¼öµµ ÀÖ½À´Ï´Ù.

badblocks

ÀúÀå¿ë µð¹ÙÀ̽º¿¡ ´ëÇØ ¹èµå ºí·°(¹Ìµð¾îÀÇ ¹°¸®ÀûÀÎ °áÇÔ)À» Ã¼Å©ÇØ ÁÝ´Ï´Ù. »õ ÇÏµå µå¶óÀ̺긦 ¼³Ä¡ÇÏ°í Æ÷¸ËÇÒ ¶§³ª ¹é¾÷ ¹Ìµð¾îÀÇ ¹«°á¼ºÀ» Å×½ºÆ® ÇØº¸·Á°í ÇÒ ¶§ ¾µ ¼ö ÀÖ½À´Ï´Ù. [4] ¿¹¸¦ µé¾î badblocks /dev/fd0 ¶ó°í Çϸé Ç÷ÎÇÇ µð½ºÅ©¸¦ Å×½ºÆ®ÇØ ÁÝ´Ï´Ù.

badblocks ¸í·É¾î´Â ¸ðµç µ¥ÀÌŸ¸¦ ´Ù µ¤¾î½á¹ö¸®µµ·Ï ºÒ¸± ¼öµµ ÀÖ°í Àбâ Àü¿ë ¸ðµå·Î ¾ÈÀüÇÏ°Ô ºÒ¸± ¼öµµ ÀÖ½À´Ï´Ù. ·çÆ® »ç¿ëÀÚ°¡ Å×½ºÆ®ÇÒ µð¹ÙÀ̽º¸¦ ¼ÒÀ¯Çϰí ÀÖ´Ù¸é, º¸Åë ±×·± »óȲÀÏÅ×Áö¸¸, ·çÆ®°¡ ÀÌ ¸í·É¾î¸¦ ½ÇÇà½ÃÄÑ¾ß ÇÕ´Ï´Ù.

mkbootdisk

¿¹¸¦ µé¾î MBR(master boot record)ÀÌ ±úÁø »óȲµî¿¡¼­ ½Ã½ºÅÛÀ» ´Ù½Ã »ì¸± ¼ö ÀÖµµ·Ï ºÎÆÃ µð½ºÄÏÀ» ¸¸µé¾î ÁÝ´Ï´Ù. mkbootdisk´Â ½ÇÁ¦·Î´Â Erik TroanÀÌ ¸¸µç Bash ½ºÅ©¸³Æ®·Î /sbin µð·ºÅ丮¿¡ µé¾î ÀÖ½À´Ï´Ù.

chroot

·çÆ® µð·ºÅ丮¸¦ ¹Ù²ãÁÝ´Ï´Ù(CHange ROOT directory). ¸í·É¾îµéÀº º¸Åë ±âº» ·çÆ® µð·ºÅ丮ÀÎ /¸¦ ±âÁØÀ¸·Î $PATH¿¡ µû¶ó ÇØ¼®µË´Ï´Ù. ÀÌ ¸í·É¾î´Â ÀÌ ·çÆ® µð·ºÅ丮¸¦ ´Ù¸¥ °÷À¸·Î ¹Ù²Û´ÙÀ½ ÀÛ¾÷ µð·ºÅ丮µµ ±× ÂÊÀ¸·Î ¹Ù²ãÁÝ´Ï´Ù. º¸¾È¿ëÀ¸·Î ¾ÆÁÖ À¯¿ëÇѵ¥, ¿¹¸¦ µé¸é ½Ã½ºÅÛ °ü¸®ÀÚ°¡ ÅÚ³ÝÀ¸·Î Á¢¼ÓÁßÀÎ »ç¿ëÀÚ¸¦ º¸¾È°ú °ü·ÃµÈ ÆÄÀÏ ½Ã½ºÅÛ¿¡ Á¢±Ù½ÃŰÁö ¾ÊÀ¸·Á ÇÒ ¶§¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù(°¡²û guest »ç¿ëÀÚ¸¦ "chroot °¨¿Á"(chroot jail)¿¡ °¡µÐ´Ù¶ó°íµµ ÇÕ´Ï´Ù). chrootÈÄ¿¡´Â ½Ã½ºÅÛ ¹ÙÀ̳ʸ®¿¡ ´ëÇÑ ½ÇÇà °æ·Î°¡ ´õ ÀÌ»ó ¸ÂÁö ¾Ê´Â °Í¿¡ ÁÖÀÇÇϱ⠹ٶø´Ï´Ù.

chroot /opt ¶ó°í Çϸé /usr/binÀ» /opt/usr/binÀ̶ó°í ÇØ¼®ÇÕ´Ï´Ù. ºñ½ÁÇϰÔ, º¸ÅëÀÇ »óȲ¿¡¼­´Â /¸¦ ±âº» µð·ºÅ丮·Î »ïÁö¸¸ chroot /aaa/bbb /bin/ls ¶ó°í ÇÏ¸é ±× ÈÄ·Î ½ÇÇàµÇ´Â ls´Â /aaa/bbbÀ» ±âº» µð·ºÅ丮·Î ÀνÄÇÕ´Ï´Ù. »ç¿ëÀÚÀÇ ~/.bashrc¿¡ alias XX 'chroot /aaa/bbb ls' ¶ó´Â ÁÙÀ» ³ÖÀ¸¸é ±× »ç¿ëÀÚ°¡ "XX"¸¦ ½ÇÇà ½ÃŰ´Â ÆÄÀÏ ½Ã½ºÅÛÀ» È¿°úÀûÀ¸·Î Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù.

chroot´Â ºñ»ó¿ë ºÎÆ® Ç÷ÎÇÇ·Î ºÎÆÃÇßÀ» ¶§ ÆíÇÏ°Ô ¾µ ¼ö ÀÖ°í(/dev/fd0¿¡ chroot °É±â), ½Ã½ºÅÛÀÌ ¹Ú»ì³ª¼­ °íÄ¡·Á°í ÇÒ ¶§ lilo¿¡ ¿É¼ÇÀ¸·Î ÁÙ ¼öµµ ÀÖ½À´Ï´Ù. ¶ÇÇÑ ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛÀ» ÅëÇØ¼­ ¼³Ä¡¸¦ ÇÒ °æ¿ì³ª(rpm ¿É¼Ç), CDROM °°Àº Àбâ Àü¿ë ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ½ÇÇàÇÒ ¶§ ¾µ ¼ö ÀÖ½À´Ï´Ù. ¿ÀÁ÷ ·çÆ® »ç¿ëÀÚ·Î ½ÇÇàÇÒ ¼ö ÀÖÀ¸¸ç, Á¶½ÉÇØ¼­ ½á¾ß ÇÕ´Ï´Ù.

°æ°í

¸î °³ÀÇ ½Ã½ºÅÛ ÆÄÀϵéÀº chrootµÈ µð·ºÅ丮¿¡ º¹»çÇØ ³õ¾Æ¾ß $PATH°¡ ±×µéÀ» Á¦´ë·Î ÀνÄÇÒ ¼ö ÀÖ½À´Ï´Ù.

lockfile

ÀÌ À¯Æ¿¸®Æ¼´Â procmail ÆÐŰÁö ÁßÀÇ ÇϳªÀÔ´Ï´Ù(www.procmail.org ). ÀÌ ¸í·É¾î´Â Àá±Ý ÆÄÀÏÀ» ¸¸µé¾î Áִµ¥, Àá±Ý ÆÄÀÏÀ̶õ ƯÁ¤ ÆÄÀÏÀ̳ª µð¹ÙÀ̽º, ¸®¼Ò½º¿¡ ´ëÇØ¼­ Á¢±Ù Á¦¾î¸¦ ÇØÁÖ´Â ¼¼¸¶Æ÷¾î ÆÄÀÏÀÔ´Ï´Ù. Àá±Ý ÆÄÀÏÀº ÀÌ Æ¯Á¤ÇÑ ÆÄÀÏ, µð¹ÙÀ̽º, ¸®¼Ò½º¸¦ ƯÁ¤ ÇÁ·Î¼¼½º°¡ ¾²°í ÀÖ´Ù("busy")´Â Ç÷¡±×·Î ¾²¿©, ´Ù¸¥ ÇÁ·Î¼¼½º¿¡°Ô Á¦ÇÑµÈ Á¢±Ù¸¸À» Çã¿ëÇϰųª ¾Æ¿¹ Á¢±ÙÀ» ¸øÇϵµ·Ï ¸¸µé¾î ÁÝ´Ï´Ù.

Àá±Ý ÆÄÀÏÀº ¿©·¯ »ç¿ëÀÚ¿¡ ÀÇÇØ ½Ã½ºÅÛ ¸ÞÀÏ Æú´õ°¡ µ¿½Ã¿¡ º¯°æµÇ´Â °ÍÀ» ¸·¾ÆÁÖ°í, ¸ðµ© Æ÷Æ®°¡ »ç¿ëÁßÀ̶ó´Â °ÍÀ» ¾Ë·ÁÁÖ¸ç, ³Ý½ºÄÉÀÌÇÁ°¡ ij½¬¸¦ »ç¿ëÁßÀ̶ó´Â °ÍÀ» º¸¿©Áִµ¥ ¾²ÀÏ ¼ö ÀÖ½À´Ï´Ù. ½ºÅ©¸³Æ®¿¡¼­ ƯÁ¤ ÇÁ·Î¼¼½º°¡ ¸¸µé¾î ³õÀº Àá±Ý ÆÄÀÏÀÌ ÀÖ´ÂÁö È®ÀÎÇØ¼­ ±× ÇÁ·Î¼¼½º°¡ ÀÌ¹Ì ¶° ÀÖ´ÂÁö ¾Ë¾Æ³¾ ¼öµµ ÀÖ½À´Ï´Ù. ¸¸¾à¿¡ ½ºÅ©¸³Æ®¿¡¼­ ÀÌ¹Ì Á¸ÀçÇÏ´Â Àá±Ý ÆÄÀÏÀ» ´Ù½Ã ¸¸µé·Á°í ÇÑ´Ù¸é ±× ½ºÅ©¸³Æ®´Â ¸ØÃç ¹ö¸± ¼öµµ ÀÖÀ¸´Ï Á¶½ÉÇϱ⠹ٶø´Ï´Ù.

º¸ÅëÀÇ ¾îÇø®ÄÉÀ̼ǵéÀº Àá±Ý ÆÄÀÏÀ» ¸¸µé°í üũÇÏ´Â ±âº» µð·ºÅ丮¸¦ /var/lock À¸·Î »ï½À´Ï´Ù. ´ÙÀ½ ½ºÅ©¸³Æ®Ã³·³ ÇØ¼­ Àá±Ý ÆÄÀÏÀÌ ÀÖ´ÂÁö ¾ø´ÂÁö¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
appname=xyzip
# "xyzip" ¾îÇø®ÄÉÀ̼ÇÀº "/var/lock/xyzip.lock" ¶õ Àá±Ý ÆÄÀÏÀ» ¸¸µì´Ï´Ù.

if [ -e "/var/lock/$appname.lock ]
then
  ...

mknod

ºí·° µð¹ÙÀ̽º³ª ¹®ÀÚ µð¹ÙÀ̽º ÆÄÀÏÀ» ¸¸µé¾î ÁÝ´Ï´Ù(¿¹¸¦ µé¸é Çϵå¿þ¾î¸¦ »õ·Î ¼³Ä¡ÇÒ °æ¿ì¿¡ ÇÊ¿äÇϰÚÁÒ?).

tmpwatch

ƯÁ¤ ±â°£µ¿¾È Á¢±ÙÀÌ ¾ø´Â ÆÄÀÏÀ» ÀÚµ¿À¸·Î Áö¿öÁÝ´Ï´Ù. º¸ÅëÀº ¿À·¡µÈ ·Î±× ÆÄÀÏÀ» Áö¿ì±â À§ÇØ crond¿¡ °É¾î ³õ°í ¾¹´Ï´Ù.

MAKEDEV

µð¹ÙÀ̽º ÆÄÀÏÀ» ¸¸µé¾î ÁÖ´Â À¯Æ¿¸®Æ¼·Î¼­, ·çÆ®·Î ½ÇÇà½ÃÄÑ¾ß ÇÕ´Ï´Ù. ÀÌ ¸í·É¾î´Â /dev µð·ºÅ丮¿¡ ÀÖ½À´Ï´Ù.
root# ./MAKEDEV
ÀÌ ¸í·É¾î´Â ÀÏÁ¾ÀÇ mknodÀÇ Çâ»óµÈ ¹öÀüÀÔ´Ï´Ù.

¹é¾÷

dump, restore

dump ¸í·É¾î´Â º¹ÀâÇÑ ÆÄÀÏ ½Ã½ºÅÛ ¹é¾÷ À¯Æ¿¸®Æ¼·Î¼­ º¸ÅëÀº ±Ô¸ð°¡ Å« ¼³Ä¡¿Í ³×Æ®¿öÅ©¿¡¼­ ¾²ÀÔ´Ï´Ù. [5] µð½ºÅ© ÆÄƼ¼ÇÀ» ÀÖ´Â ±×´ë·Î(raw) ÀÐ°í ¹ÙÀ̳ʸ® ÇüÅ·Π¹é¾÷ ÆÄÀÏÀ» ¸¸µé¾î ³À´Ï´Ù. ¹é¾÷ µÇ´Â ÆÄÀϵéÀº µð½ºÅ©³ª Å×ÀÔ µå¶óÀ̺갰Àº ´Ù¾çÇÑ ÀúÀå ¹Ìµð¾î·Î ÀúÀåµË´Ï´Ù. restore ¸í·É¾î´Â dump·Î ¹é¾÷µÈ ÆÄÀϵéÀ» º¹±¸½ÃÄÑ ÁÝ´Ï´Ù.

fdformat

Ç÷ÎÇÇ µð½ºÅ©¿¡ ´ëÇØ¼­ ·Î¿ì·¹º§ Æ÷¸ËÀ» ÇØ ÁÝ´Ï´Ù.

½Ã½ºÅÛ ¸®¼Ò½º

ulimit

½Ã½ºÅÛ ¸®¼Ò½º¿¡ ´ëÇØ¼­ ÃÖ´ë ÇѰè(upper limit)¸¦ ÁöÁ¤ÇØ ÁÝ´Ï´Ù. º¸Åë -f ¿É¼ÇÀ» ½á¼­ ½©ÀÌ ¸¸µé ¼ö ÀÖ´Â ÆÄÀÏ Å©±â¸¦ Á¦ÇÑ ½Ãŵ´Ï´Ù(ulimit -f 1000 À̶ó°í ÇÏ¸é ÆÄÀÏ Å©±â¸¦ 1 ¸Þ°¡·Î Àâ¾Æ ÁÝ´Ï´Ù). -t ¿É¼ÇÀº ÄÚ¾î´ýÇÁ ÆÄÀÏÀÇ Å©±â¸¦ Á¦ÇÑ ½Ãŵ´Ï´Ù(ulimit -c 0 À̶ó°í Çϸé ÄÚ¾î´ýÇÁ¸¦ »ý¼º½ÃŰÁö ¾Ê½À´Ï´Ù). ulimit °ªÀº º¸Åë, /etc/profileÀ̳ª ~/.bash_profile¿¡¼­ ÁöÁ¤ÇØ ÁÝ´Ï´Ù(27Àå Âü°í).

umask

»ç¿ëÀÚ(User) ÆÄÀÏ »ý¼º ¸¶½ºÅ©(MASK). »ç¿ëÀÚ °¢ÀÚÀÇ ±âº» ÆÄÀÏ ¼Ó¼ºÀ» Á¦ÇÑÇØ ÁÝ´Ï´Ù. »ç¿ëÀÚ°¡ »ý¼ºÇÏ´Â ¸ðµç ÆÄÀÏÀº umask·Î ÁöÁ¤µÈ ¼Ó¼ºÀÇ ¿µÇâÀ» ¹Þ½À´Ï´Ù. umask·Î ³Ñ°ÜÁØ °ªÀº ÇØ´ç ÆÄÀÏ ¼ÒÀ¯±ÇÀ» ²¨¹ö¸³´Ï´Ù. ¿¹¸¦ µé¾î, umask 022 ´Â »õ·Î ¸¸µé¾î Áö´Â ÆÄÀÏÀÌ ÃÖ¼ÒÇÑ 755 ¼ÒÀ¯±ÇÀ» °®µµ·Ï ÇØ ÁÝ´Ï´Ù(777 NAND 022). [6] »ç¿ëÀÚ´Â ´ç¿¬È÷ ³ªÁß¿¡ ±× ÆÄÀÏÀÇ ¼Ó¼ºÀ» chmod·Î ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. º¸Åë umask °ªÀ» ¼³Á¤ÇÒ ¶§´Â /etc/profileÀ̳ª ~/.bash_profile¿¡¼­ ÇÕ´Ï´Ù(27Àå Âü°í).

rdev

·çÆ® µð¹ÙÀ̽º, ½º¿Ò ¿µ¿ª, ºñµð¿À ¸ðµå¿¡ ´ëÇÑ Á¤º¸¸¦ ¾ò°Å³ª º¯°æ. rdevÀÇ ±â´ÉÀº lilo·Î ³Ñ¾î°¬Áö¸¸ ¾ÆÁ÷ ·¥ µð½ºÅ©¸¦ ¼³Á¤ÇÒ ¶§´Â À¯¿ëÇÕ´Ï´Ù. ¿ª½Ã À߸ø ¾²¸é À§ÇèÇÑ ¸í·É¾îÀÔ´Ï´Ù.

¸ðµâ

lsmod

¼³Ä¡µÈ Ä¿³Î ¸ðµâÀ» º¸¿©ÁÝ´Ï´Ù.

bash$ lsmod
Module                  Size  Used by
autofs                  9456   2 (autoclean)
opl3                   11376   0
serial_cs               5456   0 (unused)
sb                     34752   0
uart401                 6384   0 [sb]
sound                  58368   0 [opl3 sb uart401]
soundlow                 464   0 [sound]
soundcore               2800   6 [sb sound]
ds                      6448   2 [serial_cs]
i82365                 22928   2
pcmcia_core            45984   0 [serial_cs ds i82365]
	      

insmod

Ä¿³Î ¸ðµâÀ» °­Á¦·Î ¿Ã¸³´Ï´Ù. ·çÆ®·Î ½ÇÇàÇØ¾ß ÇÕ´Ï´Ù.

modprobe

º¸Åë ½Ã½ºÅÛ ±¸µ¿ ½ºÅ©¸³Æ®¿¡¼­ ÀÚµ¿À¸·Î ºÒ¸®´Â ¸ðµâ ·Î´õ.

depmod

¸ðµâ°£ ÀÇÁ¸ ÆÄÀÏÀ» ¸¸µé¾î ÁÝ´Ï´Ù. º¸Åë ½Ã½ºÅÛ ±¸µ¿ ½ºÅ©¸³Æ®¿¡¼­ ºÒ¸³´Ï´Ù.

±âŸ ¸í·É¾îµé

env

ÇöÀçÀÇ È¯°æ º¯¼ö, ȤÀº ±× °ªÀ» ¹Ù²ã ÇÁ·Î±×·¥À̳ª ½ºÅ©¸³Æ®¸¦ ½ÇÇà ½Ãŵ´Ï´Ù(½Ã½ºÅÛ Àüü ȯ°æÀº °Çµå¸®Áö ¾Ê½À´Ï´Ù). [varname=xxx] ¿É¼ÇÀ» ÁÖ¸é ½ºÅ©¸³Æ®°¡ ½ÇÇàµÉ µ¿¾È¿¡¸¸ ȯ°æ º¯¼ö varnameÀÇ °ªÀ» ¹Ù²ãÁÝ´Ï´Ù. ¾Æ¹« ¿É¼Çµµ ¾È ÁÖ¸é ÇöÀç ¼¼ÆÃµÇ¾î ÀÖ´Â ¸ðµç ȯ°æ º¯¼ö¸¦ º¸¿©ÁÝ´Ï´Ù.

Âü°í: Bash³ª º»½©¿¡¼­ ÆÄ»ýµÈ ´Ù¸¥ ½©µé¿¡¼­´Â ´ÜÀÏ ¸í·É¾î ȯ°æ¿¡¼­ º¯¼ö¸¦ ¼³Á¤ÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.
var1=value1 var2=value2 commandXXX
# 'commandXXX' ÀÇ È¯°æ¿¡¼­¸¸ $var1 °ú $var2 ¸¦ ¼³Á¤.

ÀÛÀº Á¤º¸: ½ºÅ©¸³Æ®ÀÇ Ã¹¹øÂ° ÁÙ("#!"°¡ ÀÖ´Â ÁÙ)¿¡ env¸¦ ½á¼­ °æ·Î¸¦ ¸ð¸£´Â ½©À̳ª ¸í·É¾î ÇØ¼®±â¸¦ ÁöÁ¤ÇØ ÁÙ ¼öµµ ÀÖ½À´Ï´Ù.
#! /usr/bin/env perl

print "ÆÞÀÌ ¾îµð¿¡ ÀÖ´ÂÁö ¸ô¶óµµ\n";
print "ÀÌ ÆÞ ½ºÅ©¸³Æ®´Â Àß µ¿ÀÛÇÒ °ÍÀÔ´Ï´Ù.\n";

# ÆÞ ½ÇÇà ÆÄÀÏÀÌ ¿øÇÏ´Â °÷¿¡ ¾øÀ» ¼öµµ Àֱ⠶§¹®¿¡
# À̽ļº ÀÖ´Â Å©·Î½º Ç÷§Æû¿ë ½ºÅ©¸³Æ®¿¡ ¾ÆÁÖ ÁÁ½À´Ï´Ù.
# Thanks, S.C.

ldd

½ÇÇà ÆÄÀÏ¿¡ ÇÊ¿äÇÑ °øÀ¯ ¶óÀ̺귯¸®¸¦ º¸¿©ÁÝ´Ï´Ù.

bash$ ldd /bin/ls
libc.so.6 => /lib/libc.so.6 (0x4000c000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
strip

½ÇÇà °¡´ÉÇÑ ¹ÙÀ̳ʸ® ÆÄÀÏ¿¡¼­ µð¹ö±ë¿ë ½Éº¼¸¯ ÂüÁ¶ Á¤º¸¸¦ Á¦°ÅÇØ ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î¸¦ ¾²¸é ½ÇÇà ÆÄÀÏÀÇ Å©±â´Â ÀÛ¾ÆÁöÁö¸¸ µð¹ö±ëÀº ÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.

ÁÖ·Î Makefile¿¡¼­³ª ³ª¿À°í ½© ½ºÅ©¸³Æ®¿¡¼­´Â Àß ¾²ÀÌÁö ¾Ê½À´Ï´Ù.

nm

strip µÇÁö ¾ÊÀº ÄÄÆÄÀÏµÈ ¹ÙÀ̳ʸ®¿¡ µé¾î ÀÖ´Â ½Éº¼µéÀ» º¸¿©ÁÝ´Ï´Ù.

rdist

¸®¸ðÆ® ºÐ»ê Ŭ¶óÀ̾ðÆ®: ¸®¸ðÆ® ¼­¹ö¿¡ ÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛÀ¸·Î µ¿±âÈ­, º¹»ç, ¹é¾÷À» ÇØ ÁÝ´Ï´Ù.

Áö±Ý±îÁö ¹è¿î °ü¸®ÀÚ¿ë ¸í·É¾îµé¿¡ ´ëÇÑ Áö½ÄÀ» °¡Áö°í ½Ã½ºÅÛ ½ºÅ©¸³Æ®¸¦ »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù. killallÀº ½Ã½ºÅÛ ¼Ë´Ù¿î½Ã¿¡, µ¹°í ÀÖ´Â ÇÁ·Î¼¼½º¸¦ ¸ØÃß°Ô ÇØ ÁÖ´Â ÇÁ·Î¼¼½º·Î¼­, ªÀ¸¸é¼­µµ ÀÌÇØÇϱ⠽¬¿î ½ºÅ©¸³Æ®ÁßÀÇ ÇϳªÀÔ´Ï´Ù.

¿¹ 13-8. killall, /etc/rc .d/init.d ¿¡¼­ Àοë

#!/bin/sh

# --> "# -->" Ç¥½Ã´Â º» ¹®¼­ÀÇ ÀúÀÚ°¡ ºÙÀÎ ÁÖ¼®ÀÔ´Ï´Ù.

# --> ¿©±â¼­ ¼Ò°³ÇÏ´Â ºÎºÐÀº 
# --> Miquel van Smoorenburg(<miquels@drinkel.nl.mugnet.org>)ÀÇ 
# --> 'rc' ½ºÅ©¸³Æ® ÆÐŰÁöÁßÀÇ ÀϺÎÀÔ´Ï´Ù.

# --> ÀÌ ½ºÅ©¸³Æ®´Â ·¹µåÇÞ Àü¿ë ½ºÅ©¸³Æ®ÀÎ °Íó·³ º¸À̱⠶§¹®¿¡
# --> ´Ù¸¥ ¹èÆ÷ÆÇ¿¡´Â ¾øÀ» ¼öµµ ÀÖ½À´Ï´Ù.

# ¾²ÀÌÁö ¾ÊÀ¸¸é¼­ ½ÇÇàÁßÀÎ ¸ðµç ¼­ºñ½º¸¦ Á×ÀÔ´Ï´Ù(½ÇÁ¦·Î ½ÇÇàÁßÀÎÁö¸¦ 
# È®½ÇÈ÷ È®ÀÎÇϱ⠶§¹®¿¡ ¾Æ¹« ¼­ºñ½ºµµ ¾È Á×ÀÏ ¼ö ÀÖ½À´Ï´Ù).

for i in /var/lock/subsys/*; do
        # --> Ç¥ÁØ for/in ·çÇÁÀ̳ª "do" °¡ °°Àº ÁÙ¿¡ Àֱ⠶§¹®¿¡
        # --> ";" ¸¦ ºÙ¿©Áà¾ß µË´Ï´Ù.
	# ½ºÅ©¸³Æ®°¡ ½ÇÁ¦·Î ÀÖ´ÂÁö È®ÀÎ.
	[ ! -f $i ] && continue
	# --> "and list"¸¦ ¾ÆÁÖ Àß ½è½À´Ï´Ù. ´ÙÀ½Ã³·³ ÇØµµ ¶È°°½À´Ï´Ù.
	# --> if [ ! -f "$i" ]; then continue

	# ¼­ºê½Ã½ºÅÛ À̸§À» ¾Ë¾Æ³À´Ï´Ù.
	subsys=${i#/var/lock/subsys/}
	# --> º¯¼ö À̸§ ¸ÅĪÀε¥ ¿©±â¼­´Â ÆÄÀÏ À̸§ÀÌ µÇ°ÚÁÒ.
	# --> subsys=`basename $i` ¿Í ¿ÏÀüÈ÷ ¶È°°Àº Ç¥ÇöÀÔ´Ï´Ù.
	
	# --> Àá±Ý ÆÄÀÏÀÇ À̸§À» ¾Ë¾Æ³»´Âµ¥, Àá±Ý ÆÄÀÏÀÌ ÀÖ´Ù¸é
	# --> ÇØ´ç ÇÁ·Î¼¼½º°¡ ½ÇÇàÁßÀ̶ó´Â Áõ°ÅÀÔ´Ï´Ù.
	# --> ¾Õ¿¡¼­ ¼³¸íÇß´ø "lockfile" À» Âü°íÇϼ¼¿ä.


	# ±× ¼­ºê½Ã½ºÅÛÀ» ³»¸³´Ï´Ù.
	if [ -f /etc/rc.d/init.d/$subsys.init ]; then
	    /etc/rc.d/init.d/$subsys.init stop
	else
	    /etc/rc.d/init.d/$subsys stop
	# --> ½© ³»Àå¸í·ÉÀÎ 'stop'À» ½á¼­ µ¹°í ÀÖ´Â ÀÛ¾÷°ú µ¥¸óÀ» ÁßÁö½Ãŵ´Ï´Ù.
	fi
done

º°·Î ¾î·Á¿ö º¸ÀÌÁö ¾Ê½À´Ï´Ù. º¯¼ö ¸ÅĪ¿¡ ´ëÇÑ ºÎºÐ¸¸ »©°í ¾Õ¿¡¼­ ´Ù ¹è¿î °ÍµéÀÔ´Ï´Ù.

¿¬½À¹®Á¦ 1. /etc/rc.d/init.d ¿¡ ÀÖ´Â halt ½ºÅ©¸³Æ®¸¦ ºÐ¼®ÇØ º¸¼¼¿ä. killallº¸´Ù ¾à°£ ´õ ±æÁö¸¸ °³³äÀº °°½À´Ï´Ù. ÀÚ½ÅÀÇ È¨ µð·ºÅ丮 ¾îµðÂë¿¡ º¹»çÇØ ³õ°í ÀÌ°Í Àú°Í ½ÇÇèÇØ º¸¼¼¿ä.(·çÆ®·Î ½ÇÇà½ÃŰ¸é ¾È µË´Ï´Ù). -vn ¿É¼ÇÀ» ½á¼­ °¡»ó ¸ðµå·Î ½ÇÇà½ÃÄÑ º¸¼¼¿ä(sh -vn scriptname). ÁÖ¼®À» ²Ä²ÄÇÏ°Ô ´Þ¾Æ º¸¼¼¿ä. "action" ¸í·É¾î¸¦ "echo" ¸í·É¾î·Î ¹Ù²ã º¸¼¼¿ä.

¿¬½À¹®Á¦ 2. ÀÚ ÀÌÁ¦, /etc/rc.d/init.d ¿¡¼­ ´õ º¹ÀâÇÑ ½ºÅ©¸³Æ®µéÀ» »ìÆì º¸¼¼¿ä. °Å±â¿¡ ÀÖ´Â ½ºÅ©¸³Æ®µéÀ» ÀÌÇØÇÒ ¼ö ÀÖ³ª¿ä? ¹æ±Ý À§¿¡¼­ Çß´ø ¹æ¹ýÀ» ½á¼­ ºÐ¼®ÇØ º¸¼¼¿ä. "initscripts" ¹®¼­ÀÇ ÀϺκÐÀÎ /usr/share/doc/initscripts-?.?? ¿¡ ÀÖ´Â sysvinitfilesÀ» ºÐ¼®Çؼ­ ÅëÂû·ÂÀ» ±â¸£¼¼¿ä.

ÁÖ¼®

[1]

µð½ºÅ© ÄõŸ°¡ °É·Á ÀÖ´Â ¸®´ª½º ¸Ó½ÅÀ̳ª À¯´Ð½º ½Ã½ºÅÛÀÎ °æ¿ì¿¡ Àû¿ëµË´Ï´Ù.

[2]

userdelÀº Áö¿ï »ç¿ëÀÚ°¡ ·Î±×ÀÎÁßÀÏ ¶§´Â ½ÇÆÐÇÕ´Ï´Ù.

[3]

CDR ±Á±â¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â Alex Wither °¡ ¸®´ª½º Àú³Î(Linux Journal)¿¡ 1999³â 10¿ù¿¡ ¾´ CD ¸¸µé±â(Creating CDs) ±â»ç¸¦ ÀÐ¾î º¸±â ¹Ù¶ø´Ï´Ù.

[4]

mke2fs¿¡ -c ¿É¼ÇÀ» Á൵ ¹èµå ºí·°À» Ã¼Å©ÇØ ÁÝ´Ï´Ù.

[5]

´ÜÀÏ »ç¿ëÀÚ ¸®´ª½º ½Ã½ºÅÛÀº ÀϹÝÀûÀ¸·Î taró·³ °£´ÜÇÑ ¸í·É¾î·Î ¹é¾÷À» ÇÕ´Ï´Ù.

[6]

NAND´Â "not-and" ³í¸® ¿¬»êÀÚ ÀÔ´Ï´Ù. »©±â ¿¬»ê°ú ºñ½ÁÇÑ °³³äÀ¸·Î º¸¸é µË´Ï´Ù.