Subsections

2 ²`¤JÀÉ®×

²{¦b±z¤w¸gª¾¹DÃö©óÀɮתº°ò¥»ª¾ÃÑ¡A¸Ó¾Ç¨Ç§ó¥[²`¤JªºªF¦è¤F¡C


1 Àɮתº¥»½è¡Gµw³s±µ©M¸ê®Æµ²ÂI (Hard Links and Inodes)

¨t²Î¤¤ªº¨C­ÓÀɮ׬O¥H¸ê®Æµ²ÂI (inode: Information Node; µo­µ ``eye-node'') ªí¥Üªº¡A¤@­Ó¸ê®Æµ²ÂI§t¦³¤@­ÓÀɮתº©Ò¦³¸ê°T¡C¦ý¬O¡A¸ê®Æµ²ÂI¤£¯àª½±µ¬Ý¨ì¡A¨C­Ó¸ê®Æµ²ÂI³q¹L¤@­Ó©Î¦h­Óªºµw³s±µ¸òÀɮרt²ÎÁpô°_¨Ó¡Cµw³s±µ§t¦³¤@­ÓÀɮתº¦WºÙ©M¸ê®Æµ²ÂI§Ç¸¹ (inode number)¡C¦Ó¸ê®Æµ²ÂI§t¦³¨º­ÓÀÉ®×¥»¨­¡A´N¬OÀɮצbºÏ¤ù¤WÀx¦sªº¦ì¸m¡A¥¦ªº³X°ÝÅv­­¡AÀɮתºÃþ«¬µ¥µ¥¡C¦pªG¤@­Ó¸ê®Æµ²ÂI¦³¥¦ªº¸ê®Æµ²ÂI§Ç¸¹ (inode number)¡A¨º»ò¨t²ÎÁ`¯à§â¥¦§ä¨ì¡C

¤@­ÓÀÉ®×¥i¥H¦³¶W¹L¤@­Óªºµw³s±µ¡A´N¬O»¡¦h­Ó¤£¦PªºÀɮצWºÙ¥i¥H«ü¦V¦P¤@­ÓÀɮס]¥¦­Ì³£©M¦P¤@­Ó¸ê®Æµ²ÂI»Ý­nµ²¦X¡^¡C¦ý±z¤£¯à°µ¸ó¶VÀɮרt²Îªºµw³s±µ¡G©Ò¦³ªº¹ï¬Y¤@­ÓÀɮס]¸ê®Æµ²ÂI¡^°µª½±µ°Ñ¦Ò¥²»Ý¦b¦P¤@­ÓÀɮרt²Î¤W¡A³o¬O¦]¬°¨C­ÓÀɮרt²Î³£¦³¥¦¦Û¤vªº¤@®M¸ê®Æµ²ÂI¡A¤£¦PªºÀɮרt²Î¶¡ªº¸ê®Æµ²ÂI§Ç¸¹¥i¯à·|­«½Æ¡C

¦]¬°©Ò¦³«ü¦V¦P¤@­Ó¸ê®Æµ²ÂIªºµw³s±µ³£¬O°Ñ·Ó¦P¤@­ÓÀɮסA±z¥i¥H¥Î¤@­ÓÀɮצWºÙ¨Ó­×§ï¤@­ÓÀɮסA¥Î«ü¦V¦P¤@­Ó¸ê®Æµ²ÂI¦ý¨Ï¥Î¤@­Ó¤£¦PªºÀɮצWºÙ¨Ó¬d¬Ý±zªº§ó§ïµ²ªG¡C¸Õ¤@¤U³o­Ó¡G

cd; echo "hello" > firstlink
cd ¨ì±zªº®a¥Ø¿ý¡A«Ø¥ß¤@­Ó¦³³æµü ``hello'' ªº¥s firstlink ªºÀɮסA±z¹ê»Ú¤W¬O§â echo ©R¥Oªº¿é¥X­«·s©w¦V¡A§â¿é¥X©ñ¨ì firstlink ùØ¡Aecho ©R¥O¶È¶È­«½Æ±z¶Çµ¹¥¦ªº¥ô¦óªF¦è¡C²Ó¸`½Ð°Ñ¦Ò¦³Ãö shell ªº³¹¸`¡C

cat firstlink
½T©wÀÉ®× firstlink ªº¤º®e¡C

ln firstlink secondlink
«Ø¥ß¤@­Óµw³s±µ¡Gsecondlink ²{¦b«ü¦V©M firstlink ¬Û¦Pªº¸ê®Æµ²ÂI¡C

cat secondlink
½T©w secondlink ªº¤º®e©M firstlink ¤@¼Ë¡C

ls -l
ª`·N¦C¥Xªº firstlink ©M secondlink Àɮתº¸ê®Æµ²ÂIÁp¦Xªºµw³s±µ¼Æ¥Ø¬O 2¡C

