UNIX §@·~Àô¹Ò¬[ºc
UNIX ªº¯S¦â¡G¤å¦r¤¶±¡A¦h¤H¦h¤u¡Aºô¸ô§@·~
¤å¦r¤¶±ªº·N«ä,¬O»¡¨Ï¥ÎªÌ¥Dn¹ï UNIX ¨t²Î©Ò¤U¹Fªº«ü¥O¬OÂǥѤå¦r¤Æªº«ü¥O²Å¸¹¡C(UNIX ©³¤Uªº X-window ®à±¤WÁöµM¥i¨£¨ì¤@¨Ç¹Ï¥Ü¡A¦ý¨º¥Dn¬O¥Î¨Óµo°ÊÀ³¥Î³nÅé¡A»P¹ï§@·~¨t²Î¤U¥O¤´¦³¼h¦¸¤Wªº¤£¦P) Unix ªº¤å¦r«ü¥O¡A³£¬O¤@¨Ç«ü¥O^¤åªºÁY¼g¡A¥H¤è«K´î¤ÖºVÀ»Áä½Lªº¦¸¼Æ¡C¦p cp (copy)¡Bls (list) µ¥¡C(¨t¤W¶R¤F¤£¿ùªº UNIX «ü¥OÃã¨å¡A¦bpºâ¹êÅç«Çºô¶¤W¡A½Ð¦h¦h§Q¥Î¡C)
¦h¤H¦h¤u¡A¬O«ü¦P¤@®É¶¡¨t²Î¥i¥H¦³¦h¦ì¨Ï¥ÎªÌ¨Ï¥Î¡A¥B¶i¦æªº¤u§@¥i¥H¬O¦h¶µ¤u§@¦P®É¶i¦æ¡C¦³¨Ç§@·~¨t²Î¬O³æ¤H³æ¤u¡A¦p¦´Áªº DOS¡A¦³¨Ç¬O³æ¤H¦h¤u¡A¦p Windows¡A¤@ӨϥΪ̡A¥i¥H¤@Ãä¼½©ñ¼vµ´CÅé¡A¤@Ãä³B²z¤å®Ñ¡C¦h¤u¬O²{¥N§@·~¨t²Î°_½Xªºn¨D¡A¦]¬°µwÅé®Ä¯à°÷¦n¡A¤£³o¼Ë°µ«h¤u§@·|«Ü¨S¦³®Ä²v (¹L¥hªº¹q¸£µwÅé«h¬O¤£°÷¤j¨ì¾A¦X°µ¦h¤u)¡F¦Ó¦h¤H«h¬O¹q¸£¨t²În°µ¬°¤½¥Î¸ê·½«h§Ú̬°§@·~¨t²Îªº°ò¥»n¨D¡C¹L¥h¶] UNIX ªº¤j¹q¸£¡A³£¤£¬O¡©Ó¤H¡ª¹q¸£¡C
µù¡G¦h¤u (multi-tasking) ¬O§Q¥Î CPU ¤À®É (time-sharing) ªº§@ªk¹F¨ìªº¡A¤]´N¬O»¡¡A¹q¸£ªº³B²z¾¹¦b¬Y¤@¤p¬q®É¶¡´À¬YÓ¤u§@¹B§@¡A¦Ó¤U¤@Ó¤p®É¬q¤S´À¥t¤@Óµ{¦¡¹B§@¡A¦ý¥Ñ©ó CPU °Ê§@«Ü§Ö¡A¦]¦¹¨Ï¥ÎªÌ (¾Þ§@ªÌ) ¤£®e©ö·P¨ü¨ì¹q¸£¤ÏÀ³®É¶¡¦³©Ò©µ¿ð¡C
UNIX §@·~¨t²Îªº³]p¤@¶}©l´N¥Hºô¸ô§@·~ªº¥XµoÂI°µ¦Ò¶q¡A¦]¦¹¦³§¹¾ãªººô¸ôÀô¹Ò¤Î¥\¯à¡C ³z¹Lºô¸ô¸ê·½¡A°£¤F¼Ð·Ç«ü¥O¥i¨Ñ¨Ï¥ÎªÌ¦b¨ú»·ºÝÀɮפζi¤J»·ºÝ¨t²Î¥~ (¦p ftp¡Atelnet)¡A¥t¦³¾ãÅéºô¸ôªº¬[ºc¡A¥i¥H§â¨Ó¦Û¤£¦P¥D¾÷ªº¸ê·½¥i¥H¾ã¦X¦b¤@°_ (¦p NFS¡ANIS) ¡C
Shell : §â§@·~¨t²Î¥]°_¨Óªº "´ß¤l"
¨Ï¥ÎªÌ¦bµn¤J¨t²Î«á¡A¨Ï¥ÎªÌ»P§@·~¨t²Î¤§¶¡ªº¤¶±¡A³z¹L¹ï shell ¤U«ü¥O¡A§@·~¨t²Î·|°õ¦æ¨Ï¥ÎªÌ¥æ¥Iªº¤u§@¡C
UNIX ªø®É¶¡ªºµo®i¡A²£¥Í¥X¤£¦Pªº shell¡A¨ä¹ê¦b¤£¦Pªº shell ¤U¡A©Ò¦³ UNIX ªº«ü¥O¤´¬O§¹¥þ¤@¼Ëªº¡A¬G¤@¯ëªº¨Ï¥ÎªÌ¾Þ§@°Ê§@¤£·|¨ü¨ì¥ô¦ó¼vÅT¡C¤£¦Pªº shell ¥u¦³¦b³]©wÀô¹ÒÅܼƥH¤Î¦Û°Ê¤Æªº«ü¥O¦³©Ò¤£¦P¡A¥H UNIX «ü¥O°t¦XÀô¹ÒÅܼƤΦU shell ±M¦³ªº±±¨î«ü¥O©Òºc¦¨ªº¦Û°Ê¤Æµ{¦¡¡A¥s°µ shell script¡C
°ò¥» UNIX «ü¥O¤@¼Ë¡AÀô¹ÒÅܼƪº³]ªk¤£¦P¡A¦]¦¹¼g script ªº»yªk´N¦³¤£¦P¡C§Y¨Ï¬O±M®a¤@¯ë¤]¥u»Ýn·|¼g¤@ºØ§Y¥i¡A¼g¥X¨Óªº script ¬O¯Â¤å¾Ç®æ¦¡¡A¦A°õ¦æ«e¥ýn chmod u+x filename ¦¨¥i°õ¦æ¡C¬°¤F¬Ù¥h¥Î script «en¥ý¶i¤J¸ÓºØ shell ªº³Â·Ð¡A¥i¥H¦b script ªº²Ä¤@¦æ¼g¤J #!/bin/tcsh ¡AÁöµM±q script ªº»yªk¦Ó¨¥¡A¤Z¬O¤@¦æªº«e±¦³¤«¦r²Å¸¹ hash mark, # ªº¡A³£·í§@¬Oµù¸Ñ¥Î¦Ó¤£¬O¦³®Äªº«ü¥O¡A¦ý¦b shell script ³oùجO¯S®í¥Îªk¡A¥Nªí¶]³oÓ©Ò script ®É§@·~¨t²Î©ÒÀ³¸Ó±Ä¨úªº shell¡C
¥H "UNIX shell script" ¬°ÃöÁä¦r¨ìºô¸ô¤W§ä§ä¡A·|¦³«Ü¦h±Ð§÷¨Ñ¤JªùªÌ¾Ç²ß¡A¨Ò¦p¡G
SHELL SCRIPTING ±Ð¾Ç»P¤ß±o http://www.mgt.ncu.edu.tw/~dino/script/
shellªº¤¶²Ð¤Î shell script programming http://www.mgt.ncu.edu.tw/~dino/unix/
UNIX Shell Programming (Borne Shell or /bin/sh) http://nmc.nchu.edu.tw/linux/shell_lspace.htm
ºô¸ô¹A¤Ò UNIX C Shell http://netlab.cse.yzu.edu.tw/~statue/freebsd/docs/csh/
²©öªº Shell Scripts
http://hw-driver-bal.nctu.cc:52833/pub/slime/tutorial/20060312-08.pdf
Àɮרt²Î»P¹êÅé¶J¦s¸Ë¸m
¥Ø¿ý¾ð
¤j®a¹ï©ó¾ðªKª¬¥Ø¿ýµ²ºcÀ³¸Ó¬O¼ô±xªº¡A¤Z¬O·Qn¥H²M·¡¤ÀÃþ¬°¥Øªº¨Ó¦s©ñª«¥óªº³]p¡A¦ÛµM·|¥Î¨ì¾ðª¬µ²ºc¡C
®Ú¥Ø¿ý¡A¾ðª¬¥Ø¿ýªº³Ì³»ºÝ
/¡A³oӲŸ¹¥s±×½u¡]slash¡^¡A¤£n»P DOS ±`¥Îªº¥t¦³¤@²Å¸¹¤Ï±×½u \ ¡]back-slash¡^²V²c¡C
±¾¸ü¹êÅé¶J¦s¸Ë¸m¦¨¬°¤@ӥؿý
¨Ò¦p§A¦³²Ä¤GÁû IDE µwºÐ¡A¬G¦b Linux ¤Uªº¸Ë¸mÃѧO¥N¸¹¬O /dev/hdb¡AYùر¦³¨âÓ¤À³Î°Ï /dev/hdb1 ¤Î /dev/hdb2¡A¦Ó§A·QnÅý /dev/hdb1 ¨ä¤Wªº¸ê®Æ·Q¥X²{¦b /my_2nd_drive ³oӥؿý¤U¡A«h§A¶·n¥HºÞ²zªÌÅv¥ý¦b®Ú¥Ø¿ý¥Î mkdir «ü¥O·s«Ø /my_2nd_drive ¤§ªÅ¥Ø¿ý¦W¡AµM«á¤U mount /dev/hdb1 /my_2nd_drive «ü¥O¡C
ºô¸ôÀɮרt²Î¡]Network File System¡ANFS¡^
¨ä¹ê¡A³z¹Lºô¸ôªºÁpô¡A¹êÅé¶J¦s¸Ë¸m¤]¤£¤@©wn¦b¥»¾÷¤W¡C¥ÑºÞ²zªÌ¤U mount 123.45.67.123:/souce_dir /target_dir ´N¥i¥H§â»·ºÝ¥t¤@¥x IP ¬O 123.45.67.123 ³o¥x¹q¸£ªº /source_dir ¥Ø¿ý±¾¦b¥»¦aºÝªº /target_dir ¥Ø¿ý©³¤U¡]·íµM¡A»·ºÝ¶·¥ý§â¤¹³\¥»¦aºÝ±¾¸ü¯S©w¥Ø¿ýªºÅv¦b /etc/exportfs Àɤ¤³]©w°_¨Ó¡^¡C
±`¨£ªº¨t²Î¥Ø¿ý¤Î¨ä¥\¯à
/etc
³\¦h¨t²Î³]©w¦s©ñªº¦a¤è¡A¹³¨Ï¥ÎªÌ²M³æ»P±K½X¡]passwd »P shadow¡^¡B±`¾nµ{¦¡ deamon ²Õ ºA
/etc/initd.d
±`¾nªA°Èµ{¦¡ deamon ©ñ¸m¤§³B¡A¨t²ÎºÞ²zªÌ¦³®É¶·±Ò°Ê¡B°±¤î©Î«·s±Ò°Ê±`¾nªA°È®É¡A´Nn¥Î¨ì©ñ¦b³oùتº script¡C ¨Ò¦p¡A«·s±Ò°Êºô¶ªA°È®É¡An¤U /etc/initd.d/httpd restart ¡C
/etc/rc.d
¤@Ó§¹¾ãªº UNIX §@·~¨t²Î¦w¸Ë¥]§t¤F´XÓ¥i¥H¹B¦æªº¼Ò¦¡¡A¹³¬O³æ¤HµLºô¸ô©Î¦h¤Hºô¸ô¡]³£¤@©w¬O¦h¤u¦h¤u¡^¡A©Î¦h¤H X-µøµ¡µ¥¡C¤£¦Pªº¹B¦æ¼Ò¦¡·|¦³¤£¦Pªº±`¾nµ{¦¡ªA°È¡A¨ä³]©w¤À§O¦s¦b¦¹¥Ø¿ý¤¤¡C¥t¥~¡A¶}¾÷«á¤@©wn±Ò°Êªºµ{¦¡¤]³]©w¦b³oùØ¡A¦p rc.local¡C
/etc/httpd/
©ñ¸mºô¶¦øªA¾¹¨ç¦¡®w¡]/etc/httpd/modules¡^¤Î³]©w¡]/etc/httpd/conf¡^ªº¥Ø¿ý¡A¨ä¤¤/etc/httpd/conf/httpd.conf Àɤºªº DocumentRoot ³]©w¥i«ü©wºô¶ÂsÄý¾¹«ü¨ì³o¥x¦øªA¾¹®É¡A¨ä¹ïÀ³ªº¸ê®ÆªÅ¶¡¬O±q¨º¤@ӥؿý¶}©lªº¡A¤]´N¬Oºô¶ÀɮתŶ¡ªº®Ú¥Ø¿ý¦ì¸m¡C¡]§ï¹L«á°O±o«·s±Ò°Êºô¶±`¾nªA°È¤~·|¥Í®Ä¡C¡^
/lib¡B/usr/lib¡B/usr/local/lib¡B/usr/X11R6/lib
¦s©ñ¨t²Î°Æµ{¦¡®w¡]¤S¥s¨ç¦¡®w library¡^ªº¹w³]¸ô®|¡CùرªºÀɮצW¦r³£ªø±o¹³ lib***.a ©Î lib***.so ³oºØ¼Ë¤l¡C§Ú̼gªºµ{¦¡n¬O¦³¥Î¨ì³o¨Ç¨ç¦¡®wùتºªF¦è¡A«h½sĶ (compile) ®É´Nn¦h¤U -l*** °Ñ¼Æ¡]ª`·N¥Î -l ®É¡A¨ç¦¡®w¦WÀY§Àªº lib ¤Î .a ©Î .so ¤@©wn²¤¥h¡AY¤£·Q¨Ï¥Î -l¡A¨ä¹êª½±µµ¹¨ç¦¡®w¥þ¦W¡A¬Æ¦Ü§¹¾ã¸ô®|¥þ¦W¤]¥i¥H¡^
¨t²Î¤Î½sĶ¾¹¤@¯ë·|©w /lib¡B/usr/lib ¬°¹w³]·j´M¨ç¦¡®wªº¸ô®|¡AY°Æµ{¦¡®w¦b¨ä¥L¸ô®|¤U¡A«h¥i³]LD_LIBRARY_PATH Àô¹ÒÅܼơ]¥H C shell csh ©Î tcsh¬°¨Ò¡A¤U setenv LD_LIBRARY_PATH your_library_full_path¡^¨Ó«ü©w¡C
/usr/X11R6/lib ±M©ñ»P X-µøµ¡¦³Ãöªº¹Ï§Î¨ç¦¡¡A§Ú̽ҵ{¤¤¨Ï¥Î pgplot ®É·|¥Î¨ì¡C¨Ò¦p f77 -L/usr/X11R6/lib -lX11 ...
/var
/var ©³¤U±`©ñ¤@¨Ç¨t²ÎªA°È©Ò»Ýn¼È¦s¤Î°O¿ýªºÀÉ®×
/var/yp
NIS ¡]¦W yellow page¡^µ{¦¡¤Î³]©wªº Maikefile ¦s¦b³B¡A±q¸Ó Makefile ¤º¥i§ä¨ì±N¦@¨É¤§±K½XÀɪº¦ì¸m¡A¦³»Ýn·s¼W user ¤§ ID »P±K½X®É¡A¥u¶·¥HºÞ²zªÌ¨¥÷¥ý½s¿è¸Ó¦@¨É±K½XÀÉ¡A¤§«á¦b /var/yp ¤U¥´ make §Y¥i¡C
/var/www/html
RedHat ©ñºô¶ªº¹w³]¥Ø¿ý¡A¤]´N¬O "http://¾÷¾¹¦W" ªº°_ÂI¡A¥Ñ /etc/httpd/conf/httpd.conf «ü©w¡A¤]¥i¥H±q¨ä¤¤ªº DocumentRoot §ó§ï¨ä¥Ø¿ý¡C
/var/spool
¦C¦L¡B¶l¥ó«H½cµ¥»Ýn¥ý±Æ¶¤¦A¾ã§å§@·~ªºªA°È¡A¨ä¼È¦sÀÉ¥ý©ñ¦b³oùØ
/var/log
¨t²Î¹B§@¤¤¦U³¡¤À³£·|²£¥Í¬ö¿ýÀÉ¡A¦p¤°»ò¤H¶i¨Ó¹L wtmp ¡]¤@¯ë¨Ï¥ÎªÌ¥Î last «ü¥O¨Ó¬Ý¡^¡B¹ï¥~©Î¦Û¥~¶Ç¶i©Î¶Ç¥X¤°»òÀÉ®× xferlog¡B¶}¾÷ªº¸Ë¸m±Ò°Ê¸ê°T¡C
/usr/local
¤@Ó©ñ¸m±`¥Î¤§¤½¥Î¦@µ{¦¡ªº¥Ø¿ý
/opt
¥t¤@Ó©ñ¸m±`¥Î¤§¤½¥Î¦@µ{¦¡ªº¥Ø¿ý
/home ©Î /usr/people
¤@¯ë¨Ï¥ÎªÌªº home ¥Ø¿ý¡A¥i©ñ¦U¨Ï¥ÎªÌ¦Û¤wªºªF¦è¡C¤£¦Pªº¾÷¾¹©Î¾÷ºc¥i³]¬°¤£¦P¡A¹³§ÚÌpºâª«²z¹êÅç«Ç´N³]¦b /NFS_home/ ¤§¤U¡C ¤j®a°O±o¦³n«O¯dªºªF¦èn³Æ¥÷°_¨Ó¡C
/tmp
¼È¦s¥Ø¿ý¡AùØÀYªºÀÉ®×·|³Q©w®É¦Û°Ê²M°£¡]¦ý¥Ø¿ý´ß¤l¤£²M°£·|¯dµÛ¡An¤p¤ß§O»~§P¡^¡C/tmp ¦pªGº¡ªº¸Ü¡A¦³¨Çµ{¦¡¡A¹³ vi¡A·|¨S¿ìªk¹B§@¡C
/dev
¸Ë¸mªºÃѧO¥N¸¹Á`¥Ø¿ý
/mnt
³\¦h¥~±µ¸Ë¸mªº±¾¸üÂI¡A¹³¬O USB ÀH¨ºÐ
/bin¡B/usr/bin¡B/usr/sbin¡B/usr/local/bin
©ñ¸m«Ü¦h«ü¥O¡]¥»¨´N¬O¤pµ{¦¡¡^ªº¦a¤è
¤]¥i¥H¨Ï¥Î¹Ï§Î¤¶±¨Ó»{ÃÑ UNIX Àɮ׬[ºc («Ý´Ó¹Ï)
´XÓ§äªF¦è¡B§ä«ü¥Oªº«ü¥O
find
whereis
which
env
Âà¸ü¤å³¹¡GUNIX ¦w¥þºc¬[ªº¤EÂI¸gÅç