echo "change" >> secondlink
³o­Ó¥t¥~¤@­Ó shell ­«·s©w¦V³Z¬¡]²{¦b¤£¥Î¦Ò¼{²Ó¸`³¡¤À¡^¡C±z¹ê»Ú¤W¬O§â³æµü ``change'' ªþ¥[¦b secondlink ªº³Ì«á¡C¥i¥H¥Î cat secondlink ¨Ó½T©w¡C

cat firstlink
firstlink ²{¦b«á­±¤]¦³¤F³æµü ``change''¡I³o¬O¦]¬° firstlink ©M secondlink «üªº¬O¦P¤@­ÓÀɮסC·í±z­×§ï¥¦ªº®É­Ô¡A¥¦¥s¤°»ò¦W¦r¬O¨S¦³Ãö«Yªº¡C

chmod a+rwx firstlink
§ïÅÜÀÉ®× firstlink ªº³X°ÝÅv­­¡CÁä¤J©R¥O ls -l ¥H½T©wÀÉ®× secondlink ªº³X°ÝÅv­­¤]³Q§ïÅܤF¡A³o»¡©ú³X°ÝÅv­­ªº¸ê®Æ¬O¦s¦b¸ê®Æµ²ÂIùئӤ£¬Oµw³s±µùتº¡C

rm firstlink
§R°£³o­Ó³s±µ¡A³o¬O rm ©R¥Oªº·L§®¤§³B¡G¥¦¹ê»Ú¤W§R°£ªº¬O³s±µ¦Ó¤£¬O¯u¥¿ªºÀɮסC²{¦bÁä¤J ls -l¡A±z·|¬Ý¨ì secondlink ÁÙ¦b¡Cª`·N²{¦b secondlink ªºµw³s±µ¼Æ­°¨ì¤F 1 ­Ó¡C

rm secondlink
§R°£¥t¥~¤@­Ó³s±µ¡C·í¤@­ÓÀɮרS¦³¥ô¦ó³s±µªº®É­Ô¡ALinux ¥»¨­·|§R°£¯u¥¿ªºÀɮסA§Y¥¦ªº¸ê®Æµ²ÂI¡C

©Ò¦³ªºÀɮ׳£¬O³o¼Ëªº¢w¢w§Y¨Ï¬O¹³³]³ÆÀɮ׳o¼Ëªº¯S®íÀɮס]¨Ò¦p /dev/hda¡^¡C

¤@­Ó¥Ø¿ý¥u¬O¤@­ÓÀɮצWºÙ©M¸ê®Æµ²ÂI§Ç¸¹ªº¦Cªí¡A¤]´N¬O»¡¬O¤@­Óµw³s±µªº¦Cªí¡C·í±z«Ø¥ß¤@­Óµw³s±µ®É¡A±z¥u¬O¦b¤@­Ó¥Ø¿ý¤W¥[¤J¤F¤@­Ó¡uÀɦW¢w§Ç¸¹¡v¹ï¡C·í±z§R°£¤@­ÓÀɮסA±z¥u¬O±q¥Ø¿ý¤¤§R°£¤F¤@­Óµw³s±µ¡C


2 ÀÉ®×Ãþ«¬

¨ì¥Ø«e¬°¤î¡A§Ú­ÌÁôÂäF¤@­Ó²Ó¸`¡GLinux ®Ö¤ß§â©Ò¦³ªF¦è³£¬Ý¦¨¬O¤@­ÓÀɮסC³o¥]¬A¥Ø¿ý©M¦UºØ³]³Æ¡A¥¦­Ì¥u¬O¤@¨Ç¯S®íªºÀÉ®×½}¤F¡C

±z¥i¯à°O±o¡Als -l Åã¥Üªº²Ä¤@­Ó¦r²Å¥Nªíªº¬O¸ÓÀɮתºÃþ«¬¡A¹ï©ó¤@­Ó´¶³qªºÀɮרӻ¡¡A³o­Ó¦r²Å´N¬O­Ó²³æªº -¡C¨ä¥¦¥i¯àªº¦r²Å¥]¬A¤@¤U¡G

d
¥Ø¿ý (directory)
l
²Å¸¹³s±µ (symbolic link)
b
¶ô³]³Æ (block device)
c
¦r²Å³]³Æ (character device)
p
¨ã¦WºÞ¹D (named pipe)
s
®M±µ¤f (socket)


1 ²Å¸¹³s±µ (Symbolic Links)

²Å¸¹³s±µ¡]¤]¥s ``symlinks'' ©Î³n³s±µ ``soft links''¡^¬O°£µw³s±µ¥H¥~ªº¥t¥~¤@ºØ³s±µ¡C¤@­Ó²Å¸¹³s±µ¬O­Ó¯S®íªºÀɮסA¥¦¡u«ü¦V¡v¥ô·N¤@­Ó¥[¸ü¤FªºÀɮרt²Î¤Wªº¤@­Óµw³s±µ¡C·í±zŪ¨ú¤@­Ó²Å¸¹³s±µªº¤º®e®É¡A¥¦µ¹¥X¥¦©Ò«ü¦VªºÀɮתº¤º®e¦Ó¤£¬O³o­Ó²Å¸¹³s±µ¥»¨­ªº¤º®e¡C¦]¬°¥Ø¿ý¡A³]³Æ¡A¥H¤Î¨ä¥¦ªº²Å¸¹³s±µ³£¬O¦UºØÃþ«¬ªºÀɮסA©Ò¥H±z¥i¥H¨Ï¥Î¤@­Ó²Å¸¹³s±µ«ü¦V©Ò¦³³o¨ÇÀɮסC

¦]¦¹¤@­Óµw³s±µ¬O¤@­ÓÀɮצWºÙ©M¤@­Ó¸ê®Æµ²ÂI§Ç¸¹¡C¤@­ÓÀɮרä¹ê¬O¤@­Ó¸ê®Æµ²ÂI¡G¦bºÏ¤ù¤Wªº¦a§}¡AÀÉ®×Ãþ«¬¡A¤¹³\¼Ò¦¡µ¥µ¥¡C¤@­Ó²Å¸¹³s±µ¬O¤@­Ó¸ê®Æµ²ÂI¡A¥¦ªº¤º®e¥]§t¤@­Óµw³s±µªº¦W¦r¡C¤@­Ó²Å¸¹³s±µ§â¤@­ÓÀɮצWºÙ©M¥t¥~¤@­ÓÀɮצWºÙ°t¹ï¡A¦Ó¤@­Óµw³s±µ§â¤@­ÓÀɮצWºÙ©M¤@­Ó¸ê®Æµ²ÂI°t¹ï¡C

©Ò¦³ªº«ü¦V¦P¤@­ÓÀɮתºµw³s±µ¦³¬Û¦Pªº§ÎºA¡A´N¬O»¡¥ô¦ó¤@­Ó¸ò¨ä¥Lªº³£¬O¤@¼Ëªº¡A¦pªG±z¦b¨ä¤¤¤@­Ó¤W­±¶i¦æ¾Þ§@¡A¨ä®ÄªG¸ò¦A¨ä¥¦ªº³s±µ¤W¶i¦æ¾Þ§@¬O¤@¼Ëªº¡C¦Ó¦b²Å¸¹³s±µ¤Wªº¾Þ§@¡A¦³®É­Ô·|¼vÅT³o­Ó²Å¸¹³s±µ¦Û¤vªº¸ê®Æµ²ÂI¡]§t¦³µw³s±µ¦W¦rªº¨º­Óµ²ÂI¡^ªº¸ê®Æ¡A¦³®É­Ô¼vÅTªº¬O¥¦«ü¦Vªº¨º­Óµw³s±µªº¤º®e¡C

²Å¸¹³s±µ©Mµw³s±µ¤§¶¡¦³´X­Ó­«­nªº¤À§O¡C

²Å¸¹³s±µ¥i¥H¸ó¶VÀɮרt²Î¡A¦]¬°¥¦­Ì§t¦³±q®Ú¥Ø¿ý¶}©lªº§¹¾ãªºÀɮצWºÙ¡A¦Ó©Ò¦³ªº§¹¾ãªºÀɮצWºÙ³£¬O°ß¤@ªº¡C¦ýµw³s±µ«ü¦Vªº¬O¸ê®Æµ²ÂI§Ç¸¹¡A¸ê®Æµ²ÂI§Ç¸¹¶È¶È¦b¤@­ÓÀɮרt²Î¤º¬O°ß¤@ªº¡A¦pªG¤£ª¾¹DÀɮרt²Î¡A«h³o­Ó§Ç¸¹´N·|¤£©ú½T¡C

±z¥i¥H«Ø¥ß¥Ø¿ýªº²Å¸¹³s±µ¡A¦ý¤£¯à«Ø¥ß¥Ø¿ýªºµw³s±µ¡C¨C­Ó¥Ø¿ý³£¦³¥¦ªºµw³s±µ¢w¢w¦b¥¦ªº¥À¥Ø¿ý¤¤¥H . ¦C¥X¡A¦b¥¦ªº©Ò¦³¤l¥Ø¿ý¤¤¥H .. ¦C¥X¢w¢w¦ý¬°¤F¦bÀɮרt²Î¤¤±j¨î¦¸§Ç¡A¤£¤¹³\¦³¨ä¥¦ªº¥Ø¿ýµw³s±µ¦s¦b¡C¦]¦Ó¤@­Ó¥Ø¿ý¤¤ªºÀɮ׼ƥص¥©ó¸Ó¥Ø¿ýªº©Ò¦³µw³s±µªº¼Æ¥Ø´î 2 ¡]´î¥h¥Ø¿ý¦W©M . ³s±µ¡^¡C¤ñ¸û²Å¸¹³s±µ©Mµw³s±µ¡A±z¥u¯à¸ò¤@­Ó¦s¦bªºÀɮ׫إߵw³s±µ¡A¦]¬°¥¦¥²»Ý«ü¦V¤@­Ó¸ê®Æµ²ÂI§Ç¸¹¡A¦ý±z¥i¥H§â²Å¸¹³s±µ³s¨ì¥ô¦óÀɮצWºÙ¡A¤£½×³o­ÓÀɮצWºÙªºÀɮ׬O§_¦s¦b¡C

§R°£¤@­Ó²Å¸¹³s±µ¥u§R°£³o­Ó³s±µ¡A³o¹ï©ó³s¨ìªº¨º­Ó¥Ø¼ÐÀɮרS¦³¼vÅT¡A¦Ó§R°£¤@­ÓÀɮתº³Ì«áªº¨º­Óµw³s±µ¡A«h·|§â¨º­ÓÀÉ®×§¹¥þ§R°£¡C

½d¨Ò¡G

cd; ln -s /tmp/me MyTmp
cd ¨ì±zªº®a¥Ø¿ý¡A©R¥O ln ªº -s ¿ï¶µ«Ø¥ß¤@­Ó²Å¸¹³s±µ¡C³oùثإߪº¬O¤@­Ó¥s MyTmp ªºÀɮ׫ü¦VÀɮצWºÙ /tmp/me¡C

ls -l MyTmp
¿é¥Xµ²ªGÀ³¸ÓÃþ¦ü¡G

lrwxrwxrwx 1 havoc havoc 7 Dec 6 12:50 MyTmp -> /tmp/me 
·íµM¤é´Á©M¥Î¤á¢A¸sÅé¦W¦b±zªº¨t²Î¤W¬O¤£¤@¼Ëªº¡Cª`·NÀÉ®×Ãþ§O¬O l¡A«ü¥ÜµÛ³o¬O¤@­Ó²Å¸¹³s±µ¡A¥t¥~ª`·N¥¦ªº³\¥iª¬ºA¡G²Å¸¹³s±µªº³\¥iª¬ºAÁ`¬O³o¼Ëªº¡C¦pªG±z¹Á¸Õ§ïÅܤ@­Ó²Å¸¹³s±µªºª¬ºA¡]¨Ï¥Î chmod ©R¥O¡^¡A±z§ïÅܪº¬O¥¦©Ò«ü¦Vªº¨º­ÓÀɮתºª¬ºA¡C

chmod 700 MyTmp
±z·|±o¨ì No such file or directory¡]¨S¦³³o­ÓÀɮשΥؿý¡^ªº¿ù»~°T®§¡A³o¬O¦]¬°ÀÉ®× /tmp/me ¨Ã¤£¦s¦b¡AÁöµM±z¤´µM¥i¥H´N³o»ò«Ø¥ß¤@­Ó²Å¸¹³s±µ¡C

mkdir /tmp/me
«Ø¥ß¥Ø¿ý /tmp/me¡C

chmod 700 MyTmp
³o­Ó©R¥O²{¦bÀ³¸Ó¥i¥H¦¨¥\¡C

touch MyTmp/myfile
¦b MyTmp ¤U«Ø¥ß¤@­ÓÀɮסC

ls /tmp/me
³o­ÓÀɮרä¹ê¬O¦b¥Ø¿ý /tmp/me ¤U«Ø¥ßªº¡C

rm MyTmp
§R°£³o­Ó²Å¸¹³s±µ¡A¥D­n³o¥u§R°£¤F³s±µ¡A¦Ó¤£¬O¨º­Ó¥¦«ü¦Vªº¥Ø¿ý¡A©Ò¥H¨Ï¥Îªº¬O rm ¦Ó¤£¬O rmdir¡]rmdir ¥Î¨Ó§R°£¥Ø¿ý¡^¡C

rm /tmp/me/myfile; rmdir /tmp/me
²{¦b±z¦Û¤v²M±½¤@¤U¡C

2 ³]³ÆÀÉ®× (Device Files)

³]³ÆÀɮ׫ü¦V±zªº¨t²Îùتºª«²z³]³Æ©ÎªÌµêÀÀ³]³Æ¡A¨Ò¦p±zªºµwºÐ¡BÅã¥d¡B¿Ã¹õ©MÁä½L¡CµêÀÀ³]³Æ«h¥]¬A±±¨î¥x (console)¡A¥H /dev/console ¨Óªí¥Ü¡C

³]³Æ¤À¬°¨âºØ¡G¦r²Å¦¡ (character) ©M¶ô¦¡ (block)¡C¦r²Å³]³Æ¥i¥H¨C¦¸³X°Ý¤@­Ó¦r²Å¡A°O¦í±q³oºØ³]³Æ¤¤¥i¥HŪ¨ú©M¼g¤Jªº³Ì¤p³æ¦ì¬O¤@­Ó¦r²Å¡]¤@­Ó¦ì¤¸²Õ¡^¡C

¶ô³]³Æªº¦s¨ú¥²»Ý¥H¤@­Ó¤jªº³æ¦ì¶i¦æ¡A§Ú­Ì¥s§@¡¥¶ô¡¦¡C¤@¶ôùØ¥]§t¤F¤@¨Ç¦r²Å¡CµwºÐ´N¬O¤@­Ó¶ô³]³Æ¡C

±z¥i¥H¹³¹ï¨ä¥¦Àɮפ@¼Ë¹ï³]³ÆÀÉ®×¶i¦æÅª¼g¡A¤£¹L³o¨Ç³]³ÆÀÉ®×ùØ¥i¯à§t¦³¤@¨Ç±z®Ú¥»¬Ý¤£À´ªº¶Ã¤C¤KÁVªºªF¦è¡C¤@¯ë¨Ó»¡©¹³o¨ÇÀÉ®×ùØÀH«K¼g¤J¸ê®Æ¤£¬O¤°»ò¦n¨Æ¨à¡A¦ý¤S¬O«o·|¦³¥Î¡A¨Ò¦p¡A±z¥i¥H§â¤@­Ó postscript Àɮת½±µ¶É­Ë¶i¦Cªí¾÷³]³ÆÀÉ®× /dev/lp0 ©ÎªÌ§â¤@¨Ç½Õ¨î¸Ñ½Õ¾¹ (modem) «ü¥O¶Çµ¹¬ÛÀ³ªº¦ê³s°ðªº³]³ÆÀɮסC

1 /dev/null

/dev/null ¬O¤@­Ó¯S®íªº³]³ÆÀɮסA±z¼g¤J¥¦ªº¥ô¦óªF¦è³£·|³Q¥á±ó¡C¦pªG±z¤£·Q­n¤°»ò¤F¡A§â¥¦¥µ¶i /dev/null¡C¥¦°ò¥»¤W´N¬O­ÓµL©³²`²W¡A¦pªG±z±q /dev/null ùØÅª¤J¡A±z¥ß¨è·|±o¨ì¤@­ÓÀÉ®×µ²§ô (EOF : end-of-file) ¦r²Å¡C/dev/zero ¬O¥t¤@­ÓÃþ¦üªº³]³ÆÀɮסA¥u¬O¦pªG±z±q³oùØÅª¨ú¡A±z±o¨ìªº¬O¤@­Ó \0 ¦r²Å¡]³o¬O¤@­ÓªÅ (null) ¦r²Å¡A¥Nªí¤°»ò¤]¤£¬O¡A»P¼Æ¦r 0 ¬O¤£¦Pªº¡^¡C

3 ¨ã¦WºÞ¹D (Named Pipes, FIFOs)

¤@­ÓºÞ¹D¬O¤@­Ó§@¥Î¶H­ÓºÞ¹DªºÀɮסC±z©ñªF¦è¶i³o­ÓÀɮסA±z©ñªºªF¦è±qÀɮתº¥t¤@ºÝ¥X¨Ó¡A¦]¦¹¥¦¤]¥s FIFO¡]First-In-First-Out ÁY¼g¡A§Y¥ý¤J¥ý¥X¡^¡A±z©ñ¶i¥hªº²Ä¤@­ÓªF¦è¤]¬O³Ì¥ý±q¥t¥~¤@ºÝ¥X¨Óªº¨º­Ó¡C

¦pªG¹ï¤@­Ó¨ã¦WªººÞ¹D¶i¦æ¼g¤J¡A³o­Ó¼g¤Jªº¶iµ{¤£¨ì©Ò¦³¼g¤Jªº¸ê®Æ³Q±qºÞ¹D¤¤³£Åª¨«¤F¬O¤£·|µ²§ôªº¡C¦pªG±z±q¤@­ÓºÞ¹D¤¤Åª¨ú¡AŪ¨ú¶iµ{·|¤@ª½µ¥¨ìŪ¨ì¤@¨ÇªF¦è¥H«á¤~µ²§ô¡CºÞ¹Dªº¤j¤pÁ`¬O 0¡G¥¦¤£Àx¦s¥ô¦ó¸ê®Æ¡A¥¦¥u¬O§â¨â­Ó¶iµ{³s±µ°_¨Ó¡A´N¹³ shell ùتº | ¤@¼Ë¡C¦ý¬O¦]¬°³o­ÓºÞ¹D¬O¦³¦W¦rªº¡A©Ò¥H¨º¨â­Ó³Q³sªº¶iµ{¤£»Ý­nÁ`¦P¤@­Ó©R¥O¦æ¥X²{¡A¥¦­Ì¬Æ¦Ü¤£»Ý­n¬OÄÝ©ó¦P¤@­Ó¥Î¤áªº¡C

±z¥i¥H¸Õ¤@¤U³o­Ó¨Ò¤l¡G

cd; mkfifo mypipe
°µ¤@­ÓºÞ¹D¡C

echo "hello" > mypipe &
¥Î echo §â ``hello'' ¼g¤JºÞ¹D mypipe¡A¦P®É§â³o­Ó¶iµ{©ñ¨ì­I´º¡Cª`·N³o­Ó¶iµ{¦b­I´º¨Ã¤£ªð¦^¡A¦]¬°¥¦¦bµ¥«Ý¦³¤H±q¥¦ªººÞ¹D§â¸ê®ÆÅª¥X¡C

cat mypipe
³o®É­Ô¡Aecho ªº¶iµ{±N·|ªð¦^¡A¦]¬° cat §âºÞ¹Dùتº¸ê®Æ³£Åª¤F¡A¦Ó cat ©R¥O·|¦L¥X³æµü hello¡C

rm mypipe
±z¥i¥H¥Î¤@¯ë¤è¦¡§R°£³o­ÓºÞ¹D¡C

4 ®M±µ¤f (Sockets)

®M±µ¤f (sockets) Ãþ¦ü©óºÞ¹D (pipes) ¦ý¥¦¬O¦bºô¸ô¤W­±¤u§@ªº¡C±z¨ì¹q¸£´N¬O¾a¥¦¨Ó°µºô¸ô³B²zªº¡C±z¥i¯àÅ¥»¡¹L ``Winsock''¡A¨º¬O Windows ªº®M±µ¤f¡C

§Ú­Ì¦b³oùؤ£²`¤J½Í¦³Ãö®M±µ¤f¡A¦]¬°¦pªG±z¤£¼gµ{¦¡¡A±z¤£·|¥Î¨ì¥¦¡A¦ý¦pªG±z¬Ý¨ì±z¨t²Îùئ³­ÓÀÉ®×Ãþ«¬¬O s¡A±zª¾¹D¥¦¬O¤°»ò´N¦æ¤F¡C

3 proc Àɮרt²Î (The proc Filesystem)

Linux ªº®Ö¤ß·|«Ø¥ß¤@­Ó¯S§OªºÀɮרt²Î¡A¦b Debian ¨t²Î¤W¡A³o­ÓÀɮרt²Î¥[¸ü©ó /proc ¥Ø¿ý¤U¡C³o¬O¤@­Ó¡u°°Àɮרt²Î¡v (``pseudo-filesystem'')¡A¦]¬°¥¦¤£¦b¥ô¦ó¤@­Óª«²z³]³Æ¤W¡C

proc Àɮרt²Î¥]§t¨t²Î©M°õ¦æ¤¤ªº¶iµ{ªº¸ê®Æ¡C/proc ¤Uªº¡uÀɮסv¡A¦³¨Ç¬O¥i¥HŪÀ´ªºÂ²³æ¤å¦r®æ¦¡¡]¸ÕµÛÁä¤J cat /proc/meminfo ©Î cat /proc/cpuinfo¡^¡A¥t¥~¤@¨Ç¬O¤@¨Ç¯«¯µªº¼Æ¦r²Õ¦X¡C¨t²Î·|¦³¤@¨Ç¤u¨ã¥i¥HŪ¨ú³o¨Ç¸ê®Æ¡AµM«á½Ķ¦¨¤@¨Ç±z¬ÝªºÀ´ªºªF¦è¡C

¦³¨Ç¤H·í¬Ý¨ì¤@­Ó¯S§OªºÀɮ׮ɱ`·|ı±oºò±i¡A´N¬O /proc/kcore ÀɮסC³o­ÓÀɮפ@¯ë¨Ó»¡³£«Ü¤j¡A¥¦¬O¥Î¨Ó¹ï®Ö¤ß¶i¦æ°£¿ù¥Îªº¡C¥¦¨ä¹ê®Ú¥»¤£¦s¦b±zªºª«²z³]³ÆùØ¡]°O¦í /proc ¤U¬O¤@­Ó°°Àɮרt²Î¡^¡A©Ò¥H¥Î¤£µÛ¾á¤ß¥¦ªº¤j¤p¡C

¦pªG±z·Qª¾¹D©Ò¦³Ãö©ó /proc ªº¸ê®Æ¡A°Ñ¬Ý¥¦ªº¤â¥U¡AÁä¤Jman 5 proc¡C

4 ¤j³W¼Ò½Æ»s

¦³®É­Ô±z·|­n§â¤@­Ó¥Ø¿ý½Æ»s (copy) ¨ì¥t¥~¤@­Ó¦a¤è¡A¥i¯à¬O¦]¬°±z¥[¤F¤@­Ó·sµwºÐ¡A±z­n§â±zªº /usr/local ½Æ»s¨ì¥¦¤W­±¡C¦³´X­Ó¤èªk³£¥i¥H¹F¨ì³o­Ó¥Øªº¡C

²Ä¤@­Ó¬O¥Î½Æ»s©R¥O cp¡C©R¥O cp -a §i¶D cp ¦b½Æ»sªº®É­Ô¡AºÉ¶q«O¦s¥i¯à«O¦sªº¸ê®Æ¡]³o­Ó a ¦³ all ªº·N«ä¡^¡C¦]¦¹¡A±z¥i¥H¥Î

cp -a /usr/local /destination
¦ý¬O¦³¨ÇªF¦è§Y¨Ï cp -a ¤]¤£¯à«O¦s¤U¨Ó[*]¡C¦]¦¹¡A¶i¦æ¤j³W¼Ò½Æ»s¤u§@ªº³Ì¦n¤èªk¬O¨Ï¥Î¨â­Ó³s¦b¤@°_ªº tar ©R¥O¡A¹³¬O¡G
tar -cSpf - /usr/local | tar -xvSpf - -C /destination
²Ä¤@­Ó tar ©R¥O·|§â·Q­nªº¥Ø¿ýÂkÀÉ¡AµM«á³q¹LºÞ¹D§â¥¦°eµ¹²Ä¤G­Ó tar ©R¥O¡C²Ä¤G­Ó©R¥O§âÂk¦nªºÀɸѶ}¡A©ñ¨ì -C ©Ò«ü©wªº¥Øªº¦a¡C


John Goerzen / Ossama Othman / Debian ¤¤¤å­p¹º