§Ú̦b«e±ªº
¤°»ò¬O Linux ¨ºÓ³¹¸`·í¤¤¡A´£¨ì¤F¡A
ºÞ²z¾ãÓµwÅ骺¨ä¹ê¬O®Ö¤ß (kernel)¡A¨º§Ṳ́@¯ë¨Ï¥ÎªÌ (user) «h¬O¥H shell ¨Ó¸ò®Ö¤ß·¾³q¡ã
Åý®Ö¤ß¹F¨ì§Ú̩ҷQn¹F¨ìªº¤u§@¥Øªº¡C¨º»ò¨t²Î¦³¦h¤Ö shell ¥i¥Î©O¡H
¬°¤°»ò§ÚÌn¨Ï¥Î bash °Ú¡H¡I©³¤U¤À§O¨Ó½Í¤@½Í³á¡I
¤°»ò¬O Shell¡H
³oÀ³¸Ó¬OÓÆZ¦³½ìªº¸ÜÃD¡G¡y
¤°»ò¬O Shell
¡H¡z¬Û«H¥unºN¹L¹q¸£¡A¹ï©ó§@·~¨t²Î ( ¤£½×¬O Linux ¡B Unix ©ÎªÌ¬O Windows
) ¦³ÂI·§©ÀªºªB¤Í̤j¦hÅ¥¹L³oÓ¦Wµü¡A¦]¬°¥un¦³¡y§@·~¨t²Î¡z¨º»ò´NÂ÷¤£¶}
Shell ³oÓªF¦è¡C¤£¹L¡A¦b°Q½× Shell ¤§«e¡A§ÚÌ¥ý¨ÓÁA¸Ñ¤@¤U¹q¸£ªº¹B§@ª¬ªp§a¡I
Á|Ó¨Ò¤l¨Ó»¡¡G
·í§An¹q¸£¶Ç¿é¥X¨Ó¡yµ¼Ö¡zªº®ÉÔ¡A§Aªº¹q¸£»Ýn¤°»òªF¦è©O¡H
- ·íµM´N¬O»Ýn§AªºµwÅ馳¡yµ®Ä¥d´¹¤ù¡z³oÓµwÅé°t³Æ¡A§_«h«ç»ò·|¦³Ánµ¡F
- §@·~¨t²Îªº®Ö¤ß¥i¥H¤ä´©³oÓ´¹¤ù²Õ¡A·íµMÁÙ»Ýn´£¨Ñ´¹¤ùªºÅX°Êµ{¦¡Åo¡F
- »Ýn¨Ï¥ÎªÌ¡]´N¬O§A¡^¿é¤Jµo¥ÍÁnµªº«ü¥OÅo¡I
³o´N¬O°ò¥»ªº¤@Ó¿é¥XÁnµªº»Ýnªº¨BÆJ¡I¨º»ò¤]´N¬O»¡¡A§A¥²¶·n¡y¿é¤J¡z¤@Ó«ü¥O¤§«á¡A
¡yµwÅé¡z¤~·|³z¹L§A¤U¹Fªº«ü¥O¨Ó¤u§@¡I¼K¼K¡I¨º»òµwÅé¦p¦óª¾¹D§A¤U¹Fªº«ü¥O©O¡H¨º´N¬O
kernel ¡]®Ö¤ß¡^ªº±±¨î¤u§@¤F¡IÁA¸Ñ¤F¶Ü¡H¨S¿ù¡I¤]´N¬O»¡¡A
§ÚÌ¥²¶·n³z¹L¡y
Shell ¡z±N§ÚÌ¿é¤Jªº«ü¥O»P Kernel ·¾³q¡A¦nÅý Kernel ¥i¥H±±¨îµwÅé¨Ó¥¿½TµL»~ªº¤u§@¡I
°ò¥»¤W¡A§ÚÌ¥i¥H³z¹L©³¤U³o¨â±i¹Ï¨Ó»¡©ú¤@¤U¡G

¹Ï¤@¡BµwÅé¡B®Ö¤ß»P¨Ï¥ÎªÌªº¬ÛÃö©Ê¹Ï¥Ü

¹Ï¤G¡BµwÅé¡B®Ö¤ß»P¨Ï¥ÎªÌªº¬ÛÃö©Ê¹Ï¥Ü
°ò¥»¤W¡A´À§Ṳ́u§@ªº¬O¡yµwÅé¡z¡A¦Ó±±¨îµwÅ骺¬O¡y®Ö¤ß¡z¡A¦A¨Ó¡A§Ų́ϥΪ̤D¬O§Q¥Î¡yShell¡z±±¨î¤@¨Ç
kernel ´£¨Ñªº ¡y¤u¨ã (Utility)¡z¨Ó¾Þ±±µwÅé´À§ÚÌ¥¿½Tªº¤u§@¡C¦A¶i¤@¨B¨Ó»¡¡A¥Ñ©ó
kernel Å¥¤£À´¤HÃþªº»y¨¥¡A¦Ó¤HÃþ¤]¨S¦³¿ìªkª½±µ°O±o kernel ªº»y¨¥¡A©Ò¥H¨âªÌªº·¾³q´N±oÂÇ¥Ñ
shell ¨Ó¤ä´©¤F¡I(
¨ä¹ê¦´Áªº DOS ªº¤å¦r¤¶±¤]¬O¨Ï¥Î shell ¨Ó·¾³q§r¡I¨ºÓ
shell ªº¦WºÙ´N¥s°µ command.com ¡AÁÙ°O±o¶Ü¡H ^_^)
¥H¦r±¤Wªº·N«ä¨Ó»¡¡A kernel ¬O¡y®Ö¤ß¡zªº·N«ä¡A¦Ó Shell ¬O¡y´ß¡zªº·N«ä¡A¨þ¨þ¡I¤]´N¬O»¡¡A
shell ¬O³Ì¥~ÀYªº©N©N¡I¦Ó kernel ¤D¬O³Ì¤º¼hªºªº©N©N°Õ¡I®Ö¤ß¬O§@·~¨t²Îªº³Ì©³¼hªºªF¦è¡I
³oӮ֤߸ÌÀY¥]¬A¤F¦UºØªº¤ä´©µwÅ骺¤u¨ã¡I·íµMÅo¡A¦pªG§AªºµwÅé¤Ó·s¡A¦Ó§Aªº
kernel ¨Ã¨S¦³¤ä´©ªº¸Ü¡A¨º»ò«Ü©êºp¡A§Aªº Shell ¯à¤O¦A«ç»ò±j¡A¤]¨S¦³¿ìªk¨ÏµwÅé¤u§@ªº¡I
³o¼Ë¥i¥HÁA¸Ñ¤F¶Ü¡H¨þ¨þ¡I¨S¿ù¡I¨Ï¹q¸£¥D¾÷¤u§@ªº¥¿¬O®Ö¤ßªº¥ô°È¡A¦ý¬O¾Þ§@®Ö¤ß¨Ó´À¨Ï¥ÎªÌ¤u§@ªº¡A«o¬O
shell ³á¡I¦]¦¹¡A¦³®ÉÔ§Aªº shell ·d¤F¦Ñ¥b¤Ñ¡AµwÅé«o¤£¯à¤u§@ªº®ÉÔ¡A½Ðª`·N¡A
±zªº¡y®Ö¤ß¡z¬O§_¥¿½T©O¡Hªü¡I§è»·¤F¡I³o¬O kernel ³¹¸`¤~n»¡ªºªF¦è¡C
§Ú·F¹Àn¾Ç²ß¤å¦r¼Ò¦¡ªº Shell ©O¡H
§Ú̱`±`´£¨ìªº shell ¨ä¹ê¬O¤ñ¸û¯U¹iªº©w¸q¡A¤@¯ë¨Ó»¡¡A¦b Linux ¸ÌÀY¡A©Ò¿×ªº shell ´N¬O«ü
BASH ³oÓ¤å¦r¼Ò¦¡ªº shell Åo¡C¦ý¬O¡A¼s¸qªº shell ¤]¥i¥H¬O KDE ¤§Ãþªº¹Ï§Î¤¶±±±¨î³nÅé©O¡I
¦]¬°¥L¤]¥i¥HÀ°§ÚÌ»P kernel ¶i¦æ·¾³q°Ú¡I¤£¹L¡A¦b³¾ôªº Linux ¨p©Ðµæ¸Ì±¡A
¦pªG¨S¦³¯S§O»¡©úªº¸Ü¡A¨º»ò§Ú̪º shell «üªº¬O¤ñ¸û¯U¸qªº¡A¤]´N¬O¤å¦r¼Ò¦¡ªº shell ³á¡I
¥t¥~¡A³¾ô±`±`Å¥¨ì³oÓ°ÝÃD¡G¡y§Ú·F¹Àn¾Ç²ß shell ©O¡H
¤£¬O¤w¸g¦³«Ü¦hªº¤u¨ã¥i¥H´£¨Ñ§Ú³]©w§Úªº¥D¾÷¤F¡H§Ú¬°¦ónªá³o»ò¦h®É¶¡¥h¾Ç«ü¥O©O¡H¤£¬O¥H
X Window «ö¤@«ö´XÓ«ö¶s´N¥i¥H·d©w¤F¶Ü¡H¬°¤°»òn³o»ò³Â·Ð¡H¡zü¡ãÁÙ¬O±o¤@¦A¦a±j½Õ¡A
X Window ÁÙ¦³ Web ¤¶±ªº³]©w¤u¨ã¨Ò¦p webmin ¬O¯uªº¦n¥Îªº³Ã¥ë¡A
¥L¯uªº¥i¥HÀ°§U§Ú̫ܲ©öªº³]©w¦n§Ú̪º¥D¾÷¡A¬Æ¦Ü¬O¤@¨Ç«Ü¶i¶¥ªº³]©w³£¥i¥HÀ°§ÚÌ·d©w¡C
¦ý¬O³¾ô¦b§Ç³¹¸Ì±¤]¤w¸g´£¨ì¹L¬Û·í¦h¦¸¤F¡A X Window ªº¤¶±ÁöµM¿Ëµ½¡A¥\¯àÁöµM±j¤j¡A¦Ó
web ¤¶±ªº¤u¨ã¤]¥i¥H´£¨Ñ§Ú̫ܤ͵½ªºªA°È¡A¦ý¬O²¦³º¥L¬O±N©Ò¦³§Q¥Î¨ìªº®M¥ó³£¾ã¦X¦b¤@°_ªº¤@Ó®M¥ó¦Ó¤w¡A
¨Ã«D¬O¤@Ó§¹¾ãªº®M¥ó¡A©Ò¥H¬Y¨Ç®ÉÔ·í§A¤É¯Å©ÎªÌ¬O¨Ï¥Î¨ä¥L®M¥óºÞ²z¼Ò²Õ(
¨Ò¦p tarball ¦Ó«D rpm ÀÉ®×µ¥µ¥ )®É¡A´N·|³y¦¨³]©wªº§xÂZ¤F¡C
¦¹¥~¡A»·ºÝ³s½u®É¡A¤å¦r¤¶±ªº¶Ç¿é³t«×¤@©w¤ñ¸û§Ö¡A
¦Ó¥B¡A¸û¤£®e©ö¥X²{Â_½u©ÎªÌ¬O¸ê°T¥~¬yªº°ÝÃD¡A¦]¦¹¡A
shell ¯uªº¬O±o¾Ç²ßªº¤@¶µ¤u¨ã¡C¦Ó¥B¡A¥L¥i¥HÅý±z§ó²`¤J Linux ¡A§óÁA¸Ñ¥L¡A
¦Ó¤£¬O¥u·|«ö¤@«ö·Æ¹«¦Ó¤w¡I©Ò¿×¡y¤Ñ§U¦Û§UªÌ¡I¡z¦hºN¤@ÂI¤å¦r¼Ò¦¡ªºªF¦è¡A·|Åý§A»P
Linux §ó¿Ëªñ©O¡I
¦³¨ÇªB¤Í¤]«Ü¥i·R¡A±`·|»¡¡G¡y§Ú¾Ç³o»ò¦h·F¤°»ò¡H
¤S¤£±`¥Î¡A¤]¥Î¤£¨ì¡I¡z¼K¼K¡I¦³¨S¦³Å¥¹L¡y®Ñ¨ì¥Î®É¤è«ë¤Ö¡H¡z
·í§Aªº¥D¾÷¤@¤Á¦wµMµL®~ªº®ÉÔ¡A±z·íµM·|ı±o¦n¹³¾Ç³o»ò¦hªºªF¦è¤@ÂIÀ°§U¤]¨S¦³§r¡I
¸U¤@¡A¬Y¤@¤Ñ¯uªº¤£©¯µ¹¥L¤¤¼Ð¤F¡A±z¸Ó¦p¦ó¬O¦n¡H¬Oª½±µ«·s¦w¸Ë¡H
ÁÙ¬O¥ý°lÂܤJ«I¨Ó·½«á¶i¦æº|¬}ªº×¸É¡H©ÎªÌ¬O°®¯Ü´NÃö¯¸¦n¤F¡H³o·íµM¯A¤Î«Ü¦hªº¦Ò¶q¡A
¦ý´N¥H³¾ôªºÆ[ÂI¨Ó¬Ý¡A¦h¾Ç¤@ÂIÁ`¬O¦nªº¡A¤×¨ä§ÚÌ¥i¥H¦³³Æ¦ÓµL±w¹À¡I¬Æ¦Ü¾Çªº¤£ºë¤]¨S¦³Ãö«Y¡AÁA¸Ñ·§©À¤]´N
OK °Õ¡I²¦³º¨S¦³¤Hn±z¤@©wnI³o»ò¦hªº¤º®e°Õ¡IÁA¸Ñ·§©À´N«Ü¤F¤£°_¤F¡I
¦¹¥~¡A¦pªG±z¯uªº¦³¤ß·Qn±N±zªº¥D¾÷ºÞ²zªº¦n¡A¨º»ò¨}¦nªº
shell µ{¦¡½s¼g¬O¤@©w»Ýnªº°Õ¡I´N³¾ô¦Û¤v¨Ó»¡¡A§ÚºÞ²zªº¥D¾÷ÁöµMÁÙ¤£ºâ¦h¡A
¥u¦³°Ï°Ï¤£¨ì¤Q³¡¡A¦ý¬O¦pªG¨C³¡¥D¾÷³£nªá¤W´X¤Q¤ÀÄÁ¨Ó¬d¾\¥Lªº
log file ¥H¤Î¬ÛÃöªº¸ê°T¡A¨º»ò§Ú¥i¯à·|ºÆ±¼¡I°ò¥»¤W¡A¤]¤Ó¨S¦³®Ä²v¤F¡I³oÓ®ÉÔ¡A¦pªG¯à°÷ÂÇ¥Ñ
shell ´£¨Ñªº©R¥O«¾É¦V( ©ÎºÙ¸ê®Æ¬y«¾É¦V )¡A¥H¤ÎºÞ½u©R¥O¡A¨þ¨þ¡I¨º»ò§Ú¤ÀªR
log file ¥unªá¶O¤£¨ì¤Q¤ÀÄÁ´N¥i¥H¬Ý§¹©Ò¦³ªº¥D¾÷¤§«n¸ê°T¤F¡I¬Û·íªº¦n¥Î©O¡I
¥Ñ©ó¾Ç²ß shell ªº¦n³B¯uªº¬O¦h¦h°Õ¡I©Ò¥H¡A¦pªG±z¬OÓ¨t²ÎºÞ²zû¡A©ÎªÌ¦³¤ß·QnºÞ²z¨t²Îªº¸Ü¡A¨º»ò
shell ³oÓªF¦è»P shell scripts ³oÓªF¦è¡A¯uªº¯uªº¦³¥²n¬Ý¤@¬Ý¡I
¨t²Îªº shell »P /etc/shells
¥\¯à
ª¾¹D¤°»ò¬O Shell ¤§«á¡A¨º»ò§Ų́ÓÁA¸Ñ¤@¤U Linux ¨Ï¥Îªº¬Oþ¤@Ó
shell ©O¡H¤°»ò¡Iþ¤@Ó¡HÃø¹D»¡ shell ¤£´N¬O¡y¤@Ó shell ¶Ü¡H¡z«¢«¢¡I¨º¥i¤£¡I¥Ñ©ó¦¦~ªº
Unix ¦~¥N¡Aµo®iªÌ²³¡A©Ò¥H¥Ñ©ó shell ¨Ì¾Úµo®iªÌªº¤£¦P´N¦³³\¦hªºª©¥»¡A¨Ò¦p±`Å¥¨ìªº
Bourne SHell (sh) ¡B¦b Sun ¸ÌÀY¹w³]ªº C SHell¡B °Ó·~¤W±`¥Îªº K SHell¡B,
ÁÙ¦³ TCSH µ¥µ¥¡A¨C¤@ºØ Shell ³£¦U¦³¨ä¯SÂI¡C¦Ü©ó Linux ¨Ï¥Îªº³o¤@ºØª©¥»´NºÙ¬°¡y
Bourne Again SHell (²ºÙ bash) ¡z¡A³oÓ Shell ¬O
Bourne Shell ªº¼W±jª©¥»¡A¤]¬O°ò·Ç©ó GNU ªº¬[ºc¤Uµo®i¥X¨ÓªºËç¡I
¦b¤¶²Ð shell ªºÀuÂI¤§«e¡A¥ý¨Ó»¡¤@»¡ shell ªºÂ²³æ¾ú¥v§a¡G²Ä¤@Ó¬y¦æªº
shell ¬O¥Ñ Steven Bourne µo®i¥X¨Óªº¡A¬°¤F¬ö©À¥L©Ò¥H´NºÙ¬° Bourne shell
¡A©Îª½±µÂ²ºÙ¬° sh ¡I¦Ó«á¨Ó¥t¤@Ó¼s¬°¬y¶Çªº shell ¬O¥Ñ¬f§JµÜ¤j¾Çªº Bill
Joy ³]p¨Ìªþ©ó BSD ª©ªº Unix ¨t²Î¤¤ªº shell ¡A³oÓ shell ªº»yªk¦³ÂIÃþ¦ü
C »y¨¥¡A©Ò¥H¤~±o¦W¬° C shell ¡A²ºÙ¬° csh ¡I¥Ñ©ó¦b¾Ç³N¬É Sun
¥D¾÷¶Õ¤O¬Û·íªºÃe¤j¡A¦Ó Sun ¥Dn¬O BSD ªº¤À¤ä¤§¤@¡A©Ò¥H C shell
¤]¬O¥t¤@Ó«Ü«n¦Ó¥B¬y¶Ç«Ü¼sªº shell ¤§¤@ ( ¦]¬°¤Ó¦hªºµ{¦¡³]p®v¨Ï¥Îªº´N¬O C
»y¨¥°Õ¡I )¡I(
ÁÙ°O±o§Ú̦b Linux
¬O¤°»ò¨º¤@³¹´£¨ìªº§a¡H Sun ¤½¥qªº³Ð©l¤H´N¬O Bill Joy¡A¦Ó BSD ³Ì¦´N¬O Bill Joy
µo®i¥X¨Óªº°Ú¡I)¡C
¨º»ò¥Ø«e§Ú̪º Linux (¥H FC4 ¬°¨Ò) ¦³¦h¤Ö§ÚÌ¥i¥H¨Ï¥Îªº shells ©O¡H
§A¥i¥HÀˬd¤@¤U /etc/shells ³oÓÀɮסA¦Ü¤Ö´N¦³©³¤U³o´XÓ¥i¥H¥Îªº shells¡G
- /bin/sh (¤w¸g³Q /bin/bash ©Ò¨ú¥N)
- /bin/bash (´N¬O Linux ¹w³]ªº shell)
- /bin/ksh (Kornshell ¥Ñ AT&T Bell lab. µo®i¥X¨Óªº¡A¬Û®e©ó bash)
- /bin/tcsh (¾ã¦X C Shell ¡A´£¨Ñ§ó¦hªº¥\¯à)
- /bin/csh (¤w¸g³Q /bin/tcsh ©Ò¨ú¥N)
- /bin/zsh (°ò©ó ksh µo®i¥X¨Óªº¡A¥\¯à§ó±j¤jªº shell)
¥Ñ¤W±ªº»¡©ú¤¤¡A§Ṳ́j·§¥i¥Hµo²{¡A¨ä¹ê¦U¥Dn shell ªº¥\¯à³£®t¤£¦h¡A
¦³ªº¥u¬O»yªk¤W±ªº¤£¦P¦Ó¤w¡C¥Ø«e¤@¯ëªº¨Ï¥ÎªÌ¨Ï¥Î²ßºD¤W¡A¦ü¥G¬O¥H bash ¤Î csh ¬°¥Dnªº¨âÓ
shell ¡COK¡I³o»ò¦hªº shell §Ún¨Ï¥Îþ¤@Ó°Ú¡H¨þ¨þ¡I¨Ï¥Î Linux ¤ä´©³Ì¼sªxªº bash ´N¦n¤F¡I
¤£n·Q¤Ó¦h¡I¥t¥~¡A«x¡I
¬°¤°»ò§Ų́t²Î¤Wªº shell n¼g¤J
/etc/shells ³oÓÀÉ®×°Ú¡H ³o¬O¦]¬°¨t²Î¬Y¨ÇªA°È¦b¹B¦æ¹Lµ{¤¤¡A
·|¥hÀˬd¨Ï¥ÎªÌ¯à°÷¨Ï¥Îªº shells ¡A¦Ó³o¨Ç shell ªº¬d¸ß´N¬OÂÇ¥Ñ /etc/shells ³oÓÀÉ®×Åo¡I
Á|¨Ò¨Ó»¡¡A¬Y¨Ç FTP ºô¯¸·|¥hÀˬd¨Ï¥ÎªÌªº¥i¥Î shell ¡A¦Ó¦pªG§A¤£·QnÅý³o¨Ç¨Ï¥ÎªÌ¨Ï¥Î FTP
¥H¥~ªº¥D¾÷¸ê·½®É¡A¥i¯à·|µ¹¤©¸Ó¨Ï¥ÎªÌ¤@¨Ç©Ç©Çªº shell¡AÅý¨Ï¥ÎªÌµLªk¥H¨ä¥LªA°Èµn¤J¥D¾÷¡C
³oÓ®ÉÔ¡A§A´N±o±N¨º¨Ç©Ç©Çªº shell ¼g¨ì /etc/shells ·í¤¤¤F¡CÁ|¨Ò¨Ó»¡¡A§Ú̪º FC4
ªº /etc/shells ¸ÌÀY´N¦³Ó /sbin/nologin Àɮתº¦s¦b¡A³oÓ´N¬O§ÚÌ»¡ªº©Ç©Çªº shell Åo¡ã
¨º»ò¡A¦A·Q¤@·Q¡A§Ú³oӨϥΪ̤°»ò®ÉÔ¥i¥H¨ú±o shell ¨Ó¤u§@©O¡HÁÙ¦³¡A
§Ú³oӨϥΪ̹w³]·|¨ú±oþ¤@Ó shell °Ú¡H¡IÁÙ°O±o§Ú̦b
º¦¸¶i¤J Linux -- ¥H¤å¦r¤è¦¡µn¤J
¨ºÓ³¹¸`·í¤¤´£¨ìªºµn¤J°Ê§@§a¡H·í§Úµn¤Jªº®ÉÔ¡A¨t²Î´N·|µ¹§Ú¤@Ó shell Åý§Ú¨Ó¤u§@¤F¡C
¦Ó³oÓµn¤J¨ú±oªº shell ´N°O¿ý¦b /etc/passwd ³oÓÀɮפº¡I³oÓÀɮתº¤º®e¬OÔ£¡H
[root@linux ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
.....(¤¤¶¡¬Ù²¤).....
|
¦p¤W©Ò¥Ü¡A¦b¨C¤@¦æªº³Ì«á¤@Ó¸ê®Æ¡A´N¬O±zµn¤J«á¡A¥i¥H¨ú±oªº¹w³]ªº shell °Õ¡I
¨º§A¤]·|¬Ý¨ì¡A root ¬O /bin/bash ¡A¤£¹L¡A¨t²Î±b¸¹ bin »P daemon µ¥µ¥¡A´N¨Ï¥Î¨ºÓ©Ç©Çªº
/sbin/nologin Åo¡ãÃö©ó¨Ï¥ÎªÌ³o³¡¤Àªº¤º®e¡A§Ú̯d¦b
±b¸¹ºÞ²z ®É´£¨Ñ§ó¦hªº»¡©ú¡C
Bash shell ªº¥\¯à
¬JµM /bin/bash ¬O Linux ¹w³]ªº shell ¡A¨º»òÁ`¬O±oÁA¸Ñ¤@¤U³oÓª±·N¨à§a¡I
BASH ¬O«ç»ò¤@¦^¨Æ©O¡H³oÓ shell ¬O GNU pµe¤¤«nªº¤u¨ã³nÅ餧¤@¡A¥Ø«e¤]¬O
GNU §@·~¨t²Î¤¤¼Ð·Çªº shell ¡A¥L¥Dn¬Û®e©ó sh ¡A¨Ã¥B¨Ì¾Ú¤@¨Ç¨Ï¥ÎªÌ»Ý¨D¡A¦Ó¥[±jªº
shell ª©¥»¡A¥i¥H»¡¥Ø«e´X¥G©Ò¦³ªº Linux distribution ³£¬O¨Ï¥Î bash §@¬°ºÞ²z®Ö¤ßªº¥Dn
shell ¡I¦]¦¹¡A¤£½×±z¨Ï¥Îªº¬O¨ºÓ distribution ¡A§A³£Ãø°k»Ýn¾Ç²ß bash ªº±J©R°Õ¡I¨º»ò³oÓ
shell ¦³¤°»ò¦n³B¡A·F¹À Linux n¨Ï¥Î¥L§@¬°¹w³]ªº shell ©O¡H BASH ¥DnªºÀuÂI¦³©³¤U´XÓ¡G
©R¥O½sׯà¤O¡]Ãþ¦ü DOS ªº doskey ¥\¯à¡^¡G
¨Ï¥Î bash ¸ÌÀY¡AÓ¤H»{¬°¬Û·í´Îªº¤@Ó¥\¯à´N¬O¡y¥L¯à°O¾Ð¨Ï¥Î¹Lªº«ü¥O¡I¡z
³o¥\¯à¯uªº¬Û·íªº´Î¡I¦]¬°§Ú¥un¦b«ü¥O¦C«ö¡y¤W¤UÁä¡z´N¥i¥H§ä¨ì«e¤@Ó¿é¤Jªº«ü¥O¡I¦Ó¦b«Ü¦h
distribution ¸ÌÀY¡A¹w³]ªº«ü¥O°O¾Ð¥\¯à¥i¥H¨ì¹F 1000 Ó¡I¤]´N¬O»¡¡A
§A´¿¸g¤U¹F¹Lªº«ü¥O³£³Q°O¿ý¤U¨Ó¤F¡A°O¿ýªºÀɮצb§Aªº®a¥Ø¿ý¤ºªº
.bash_history
¡I¤£¹L¡A»Ýn¯d·Nªº¬O¡A
~/.bash_history °O¿ýªº¬O«e¤@¦¸µn¤J¥H«e©Ò°õ¦æ¹Lªº«ü¥O¡A
¦Ó¦Ü©ó³o¤@¦¸µn¤J©Ò°õ¦æªº«ü¥O³£³Q¼È¦s¦b¼È°O¾ÐÅ餤¡A·í±z¦¨¥\ªºµn¥X¨t²Î«á¡A¸Ó«ü¥O°O¾Ð¤~·|°O¿ý¨ì
.bash_history ·í¤¤¡I
³o¦³¤°»ò¥\¯à©O¡H³Ì¤jªº¦n³B´N¬O¥i¥H¡y¬d¸ß´¿¸g°µ¹LªºÁ|°Ê¡I¡z¡A
¦p¦¹¥i¥Hª¾¹D§Aªº°õ¦æ¨BÆJ¡A¨º»ò´N¥i¥H°lÂܱz´¿¤U¹Fªº«ü¥O¡A¥H§@¬°°£¿ùªº¤u¨ã¡I
¦ý¦p¦¹¤@¨Ó¤]¦³Ó·Ð´o¡A´N¬O¦pªG³QÀb«È¤J«I¤F¡A¨º»ò¥L¥un½§A´¿¸g°õ¦æ¹Lªº«ü¥O¡A
è¦n§Aªº«ü¥O¤S¸ò¨t²Î¦³Ãö¡]¨Ò¦pª½±µ¿é¤J MySQL ªº±K½X¦b«ü¥O¦C¤W±¡^¨º»ò«Ü®e©ö´N³Q¯}¸Ñ§Aªº
Linux ¥D¾÷¡I©Ò¥H¡A³Ì¦n¬O±N°O¿ýªº«ü¥O¼Æ¥Ø´î¤p¤@ÂI¸û¦n¡I
©R¥O»PÀɮ׸ɥþ¥\¯à¡G
ÁÙ°O±o§Ú̦b
º¦¸¶i¤J Linux ªº¼öªù«öÁä ¤@¸`·í¤¤´£¨ìªº
[tab] ³oÓ«öÁä¶Ü¡H¡I³oÓ«öÁ䪺¥\¯à´N¬O¦b bash ¸ÌÀY¤~¦³ªº°Õ¡I±`±`¦b bash Àô¹Ò¤¤¨Ï¥Î [tab]
¬OӫܴΪº²ßºD³á¡I¦]¬°¦Ü¤Ö¥i¥HÅý§A 1)¤Ö¥´«Ü¦h¦r¡F 2)½T©w¿é¤Jªº¸ê®Æ¬O¥¿½Tªº¡I
¨Ï¥Î [tab] «öÁ䪺®É¾÷¨Ì¾Ú [tab] ±µ¦b«ü¥O«á©Î°Ñ¼Æ«á¦Ó¦³©Ò¤£¦P¡C§Ú̦A½Æ²ß¤@¦¸¡G
- [Tab] ±µ¦b¤@¦ê«ü¥Oªº²Ä¤@Ó¦rªº«á±¡A«h¬°©R¥O¸É¥þ¡F
- [Tab] ±µ¦b¤@¦ê«ü¥Oªº²Ä¤GÓ¦r¥H«á®É¡A«h¬°¡yÀɮ׸ɻô¡z¡I
©Ò¥H»¡¡A¦pªG§Ú·Qnª¾¹D§ÚªºÀô¹Ò¤¤¡A©Ò¦³¥i¥H°õ¦æªº«ü¥O¦³´XÓ¡H
´Nª½±µ¦b bash ªº´£¥Ü¦r¤¸«á±¿é¤J¨âÓ [tab][tab] ´N¯à°÷¿é¥X©Ò¦³ªº¥i°õ¦æ«ü¥O¤F¡C
¨º¦pªG·Qnª¾¹D¨t²Î·í¤¤©Ò¦³¥H c ¬°¶}ÀYªº«ü¥O©O¡H´N«ö¤U c[tab][tab] ´N¦n°Õ¡I ^_^
¬Oªº¡I¯uªº¬O«Ü¤è«Kªº¥\¯à¡A©Ò¥H¡A
¦³¨Æ¨S¨Æ¡A¦b
bash shell ©³¤U¡A¦h«ö´X¦¸ [tab] ¬O¤@Ó¤£¿ùªº²ßºD°Õ¡I
©R¥O§O¦W(alias)³]©w¥\¯à¡G
°²¦p§Ú»Ýnª¾¹D³oӥؿý©³¤Uªº©Ò¦³Àɮס]¥]§tÁôÂÃÀÉ¡^¤Î©Ò¦³ªºÀÉ®×ÄݩʡA¨º»ò§Ú´N¥²¶·n¤U¹F
ls -al ³o¼Ëªº«ü¥O¦C¡Aü¡I¯u³Â·Ð¡A¦³¨S¦³§ó§Öªº¨ú¥N¤è¦¡¡H¨þ¨þ¡I´N¨Ï¥Î©R¥O§O¦W§r¡I¨Ò¦p§Ú³Ì³ßÅwª½±µ¥H
lm ³oÓ¦Ûqªº©R¥O¨Ó¨ú¥N¤W±ªº©R¥O¡A¤]´N¬O»¡¡A lm ·|µ¥©ó ls -al ³o¼Ëªº¤@Ó¥\¯à¡A¼K¡I¨º»òn¦p¦ó§@©O¡H´N¨Ï¥Î
alias §Y¥i¡I§A¥i¥H¦b«ü¥O¦C¿é¤J alias ´N¥i¥Hª¾¹D¥Ø«eªº©R¥O§O¦W¦³þ¨Ç¤F¡I¤]¥i¥Hª½±µ¤U¹F©R¥O¨Ó³]©w§O¦WËç¡G
¤u§@±±¨î(jobs)¡B«e´ºI´º±±¨î¡G
³o³¡¤À§Ú̦b¤§«áªº
¸ê·½ºÞ²z³¹¸`¤¤·|¦A´£¤Î¡I
¨Ï¥Î«e¡BI´ºªº±±¨î¥i¥HÅý¤u§@¶i¦æªº§ó¬°¶¶§Q¡I¦Ü©ó¤u§@±±¨î(jobs)ªº¥Î³~«h§ó¼s¡A
¥i¥HÅý§ÚÌÀH®É±N¤u§@¥á¨ìI´º¤¤°õ¦æ¡I¦Ó¤£©È¤£¤p¤ß¨Ï¥Î¤F
[Ctrl] + c ¨Ó°±±¼¸Óµ{§Ç¡I¯u¬O¦n¼Ëªº¡I¦¹¥~¡A¤]¥i¥H¦b³æ¤@µn¤JªºÀô¹Ò¤¤¡A¹F¨ì¦h¤uªº¥Øªº©O¡I
Shell scripts ªº±j¤j¥\¯à¡G
¦b DOS ¦~¥NÁÙ°O±o±N¤@°ï«ü¥O¼g¦b¤@°_ªº©Ò¿×ªº¡y§å¦¸ÀÉ¡z§a¡H¦b Linux ©³¤Uªº
shell scripts «hµo´§ªº§ó¬°±j¤jªº¥\¯à¡A¥i¥H±N±z¤é±`¥Í¬¡·í¤¤±`»Ýn¤U¹Fªº³sÄò«ü¥O¼g¦¨¤@ÓÀɮסA
¸ÓÀɮרåB¥i¥H³z¹L¹ï½Í¤¬°Ê¦¡ªº¤è¦¡¨Ó¶i¦æ¥D¾÷ªº°»´ú¤u§@¡I¤]¥i¥HÂÇ¥Ñ
shell ´£¨ÑªºÀô¹ÒÅܼƤάÛÃö«ü¥O¨Ó¶i¦æ³]p¡A«z¡I¾ãÓ³]p¤U¨Ó´X¥G´N¬O¤@Ó¤p«¬ªºµ{¦¡»y¨¥¤F¡I¸Ó
scripts ªº¥\¯à¯uªº¬O¶W¥G§Úªº·Q¹³¤§¥~¡I¥H«e¦b DOS ©³¤U»Ýnµ{¦¡»y¨¥¤~¯à¼gªºªF¦è¡A¦b
Linux ©³¤U¨Ï¥Î²³æªº shell scripts ´N¥i¥HÀ°§A¹F¦¨¤F¡I¯uªº¼F®`¡I¡I³o³¡¤À§Ú̦b«áÄò³¹¸`¦A¨Ó½Í¡I
¸U¥Î¦r¤¸¡I
°£¤F§¹¾ãªº¦r¦ê¤§¥~¡A bash Á٤䴩³\¦hªº¸U¥Î¦r¤¸¨ÓÀ°§U¨Ï¥ÎªÌ¬d¸ß»P«ü¥O¤U¹F¡C
Á|¨Ò¨Ó»¡¡A·Qnª¾¹D /usr/X11R6/bin ©³¤U¦³¦h¤Ö¥H xt ¬°¶}ÀYªºÀÉ®×¶Ü¡H¨Ï¥Î¡G
ls -l /usr/X11R6/bin/xt* ´N¯à°÷ª¾¹DÅo¡ã¦¹¥~¡AÁÙ¦³¨ä¥L¥i¨Ñ§Q¥Îªº¸U¥Î¦r¤¸¡A
³o¨Ç³£¯à°÷¥[§Ö¨Ï¥ÎªÌªº¾Þ§@©O¡I
Bash shell ªº¤º«Ø©R¥O¡G type
§Ú̦bº¦¸¶i¤J Linux ³¹¸`·í¤¤¡A´£¨ìÃö©ó
Linux ªº½u¤W»¡©ú¤å¥ó
³¡¤À¡A¤]´N¬O man page ªº¤º®e¡A¨º»ò bash ¦³¨S¦³¤°»ò»¡©ú¤å¥ó°Ú¡H¶}ª±¯º¡ã
³o»ò´ÎªºªF¦è«ç»ò¥i¯à¨S¦³»¡©ú¤å¥ó¡I½Ð±z¦b shell ªºÀô¹Ò¤U¡Aª½±µ¿é¤J man bash Á@¤@Á@¡A
¼K¼K¡I¤£¬O»\ªº§a¡IÅý±z¬ÝÓ´X¤Ñ´X©]¤]µLªk¬Ý§¹ªº bash »¡©ú¤å¥ó¡A¥i¬O«Ü¸ÔºÉªº¸ê®Æ°Ú¡I ^_^
¤£¹L¡A¦b³oÓ man bash ©Ò¥X²{ªº man page ·í¤¤¡A¤£ª¾¹D±z¬O§_¦³¹îı¨ì¡A«x¡I
«ç»ò³oÓ»¡©ú¤å¥ó¸Ì±¦³¨ä¥LªºÀÉ®×»¡©ú°Ú¡HÁ|¨Ò¨Ó»¡¡A¨ºÓ cd «ü¥Oªº»¡©ú´N¦b³oÓ man page ¤º¡H
µM«á§Úª½±µ¿é¤J man cd ®É¡A«ç»ò¥X²{ªºµe±¤¤¡A³Ì¤W¤è³ºµM¥X²{¤@°ï«ü¥Oªº¤¶²Ð¡H¡H³o¬O«ç»ò¦^¨Æ¡H
¬°¤F¤è«K shell ªº¾Þ§@¡A¨ä¹ê bash ¤w¸g¡y¤º«Ø¡z¤F«Ü¦h«ü¥O¤F¡A¨Ò¦p¤W±´£¨ìªº cd ¡A
ÁÙ¦³¨Ò¦p umask µ¥µ¥ªº«ü¥O¡A³£¬O¤º«Ø¦b bash ·í¤¤ªº©O¡I
¨º§Ú«ç»òª¾¹D³oÓ«ü¥O¬O¨Ó¦Û©ó¥~³¡«ü¥O(«üªº¬O¨ä¥L«D bash ®M¥ó©Ò´£¨Ñªº«ü¥O) ©Î¬O¤º«Ø¦b bash ·í¤¤ªº©O¡H
¼K¼K¡I§Q¥Î type ³oÓ«ü¥O¨ÓÆ[¹î§Y¥i¡IÁ|¨Ò¨Ó»¡¡G
[root@linux ~]# type [-tpa] name
°Ñ¼Æ¡G
¡G¤£¥[¥ô¦ó°Ñ¼Æ®É¡A«h type ·|Åã¥Ü¥X¨ºÓ name ¬O¥~³¡«ü¥OÁÙ¬O bash ¤º«Øªº«ü¥O¡I
-t ¡G·í¥[¤J -t °Ñ¼Æ®É¡Atype ·|±N name ¥H©³¤U³o¨Ç¦r²´Åã¥Ü¥X¥Lªº·N¸q¡G
file ¡Gªí¥Ü¬°¥~³¡«ü¥O¡F
alias ¡Gªí¥Ü¸Ó«ü¥O¬°©R¥O§O¦W©Ò³]©wªº¦WºÙ¡F
builtin ¡Gªí¥Ü¸Ó«ü¥O¬° bash ¤º«Øªº«ü¥O¥\¯à¡F
-p ¡G¦pªG«á±±µªº name ¬°«ü¥O®É¡A·|Åã¥Ü§¹¾ãÀɦW(¥~³¡«ü¥O)©ÎÅã¥Ü¬°¤º«Ø«ü¥O¡F
-a ¡G·|±N¥Ñ PATH ÅܼƩw¸qªº¸ô®|¤¤¡A±N©Ò¦³§t¦³ name ªº«ü¥O³£¦C¥X¨Ó¡A¥]§t alias
½d¨Ò¡G
½d¨Ò¤@¡G¬d¸ß¤@¤U ls ³oÓ«ü¥O¬O§_¬° bash ¤º«Ø¡H
[root@linux ~]# type ls
ls is aliased to `ls --color=tty'
# ¨S¦³¥[¤W¥ô¦ó°Ñ¼Æ¡A¶È¦C¥X ls ³oÓ«ü¥Oªº³Ì¥Dn¨Ï¥Î±¡ªp
[root@linux ~]# type -t ls
alias
# -t °Ñ¼Æ«h¶È¦C¥X ls ³oÓ«ü¥Oªº³Ì¥Dn¨Ï¥Î±¡ªp»¡©ú
[root@linux ~]# type -a ls
ls is aliased to `ls --color=tty'
ls is /bin/ls
# §Q¥Î©Ò¦³¤èªk§ä¥X¨Óªº ls ¬ÛÃö¸ê°T³£·|³Q¦C¥X¨Ó¡I
½d¨Ò¤G¡G¨º»ò cd ©O¡H
[root@linux ~]# type cd
cd is a shell builtin
|
³z¹L type ³oÓ«ü¥Oªº¥Î³~¡A§ÚÌ¥i¥Hª¾¹D¨CÓ«ü¥O¬O§_¬° bash ªº¤º«Ø«ü¥O¡C
¦¹¥~¡A¥Ñ©ó§Q¥Î type ·j´M«á±ªº¦WºÙ®É¡A¦pªG«á±±µªº¦WºÙ¨Ã¤£¯à¥H°õ¦æÀɪºª¬ºA³Q§ä¨ì¡A
¨º»ò¸Ó¦WºÙ¬O¤£·|³QÅã¥Ü¥X¨Óªº¡CÁ|¨Ò¨Ó»¡¡A±zªº FC4 À³¸Ó¤£·|¦³ vbird ³oÓ«ü¥O§a¡H¡I
¿é¤J type -p vbird ¬Ý¤@¤U¡AªGµM¨S¦³¿é¥X¥ô¦ó¸ê®Æ¡I¦Ó¦pªG±z¿é¤Jªº¬O type -p touch ©O¡H
«h·|¥X²{ /bin/touch ¡I¨þ¨þ¡I©Ò¥H¡A
³oÓ type ¤]¥i¥H¥Î¨Ó§@¬°Ãþ¦ü which
«ü¥Oªº¥Î³~°Õ¡I§ä«ü¥O¥Îªº¡I
«ü¥Oªº¤U¹F
§Ú̦b
º¦¸¶i¤J Linux ¤@¸`·í¤¤¡A¤w¸g´£¨ì¹L¦b shell
Àô¹Ò¤Uªº«ü¥O¤U¹F¤è¦¡¡A¤£¹L¡A¦]¬°³oÓ³¡¤À¹ê¦b«Ü«n¡A©Ò¥H¡A§ÚÌÁÙ¬O¦A¦¸ªº´£¿ô¤@¦¸¡I
[root@linux ~]# command [-options] parameter1 parameter2 ...
«ü¥O ¿ï¶µ °Ñ¼Æ(1) °Ñ¼Æ(2)
»¡©ú¡G
0. ¤@¦æ«ü¥O¤¤²Ä¤@Ó¿é¤Jªºµ´¹ï¬O¡y«ü¥O(command)¡z©Î¡y¥i°õ¦æÀɮסz
1. command ¬°«ü¥Oªº¦WºÙ¡A¨Ò¦pÅÜ´«¸ô®|ªº«ü¥O¬° cd µ¥µ¥¡F
2. ¤¤¨í¸¹[]¨Ã¤£¦s¦b©ó¹ê»Úªº«ü¥O¤¤¡A¦Ó¥[¤J°Ñ¼Æ³]©w®É¡A³q±`¬° - ¸¹¡A¨Ò¦p -h¡F
¦³®ÉÔ§¹¾ã°Ñ¼Æ¦WºÙ·|¿é¤J -- ²Å¸¹¡A¨Ò¦p --help¡F
3. parameter1 parameter2.. ¬°¨Ìªþ¦b option «á±ªº°Ñ¼Æ¡A
©ÎªÌ¬O command ªº°Ñ¼Æ¡F
4. command, -options, parameter1.. ³o´XÓ©N©N¤¤¶¡¥HªÅ®æ¨Ó°Ï¤À¡A
¤£½×ªÅ´X®æ shell ³£µø¬°¤@®æ¡F
5. «ö¤U [Enter] «öÁä«á¡A¸Ó«ü¥O´N¥ß§Y°õ¦æ¡C[Enter] «öÁ䬰 <CR> ¦r²Å¡A
¥L¥NªíµÛ¤@¦æ«ü¥Oªº¶}©l±Ò°Ê¡C
6. «ü¥O¤Óªøªº®ÉÔ¡A¥i¥H¨Ï¥Î \ ²Å¸¹¨Ó¸õ²æ [Enter] ²Å¸¹¡A
¨Ï«ü¥O³sÄò¨ì¤U¤@¦æ¡Cª`·N¡I \ «á´N¥ß¨è±µ¯S®í¦r²Å¡C
7. ¦b Linux ¨t²Î¤¤¡A^¤å¤j¤p¼g¦r¥À¬O¤£¤@¼Ëªº¡CÁ|¨Ò¨Ó»¡¡A cd »P CD ¨Ã¤£¦P¡C
½d¨Ò¡G
½d¨Ò¤@¡G¦C¥X /root ©³¤Uªº¦UÀɮצWºÙ
[root@linux ~]# ls -al /root
[root@linux ~]# ls -al /root
# ¤£½×«ü¥O»P°Ñ¼Æ¤¤¶¡ªÅ´X®æ¡A³£¬O¥i¥H±µ¨üªº¡I
½d¨Ò¤G¡G¦pªG«ü¥O¤Óªøªº¸Ü¡A¦p¦ó¨Ï¥Î¨â¦æ¨Ó¿é¥X¡H
[root@linux ~]# cp /var/spool/mail/root /etc/crontab \
> /etc/fstab /root
# ¤W±³oÓ«ü¥O¡A´N¬O±N¤TÓÀɮ׽ƻs¨ì /root ³oӥؿý¤U¦Ó¤w¡C¤£¹L¡A¦]¬°«ü¥O¤Óªø¡A
# ©ó¬O³¾ô´N§Q¥Î \[Enter] ¨Ó±N [Enter] ³oÓ«öÁä¡y¸õ²æ¡I¡z¶}¨Ó¡AÅý
# [Enter] «öÁ䤣¦A¨ã¦³¤Wz»¡©úªº²Ä 5 ÂI¥\¯à¡I¦nÅý«ü¥OÄ~Äò¦b¤U¤@¦æ¿é¤J¡C
# »Ýn¯S§O¯d·N¡A [Enter] «öÁä¬Oºò±µµÛ¤Ï±×½u (\) ªº¡A¨âªÌ¤¤¶¡¨S¦³¨ä¥L¦r¤¸¡C
# ¦]¬° \ ¶È¸õ²æ¡yºò±µµÛªº¤U¤@Ó¦r²Å¡z¦Ó¤w¡I©Ò¥H¡A¸U¤@§Ú¼g¦¨¡G
# \ [Enter] ¡A¥ç§Y [Enter] »P¤Ï±×½u¤¤¶¡¦³¤@ӪŮæ®É¡A«h \ ¸õ²æªº¬O¡yªÅ¥ÕÁä¡z
# ¦Ó¤£¬O [Enter] «öÁä¡I³oÓ¦a¤è½Ð¦b¥J²Óªº¬Ý¤@¹M¡I«Ü«n¡I
# ¦pªG¶¶§Q¸õ²æ [Enter] «á¡A¤U¤@¦æ³Ì«e±´N·|¥D°Ê¥X²{ > ªº²Å¸¹¡A
# ±z¥i¥HÄ~Äò¿é¤J«ü¥OÅo¡I¤]´N¬O»¡¡A¨ºÓ > ¬O¨t²Î¦Û°Ê¥X²{ªº¡A§A¤£»Ýn¿é¤J¡C
|
Á`¤§¡A·í§Ú̶¶§Qªº¦b²×ºÝ¾÷ (tty) ¤W±µn¤J«á¡A Linux ´N·|¨Ì¾Ú /etc/passwd
Àɮתº³]©wµ¹§Ṳ́@Ó shell ¡A¹w³]´N¬O bash ¡AµM«á§ÚÌ´N¥i¥H¨Ì¾Ú¤W±ªº«ü¥O¤U¹F¤è¦¡¨Ó¾Þ§@ shell¡A
¤§«á¡A§ÚÌ´N¥i¥H³z¹L man ³oÓ½u¤W¬d¸ß¨Ó¬d¸ß«ü¥Oªº¨Ï¥Î¤è¦¡»P°Ñ¼Æ»¡©ú¡A
«Ü¤£¿ù§a¡I¨º»ò§ÚÌ´N»°ºò§ó¶i¤@¨B¨Ó¾Þ§@ bash ³oÓ¦nª±ªºªF¦èÅo¡I
¦bÄ~Äò¬ã¨s BASH ¤§«e¡A§Ú̱on¥ý´N
ÅÜ¼Æ ³oÓªF¦è¨Ó°Q½×¤@µf¡C
¬°¤°»òn°Q½×ÅܼƩO¡H¤S¡AÅܼƬOÔ£ª±·N¨à°Ú¡H¡I¥ý¨Ó½Í¤@½Í°ê¤¤¼Æ¾Ç¦n¤F¡A±z¬O§_¨Ìµ}°O±o¡A
§Ṵ́ꤤ®ÉԾǹL©Ò¿×ªº¡y y = ax + b ¡z³oªF¦è¡H¨ä¤¤¡A y ¬OÅܼơA x «h¬O³oÓÅܼƪº¤º®e°Ú¡I
Á¿ªº§ó²³æ¤@ÂI¡A§ÚÌ¥i¥H¡y
¥Î¤@Ó²³æªº "¦r²´"
¨Ó¨ú¥N¥t¤@Ó¤ñ¸û½ÆÂø©ÎªÌ¬O®e©öÅܰʪº¸ê®Æ¡z¡C³o¦³¤°»ò¦n³B°Ú¡H³Ì¤jªº¦n³B´N¬O¡y¤è«K¡I¡z¡C
¦pªG¥H Linux ¥D¾÷ªº¹B§@¨Ó»¡©ú¦n¤F¡A¦]¬°¦b¥D¾÷¸Ì±¦³¤Ó¦hªº¸ê®Æ»Ýn¶i¦æ¦s¨ú¤F¡A
¦Ó³o¨Ç¸ê®Æ³£¬O¤@¨ÇªA°È©Ò¥²¶·ªº¡A¨Ò¦p¬YÓ¦W¬° dmtsai ªº±b¸¹¡A¥Lªº mail ªº¦s¨ú¸ô®|¹w³]¬O¦b
/var/spool/mail/dmtsai ¡B®a¥Ø¿ý¹w³]¦b /home/dmtsai µ¥µ¥¡C¨º¦pªG´«¤F¥t¥~¤@Ó±b¸¹©O¡H
°²³]¥t¤@Ó±b¸¹¦WºÙ¬° vbird ¡A§A²q¥Lªº¶l¥ó»P®a¥Ø¿ý¦bþ¡HÀ³¸Ó¬O¦b /var/spool/mail/vbird »P /home/vbird ¹ï§a¡I
¨º»ò§ÚÌ¥D¾÷ªº¶l¥óªA°È¬O§_n°O¿ý¦n´XÓ¤£¦Pªº¸ô®|°Ú¡H·|¤£·|¤Ó³Â·Ð¡H³o·íµM«Ü³Â·ÐÅo¡ã
©Ò¥H¬°¤F²¤Æ¾ãÓ¹B§@¬yµ{¡A§ÚÌ´N¥i¥H³z¹L¬YÓÅܼƥ\¯à¡AÅý³oÓÅܼƥi¥H¨Ì¾Ú¤£¦Pªº¨Ï¥ÎªÌ¦ÓÅܧ󤺮e¡A
¦p¦¹¤@¨Ó¡A¨t²Îªº¶l¥óªA°È¥un¨Ì¾Ú¨ºÓÅܼƥh¨ú±o©Ò»Ýnªº¸ê®Æ§Y¥i¡A´N¤£»Ýn°O¿ý¤£¦Pªº¸ô®|Åo¡C
Á|¨Ò¨Ó»¡¡A§Ų́CÓ±b¸¹ªº¶l¥ó«H½c¹w³]¬O¥H MAIL ³oÓÅܼƨӶi¦æ¦s¨úªº¡A
·í dmtsai ³oӨϥΪ̵n¤J®É¡A¥L«K·|¨ú±o MAIL ³oÓÅܼơA¦Ó³oÓÅܼƪº¤º®e¨ä¹ê´N¬O /var/spool/mail/dmtsai¡A
¨º¦pªG vbird µn¤J©O¡H¥L¨ú±oªº MAIL ³oÓÅܼƪº¤º®e¨ä¹ê´N¬O /var/spool/mail/vbird ¡C
¦Ó§Ų́ϥΫH¥óŪ¨ú«ü¥O mail ¨ÓŪ¨ú¦Û¤vªº¶l¥ó«H½c®É¡A¼K¼K¡A³o¤äµ{¦¡¥i¥Hª½±µÅª¨ú MAIL ³oÓÅܼƪº¤º®e¡A
´N¯à°÷¦Û°Êªº¤À¿ë¥XÄÝ©ó¦Û¤vªº«H½c«H¥óÅo¡I³o¼Ë¤@¨Ó¡A³]pµ{¦¡ªº³]p®v´N¯uªº«Ü¤è«Kªº°Õ¡I
·íµM§ÚÌ¥i¥H§ïÅܳo¨ÇÓÅܼơA¦ý¬O¦pªG¸ÓÅܼƬOª½±µ²`´Ó©ó®M¥ó·í¤¤¡A
¨º»ò·í§A×§ï¤F¬Y¨Ç°Ñ¼Æ¤§«á¡A¼K¼K¡I§Aªº®M¥ó´N¥²¶·n¡y
¥Ñì©l½Xª½±µ§ó·s¦A½sĶ¡z
¤~¦æ¡I³o¼Ë¦ü¥G«Ü³Â·Ð¡A©Ò¥HÅo¡AÅܼƯuªº¬O«Ü¤è«Kªº°Õ¡I
Tips: Á|Ó²³æªº¨Ò¤l¨Ó»¡¡A sendmail ªº smtp ¦s©ñ mail ¸ô®|¬O¸g¥Ñ /etc/profile ¸ÌÀYªº¡G
MAIL="/var/spool/mail/$USER"
¨Ó³]©wªº¡A¦Ó·í§Ú×§ï¤F¤W±³o¤@Ó©N©N¡AµM«á«·s¶}¾÷¤§«á¡A¼K¼K¼K¼K¡I
§Úªº¶l¥ó´N¥i¥H¦s©ñ¨ì¤£¦Pªº¸ô®|¥h¤F¡I¦Ó¥B¤£·|¦³°ÝÃD¡I¥i¥H¶¶§Qªº¡y¦b
Linux ¥D¾÷¤W±¡z¦¬µo¡CµM¦Ó°ÝÃDµo¥Í¦b pop3 ³oÓªA°È¤W±¡A¥Ñ©ó pop3 ªº¹w³]¸ô®|¬O¦b
source code ¸ÌÀY¡A¦Ó¥B´N¥¿¬O /var/spool/mail ³oÓ¸ô®|¡A¤]´N¬O»¡¡A¤£½×§Ú«ç»ò×¥¿§Úªº¡yÅܼơz¡A
pop3 ³£¤£¬°©Ò°Ê¡Iü¡ã¯uºG¡A©Ò¥H´NµLªkª½±µ¥H pop3 ¨Ó¦¬«H¤F¡]¨Ò¦p OutLook
´N¤£¯à¤u§@¤F¡^¡I·|µo¥Í±K½X¤£±µ¨üªº°ÝÃD©O¡I
|  |
¦A¨ÓÄ~ÄòÁ¿¨ì¨ä¥LªºÅܼƥ\¯à¦n¤F¡A§ÚÌ«e±¤w¸g´£¨ì¹L«Ü¦h¦¸¡A¯à¤£¯à°õ¦æ¬YÓ«ü¥O¡A
»P PATH ³oÓÅܼƤ]¦³«Ü¤jªºÃö«Yªº¡CÁ|¨Ò¨Ó»¡¡A§Ú̦b¥ô¦ó¦a¤è¤U¹F ls ³oÓ«ü¥O®É¡A¨t²Î´N¬O³z¹L PATH
³oÓÅܼƸ̱ªº¤º®e©Ò°O¿ýªº¸ô®|¶¶§Ç¨Ó·j´M«ü¥Oªº©O¡I¦pªG¦b·j´M§¹ PATH ÅܼƤºªº¸ô®|Á٧䤣¨ì ls ³oÓ«ü¥O®É¡A
´N·|¦b¿Ã¹õ¤WÅã¥Ü¡y command not found ¡zªº¿ù»~°T®§¤F¡C
³o¨ÇÁÙ³£¥u¬O¨t²Î¹w³]ªºÅܼƪº¥Øªº¡A¦pªG¬OÓ¤Hªº³]©w¤è±ªºÀ³¥Î©O¡G¨Ò¦p§An¼g¤@Ó¤j«¬ªº
script ¡]§å¦¸ÀÉ¡^®É¡A¦³¨Ç¸ê®Æ¦]¬°¥i¯à¥Ñ©ó¨Ï¥ÎªÌ²ßºDªº¤£¦P¦Ó¦³®t²§¡A¤ñ¦p»¡¸ô®|¦n¤F¡A¥Ñ©ó¸Ó¸ô®|¦b
script ³Q¨Ï¥Î¦b¬Û·í¦hªº¦a¤è¡A¦pªG¤U¦¸´«¤F¤@³¡¥D¾÷¡A³£n×§ï script ¸Ì±ªº©Ò¦³¸ô®|¡A¨º»ò§Ú¤@©w·|ºÆ±¼¡I
³oÓ®ÉÔ¦pªG¨Ï¥ÎÅܼơA¦Ó±N¸ÓÅܼƪº©w¸q¼g¦b³Ì«e±¡A«á±¬ÛÃöªº¸ô®|¦WºÙ³£¥HÅܼƨӨú¥N¡A
¼K¼K¡I¨º»ò§A¥un×§ï¤@¦æ´Nµ¥©ó×§ï¾ã½g script ¤F¡I¤è«Kªº«Ü¡I©Ò¥H¡A¨}¦nªºµ{¦¡³]p®v³£·|µ½¥ÎÅܼƪº©w¸q¡I
(
³oÓ³¡¤À§Ú̦b«áÄòªº shell script ¦A¦¸´£¤Îªº¡I)
¦pªG»¡ªº¾Ç²z¤@ÂI¡A¨º»ò¥Ñ©ó¦b Linux System ¤U±¡A©Ò¦³ªº°õ¦æÄò³£¬O»Ýn¤@Ó°õ¦æ½X¡A
¦Ó´N¦p¦P¤W±´£¨ìªº¡A§A¡y
¯u¥¿¥H
shell ¨Ó¸ò Linux ·¾³q¡A¬O¦b¥¿½Tªºµn¤J Linux ¤§«á¡I¡z³oÓ®ÉÔ§A´N¦³¤@Ó
bash ªº°õ¦æµ{§Ç¡A¤]¤~¥i¥H¯u¥¿ªº¸g¥Ñ bash ¨Ó¸ò¨t²Î·¾³qÅo¡I¦Ó¦b¶i¤J shell
¤§«e¡A¤]¥¿¦p¦P¤W±´£¨ìªº¡A¥Ñ©ó¨t²Î»Ýn¤@¨ÇÅܼƨӴ£¨Ñ¥L¸ê®Æªº¦s¨ú¡]©ÎªÌ¬O¤@¨ÇÀô¹Òªº³]©w°Ñ¼ÆÈ¡A
¨Ò¦p¬O§_nÅã¥Ü±m¦âµ¥µ¥ªº¡^¡A©Ò¥H´N¦³¤@¨Ç©Ò¿×ªº¡y
Àô¹ÒÅܼơz
»Ýn¨ÓŪ¤J¨t²Î¤¤¤F¡I³o¨ÇÀô¹ÒÅܼƨҦp PATH¡BHOME¡BMAIL¡BSHELL µ¥µ¥¡A³£¬O«Ü«nªº¡A
¬°¤F°Ï§O»P¦ÛqÅܼƪº¤£¦P¡AÀô¹ÒÅܼƳq±`¥H¤j¼g¦r¤¸¨Óªí¥Ü©O¡I
¦n¤F¡A¨º»ò§ÚÌ´N²³æªº¨Ó¹ï¡y
¤°»ò¬OÅܼơz§@Ó²³æªº©w¸q¦n¤F¡G
¡y
ÅܼƴN¬O¥H¤@²Õ¤å¦r©Î²Å¸¹µ¥¡A¨Ó¨ú¥N¤@¨Ç³]©w©ÎªÌ¬O¤@¦ê«O¯dªº¸ê®Æ¡I¡z¡A
¨Ò¦p¡G§Ú³]©w¤F¡ymyname¡z´N¬O¡yVBird¡z¡A©Ò¥H·í§AŪ¨ú
myname ³oÓÅܼƪº®ÉÔ¡A¨t²Î¦ÛµM´N·|ª¾¹D¡I«¢¡I¨º´N¬O VBird °Õ¡I³Ì²³æªº¨Ò¤l¥i¥H¨ú PATH
¨Ó»¡©ú¡I¦pªG§A¹ï©ó¡y
¬Û¹ï¸ô®|»Pµ´¹ï¸ô®|¡zÁÙ¦³ÂI¦L¶Hªº¸Ü¡A
¨º»òÀ³¸Ó¾å±o¡y
n¤U¹F¥¿½Tªº«ü¥O¡AÀ³¸Ó»Ýn«ü©w¸ô®|»PÀɦW¡z¤~¦æ¡I¨Ò¦p§Aªº
ls «ü¥OÀ³¸Ó»Ýn¥H¡y/bin/ls¡z¨Ó¤U¹F«ü¥O¤~¹ï¡A¨º»ò¬°¦ó§A¦b¥ô·Nªº¸ô®|¤U³£¥i¥H°õ¦æ
ls ©O¡H¦Ó¤£»Ýn«ü©w¸ô®|©O¡H³o¬O¦]¬°¨t²Î¤w¸g¹w³]¤F¤@¨Ç¡y
·j´M¸ô®|(PATH)¡z¤F¡A
©Ò¥H·í§A»Ýn°õ¦æ¤@¨Ç«ü¥Oªº®ÉÔ¡A¨t²Î´N·|¨Ì·Ó¸Ó
PATH ªº³]©w¨Ó¶i¦æ«ü¥Oªº·j´M¡I¦Ó³oÓ PATH ´N¬O©Ò¿×ªºÅܼƤF¡I
¨º»ò¦p¦ó¡y
Åã¥ÜÅܼơz©O¡H³o´N»Ýn¨Ï¥Î¨ì echo ³oÓ«ü¥O°Õ¡I
Åܼƪº¨ú¥Î»P³]©w¡Gecho,
ÅܼƳ]©w³W«h, unset
»¡ªº¤fªj¾î¸ªº¡A¤]¤£ª¾¹D¡yÅܼơz»P¡yÅܼƥNªíªº¤º®e¡z¦³Ô£Ãö«Y¡H
·íµM°Õ¡A¨º§ÚÌ´N±N¡yÅܼơzªº¡y¤º®e¡z®³¥X¨Óµ¹±zÁ@Á@´N¦n¤F¡C§Q¥Î echo ³oÓ«ü¥O¨Ó¨ú¥ÎÅܼơA
¦ý¬O¡AÅܼƦb³Q¨ú¥Î®É¡A«e±¥²¶·n¥[¤W $ ¤~¦æ¡AÁ|¨Ò¨Ó»¡¡Anª¾¹D PATH ªº¤º®e¡A¸Ó¦p¦ó¬O¦n¡H
[root@linux ~]# echo $variable
[root@linux ~]# echo $PATH
/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin
[root@linux ~]# echo ${PATH}
|
Åܼƪº¨ú¥Î´N¦p¦P¤W±ªº½d¨Ò¡A§Q¥Î ehco ´N¯à°÷Ū¥X¡A¥u¬O»Ýn¦bÅܼƦWºÙ«e±¥[¤W $ ¡A
©ÎªÌ¬O¥H ${variable} ªº¤è¦¡¨Ó¨ú¥Î³£¥i¥H¡I·íµM°Õ¡A¨ºÓ echo ªº¥\¯à¥i¬O«Ü¦hªº¡A
§Ú̳o¸Ì³æ¯Â¬O®³ echo ¨ÓŪ¥XÅܼƪº¤º®e¦Ó¤w¡A§ó¦hªº echo ¨Ï¥Î¡A½Ð¦Û¦æµ¹¥L man echo §a¡I ^_^
¨ÒÃD¤@¡G½Ð¦b¿Ã¹õ¤W±Åã¥Ü¥X±zªºÀô¹ÒÅÜ¼Æ HOME »P MAIL¡G
榭G
|
OK¡I²{¦b§Ú̪¾¹D¤FÅܼƻPÅܼƤºªº¤§¶¡ªº¬ÛÃö©Ê¤F¡A¦n¤F¡A¨º»ò§Ún¦p¦ó¡y³]©w¡z©ÎªÌ¬O¡y×§ï¡z
¬YÓÅܼƪº¤º®e°Ú¡H¡I«Ü²³æ°Õ¡I¥Î¡yµ¥¸¹(=)¡z³s±µÅܼƻP¥Lªº¤º®e´N¦n°Õ¡IÁ|¨Ò¨Ó»¡¡G
§Ún±N myname ³oÓÅܼƦWºÙªº¤º®e³]©w¬° VBird ¡A¨º»ò¡G
[root@linux ~]# echo $myname
<==³o¸Ì¨Ã¨S¦³¥ô¦ó¸ê®Æ¡ã¦]¬°³oÓÅܼƩ|¥¼³Q³]©w¡I¬OªÅªº¡I
[root@linux ~]# myname=VBird
[root@linux ~]# echo $myname
VBird <==¥X²{¤F¡I¦]¬°³oÓÅܼƤw¸g³Q³]©w¤F¡I
|
Á@¡I¦p¦¹¤@¨Ó¡A³oÓÅܼƦWºÙ myname ªº¤º®e´N±a¦³ VBird ³oÓ¸ê®ÆÅo¡ã
¦Ó¥Ñ¤W±ªº¨Ò¤l·í¤¤¡A§Ṳ́]¥i¥Hª¾¹D¡G
·í¤@ÓÅܼƦWºÙ©|¥¼³Q³]©w®É¡A¹w³]ªº¤º®e¬O¡yªÅ¡zªº¡C
¥t¥~¡AÅܼƦb³]©w®É¡AÁÙ¬O»Ýn²Å¦X¬Y¨Ç³W©wªº¡A§_«h·|³]©w¥¢±Ñ³á¡I
³o¨Ç³W«h¦p¤U©Ò¥Ü°Ú¡I
- ÅܼƻPÅܼƤº®e¥Hµ¥¸¹¡y=¡z¨Ó³sµ²¡F
- µ¥¸¹¨âÃ䤣¯àª½±µ±µªÅ¥Õ¦r¤¸¡F
- ÅܼƦWºÙ¥u¯à¬O^¤å¦r¥À»P¼Æ¦r¡A¦ý¬O¼Æ¦r¤£¯à¬O¶}ÀY¦r¤¸¡F
- Y¦³ªÅ¥Õ¦r¤¸¥i¥H¨Ï¥ÎÂù¤Þ¸¹¡y " ¡z©Î³æ¤Þ¸¹¡y ' ¡z¨Ó±NÅܼƤº®eµ²¦X°_¨Ó¡A¦ý¶·n¯S§O¯d·N¡A
Âù¤Þ¸¹¤ºªº¯S®í¦r¤¸¥i¥H«O¦³ÅܼƯS©Ê¡A¦ý¬O³æ¤Þ¸¹¤ºªº¯S®í¦r¤¸«h¶È¬°¤@¯ë¦r¤¸¡F
- ¥²n®É»Ýn¥H¸õ²æ¦r¤¸¡y \ ¡z¨Ó±N¯S®í²Å¸¹ ( ¦p Enter,
$, \, ªÅ¥Õ¦r¤¸, ' µ¥ ) Åܦ¨¤@¯ë²Å¸¹¡F
- ¦b¤@¦ê«ü¥O¤¤¡AÁÙ»ÝnÂǥѨä¥Lªº«ü¥O´£¨Ñªº¸ê°T¡A¥i¥H¨Ï¥Î
quote ¡y ` command` ¡z¡F(¯S§O¯S§Oª`·N¡A¨ºÓ ` ¬OÁä½L¤W¤èªº¼Æ¦rÁä 1
¥ªÃ䨺ӫöÁä¡A¦Ó¤£¬O³æ¤Þ¸¹¡I)
- Y¸ÓÅܼƬ°ÂX¼WÅܼƤº®e®É¡A«h»Ý¥HÂù¤Þ¸¹¤Î $ÅܼƦWºÙ
¦p¡G¡y "$PATH":/home¡zÄ~Äò²Ö¥[¤º®e¡F
- Y¸ÓÅܼƻÝn¦b¨ä¥L¤lµ{§Ç°õ¦æ¡A«h»Ýn¥H export ¨Ó¨ÏÅܼÆÅܦ¨Àô¹ÒÅܼơA
¦p¡yexport PATH¡z¡F
- ³q±`¤j¼g¦r¤¸¬°¨t²Î¹w³]ÅܼơA¦Û¦æ³]©wÅܼƥi¥H¨Ï¥Î¤p¼g¦r¤¸¡A¤è«K§PÂ_
( ¯Âºé¨Ì·Ó¨Ï¥ÎªÌ¿³½ì»P¶Ý¦n ) ¡F
- ¨ú®øÅܼƪº¤èªk¬°¡G¡yunset ÅܼƦWºÙ¡z¡C
©³¤U§ÚÌÁ|´XÓ¨Ò¤l¨ÓÅý±z¸Õ¬Ý¬Ý¡A´Nª¾¹D«ç»ò³]©w¦n±zªºÅܼÆÅo¡I
½d¨Ò¤@¡G³]©w¤@ÅÜ¼Æ name ¡A¥B¤º®e¬° VBird ¡C
[root@linux ~]# 12name=VBird
-bash: 12name=VBird: command not found <==¿Ã¹õ·|Åã¥Ü¿ù»~¡I¦]¬°¤£¯à¥H¼Æ¦r¶}ÀY¡I
[root@linux ~]# name = VBird <==ÁÙ¬O¿ù»~¡I¦]¬°¦³ªÅ¥Õ¡I
[root@linux ~]# name=VBird <==OK ªº°Õ¡I
½d¨Ò¤G¡G©Ó¤WÃD¡AYÅܼƤº®e¬° VBird's name ©O¡H
[root@linux ~]# name=VBird's name
# ¦]¬°³æ¤Þ¸¹¥i¥H±N Enter ³oÓ¯S®í¦r²Å¨ú®ø¡A©Ò¥H¡A±z¥i¥HÄ~Äò¦b¤U¤@¦æ¿é¤J¤º®e¡ã
# ¤£¹L¡A³o»P§ÚÌn¹F¨ìªº¥\¯à¤£¦P¡A©Ò¥H¡Aºâ¬O¥¢±Ñªº°Õ¡I
[root@linux ~]# name="VBird's name" <==OK ªº°Õ¡I
[root@linux ~]# name=VBird\'s\ name
# §Q¥Î¤Ï±×½u (\) ¸õ²æ¯S®í¦r¤¸¡A¨Ò¦p³æ¤Þ¸¹»PªÅ¥ÕÁä¡A³o¤]¬O OK ªº°Õ¡I
½d¨Ò¤T¡G§Ún¦b PATH ³oÓÅÜ¼Æ·í¤¤¡y²Ö¥[¡z:/home/dmtsai/bin ³oӥؿý
[root@linux ~]# PATH=$PATH:/home/dmtsai/bin
[root@linux ~]# PATH="$PATH":/home/dmtsai/bin
# ¤W±³o¨âºØ®æ¦¡¦b PATH ¸ÌÀYªº³]©w³£¬O OK ªº¡I¦ý¬O©³¤Uªº¨Ò¤l´N¤£¨£±oÅo¡I
½d¨Ò¥|¡G§e½d¨Ò¤T¡A§Ún±N name ªº¤º®e¦h¥X "yes" ©O¡H
[root@linux ~]# name=$nameyes
# ª¾¹D¤F§a¡H¦pªG¨S¦³Âù¤Þ¸¹¡A¨º»òÅܼƦ¨¤FÔ£¡Hname ªº¤º®e¬O $nameyes ³oÓÅܼơI
# ¨þ¨þ¡I§ÚÌ¥i¨S¦³³]©w¹L nameyes ³oÓÅܼƧo¡I©Ò¥H¡AÀ³¸Ó¬O©³¤U³o¼Ë¤~¹ï¡I
[root@linux ~]# name="$name"yes
[root@linux ~]# name=${name}yes
½d¨Ò¤¡G¦p¦óÅý§Úèè³]©wªº name=VBird ¥i¥H¥Î¦b¤UÓ shell ªºµ{§Ç¡H
[root@linux ~]# name=VBird
[root@linux ~]# bash <==¶i¤J¨ì©Ò¿×ªº¤lµ{§Ç
[root@linux ~]# echo $name <==¼K¼K¡I¨Ã¨S¦³èè³]©wªº¤º®e³á¡I
[root@linux ~]# exit <==Â÷¶}è誺¤lµ{§Ç
[root@linux ~]# export name
[root@linux ~]# bash <==¶i¤J¨ì©Ò¿×ªº¤lµ{§Ç
[root@linux ~]# echo $name <==¥X²{¤F³]©wȤF¡I
[root@linux ~]# exit <==Â÷¶}è誺¤lµ{§Ç
# ¤°»ò¬O¡y¤lµ{§Ç¡z©O¡H´N¬O»¡¡A¦b§Ú¥Ø«e³oÓ shell ªº±¡ªp¤U¡A
# ¥h±Ò¥Î¥t¤@Ó·sªº shell ¡A·sªº¨ºÓ shell ´N¬O¤lµ{§Ç°Õ¡I¦b¤@¯ëªºª¬ºA¤U¡A
# ¤÷µ{§Çªº¦ÛqÅܼƬOµLªk¦b¤lµ{§Ç¤º¨Ï¥Îªº¡C¦ý¬O³z¹L export ±NÅܼÆÅܦ¨
# Àô¹ÒÅܼƫá¡A´N¯à°÷¦b¤lµ{§Ç©³¤UÀ³¥Î¤F¡I«Ü¤£¿à§a¡I¦Ü©óµ{§Çªº¬ÛÃö·§©À¡A
# §ÚÌ·|¦b¡yµ{§Ç»P¸ê·½ºÞ²z¡z³¹¸`·í¤¤´£¨ìªº³á¡I
½d¨Ò¤»¡G¦p¦ó¶i¤J¨ì±z¥Ø«e®Ö¤ßªº¼Ò²Õ¥Ø¿ý¡H
[root@linux ~]# cd /lib/modules/`uname -r`/kernel
# ¨CÓ§@·~¨t²Î®Ö¤ßª©¥»³£¤£¬Û¦P¡A¥H FC4 ¬°¨Ò¡A¥Lªº¹w³]®Ö¤ßª©¥»¬O
# 2.6.11-1.1369_FC4 ©Ò¥H¡A¥Lªº¼Ò²Õ¥Ø¿ý¦b /lib/modules/2.6.11-1.1369_FC4/kernel ¡C
# ¦]¬°¨CÓ distributions ªº³oÓȳ£¤£¬Û¦P¡A¦ý¬O§ÚÌ«o¥i¥H§Q¥Î uname -r ³oÓ«ü¥O
# ¥ý¨ú±oª©¥»¸ê°T¡A©Ò¥HÅo¡A´N¥i¥H³z¹L¤W±«ü¥O·í¤¤ªº¤º§t«ü¥O `uname -r`
# ¥ý¨ú±oª©¥»¿é¥X¨ì cd .. ¨ºÓ«ü¥O·í¤¤¡A´N¯à°÷¶¶§Qªº¶i¤J¥Ø«e®Ö¤ßªºÅX°Êµ{¦¡©Ò©ñ¸m
# ªº¥Ø¿ýÅo¡I«Ü¤è«K§a¡I
½d¨Ò¤C¡G¨ú®øèè³]©wªº name ³oÓÅܼƤº®e
[root@linux ~]# unset name
|
®Ú¾Ú¤W±ªº®×¨Ò§A¥i¥H¸Õ¸Õ¬Ý¡I´N¥i¥HÁA¸ÑÅܼƪº³]©wÅo¡I³oÓ¬O«Ü«nªºËç¡I½Ð¶Ô¥[½m²ß¡I¡I
¨ä¤¤¡A¸û¬°«nªº¤@¨Ç¯S®í²Å¸¹ªº¨Ï¥ÎÅo¡I¨Ò¦p³æ¤Þ¸¹¡BÂù¤Þ¸¹¡B¸õ²æ¦r¤¸¡B¿ú¦r¸¹¡Bquote
²Å¸¹µ¥µ¥¡A©³¤Uªº¨ÒÃD·Q¤@·Q§a¡I
¨ÒÃD¤G¡G¦bÅܼƪº³]©w·í¤¤¡A³æ¤Þ¸¹»PÂù¤Þ¸¹ªº¥Î³~¦³¦ó¤£¦P¡H
µª¡G³æ¤Þ¸¹»PÂù¤Þ¸¹ªº³Ì¤j¤£¦P¦b©óÂù¤Þ¸¹¤´µM¥i¥H«O¦³Åܼƪº¤º®e¡A¦ý³æ¤Þ¸¹¤º¶È¯à¬O¤@¯ë¦r¤¸
¡A¦Ó¤£·|¦³¯S®í²Å¸¹¡C§ÚÌ¥H©³¤Uªº¨Ò¤l°µ»¡©ú¡G°²³]±z©w¸q¤F¤@ÓÅܼơA name=VBird ¡A²{¦b·Q¥H
name ³oÓÅܼƪº¤º®e©w¸q¥X myname Åã¥Ü VBird its me ³oÓ¤º®e¡An¦p¦óq©w©O¡H
[root@linux ~]# name=VBird
[root@linux ~]# echo $name
VBird
[root@linux ~]# myname="$name its me"
[root@linux ~]# echo $myname
VBird its me
[root@linux ~]# myname='$name its me'
[root@linux ~]# echo $myname
$name its me
µo²{¤F¶Ü¡H¨S¿ù¡I¨Ï¥Î¤F³æ¤Þ¸¹ªº®ÉÔ¡A¨º»ò $name ±N¥¢¥h즳ªºÅܼƤº®e¡A
¶È¬°¤@¯ë¦r¤¸ªºÅã¥Ü«¬ºA¦Ó¤w¡I³o¸Ì¥²»Ýn¯S§O¤p¤ß¦b·N¡I
|
¨ÒÃD¤T¡G¦b«ü¥O¤U¹Fªº¹Lµ{¤¤¡A quote ( ` ) ³oӲŸ¹¥Nªíªº·N¸q¬°¦ó¡H
µª¡G¦b¤@¦ê«ü¥O¤¤¡A¦b ` ¤§¤ºªº«ü¥O±N·|³Q¥ý°õ¦æ¡A¦Ó¨ä°õ¦æ¥X¨Óªºµ²ªG±N°µ¬°¥~³¡ªº¿é¤J¸ê°T¡I¨Ò¦p
uname -r ·|Åã¥Ü¥X¥Ø«eªº®Ö¤ßª©¥»¡A¦Ó§Ú̪º®Ö¤ßª©¥»¦b /lib/modules ¸Ì±¡A¦]¦¹¡A§A¥i¥H¥ý°õ¦æ
uname -r §ä¥X®Ö¤ßª©¥»¡AµM«á¦A¥H¡y cd ¥Ø¿ý¡z¨ì¸Ó¥Ø¿ý¤U¡A·íµM¤]¥i¥H°õ¦æ¦p¦P¤W±½d¨Ò¤»ªº°õ¦æ¤º®eÅo¡C
¥t¥~¦AÁ|Ó¨Ò¤l¡A§Ṳ́]ª¾¹D¡A locate «ü¥O¥i¥H¦C¥X©Ò¦³ªº¬ÛÃöÀÉ®×ÀɦW¡A¦ý¬O¡A
¦pªG§Ú·Qnª¾¹D¦UÓÀɮתºÅv©O¡HÁ|¨Ò¨Ó»¡¡A§Ú·Qnª¾¹D¨CÓ crontab ¬ÛÃöÀɦWªºÅv¡G
[root@linux ~]# ls -l `locate crontab`
¦p¦¹¤@¨Ó¡A¥ý¥H locate ±NÀɦW¸ê®Æ³£¦C¥X¨Ó¡A¦A¥H ls «ü¥O¨Ó³B²zªº·N«ä°Õ¡IÁA¤F¶Ü¡H ^_^
|
Åܼƪº¥Î³~
§Ú̪¾¹D PATH ³oÓÅܼƬO§Ú̦b°õ¦æ«ü¥Oªº®ÉÔ¡A©Ò»Ýn¨ã³Æªº«ü¥O·j´M¥Ø¿ý¸ê®Æ¡A
¨S¦³¥L¡A§ÚÌ´N±on¨Ï¥Îµ´¹ï¸ô®|¨Ó¤U¹F«ü¥O¤~¦æ¡C·íµM¡AÁÙ¦³«Ü¦hÅܼƳ£¦³¥L¯S§Oªº·N¸q¦s¦b¡C
°£¦¹¤§¥~¡A¡y
§Ú¬°¦ó»Ýn³]©wÅܼơz©O¡H
n¸ò¤j®a¤¶²Ð³oÓ¡yÅܼơz¡A·íµM¬O¦]¬°¥L¦³¬Û·íµ{«×ªº·N¸q¦s¦bªº°Ú¡I
©³¤U´N¸ò¤j®a¤¶²Ð¤@¤U¡A³¾ô³]©wÅܼƪº®É¾÷³á¡I
§Úªº®×¨Ò¤@¡G³Ì²³æªº¨Ò¤l´N¬O
¡y²¤Æ¸ô®|¦WºÙ¡zÅo¡I¥H³¾ô¬°¨Ò¡A§Úªº¤u§@¦b
Unix ¨t²Î¤§¤U¶i¦æ¤@¨Ç¼ÆÈ¼Ò¦¡ªº¼ÒÀÀ¤u§@¡A°¾°¾¥Ñ©ó¸ê®Æ¶q¤Ó¤j¡A
¬°¤F©È¤é«á§Ñ°O³oӥؿýªº¤º®e»P¥Dnªº·N¸q¡A©Ò¥H§ÚªºÀɦW³£¨úªº«Üªø¡A
°¾°¾¦b°õ¦æ¼Ò¦¡ªº¹Lµ{¤¤¡A±`±`·|¤Á´«¥Ø¿ý¡I§Úù£{£°¡A¥ú¬O¥´¨º´X¦æ¸ô®|¦WºÙ´N§ÖnºÆ±¼¤F¡I
©Ò¥H§Ú´N³]©w¨º´X¦æ¥Ø¿ý¦WºÙ¦¨¬°¤@Ó¥|Ó¦r¤¸ªºÅܼơA¦p¦¹¤@¨Ó§Ú¥un¿é¤J¡y
cd $VARI ¡z³oÓ«ü¥O¡A¼K¼K¡I°¨¤W´N²¾°Ê¨ì¸Ó¸ô®|¤U¤F¡I«Ü¤è«K§a¡I·íµMÅܼƪº·N¸qÁÙ¤£¤î©ó¦¹¡A
¤£¹L³o¬O³Ì²³æªº¹ê¨Ò»¡©úÅo¡I
§Úªº®×¨Ò¤G¡G¥t¥~¤@Ó±`±`»ÝnÅܼƪº©N©N¬O¦b
scripts ¸Ì±¡A¨Ò¦p§Ú¼gªº¤@Ó°»´úµn¿ýÀɪº¤pµ{¦¡ logfile.sh ³oÓ©N©N¡A
¥Ñ©ó¸ÌÀY±`±`»Ýn¥Î¨ì¡yÀx¦s¸ô®|¡z¡A°¾°¾¥i¯à¨CÓ¤Hªº¦s¨ú¸ô®|³£¤£¤Ó¤@¼Ë¡A
¦Ó¦pªGn×§ï¦s¨ú¸ô®|ªº¸Ü¡A¼K¼K¡I¦n´X¤Q¦æn¦P®É×§ï©O¡IÁÙ¥i¯à·|§ï¿ù¡I
¨º»ò§Ú¥un©w¸q¤@ÓÅܼơAµM«á«áÄòªº©Ò¦³¸ê®Æ³£¨Ï¥Î³oÓÅܼƪº¤º®e¡I¼K¼K¡I
¨º»ò¥un¤j®a×§ï¤F³oÓÅܼƪº¤º®e¡]¥un¤@¦æ¡^¡A«áÄòªº°Ê§@´N¤£»Ýn×¥¿¤F¡I³oӰʧ@±`¦bµ{¦¡©ÎªÌ¬O
script ·í¤¤¬Ý¨ìªº¡I
©Ò¥HÅo¡A¦³«Ü¦hªº®ÉÔ¬°¤F¤è«K©ÎªÌ¬O¨Ï¥Î©ó scripts ªº·N¸q¡A§ÚÌ¥²¶·n³]©wÅܼơI
·íµMÅo¡A¦pªG¬O¸ò¨t²Î²×ºÝ¾÷Àô¹Ò¦³Ãöªº³]©wÈ¡A«Ü¦h¤]¬O§Q¥ÎÅܼƨÓÀ°§U¹F¦¨ªº¡ã
©³¤U§ÚÌ´N¨Ó½Í¤@½Í©Ò¿×ªº¡yÀô¹ÒÅܼơz§a¡I
Àô¹ÒÅܼƪº¥\¯à
Àô¹ÒÅܼƥi¥HÀ°§Ú̹F¨ì«Ü¦h¥\¯à¡ã¥]¬A®a¥Ø¿ýªºÅÜ´«°Ú¡B´£¥Ü¦r¤¸ªºÅã¥Ü°Ú¡B°õ¦æÀÉ·j´Mªº¸ô®|°Úµ¥µ¥ªº¡A
ÁÙ¦³«Ü¦h«Ü¦h°Õ¡I¨º»ò¡A¬JµMÀô¹ÒÅܼƦ³¨º»ò¦hªº¥\¯à¡A°Ý¤@¤U¡A¥Ø«e§Úªº shell Àô¹Ò¤¤¡A
¦³¦h¤ÖÅܼưڡH¡I¨þ¨þ¡I§ÚÌ¥i¥H§Q¥Î¨âÓ«ü¥O¨Ó¬d¾\¡A¤À§O¬O env »P export ©O¡I
¤@¨ÇÀô¹ÒÅܼƪº»¡©ú¡G env
½d¨Ò¤@¡G¦C¥X¥Ø«eªº shell Àô¹Ò¤Uªº©Ò¦³Àô¹ÒÅܼƻP¨ä¤º®e¡C
[root@linux ~]# env
HOSTNAME=linux.dmtsai.tw <== ³o³¡¥D¾÷ªº¥D¾÷¦WºÙ
SHELL=/bin/bash <== ¥Ø«e³oÓÀô¹Ò¤U¡A¨Ï¥Îªº Shell ¬Oþ¤@Óµ{¦¡¡H
TERM=xterm <== ³oӲ׺ݾ÷¨Ï¥ÎªºÀô¹Ò¬O¤°»òÃþ«¬
HISTSIZE=1000 <== ³oÓ´N¬O¡y°O¿ý«ü¥Oªºµ§¼Æ¡z¦b FC4 ¹w³]¥i°O¿ý 1000 µ§
USER=root <== ¨Ï¥ÎªÌªº¦WºÙ°Ú¡I
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:
or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=0
0;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=
00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;3
1:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00
;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: <== ¤@¨ÇÃC¦âÅã¥Ü
ENV=/root/.bashrc <== ¨Ï¥ÎªºÓ¤HÀô¹Ò³]©wÀÉ
MAIL=/var/spool/mail/root <== ³oӨϥΪ̩Ҩú¥Îªº mailbox ¦ì¸m
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:
/root/bin <== ¤£¦A¦hÁ¿°Ú¡I¬O°õ¦æÀÉ«ü¥O·j´M¸ô®|
INPUTRC=/etc/inputrc <== »PÁä½L«öÁä¥\¯à¦³Ãö¡C¥i¥H³]©w¯S®í«öÁä¡I
PWD=/root <== ¥Ø«e¨Ï¥ÎªÌ©Ò¦bªº¤u§@¥Ø¿ý (§Q¥Î pwd ¨ú¥X¡I)
LANG=en_US.UTF-8 <== ³oÓ»P»y¨t¦³Ãö¡A©³¤U·|¦A¤¶²Ð¡I
HOME=/root <== ³oӨϥΪ̪º®a¥Ø¿ý°Ú¡I
_=/bin/env <== ¤W¤@¦¸¨Ï¥Îªº«ü¥Oªº³Ì«á¤@ӰѼÆ(©Î«ü¥O¥»¨)
|
env ¬O environment (Àô¹Ò) ªºÂ²¼g°Ú¡ã
¤W±ªº¨Ò¤l·í¤¤¡A¬O¦C¥X¨Ó©Ò¦³ªºÀô¹ÒÅܼơC·íµM¡A¦pªG¨Ï¥Î export ¤]·|¬O¤@¼Ëªº¤º®e¡ã
¥u¤£¹L¡A export ÁÙ¦³¨ä¥LÃB¥~ªº¥\¯à´N¬O¤F¡A§Ú̵¥¤@¤U¦A´£³oÓ export «ü¥O¡C
¨º»ò¤W±³o¨ÇÅܼƦ³¨Ç¤°»ò¥\¥Î©O¡H
©³¤U§ÚÌ´N¤@Ó¤@Ó¨Ó¤ÀªR¤ÀªR¡I
- HOME ¡G ¥Nªí¨Ï¥ÎªÌªº®a¥Ø¿ý¡CÁÙ°O±o§ÚÌ¥i¥H¨Ï¥Î cd ~
¥h¨ì¨Ï¥ÎªÌªº®a¥Ø¿ý¶Ü¡H©ÎªÌ§Q¥Î cd ´N¥i¥Hª½±µ¦^¨ì¨Ï¥ÎªÌ®a¥Ø¿ý¤F¡C¨º´N¬O¨ú¥Î³oÓ¥\¯à°Õ¡ã
¦³«Ü¦hµ{¦¡³£¥i¯à·|¨ú¥Î¨ì³oÓÅܼƪºÈ³á¡I
- SHELL ¡G §iª¾§ÚÌ¡A¥Ø«e³oÓÀô¹Ò¨Ï¥Îªº SHELL ¬Oþ¤äµ{¦¡¡H
¦pªG¬O bash ªº¸Ü¡A¹w³]¬O /bin/bash ªº°Õ¡I
- HISTSIZE ¡G ³oÓ»P¡y¾ú¥v©R¥O¡z¦³Ãö¡A¥ç§Y¬O¡A
§ÚÌ´¿¸g¤U¹F¹Lªº«ü¥O¥i¥H³Q¨t²Î°O¿ý¤U¨Ó¡A¦Ó°O¿ýªº¡yµ§¼Æ¡z«h¬O¥Ñ³oÓȨӳ]©wªº¡C
- ENV ¡G ³oӨϥΪ̩ҨϥΪºÓ¤H¤ÆÀô¹Ò³]©wÀɪºÅª¨úÀɮסC
- MAIL ¡G ·í§Ų́ϥΠmail ³oÓ«ü¥O¦b¦¬«H®É¡A¨t²Î·|¥hŪ¨úªº¶l¥ó«H½cÀÉ®×
(mailbox)¡C
- PATH ¡G ´N¬O°õ¦æÀÉ·j´Mªº¸ô®|°Õ¡ã¥Ø¿ý»P¥Ø¿ý¤¤¶¡¥H«_¸¹(:)¤À¹j¡A
¥Ñ©óÀɮתº·j´M¬O¨Ì§Ç¥Ñ PATH ªºÅܼƤºªº¥Ø¿ý¨Ó¬d¸ß¡A©Ò¥H¡A¥Ø¿ýªº¶¶§Ç¤]¬O«nªº³á¡C
- LANG ¡G ³oÓ«n¡I´N¬O»y¨tÀÉ®×Åo¡ã«Ü¦h¸ê®Æ³£·|¥Î¨ì¥L¡A
Á|¨Ò¨Ó»¡¡A·í§Ú̦b±Ò°Ê¬Y¨Ç perl ªºµ{¦¡»y¨¥Àɮ׮ɡA¥L·|¥D°Êªº¥h¤ÀªR»y¨t¸ê®ÆÀɮסA
¦pªGµo²{¦³¥LµLªk¸ÑªRªº½s½X»y¨t¡A¥i¯à·|²£¥Í¿ù»~³á¡I¤@¯ë¨Ó»¡¡A§Ṳ́¤¤å½s½X³q±`¬O zh_TW.Big5 ©ÎªÌ¬O
zh_TW.UTF-8¡A³o¨âÓ½s½X°¾°¾¤£®e©ö³Q¸ÑĶ¥X¨Ó¡A©Ò¥H¡A¦³ªº®ÉÔ¡A¥i¯à»Ýn×q¤@¤U»y¨t¸ê®Æ¡C
³o³¡¤À§ÚÌ·|¦b¤UÓ¤p¸`°µ¤¶²Ðªº¡I
- RANDOM ¡G ³oÓª±·N¨à´N¬O¡yÀH¾÷¶Ã¼Æ¡zªºÅܼưաI¥Ø«e¤j¦h¼Æªº
distributions ³£·|¦³¶Ã¼Æ²£¥Í¾¹¡A¨º´N¬O /dev/random ³oÓÀɮסC
§ÚÌ¥i¥H³z¹L³oӶüÆÀɮ׬ÛÃöªºÅÜ¼Æ ($RANDOM) ¨ÓÀH¾÷¨ú±o¶Ã¼ÆÈ³á¡C¦b BASH ªºÀô¹Ò¤U¡A³oÓ RANDOM
Åܼƪº¤º®e¡A¤¶©ó 0~32767 ¤§¶¡¡A©Ò¥H¡A§A¥un echo $RANDOM ®É¡A¨t²Î´N·|¥D°ÊªºÀH¾÷¨ú¥X¤@Ó¤¶©ó
0~32767 ªº¼ÆÈ¡C¸U¤@§Ú·Qn¨Ï¥Î 0~9 ¤§¶¡ªº¼ÆÈ©O¡H¨þ¨þ¡ã§Q¥Î declare «Å§i¼ÆÈÃþ«¬¡A
µM«á³o¼Ë°µ´N¥i¥H¤F¡G
[root@linux ~]# declare -i number=$RANDOM*10/32767 ; echo $number
8 <== ¦¹®É·|ÀH¾÷¨ú¥X 0~9 ¤§¶¡ªº¼ÆÈ³á¡I
|
¤jP¤W¬O¦³³o¨ÇÀô¹ÒÅܼưաã¸Ì±¦³¨Ç¤ñ¸û«nªº°Ñ¼Æ¡A¦b©³¤U§Ú̳£·|¥t¥~¶i¦æ¤@¨Ç»¡©úªº¡ã
¨ä¥L©Ò¦³ªºÅܼƻ¡©ú¡G set
¦Ó°£¤F³o¨ÇÀô¹ÒÅܼƤ§¥~¡AÁÙ¦³¨S¦³¤°»ò«nªºÅܼƩO¡H·íµM¦³°Ú¡I
§Ú̦b bash ªºÀô¹Ò¤U¡A¨ä¹êÁÙ¦³¤@¨Ç®¼«nªºÅܼơA³o¨ÇÅܼƬO¡y
¦b³oÓ shell
Àô¹Ò¤U¦³®Ä¡zªº¡A ¦pªG¬O¦b¡y¤lµ{§Ç¡z¡A³o¨ÇÅܼÆÈ´N¤£·|¬Û¦P¤F¡C
¨º»ò¦p¦óÆ[¹î¥Ø«e shell Àô¹Ò¤Uªº©Ò¦³ÅܼƩO¡H«Ü²³æ°Ú¡A´N¥Î set §Y¥i¡Iset
³oÓ«ü¥O°£¤F·|±NÀô¹ÒÅܼƦC¥X¨Ó¤§¥~¡A¨ä¥L§Ú̪º¦ÛqÅܼơA»P©Ò¦³ªºÅܼơA³£·|³Q¦C¥X¨Ó³á¡I¸ê°T¦h¦n¦h¡C
©³¤U¶È¦C¥X´XÓ«nªº¤º®e¡C
[root@linux ~]# set
BASH=/bin/bash <== bash ªº¥Dµ{¦¡©ñ¸m¸ô®|
BASH_VERSINFO=([0]="3" [1]="00" [2]="16" [3]="1" [4]="release"
[5]="i386-redhat-linux-gnu") <== bash ªºª©¥»°Ú¡I
BASH_VERSION='3.00.16(1)-release' <== bash ªºª©¥»°Ú¡I
COLORS=/etc/DIR_COLORS.xterm <== ¨Ï¥ÎªºÃC¦â¬ö¿ýÀÉ®×
COLUMNS=115 <== ¦b¥Ø«eªº²×ºÝ¾÷Àô¹Ò¤U¡A¨Ï¥ÎªºÄæ¦ì¦³´XÓ¦r¤¸ªø«×
HISTFILE=/root/.bash_history <== ¾ú¥v©R¥O°O¿ýªº©ñ¸mÀɮסAÁôÂÃÀÉ
HISTFILESIZE=1000 <== ¦s°_¨Ó(»P¤WÓÅܼƦ³Ãö)ªºÀɮפ§«ü¥Oªº³Ì¤j¬ö¿ýµ§¼Æ¡C
HISTSIZE=1000 <== ¥Ø«eÀô¹Ò¤U¡A¥i°O¿ýªº¾ú¥v©R¥O³Ì¤jµ§¼Æ¡C
HOSTTYPE=i386 <== ¥D¾÷¦w¸Ëªº³nÅé¥DnÃþ«¬¡C§Ú̥Ϊº¬O i386 ¬Û®e¾÷¾¹³nÅé
IFS=$' \t\n' <== ¹w³]ªº¤À¹j²Å¸¹
LINES=35 <== ¥Ø«eªº²×ºÝ¾÷¤Uªº³Ì¤j¦æ¼Æ
MACHTYPE=i386-redhat-linux-gnu <== ¦w¸Ëªº¾÷¾¹Ãþ«¬
MAILCHECK=60 <== »P¶l¥ó¦³Ãö¡C¨C 60 ¬í¥h±½ºË¤@¦¸«H½c¦³µL·s«H¡I
OLDPWD=/home <== ¤WÓ¤u§@¥Ø¿ý¡C§ÚÌ¥i¥H¥Î cd - ¨Ó¨ú¥Î³oÓÅܼơC
OSTYPE=linux-gnu <== §@·~¨t²ÎªºÃþ«¬¡I
PPID=20046 <== ¤÷µ{§Çªº PID (·|¦b«áÄò³¹¸`¤~¤¶²Ð)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\007"'
<== ¤W±³oÓ¬O©R¥O´£¥Ü¦r¤¸¡I»P©³¤U¤]¦³Ãö¡C
PS1='[\u@\h \W]\$ ' <== PS1 ´N¼F®`¤F¡C³oÓ¬O©R¥O´£¥Ü¦r¤¸¡A¤]´N¬O§Ú̱`¨£ªº
[root@linux ~]# ©Î [dmtsai ~]$ ªº³]©wȰաI¥i¥H§ó°Êªº¡I
RANDOM=13586 <== ¶Ã¼Æ°Ú¡I¤W±¤w¸g´£¹LÅo¡ã
SUPPORTED=zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8 <== ¥»¨t²Î©Ò¤ä´©ªº»y¨t
name=VBird <== èè³]©wªº¦ÛqÅܼƤ]¥i¥H³Q¦C¥X¨Ó³á¡I
$ <== ¥Ø«e³oÓ shell ©Ò¨Ï¥Îªº PID
? <== èè°õ¦æ§¹«ü¥Oªº¦^¶ÇÈ¡C
|
¤@¯ë¨Ó»¡¡A¤£½×¬O§_¬°Àô¹ÒÅܼơA¥un¸ò§Ú̥ثe³oÓ shell ªº¾Þ§@¤¶±¦³ÃöªºÅܼơA
³q±`³£·|³Q³]©w¬°¤j¼g¦r¤¸¡A¤]´N¬O»¡¡A¡y
°ò¥»¤W¡A¦b Linux
¹w³]ªº±¡ªp¤¤¡A¨Ï¥Î{¤j¼gªº¦r¥À}¨Ó³]©wªºÅܼƤ@¯ë¬°¨t²Î¤º©w»ÝnªºÅܼơz¡C
¨Ï¥Î set °£¤F·|±N¨t²Îªº¹w³]Ȩq¥X¨Ó¤§¥~¡A³s±aªº©Ò¦³ªº§A¦Û¤v³]©wªºÅܼƤ]·|³Q¨q¥X¨Ó¡I
¦P®É»Ýnª`·Nªº¬O¡AY·í®É¦³¬Û·í¦h¤H¦P®É¦b½u¤Wªº¸Ü¡A¨º»ò
§AªºÅܼƥu¯àµ¹¦Û¤v¨Ï¥Î
( °£«D§ïªº¬O¨t²Îªº¹w³]°Ñ¼ÆÀÉ¡A¦p /etc/profile )¡A¦Ó¤£·|¤zÂZ¨ì§O¤Hªº¡I´N¦p¦P«e±©Ò»¡ªº¡A
¥Ñ©ó§Aµn¤J Linux ¤§«á·|¨ú±o¤@Ó PID ¡A¦Ó§Aªº³]©w±N¥u¹ï³oÓ PID »P¤lµ{§Ç¦³Ãö¡I¦¹¥~¡A
³o¦¸µn¤J©Ò¶i¦æªºÅܼƳ]©w¡A¦pªG¨S¦³§ó°Ê¨ì³]©wÀÉ¡A
¨º»ò³o¦¸³]©wªºÅܼƦb¤U¦¸µn¤J®É±N³Q¨ú®ø±¼ ( ¦]¬°µ{§Ç PID ¤£¨£Åo¡I ) ¡I©Ò¥HÅo¡A
¦pªG§A·Qn§AªºÅܼƨC¦¸³£¯à¦b§Aµn¤Jªº®ÉÔ¦Û°Ê´N³]©w¦n¤F¡A¨º»ò´N¥²¶·±N§Aªº³]©w¼g¤Jµn¤J®É¸ü¤Jªº³]©wÀÉ¡I
(
§ó¦hªºµ{§Ç¬ÛÃöªº»¡©ú¡A¤£n«æ¡ã§ÚÌ·|¦b«á±ªº
µ{§Ç»P¸ê·½ºÞ²z ·í¤¤¦n¦nªº´£¤@´£ªº¡I )
OK¡IOK¡I¨º»ò¤WÀY¨º¨ÇÅÜ¼Æ·í¤¤¡A¦³þ¨Ç¬O¤ñ¸û«nªº¡H¤j·§¦³³o´XÓ§a¡I
- PS1¡G(´£¥Ü¦r¤¸ªº³]©w)
³o¬O PS1 (¼Æ¦rªº 1 ¤£¬O^¤å¦r¥À¡I)¡A³oÓªF¦è´N¬O§Ú̪º¡y©R¥O´£¥Ü¦r¤¸¡z°Ú¡I
·í§Ų́C¦¸«ö¤U [Enter] «öÁä¥h°õ¦æ¬YÓ«ü¥O«á¡A³Ì«án¦A¦¸¥X²{´£¥Ü¦r¤¸®É¡A
´N·|¥D°Ê¥hŪ¨ú³oÓÅܼÆÈ¤F¡C¤WÀY PS1 ¤ºÅã¥Üªº¬O¤@¨Ç¯S®í²Å¸¹¡A¨CÓª©¥» bash ªº PSI
ÅܼƤºªº¯S®í²Å¸¹¥i¯à¦³¨Ç³\ªº®t²§¡A
§AÀ³¸Ó¥D°Êªº¥H man bash ¥h¬d¸ß¤@¤U¬ÛÃöªºÅܼơC©³¤U§Ú¦C¥X FC4 ªºÀô¹Ò¤U¡A
¹w³]ªº bash ªº PS1 ÅܼƤºªº¯S®í²Å¸¹¥Nªí·N¸q¡G
- \d ¡G¥Nªí¤é´Á¡A®æ¦¡¬° Weekday Month Date¡A¨Ò¦p "Mon Aug 1"
- \H ¡G§¹¾ãªº¥D¾÷¦WºÙ¡CÁ|¨Ò¨Ó»¡¡A³¾ôªº½m²ß¾÷ linux.dmtsai.tw ¡A¨º»ò³oÓ¥D¾÷¦WºÙ´N¬O linux.dmtsai.tw
- \h ¡G¶È¨ú¥D¾÷¦WºÙªº²Ä¤@Ó¦W¦r¡C¥H¤Wz¨ÓÁ¿¡A´N¬O linux ¦Ó¤w¡A .dmtsai.tw ³Q¬Ù²¤¡C
- \t ¡GÅã¥Ü®É¶¡¡A¬° 24 ¤p®É®æ¦¡¡A¦p¡G HH:MM:SS
- \T ¡GÅã¥Ü®É¶¡¡A12 ¤p®Éªº®É¶¡®æ¦¡¡I
- \A ¡GÅã¥Ü®É¶¡¡A24 ¤p®É®æ¦¡¡A HH:MM
- \u ¡G¥Ø«e¨Ï¥ÎªÌªº±b¸¹¦WºÙ¡F
- \v ¡GBASH ªºª©¥»¸ê°T¡F
- \w ¡G§¹¾ãªº¤u§@¥Ø¿ý¦WºÙ¡C®a¥Ø¿ý·|¥H ~ ¨ú¥N¡F
- \W ¡G§Q¥Î basename ¨ú±o¤u§@¥Ø¿ý¦WºÙ¡A©Ò¥H¶È·|¦C¥X³Ì«á¤@ӥؿý¦W¡C
- \# ¡G¤U¹Fªº²Ä´XÓ«ü¥O¡C
- \$ ¡G´£¥Ü¦r¤¸¡A¦pªG¬O root ®É¡A´£¥Ü¦r¤¸¬° # ¡A§_«h´N¬O $ Åo¡ã
OK¡I©Ò¥H¡A¥Ñ¹w³]ªº PS1 ¤º®e¬°¡G '\[\u@\h \W\]\$ ' ´N¥i¥HÁA¸Ñ¬°¦ó§Ú̪º´£¥Ü¦r¤¸·|¬O¡G
[root@linux ~]# ¤F§a¡I¦n¤F¡A¨º»ò°²³]§Ú·Qn¦³Ãþ¦ü©³¤Uªº´£¥Ü¦r¤¸¡G
[root@linux /home/dmtsai 16:50 #12]#
¡A¨ºÓ # ¥Nªí²Ä 12 ¦¸¤U¹Fªº«ü¥O¡C
¨º»òÀ³¸Ó¦p¦ó³]©w PS1 ©O¡H¥i¥H³o¼Ë°Ú¡G
[root@linux home]# PS1='[\u@\h \w \A #\#]\$ '
[root@linux /home 17:02 #85]#
# ¬Ý¨ì¤F¶Ü¡H´£¥Ü¦r¤¸ÅܤF¡IÅܪº«Ü¦³½ì§a¡I¨ä¤¤¡A¨ºÓ #85 ¤ñ¸û¦³½ì¡A
# ¦pªG±z«ö¤U [Enter] «á¡A¸Ó¼Æ¦r´N·|¼W¥[³á¡I¬°Ô£¡H¤W±¦³»¡©ú£v£°¡I
|
- $¡G(Ãö©ó¥» shell ªº PID)
¨ä¹ê³oÓ©N©N¥Nªíªº¬O¡y¥Ø«e³oÓ Shell ªº°õ¦æºü¥N¸¹¡z¡A¥ç§Y¬O©Ò¿×ªº PID (Process ID)¡C
§ó¦hªºµ{§ÇÆ[©À¡A§ÚÌ·|¦b²Ä¥|³¹ªº®ÉÔ´£¤Î¡C·Qnª¾¹D§Ú̪º shell ªº PID ¡A´N¥i¥H¡G
echo $$ §Y¥i¡I
- ?¡G(Ãö©ó¤WÓ°õ¦æ«ü¥Oªº¦^¶Ç½X)
½¼±K¡H°Ý¸¹¤]¬O¤@Ó¯S®íªºÅܼơH¨S¿ù¡I¦b bash ¸Ì±³oÓÅܼƥi«nªº«Ü¡I
³oÓÅܼƬO¡G¡y¤WÓ°õ¦æªº«ü¥O©Ò¦^¶ÇªºÈ¡z¡A
¤W±³o¥y¸Üªº«ÂI¬O¡y¤W¤@Ó«ü¥O¡z»P¡y¦^¶ÇÈ¡z¨âÓ¦a¤è¡C·í§Ṵ́õ¦æ¬Y¨Ç«ü¥O®É¡A
³o¨Ç«ü¥O³£·|¦^¶Ç¤@Ó°õ¦æ«áªº¥N½X¡C¤@¯ë¨Ó»¡¡A¦pªG¦¨¥\ªº°õ¦æ¸Ó«ü¥O¡A
«h·|¦^¶Ç¤@Ó 0 È¡A¦pªG°õ¦æ¹Lµ{µo¥Í¿ù»~¡A´N·|¦^¶Ç¡y¿ù»~¥N½X¡z¤~¹ï¡I¤@¯ë´N¬O¥H«D¬° 0 ªº¼ÆÈ¨Ó¨ú¥N¡C
§ÚÌ¥H©³¤Uªº¨Ò¤l¨Ó¬Ý¬Ý¡G
[root@linux ~]# echo $SHELL
/bin/bash
[root@linux ~]# echo $?
0
# ¦]¬°¤WÓ«ü¥O°õ¦æ¹Lµ{¤¤¡A¨Ã¨S¦³¿ù»~¡A¬°¦¨¥\ªº°õ¦æ§¹²¦¡A©Ò¥H¦^¶Ç 0 ¡C
[root@linux ~]# 12name=VBird
-bash: 12name=VBird: command not found
[root@linux ~]# echo $?
127
# µo¥Í¿ù»~°Õ¡I©Ò¥H echo $? ®É¡A´N·|¥X²{¿ù»~ªº¥N½X¡I
# §ÚÌ¥i¥H§Q¥Î³oÓ¥N½X¨Ó·j´M¿ù»~ªºì¦]³á¡I
[root@linux ~]# echo $?
0
# «x¡I«ç»ò¤SÅܦ¨¥¿½T¤F¡H³o¬O¦]¬° "?" ¥u»P¡y¤W¤@Ó°õ¦æ«ü¥O¡z¦³Ãö¡A
# ©Ò¥H¡A§Ṳ́W¤@Ó«ü¥O¬O°õ¦æ¡y echo $? ¡z¡A·íµM¨S¦³¿ù»~¡A©Ò¥H¬O 0 ¨S¿ù¡I
|
- OSTYPE, HOSTTYPE, MACHTYPE¡G(¥D¾÷µwÅé»P®Ö¤ßªºµ¥¯Å)
³o´XÓªF¦è»Pµ{¦¡ªº¦w¸Ë¦³Ãö¡C§Ú̦b¡yLinux ¥D¾÷³W¹º¡z
¸Ì±´£¨ì¹LÃö©ó¥D¾÷ªºµ¥¯Å¤è±ªº°ÝÃD¡A·í§Ú̦b¦w¸Ë³nÅ骺®ÉÔ¡A
»Ýn³z¹L½s;¹¨Ó±Nì©l½X½sͦ¨¬°¤G¶i¦ìªºÀÉ®× (binary file)¡C¦ý¬O¡A
§ÚÌ¥i¥H°w¹ïµwÅ骺°t³Æ¨Ó¶i¦æ½sĶªº³Ì¨Î¤Æ¡A¦¹®É¡A³o¨Ç°Ñ¼Æ´N¥i¥H³Q¥Î¨ì¤F¡I
°ò¥»¤W¡A¥Ø«e¥Dnªº distribution ³£¬O°w¹ï i386 ¥ç§Y³Ì§Cµ¥¯Åªº¾÷¾¹¶i¦æ³Ì¨Î¤Æ¡A
³o¼Ë¤~¯à°÷¦w¸Ë¦b¸û°ª¶¥ªº¾÷¾¹¤W¡A¦pªG¥H 686 ªº¾÷«¬¨Ó³Ì¨Î¤Æ¡A
¨º»ò¡A¥i´NµLªk¦V¤U¬Û®eªº³á¡I(¦´Áªº OpenLinux ¬O°w¹ï 686 ¾÷¾¹¨ÓÄÀ¥X³nÅé¡A
©Ò¥H¡A·í®Éªº OpenLinux ¬OµLªk¦w¸Ë¦b P-166 ªº¾÷¾¹¤Wªº¡C )
¦ÛqÅܼÆÂনÀô¹ÒÅܼơG export
¦n¤F¡A¤W±§ÚÌÀô¹ÒÅܼƤ]´£¹L¤F¡A¤@¨Ç¦ÛqÅܼƤ]´£¹L¤F¡A¨º»ò¡A³o¨âªÌ¦³Ô£¤£¦P¡H
¥Lªº¤£¦P³B¡A§Ú̦b
ÅܼƳ]©w³W«h ·í¤¤µy·L´£¹L¡A
¥Dn¬O¥Ñ©óÅܼƥi§_³Q¤lµ{§Ç©Ò¤Þ¥Î¡C
·í§A¨ú±o¤@Ó bash ¤§«á¡A¥ç§Y±o¨ì¤F¤@Óµ{§Ç¤F¡A¦ý¬OY§A¦A¦¸ªº°õ¦æ¤@¦¸
bash ¡A¨º»ò§A±N¶i¤J¡y¤lµ{§Ç¡z¡A³oÓµ{§Çªº·§©À§Ú̦b¸ê·½ºÞ²z³¹¸`¤¤¦A¸Ô½Í¡A³o¸Ì±z¥ý¦³Ó·§©À§Y¥i¡C
¨º»ò
¥Ñ©ó±z¤w¸g¶i¤J¤F¸Ó¤lµ{§Ç¡A©Ò¥H¦b¤÷µ{§Ç¤¤ªº¦ÛqÅܼƳ]©w±N¤£¦AÄ~Äòªº¦s¦b¡C
·|¦s¦b¤lµ{§Ç¤¤ªº¡A¶È¦³¡yÀô¹ÒÅܼơz¡C
´«Ó¨¤«×¨Ó·Q¡A¤]´N¬O»¡¡A¦pªG§Ú¯à±N¦ÛqÅܼÆÅܦ¨Àô¹ÒÅܼƪº¸Ü¡A¨º¤£´N¥i¥HÅý¸ÓÅܼÆÈÄ~Äò¦s¦b©ó¤lµ{§Ç¤F¡H
¨þ¨þ¡I¨S¿ù¡I¦¹®É¡A¨ºÓ export «ü¥O´N«Ü¦³¥Î°Õ¡I
¦p±z·QnÅý¸ÓÅܼƤº®eÄ~Äòªº¦b¤lµ{§Ç¤¤¨Ï¥Î¡A¨º»ò´N½Ð°õ¦æ¡G
³oÓªF¦è¥Î¦b¡y
¤Þ¥Î¥L¤HªºÀɮשΪ̨ä¥Lµ{§Ç¡z®É¡A¬Û·íªº«nªº¡I
¤×¨ä¹³³¾ô±`±`¨â¤TÓÀɮפ¬¬Û¤Þ¥Î¨Ó¤Þ¥Î¥hªº¡A¦pªG§Ñ°O³]©w
export ªº¸Ü¡A¨º»ò¤£¦PªºÀɮפ¤ªº¬Û¦PÅܼÆÈ¡A±N»Ýn¤@¦A¦a«½Æ³]©w¤~¦æ¡I©Ò¥H¡A§Ú¥un¦bÀY¤@ÓÀɮרϥÎ
export ªº¸Ü¡A¨º»ò«áÄòªºÀɮפޥήɡA±N·|§â¸ÓÅܼƤº®eŪ¶i¨Ó¡I¦n¥Îªº«Ü¡A¦pªG¶È¤U¹F
export ¦Ó¨S¦³±µÅܼƮɡA¨º»ò¦¹®É±N·|§â©Ò¦³ªº¡yÀô¹ÒÅܼơz¨q¥X¨Ó³á¡I¨Ò¦p¡G
[root@linux ~]# export
declare -x ENV="/root/.bashrc"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="linux.dmtsai.tw"
declare -x INPUTRC="/etc/inputrc"
declare -x LANG="en_US.UTF-8"
declare -x MAIL="/var/spool/mail/root"
declare -x SHELL="/bin/bash"
# «Ü¦h³£ª½±µ¬Ù²¤¤F¡I¤£µM....«½Æ©Ê¤Ó°ª¡A®ö¶Oª©±¡ã ^_^
|
»y¨tÀɮתºÅÜ¼Æ (locale)
ÁÙ°O±o§Ú̦bº¦¸¶i¤J Linux ¨ºÓ³¹¸`¸Ì±´£¨ìªº¡AÃö©ó»y¨t½s½Xªº°ÝÃD¶Ü¡H
´N¬O·í§Ų́ϥΠman command ªº¤è¦¡¥h¬d¸ß¬YÓ¸ê®Æªº»¡©úÀɮɡA¸Ó»¡©úÀɪº¤º®e¥i¯à·|¦]¬°§Ų́ϥΪº»y¨t¡A
¦Ó²£¥Í¤@¨Ç¶Ã½X¡C¥t¥~¡A§Q¥Î ls ¬d¸ßÀɮתº®É¶¡®É¡A¤]¥i¯à·|¦³¶Ã½X¥X²{¦b®É¶¡ªº³¡¤À¡C
¨ºÓ°ÝÃD¨ä¹ê´N¬O»y¨tªº°ÝÃD°Õ¡C
¥Ø«e¤j¦h¼Æªº Linux distributions ¤w¸g³£¬O¤ä´©¸U°ê½X¡A¦¹¥~¡A¤]³£¤ä´©¤j³¡¤Àªº»y¨¥»y¨t¤F¡C
³o¦³¿à©ó
i18n ¤ä´©ªºÀ°§U©O¡I
¨º»ò§Ú̪º Linux ¨ì©³¤ä´©¤F¦h¤Öªº»y¨t©O¡H³o¥i¥H¥Ñ locale ³oÓ«ü¥O¨Ó¬d¸ß¨ì³á¡I
[root@linux ~]# locale -a
aa_DJ
aa_DJ.iso88591
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
zh_TW
zh_TW.big5
zh_TW.euctw
zh_TW.utf8
# ¨ä¹ê¿é¥Xªº¤º®e¦³«Ü¦h¡A³¾ô±N¤@¨Ç¸ê°T±Ë±ó¤F¡ã
# ±q¤W±ªº¿é¥X¤¤¡A§Ṳ́]¤£Ãø¬Ý¥X¡A¨t²Î¬O¦³¤ä´© big5, utf8 µ¥¤¤¤å»y¨t¸ê®Æªº¡I
|
¤¤¤å»y¨t¦Ü¤Ö¤ä´©¤F¨âºØ¥H¤Wªº½s½X¡A¤@ºØ¬O¥Ø«eÁÙ¬O«Ü±`¨£ªº big5 ¡A¥t¤@ºØ«h¬O¶V¨Ó¶V¼öªùªº utf-8 ½s½X¡C
¨º»ò§Ú̦p¦ó×q³o¨Ç½s½X©O¡H¨ä¹ê¥i¥H³z¹L©³¤U³o¨ÇÅܼƪº»¡¡G
[root@linux ~]# LANG <==¥D»y¨¥ªºÀô¹Ò
[root@linux ~]# LC_CTYPE <==¦r¤¸¿ëÃѪº½s½X
[root@linux ~]# LC_NUMERIC <==¼Æ¦r¨t²ÎªºÅã¥Ü°T®§
[root@linux ~]# LC_TIME <==®É¶¡¨t²ÎªºÅã¥Ü¸ê®Æ
[root@linux ~]# LC_COLLATE <==¦r¦êªº¤ñ¸û»P±Æ§Çµ¥
[root@linux ~]# LC_MONETARY <==¹ôȮ榡ªºÅã¥Üµ¥
[root@linux ~]# LC_MESSAGES <==°T®§Åã¥Üªº¤º®e¡A¦p¥\¯àªí¡B¿ù»~°T®§µ¥
[root@linux ~]# LC_ALL <==»y¨¥Àô¹Òªº¾ãÅé³]©w¡C
|
°ò¥»¤W¡A§A¥i¥H³v¤@³]©w¨CÓ»P»y¨t¦³ÃöªºÅÜ¼Æ¸ê®Æ¡A¦ý¨Æ¹ê¤W¡A¦pªG¨ä¥Lªº»y¨tÅܼƳ£¥¼³]©w¡A
¥B±z¦³³]©w LANG ©ÎªÌ¬O LC_ALL ®É¡A«h¨ä¥Lªº»y¨tÅܼƴN·|³Q³o¨âÓÅܼƩҨú¥N¡I
³o¤]¬O¬°¤°»ò§Ú̦b FC4 ·í¤¤¡A³q±`¶È³]©w LANG ³oÓÅܼƦӤw¡I¦]¬°¥L¬O³Ì¥Dnªº³]©wÅܼơC
¦n¤F¡A¨º»ò§AÀ³¸Ónı±o©_©Çªº¬O¡A¬°¤°»ò¦b Linux ¥D¾÷ªº²×ºÝ¾÷¤¶± (tty1 ~ tty6)
ªºÀô¹Ò¤U¡A¦pªG LANG=zh_TW.big5 ³oÓ³]©wȥͮīá¡A¨Ï¥Î man ©ÎªÌ¨ä¥L°T®§¿é¥X®É¡A
³£·|¦³¤@°ï¶Ã½X¡A¤×¨ä¬O¨Ï¥Î ls -l ³oӰѼƮɡH
¦]¬°¦b Linux ¥D¾÷ªº²×ºÝ¾÷¤¶±¤U¡A¨ºÓÀô¹Ò¬OµLªkÅã¥Ü¹³¤¤¤å³o»ò½ÆÂøªº½s½Xªº¤å¦r¡A
©Ò¥H¡A´N·|²£¥Í¶Ã½X¤F¡C¤]´N¬O¦p¦¹¡A©Ò¥H¡A§Ṳ́~·|¥²¶·n¦b tty1 ~ tty6 ªºÀô¹Ò¤U¡A
¥[¸Ë¤@¨Ç¤¤¤å¤Æ¤¶±ªº³nÅé¡A¤~¯à°÷¬Ý¨ì¤¤¤å°Ú¡I¤£¹L¡A¦pªG±z¬O¦b Windows
¥D¾÷¥H»·ºÝ³s½u¦øªA¾¹ªº³nÅé³s½u¨ì¥D¾÷ªº¸Ü¡A¨º»ò¡A¼K¼K¡I¨ä¹ê¤å¦r¤¶±½T¹ê¬O¥i¥H¬Ý¨ì¤¤¤åªº¡C
©Ò¥H¡A¦¹®É¤Ï¦Ó±z±on¦b LANG ³]©w¤¤¤å½s½X¤~¦n©O¡I
µL½×¦p¦ó¡A¦pªGµo¥Í¤@¨Ç¶Ã½Xªº°ÝÃD¡A¨º»ò³]©w¨t²Î¸Ì±«O¦³ªº»y¨t½s½X¡A
¨Ò¦p¡G en_US ©Î en_US.utf8 µ¥µ¥ªº³]©w¡AÀ³¸Ó´N OK ªº°Õ¡I¦n¤F¡A¨º»ò¨t²Î¹w³]¤ä´©¦h¤ÖºØ»y¨t©O¡H
·í§Ų́ϥΠlocale ®É¡A¨t²Î¬O¦C¥X¥Ø«e Linux ¥D¾÷¤º«O¦³ªº»y¨tÀɮסA
³o¨Ç»y¨tÀɮ׳£©ñ¸m¦b¡G
/usr/lib/locale/ ³oӥؿý¤¤¡C
¦ý¬O¡A¥Ø«eªº³oÓ shell Àô¹Ò©Ò¤ä´©ªº»y¨t¡A«h¬On¬Ý SUPPORTED ³oÓÅܼƤ~¹ï³á¡I
¨º»ò¡A¦pªG§Ú·Qn×q¨t²Îªº»y¨t¤ä´©©O¡H¥i¥H×q /etc/sysconfig/i18n ³oÓÀɮשO¡I
³oÓÀɮתº¤º®e¦³ÂI¹³³o¼Ë¡G
[root@linux ~]# vi /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
SUPPORTED="zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8"
|
§A¥i¥H¦b³oÓÀÉ®×·í¤¤¥[¤J LC_TIME ©ÎªÌ¨ä¥L»y¨t¬ÛÃöÅܼƪº³]©w¤º®e¡A
¤]¥i¥Hª½±µ×§ï LANG ¨ºÓÅܼƧY¥i°Ú¡I ^_^ ¦ý¡A¨Æ¹ê¤W¡A§ÚÌÁÙ¥i¥H³z¹LÓ¤HªºÀô¹Ò³]©wÀɨӳ]©w LANG ©O¡I
¦p¦¹¤@¨Ó¡A«h¤£¥²×q¨t²Îªº»y¨tÀɮסA¤ñ¸û¦w¥þ°Õ¡I
Tips: °²³]§A¥Î vi ½s¿è¤@ӯ¤å¦rÀÉ¡A³oӯ¤å¦rÀɦb½s¿èªº®ÉÔ¡A¬O¦b Windows ¤W±½s¿èªº¡A
¨º»ò³oÓÀɮתº¹w³]½s½XÀ³¸Ó¬O¥H zh_TW.big5 ©Ò½s¿èªº¤~¹ï¡C¦ý¬O¡A¦pªG§Aªº shell Àô¹Ò¤¤¡A
«o¬O¨Ï¥Î LANG=en_US ®É¡A«h·í§A½s¿è¸ÓÀɮ׮ɡA´N¥i¯à·|¬Ý¨ì¡y¶Ã½X¡z¡A
©ÎªÌ¿é¤Jªº¤¤¤å¥i¯à·|Åܦ¨¡y¶Ã½X¡z¤F¡C¦¹®É¡A¥un§AÂ÷¶} vi ¡AµM«á°õ¦æ LANG=zh_TW.big5 ¡A
µM«á¦A«·s¥H vi ½s¿è¸ÓÀɮסA¨þ¨þ¡IÀ³¸Ó´N¯à°÷¬Ý¨ì¤¤¤å°Õ¡I¦ý¬O½Ðª`·N¡A
³oÓ¤èªk·íµM¤£¾A¥Î tty1 ~ tty6 ªºÀô¹Ò¡Aì¦]¤W±¤w¸g´£¹LÅo¡ã
¶È¾A¦X¥HÃþ¦ü putty ³nÅé¥Ñ Windows ¹q¸£³s½u¨ì linux ¥D¾÷¤Wªº°µ·~¡I
|  |
Åܼƪº¦³®Ä½d³ò
½¼±K¡H¡HÅܼƤ]¦³¨Ï¥Îªº¡y½d³ò¡z¡H¨S¿ù°Ú¡ã§Ú̦b¤WÀYªº
export
«ü¥O»¡©ú¤¤¡A´N´£¨ì¤F³oÓ·§©À¤F¡C¦pªG¦b¶]µ{¦¡ªº®ÉÔ¡A¦³¤÷µ{§Ç»P¤lµ{§Çªº¤£¦Pµ{§ÇÃö«Y®É¡A
«h¡yÅܼơz¥i§_³Q¤Þ¥Î¬O export ¦³Ãö¡C³Q export «áªºÅܼơA§ÚÌ¥i¥HºÙ¥L¬°¡yÀô¹ÒÅܼơz¡I
Àô¹ÒÅܼƥi¥H³Q¤lµ{§Ç©Ò¤Þ¥Î¡A¦ý¬O¨ä¥Lªº¦ÛqÅܼƤº®e´N¤£·|¦s¦b©ó¤lµ{§Ç¤¤¡C¤]´N¬O»¡¡G
§Ú̦ۦæ³]©wªºÅܼơA¥u¦b¥Ø«e³oÓ shell Àô¹Ò·í¤¤¦s¦b¡A
¦b¤lµ{§Ç¤¤±N¤£·|¦s¦b¦¹¤@ÅܼơC°£«D¨Ï¥Î export ±N¦ÛqÅܼÆÅܦ¨Àô¹ÒÅܼơC
¨ä¹ê°£¤F shell ªº¤÷¡B¤lµ{§Ç¥~¡A¦b¸}¥»( scripts )ªº½s¼g·í¤¤¡A¥Ñ©ó¦³ªº³nÅé·|¨Ï¥Î¨ì
2 Ó¥H¤Wªº scripts °µ¬°¤@Ó§¹¾ãªº®M¥ó¡I¤]´N¬O»¡¡A°²¦p§A¦³¨â¤äµ{¦¡¡A¤@¤ä¬°
scripts1.sh ¥H¤Î scripts2.sh ¡A¦Ó scripts2.sh ·|¥h¤Þ¥Î scripts1.sh ªºÅܼơA³oÓ®ÉÔ¡A¼K¼K¡I§A¦b
scripts1.sh ·í¤¤³]©wªºÅܼƽСy
¤d¸U°O±o¥H export ³]©w¡z¡A
§_«h§AªºÅܼƱNµLªk¦b¨âÓ scripts ¤§¶¡¤¬¬Û³Q¤Þ¥Î³á¡I·í³oÓ scripts °õ¦æ§¹²¦¤§«á¡Aèè¦b
scripts ·í¤¤³]©wªºÅܼƤ]´N¡y¥¢®Ä¤F¡I¡z¡C
¨ä¹ê¡AnÁA¸Ñ¤£¦Pµ{§Ç¤§¶¡ÅܼƪºÅÜ´«¡AÀ³¸Ón¥ýÁA¸Ñ¡yµ{§Ç¡zªº·§©À¤ñ¸û¦n¡A
¦ý¬O§ÚÌÁÙ¨S¦³Á¿¨ì.....¨SÃö«Y¡ãµ¥§A©À¨ìµ{§Ç³¹¸`«á¡AÁÙ¥i¥H¦A¦^¨Ó¦n¦nªº¬Ý¤@¬Ý¡C
°ò¥»¤W¡AÀô¹ÒÅܼƥi¥HÅý¤lµ{§ÇÄ~Äò¤Þ¥Îªºì¦]¡A¬O¦]¬°¡G
- ·í±Ò°Ê¤@Ó shell ¡A§@·~¨t²Î¤À°t¤@°O¾Ð°Ï¶ôµ¹ shell ¨Ï¥Î¡A¦¹°Ï°ì¤§Åܼƥi¥HÅý¤lµ{§Ç¦s¨ú¡F
- §Q¥Î export ¥\¯à¡A¥i¥HÅýÅܼƪº¤º®e¼g¨ì¤Wzªº°O¾Ð°Ï¶ô·í¤¤(Àô¹ÒÅܼÆ)¡F
- ·í¸ü¤J¥t¤@Ó shell ®É (¥ç§Y±Ò°Ê¤lµ{§Ç¡A¦ÓÂ÷¶}쥻ªº¤÷µ{§Ç¤F)¡A¤l shell ¥i¥H±N¤÷ shell
ªºÀô¹ÒÅܼƩҦbªº°O¾Ð°Ï¶ô¾É¤J¦Û¤vªºÀô¹ÒÅܼư϶ô·í¤¤¡C
³z¹L³o¼ËªºÃö«Y¡A§ÚÌ´N¥i¥HÅý¬Y¨ÇÅܼƥi¥H¦b¬ÛÃöªºµ{§Ç¤§¶¡¦s¦b¡A¥HÀ°§U¦Û¤v§ó¤è«Kªº¾Þ§@Àô¹Ò³á¡I
ÅܼÆÁä½LŪ¨ú¡B°}¦C»P«Å§i¡G
read, array, declare
§Ṳ́W±´£¨ìªºÅܼƳ]©w¥\¯à¡A³£¬Oª½±µ¥Ñ«ü¥O¦Cª½±µ³]©wªº¡A¨º»ò¡A¥i¤£¥i¥HÅý¨Ï¥ÎªÌ¯à°÷¸g¥ÑÁä½L¿é¤J¡H
¤°»ò·N«ä©O¡H¬O§_°O±o¬Y¨Çµ{¦¡°õ¦æªº¹Lµ{·í¤¤¡A·|µ¥«Ý¨Ï¥ÎªÌ¿é¤J "yes/no" ¤§Ãþªº°T®§°Ú¡I¡H
¦b bash ¸Ì±¤]¦³¬Û¹ïÀ³ªº¥\¯à³á¡I¦¹¥~¡A§ÚÌÁÙ¥i¥H«Å§i³oÓÅܼƪºÄݩʡA
¨Ò¦p¡G°}¦C©ÎªÌ¬O¼Æ¦rµ¥µ¥ªº¡C©³¤U´N¨Ó¬Ý¬Ý§a¡I
read
nŪ¨ú¨Ó¦ÛÁä½L¿é¤JªºÅܼơA´N¬O¥Î read ³oÓ«ü¥O¤F¡C³oÓ«ü¥O³Ì±`³Q¥Î¦b shell script ªº¼¶¼g·í¤¤¡A
¥H¸ò¨Ï¥ÎªÌ¶i¦æ¹ï½Í¡CÃö©ó script ªº¼gªk¡A§ÚÌ·|¦b«á±³¹¸`¤¶²Ð¡A©³¤U¥ý¨ÓÁ@¤@Á@ read ªº¬ÛÃö»yªk§a¡I
[root@linux ~]# read [-pt] variable
°Ñ¼Æ¡G
-p ¡G«á±¥i¥H±µ´£¥Ü¦r¤¸¡I
-t ¡G«á±¥i¥H±µµ¥«Ýªº¡y¬í¼Æ¡I¡z³oÓ¤ñ¸û¦³½ì¡ã¤£·|¤@ª½µ¥«Ý¨Ï¥ÎªÌ°Õ¡I
½d¨Ò¡G
½d¨Ò¤@¡GÅý¨Ï¥ÎªÌ¥ÑÁä½L¿é¤J¤@¤º®e¡A±N¸Ó¤º®eÅܦ¨ atest ÅܼÆ
[root@linux ~]# read atest
This is a test
[root@linux ~]# echo $atest
This is a test
½d¨Ò¤G¡G´£¥Ü¨Ï¥ÎªÌ 30 ¬í¤º¿é¤J¦Û¤vªº¤j¦W¡A±N¸Ó¿é¤J¦r¦ê°µ¦¨ named ÅܼÆ
[root@linux ~]# read -p "Please keyin your name: " -t 30 named
Please keyin your name: VBird Tsai
[root@linux ~]# echo $named
VBird Tsai
|
read ¤§«á¤£¥[¥ô¦ó°Ñ¼Æ¡Aª½±µ¥[¤WÅܼƦWºÙ¡A¨º»ò©³¤U´N·|¥D°Ê¥X²{¤@Ӫťզæ¡Aµ¥«Ý±z¿é¤J¡C
¦pªG¥[¤W -t «á±±µ¬í¼Æ¤§«á¡A¨Ò¦p¤W±ªº½d¨Ò·í¤¤¡A¨º»ò 30 ¬í¤§¤º¨S¦³¥ô¦ó°Ê§@®É¡A
¸Ó«ü¥O´N·|¦Û°Ê²¤¹L¤F¡ã¦pªG¬O¥[¤W -p ¡A¼K¼K¡I«á±´N·|¦³¤ñ¸û¦h¥i¥H¥Îªº´£¥Ü¦r¤¸µ¹§Ṵ́ѦҡI
¦b«ü¥Oªº¤U¹F¸Ì±¡A¤ñ¸û¬üÆ[°Õ¡I ^_^
declare / typeset
declare ©Î typeset ¬O¤@¼Ëªº¥\¯à¡A´N¬O¦b«Å§iÅܼƪºÄݩʡC¦pªG¨Ï¥Î declare «á±¨Ã¨S¦³±µ¥ô¦ó°Ñ¼Æ¡A
¨º»ò bash ´N·|¥D°Êªº±N©Ò¦³ªºÅܼƦWºÙ»P¤º®e³q³q¥s¥X¨Ó¡A´N¦n¹³¨Ï¥Î set ¤@¼Ë°Õ¡I
¨º»ò declare ÁÙ¦³¤°»ò»yªk©O¡H¬Ý¬Ý¥ý¡G
[root@linux ~]# declare [-aixr] variable
°Ñ¼Æ¡G
-a ¡G±N«á±ªº variable ©w¸q¦¨¬°°}¦C (array)
-i ¡G±N«á±±µªº variable ©w¸q¦¨¬°¾ã¼Æ¼Æ¦r (integer)
-x ¡G¥Îªk»P export ¤@¼Ë¡A´N¬O±N«á±ªº variable Åܦ¨Àô¹ÒÅܼơF
-r ¡G±N¤@Ó variable ªºÅܼƳ]©w¦¨¬° readonly ¡A¸ÓÅܼƤ£¥i³Q§ó§ï¤º®e¡A¤]¤£¯à unset
½d¨Ò¡G
½d¨Ò¤@¡GÅýÅÜ¼Æ sum ¶i¦æ 100+300+50 ªº¥[Á`µ²ªG
[root@linux ~]# sum=100+300+50
[root@linux ~]# echo $sum
100+300+50 <==«x¡I«ç»ò¨S¦³À°§Úpºâ¥[Á`¡H¦]¬°³o¬O¤å¦r«¬ºAªºÅܼÆÄݩʰڡI
[root@linux ~]# declare -i sum=100+300+50
[root@linux ~]# echo $sum
450 <==ÁA¥G¡H¡H
½d¨Ò¤G¡G±N sum Åܦ¨Àô¹ÒÅܼÆ
[root@linux ~]# declare -x sum
½d¨Ò¤T¡GÅý sum Åܦ¨°ßŪÄݩʡA¤£¥i§ó°Ê¡I
[root@linux ~]# declare -r sum
[root@linux ~]# sum=tesgting
-bash: sum: readonly variable <==¦Ñ¤Ñ·Ý¡ã¤£¯à§ï³oÓÅܼƤF¡I
|
declare ¤]¬Oӫܦ³¥Îªº¥\¯à¡ã¤×¨ä¬O·í§ÚÌ»Ýn¨Ï¥Î¨ì©³¤Uªº°}¦C¥\¯à®É¡A
¥L¤]¥i¥HÀ°§Ú̫ŧi°}¦CªºÄݩʳá¡I¤£¹L¡A¦Ñ¸Ü¤@¥y¡A°}¦C¤]¬O¦b shell script ¤ñ¸û±`¥Îªº°Õ¡I
°}¦CÄÝ©Ê array »¡©ú
¬Y¨Ç®ÉÔ¡A§ÚÌ¥²¶·¨Ï¥Î°}¦C¨Ó«Å§i¤@¨ÇÅܼơA³o¦³¤°»ò¦n³B°Ú¡H¦b¤@¯ë¤Hªº¨Ï¥Î¤W¡A
ªGµM¬O¬Ý¤£¥X¨Ó¦³¤°»ò¦n³Bªº¡I¤£¹L¡A¦pªG±z´¿¸g¼g¹Lµ{¦¡ªº¸Ü¡A¨º¤~·|¤ñ¸ûÁA¸Ñ°}¦Cªº·N¸q¡ã
°}¦C¹ï¼g¼ÆÈµ{¦¡ªº³]p®v¨Ó»¡¡A¥i¬O¤£¯à¿ù¹L¾Ç²ßªº«ÂI¤§¤@ù¡I¦n¡I¤£Åoö¡ã
¨º»òn¦p¦ó³]©w°}¦CªºÅܼƻP¤º®e©O¡H¦b bash ¸ÌÀY¡A°}¦Cªº³]©w¤è¦¡¬O¡G
·N«ä¬O»¡¡A§Ú¦³¤@Ó°}¦C¦WºÙ¬° var ¡A¦Ó³oÓ°}¦Cªº¤º®e¬° var[1]=¤p©ú¡A var[2]=¤j©ú¡A
var[3]=¦n©ú .... µ¥µ¥¡A¨ºÓ index ´N¬O¤@¨Ç¼Æ¦r°Õ¡A«ÂI¬O¥Î¤¤¨í¸¹ ([ ]) ¨Ó³]©wªº¡C
¥Ø«e§ÚÌ bash ´£¨Ñªº¬O¤@ºû°}¦C¡C¦Ñ¹ê»¡¡A¦pªG±z¤£¥²¼g¤@¨Ç½ÆÂøªºµ{¦¡¡A
¨º»ò³oÓ°}¦Cªº¦a¤è¡A¥i¥H¥ý²¤¹L¡Aµ¥¨ì¦³»Ýn¦A¨Ó¾Ç²ß§Y¥i¡I¦]¬°n»s§@¥X°}¦C¡A
³q±`»P°j°é©ÎªÌ¨ä¥L§PÂ_¦¡¥æ¤¬¨Ï¥Î¤~¦³¤ñ¸û°ªªº·N¸q¦s¦b¡I
½d¨Ò¡G³]©w¤W±´£¨ìªº var[1] ¡ã var[3] ªºÅܼơC
[root@linux ~]# var[1]="small min"
[root@linux ~]# var[2]="big min"
[root@linux ~]# var[3]="nice min"
[root@linux ~]# echo "${var[1]}, ${var[2]}, ${var[3]}"
|
¤ñ¸û¦³½ìªº¦a¤è¦b©ó¡yŪ¨ú¡z¡A¤@¯ë¨Ó»¡¡A«ØÄ³ª½±µ¥H ${°}¦C} ªº¤è¦¡¨ÓŪ¨ú¡A
¤ñ¸û¥¿½TµL»~ªº°Õ¡I
»PÀɮרt²Î¤Îµ{§Çªº¨îÃö«Y¡G
ulimit
·Q¹³¤@Óª¬ªp¡G§Úªº Linux ¥D¾÷¸Ì±¦P®Éµn¤J¤F¤QÓ¤H¡A³o¤QÓ¤H¤£ª¾«ç»ò·dªº¡A
¦P®É¶}±Ò¤F 100 ÓÀɮסA¨CÓÀɮתº¤j¤p¬ù 10MBytes ¡A½Ð°Ý¤@¤U¡A
§Úªº Linux ¥D¾÷ªº°O¾ÐÅén¦³¦h¤j¤~°÷¡H 10*100*10 = 10000 MBytes ¡ã¡ã
¦Ñ¤Ñ·Ý¡A³o¼Ë¡A¨t²Î¤£±¾ÂI¤~¦³°ù¡I¬°¤Fn¹w¨¾³oÓ±¡ªpªºµo¥Í¡A©Ò¥H¡A
§Ú̪º bash ¬O¥i¥H¡y¨î¨Ï¥ÎªÌªº¬Y¨Ç¨t²Î¸ê·½¡zªº¡A¥]¬A¥i¥H¶}±ÒªºÀɮ׼ƶq¡A
¥i¥H¨Ï¥Îªº CPU ®É¶¡¡A¥i¥H¨Ï¥Îªº°O¾ÐÅéÁ`¶qµ¥µ¥¡C¦p¦ó³]©w¡H¥Î ulimit §a¡I
[root@linux ~]# ulimit [-SHacdflmnpstuv] [°tÃB]
°Ñ¼Æ¡G
-H ¡Ghard limit ¡AÄY®æªº³]©w¡A¥²©w¤£¯à¶W¹L³]©wªºÈ¡F
-S ¡Gsoft limit ¡Aĵ§iªº³]©w¡A¥i¥H¶W¹L³oÓ³]©wÈ¡A¦ý¬O·|¦³Äµ§i°T®§¡A
¨Ã¥B¡AÁÙ¬OµLªk¶W¹L hard limit ªº³á¡I¤]´N¬O»¡¡A°²³]§Úªº soft limit
¬° 80 ¡A hard limit ¬° 100 ¡A¨º»ò§Úªº¬YӸ귽¥i¥H¥Î¨ì 90 ¡A
¥i¥H¶W¹L 80 ¡AÁÙ¬OµLªk¶W¹L 100 ¡A¦Ó¥B¦b 80~90 ¤§¶¡¡A·|¦³Äµ§i°T®§ªº·N«ä¡C
-a ¡G¦C¥X©Ò¦³ªº¨îÃB«×¡F
-c ¡G¥i«Ø¥ßªº³Ì¤j®Ö¤ßÀÉ®×®e¶q (core files)
-d ¡Gµ{§Ç¸ê®Æ¥i¨Ï¥Îªº³Ì¤j®e¶q
-f ¡G¦¹ shell ¥i¥H«Ø¥ßªº³Ì¤jÀÉ®×®e¶q (¤@¯ë¥i¯à³]©w¬° 2GB)³æ¦ì¬° Kbytes
-l ¡G¥i¥Î©óÂê©w (lock) ªº°O¾ÐÅé¶q
-p ¡G¥i¥Î¥HºÞ½u³B²z (pipe) ªº¼Æ¶q
-t ¡G¥i¨Ï¥Îªº³Ì¤j CPU ®É¶¡ (³æ¦ì¬°¬í)
-u ¡G³æ¤@¨Ï¥ÎªÌ¥i¥H¨Ï¥Îªº³Ì¤jµ{§Ç(process)¼Æ¶q¡C
½d¨Ò¡G
½d¨Ò¤@¡G¦C¥X©Ò¦³ªº¨î¸ê®Æ
[root@linux ~]# ulimit -a
½d¨Ò¤G¡G¨î¨Ï¥ÎªÌ¶È¯à«Ø¥ß 1MBytes ¥H¤Uªº®e¶qªºÀÉ®×
[root@linux ~]# ulimit -f 1024
|
ÁÙ°O±o§Ú̦b
Linux ºÏºÐÀɮרt²Î ¸Ì±´£¨ì¹L¡A³æ¤@ filesystem
¯à°÷¤ä´©ªº³æ¤@Àɮפj¤p»P block ªº¤j¤p¦³Ãö¡C¨Ò¦p block size ¬° 1024 byte ®É¡A³æ¤@ÀÉ®×¥i¹F
16GB ªº®e¶q¡C¦ý¬O¡A§ÚÌ¥i¥H¥Î ulimit ¨Ó¨î¨Ï¥ÎªÌ¥i¥H«Ø¥ßªºÀɮפj¤p³á¡I
§Q¥Î ulimit -f ´N¥i¥H¨Ó³]©w¤F¡I¨Ò¦p¤W±ªº½d¨Ò¤G¡Anª`·N³æ¦ì³á¡I³æ¦ì¬O Kbytes¡C
Y§ï¤Ñ§A¤@ª½µLªk«Ø¥ß¤@Ó¤j®e¶qªºÀɮסA°O±oÁ@¤@Á@ ulimit ªº¸ê°T³á¡I(
¤£¹L¡Anª`·Nªº¬O¡A¤@¯ë¨¥÷¨Ï¥ÎªÌ¦pªG¥H ulimit ³]©w¤F -f ªºÀɮפj¤p¡A
¨º»ò¥L¡y¥u¯à´î¤pÀɮפj¤p¡A¤£¯à¼W¥[Àɮפj¤p³á¡I¡z)
ÃB¥~ªºÅܼƳ]©w¥\¯à
èè§ÚÌ´£¨ì¤F¨âºØÅܼƨú¥Îªº¤èªk¡A¤À§O¬O³o¼Ë¡G
[root@linux ~]# echo $HOME
[root@linux ~]# echo ${HOME}
|
¨º»ò¡A¦b¨ºÓ ${variable} ªº¨Ï¥Î¤èªk¤¤¡A¨ä¹ê¡A§ÚÌÁÙ¥i¥H±NÅܼƶi¦æ¤@¨Ç×qªº¤u§@³á¡I
¥un¥[¤W¤@¨Ç¦r²Å¼Ð»x¡A«á±¦A±µµÛ¨Ï¥Î¤ñ¹ï¦r¦ê¡A´N¯à°÷×§ïÅܼƪº¤º®e¤F¡I
§Ų́ú©³¤Uªº¨Ò¤l¨Ó»¡©ú¡G¦b©³¤Uªº¨Ò¤l¤¤¡A°²³]§ÚªºÅܼƦWºÙ¬° vbird ¡A¥B¤º®e¬°
/home/vbird/testing/testing.x.sh¡C
1. §¹¾ã§e²{ vbird ³oÓÅܼƪº¤º®e¡F
[root@linux ~]# vbird="/home/vbird/testing/testing.x.sh"
[root@linux ~]# echo ${vbird}
/home/vbird/testing/testing.x.sh
2. ¦b vbird ÅܼƤ¤¡A±q³Ì«e±¶}©l¤ñ¹ï¡AY¶}ÀY¬° / ¡A«h§R°£¨âÓ /
¤§¶¡ªº©Ò¦³¸ê®Æ¡A¥ç§Y /*/
[root@linux ~]# echo ${vbird##/*/}
testing.x.sh <==§R°£¤F /home/vbird/testing/
[root@linux ~]# echo ${vbird#/*/}
vbird/testing/testing.x.sh <==¶È§R°£ /home/ ¦Ó¤w
# ³o¨âÓ¤p¨Ò¤l¦³½ì¤F¡ãÅܼƦWºÙ«á±¦pªG±µ¤F¨âÓ ## ¡Aªí¥Ü¦b ##
# «á±ªº¦r¦ê¨ú¡y³Ìªøªº¡z¨º¤@¬q¡F¦pªG¶È¦³¤@Ó # ¡Aªí¥Ü¨ú¡y³Ì¤pªº¨º¤@¬q¡z³á¡I
3. ©Ó¤WÃD¡A¦pªG¬O±q«á±¶}©l¡A§R°£ /* ©O¡H
[root@linux ~]# echo ${vbird%%/*/}
/home/vbird/testing/testing.x.sh <==³£¨S³Q§R°£
[root@linux ~]# echo ${vbird%%/*}
<==³Q§R°£¥ú¤F¡I
[root@linux ~]# echo ${vbird%/*}
/home/vbird/testing <==¥u§R°£ /testing.x.sh ³¡¤À
# ³oÓ¨Ò¤l·í¤¤»Ýn¯S§Oª`·N¡A¨ºÓ % ¤ñ¹ïªº¬O¡y³Ì«á±¨ºÓ¦r¤¸¡zªº·N«ä¡A
# ©Ò¥HÅo¡A²Ä¤@Ӥ覡·íµM¤£¹ï¡ã¦]¬° vbird ³oÓÅܼƪº¤º®e³Ì«á±¬O h ¦Ó¤£¬O / °Ú¡I
# ¦Ü©ó %%/* «h¬O§R°£¡y³Ìªøªº¨ºÓ /* ¡z¡A·íµM´N¬O¥þ³¡³á¡I¦Ó %/* «h¬O³Ìµuªº¨ºÓ¡I
4. ±N vbird ÅܼƤ¤ªº testing ¨ú¥N¬° TEST
[root@linux ~]# echo ${vbird/testing/TEST}
/home/vbird/TEST/testing.x.sh
[root@linux ~]# echo ${vbird//testing/TEST}
/home/vbird/TEST/TEST.x.sh
# ¦pªGÅܼƫᱱµªº¬O / ®É¡A¨º»òªí¥Ü«á±¬O¶i¦æ¡y¨ú¥N¡zªº¤u§@¡ã¦Ó¥B¶È¨ú¥N¡y²Ä¤@Ó¡z
# ¦ý¦pªG¬O // ¡A«hªí¥Ü¥þ³¡ªº¦r¦ê³£¨ú¥N°Ú¡I
|
³o¸Ì±zµy·L¯d·N¤@¤U´N¦n¤F¡ã¤Ï¥¿´N¬OÅܼƫᱥi¥H±µ #, ##, %, %%, /, // ¡A
¦Ó¥L̦s¦bªº·N¸q¨Ã¤£¬Û¦Pªº°Õ¡ã
¥t¥~¡A´XÓ¤£¦PªºÅܼƤº®eÁÙ¥i¥H¶i¦æ§PÂ_©O¡I
Á|¨Ò¨Ó»¡¡A¥Ø«e§Ú»Ýn¥Î¨ì¨âÓÅܼơA¤À§O¬O var »P str ¡A
¨º§Ú·Qn°w¹ï str ³oÓÅܼƤº®e¬O§_¦³³]©w¦¨¤@Ó¦r¦ê¡A¥ç§Y "expr" ¨Ó¨M©w var ªº¤º®e¡C
¨º§Ú¥i¥H¨Ï¥Î¤°»ò¤èªk¨Ó¶i¦æ§PÂ_©O¡H¦pªG±z·|¼g shell script ªº¸Ü¡A
ª½±µ¥Î shell script ´N¦n¤F¡A¦pªG¤£·|¼g¡A¨º»ò§ÚÌ´N³z¹L²³æªºÅܼƧPÂ_§a¡I
Tips: ©³¤Uªº¨Ò¤l·í¤¤¡A¨ºÓ var »P str ¬°ÅܼơA§ÚÌ·Qn°w¹ï str ¬O§_¦³³]©w¨Ó¨M©w var ªºÈ³á¡I
¤@¯ë¨Ó»¡¡A str: ¥Nªí¡ystr ¨S³]©w©Î¬°ªÅªº¦r¦ê®É¡z¡F¦Ü©ó str «h¶È¬°¡y¨S¦³¸ÓÅܼơz¡C
|  |
| ÅܼƳ]©w¤è¦¡ | str ¨S¦³³]©w |
str ¬°ªÅ¦r¦ê | str ¤w³]©w«D¬°ªÅ¦r¦ê |
| var=${str-expr} | var=expr | var= | var=$str |
| var=${str:-expr} | var=expr | var=expr | var=$str |
| var=${str+expr} | var= | var=expr | var=expr |
| var=${str:+expr} | var= | var= | var=expr |
| var=${str=expr} | str=expr var=expr |
str ¤£ÅÜ var= | str ¤£ÅÜ var=$str |
| var=${str:=expr} | str=expr var=expr |
str=expr var=expr | str ¤£ÅÜ var=$str |
| var=${str?expr} | expr ¿é¥X¦Ü stderr | var= | var=str |
| var=${str:?expr} | expr ¿é¥X¦Ü stderr | expr ¿é¥X¦Ü stderr | var=str |
®Ú¾Ú¤W±³o±iªí¡A§Ų́Ӷi¦æ´XÓ½d¨Òªº½m²ß§a¡I ^_^
½d¨Ò¤@¡GY str ³oÓÅܼƤº®e¦s¦b¡A«h var ³]©w¬° str ¡A§_«h var ³]©w¬° "newvar"
[root@linux ~]# unset str; var=${str-newvar}
[root@linux ~]# echo var="$var", str="$str"
var=newvar, str= <==¦]¬° str ¤£¦s¦b¡A©Ò¥H var ¬° newvar
[root@linux ~]# str="oldvar"; var=${str-newvar}
[root@linux ~]# echo var="$var", str="$str"
var=oldvar, str=oldvar <==¦]¬° str ¦s¦b¡A©Ò¥H var µ¥©ó str ªº¤º®e
½d¨Ò¤G¡GY str ¤£¦s¦b¡A«h var »P str §¡³]©w¬° newvar¡A§_«h var »P str ¬Û¦P
[root@linux ~]# unset str; var=${str=newvar}
[root@linux ~]# echo var="$var", str="$str"
var=newvar, str=newvar <==¦]¬° str ¤£¦s¦b¡A©Ò¥H var/str §¡¬° newvar
[root@linux ~]# str="oldvar"; var=${str=newvar}
[root@linux ~]# echo var="$var", str="$str"
var=oldvar, str=oldvar <==¦]¬° str ¦s¦b¡A©Ò¥H var µ¥©ó str ªº¤º®e
½d¨Ò¤T¡GY str ³oÓÅܼƦs¦b¡A«h var µ¥©ó str ¡A§_«h¿é¥X "novar"
[root@linux ~]# unset str; var=${str?novar}
-bash: str: novar <==¦]¬° str ¤£¦s¦b¡A©Ò¥H¿é¥X¿ù»~°T®§
[root@linux ~]# str="oldvar"; var=${str?novar}
[root@linux ~]# echo var="$var", str="$str"
var=oldvar, str=oldvar <==¦]¬° str ¦s¦b¡A©Ò¥H var µ¥©ó str ªº¤º®e
# ¤W±³o¤TӮרҳ£¨S¦³´£¨ì·í str ¦³³]©w¡A¥B¬°ªÅ¦r¦êªº±¡ªp³á¡I
# ±z¥i¥H¦Û¦æ´ú¸Õ¤@¤Uù¡I
|
ÁöµM²r¤@¬Ý¡Aı±oÅܼƨS¦³¤°»ò©_¯Sªº¦a¤è¡A¦ý¬O¡A¦pªG¥J²ÓÁ@¤@Á@¡A¼K¡I¤@°ïÀô¹ÒÅܼƻP¨t²Î¸ê·½¤è±ªºÅܼơA
¥i¬O·|¼vÅT¨ì§Ú̦b bash ¸ÌÀY¬O§_¯à°÷¶¶§Q§@·~ªº©O¡I¨Ò¦p PATH °Ú¡Bulimit ¤§Ãþªº¡ã
©Ò¥H¡A±zÁÙ¬O±onÁA¸ÑÅܼƳoÓª±·N¤~¦æ³á¡I ^_^
§Ú̪¾¹D¦b¦´Áªº DOS ¦~¥N¡A²M°£¿Ã¹õ¤Wªº¸ê°T¥i¥H¨Ï¥Î cls ¨Ó²M°£¡A¦ý¬O¦b Linux ¸Ì±¡A
§ÚÌ«h¬O¨Ï¥Î clear ¨Ó²M°£µe±ªº¡C¨º»ò¥i§_Åý cls µ¥©ó clear ©O¡H¥i¥H°Ú¡I¥ÎÔ£¤èªk¡H
link file ÁÙ¬O¤°»òªº¡H§O«æ¡I©³¤U§Ṳ́¶²Ð¤£¥Î link file ªº©R¥O§O¦W¨Ó¹F¦¨¡C¨º»ò¤°»ò¤S¬O¾ú¥v©R¥O¡H
´¿¸g°µ¹LªºÁ|°Ê§ÚÌ¥i¥H±N¥L°O¿ý¤U¨Ó³á¡I¨º´N¬O¾ú¥v©R¥OÅo¡ã©³¤U¤À§O¨Ó½Í¤@½Í³o¨âÓª±·N¨à¡C
©R¥O§O¦W³]©w¡G alias, unalias
©R¥O§O¦W¬O¤@ӫܦ³½ìªºªF¦è¡A¯S§O¬O§AªººD¥Î«ü¥O¯S§Oªøªº®ÉÔ¡IÁÙ¦³¡A
¼W³]¹w³]ªºÄݩʦb¤@¨ÇºD¥Îªº«ü¥O¤W±¡A¥i¥H¹w¨¾¤@¨Ç¤£¤p¤ß»~±þÀɮתº±¡ªpµo¥Íªº®ÉÔ¡I
Á|Ó¨Ò¤l¨Ó»¡¡A¦pªG§An¬d¸ßÁôÂÃÀÉ¡A¨Ã¥B»Ýnªøªº¦C¥X»P¤@¶¤@¶Â½¬Ý¡A¨º»ò»Ýn¤U¹F¡y
ls -al | more ¡z³oÓ«ü¥O¡A§Ú¬Oı±o«Ü·Ð°Õ¡I
n¿é¤J¦n´XÓ³æ¦r¡I¨º¥i¤£¥i¥H¨Ï¥Î
lm ¨Ó²¤Æ©O¡H¡I·íµM¥i¥H¡A§A¥i¥H¦b©R¥O¦C¤U±¤U¹F¡G
[root@linux ~]# alias lm='ls -l | more'
|
¼K¼K¡I§Ú¥ß¨è¦h¥X¤F¤@Ó¥i¥H°õ¦æªº«ü¥O³á¡I³oÓ«ü¥O¦WºÙ¬° lm ¡A¥B¨ä¹ê¥L¬O°õ¦æ
ls -al | more °Ú¡I¯u¬O¤è«K¡C¤£¹L¡A
nª`·Nªº¬O¡G¡yalias ªº©w¸q³W«h»P
ÅܼƩw¸q³W«h´X¥G¬Û¦P¡z¡A
©Ò¥H§A¥un¦b alias «á±¥[¤W§Aªº {
¡y§O¦W¡z='«ü¥O °Ñ¼Æ' }¡A
¥H«á§A¥un¿é¤J lm ´N¬Û·í©ó¿é¤J¤F ls -al|more ³o¤@¦ê«ü¥O¡I«Ü¤è«K§a¡I
¥t¥~¡A©R¥O§O¦Wªº³]©wÁÙ¥i¥H¨ú¥N¬J¦³ªº«ü¥O³á¡IÁ|¨Ò¨Ó»¡¡A§Ú̪¾¹D root
¥i¥H²¾°£( rm )¥ô¦ó¸ê®Æ¡I©Ò¥H·í§A¥H root ªº¨¥÷¦b¶i¦æ¤u§@®É¡A»Ýn¯S§O¤p¤ß¡A
¦ý¬OÁ`¦³¥¢¤âªº®ÉÔ¡A¨º»ò rm ´£¨Ñ¤F¤@ӰѼƨÓÅý§Ú̽T»{¬O§_n²¾°£¸ÓÀɮסA¨º´N¬O -i
³oӰѼơI©Ò¥H¡A§A¥i¥H³o¼Ë°µ¡G
[root@linux ~]# alias rm='rm -i'
|
¼K¼K¡I¨º»ò¥H«á¨Ï¥Î rm ªº®ÉÔ¡A´N¤£¥Î¤Ó¾á¤ß·|¦³¿ù»~§R°£ªº±¡ªp¤F¡I³o¤]¬O©R¥O§O¦WªºÀuÂIÅo¡I
¨º»ò¦p¦óª¾¹D¥Ø«e¦³þ¨Çªº©R¥O§O¦W©O¡H´N¨Ï¥Î alias §r¡I
[root@linux ~]# alias
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias lm='ls -al | more'
alias ls='ls --color=tty'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
|
¥Ñ¤W±ªº¸ê®Æ·í¤¤¡A±z¤]·|µo²{¤@¥ó¨Æ±¡°Ú¡A§Ú̦b
vi ¤å®Ñ½s¿è¾¹ ¸Ì±´£¨ì
vi »P vim ¬O¤£¤Ó¤@¼Ëªº¡A vi ¬O¤ñ¸û¦Ñ¡A¦Ó vim ¥i¥H¥Î¨Ó¨ú¥N vi ³á¡C§Ú̪º FC4 ©ú©ú´N¦P®É¦³ vi/vim ¡A
¬°¦ó§Ú°õ¦æ vi ·|¬O¶i¤J vim ©O¡H¨þ¨þ¡I¨º´N¬O¦]¬°¤W±ªºªí®æ·í¤¤ªº¡y alias vi='vim' ¡z³oÓ³]©w°Õ¡I
¦Ü©ó¦pªGn¨ú®ø©R¥O§O¦Wªº¸Ü¡A¨º»ò´N¨Ï¥Î unalias §a¡I¨Ò¦pn±Nè誺 lm ©R¥O§O¦W®³±¼¡A´N¨Ï¥Î¡G
[root@linux ~]# unalias lm
|
¨º»ò©R¥O§O¦W»PÅܼƦ³¤°»ò¤£¦P©O¡H°ò¥»¤W¡A¥L̪º·N¸q´N¤£¤Ó¤@¼Ë¤F¡I alias
³oºØ©R¥O§O¦W¡A§A¥i¥H±N¥L·Q¦¨¬O«Ø¥ß¤@Ó·sªº«ü¥O¦WºÙ¡A
¦Ü©óÅܼƫh¶È¬O±N¤@Ó¼ÆÈ©ÎªÌ¦r¦ê¦s¦b¬YÓ¥Nªí·N¸q·í¤¤¡IÁ|Ó¨Ò¤l¦n¤F¡A§Ú̪¾¹D¥H«eªº
DOS ¦~¥N¡A¦C¥X¥Ø¿ý»PÀÉ®×´N¬O dir ¡A¦Ó²M°£¿Ã¹õ´N¬O cls ¡A¨º»ò¦pªG§Ú·Qn¦b
linux ¸Ì±¤]¨Ï¥Î¬Û¦Pªº«ü¥O©O¡H¨º´N¥H alias ¨Ó¶i¦æ«ü¥Oªº§O¦W³]©w¡G
alias cls='clear'
alias dir='ls -l'
¡@
¥un¥[¤J³o¨â¦æ¡A¥H«á§A¿é¤J cls ¤Î dir ´N¥i¥H°õ¦æ¤F¡I«Ü¤è«K§a¡I
¾ú¥v©R¥O¡Ghistory
«e±§ÚÌ´£¹L bash ¦³´£¨Ñ«ü¥O¾ú¥vªºªA°È¡I¨º»ò¦p¦ó¬d¸ß§ÚÌ´¿¸g¤U¹F¹Lªº«ü¥O©O¡H´N¨Ï¥Î
history Åo¡I·íµM¡A¦pªGı±o histsory n¿é¤Jªº¦r¤¸¤Ó¦h¤Ó³Â·Ð¡A¥i¥H¨Ï¥Î©R¥O§O¦W¨Ó³]©w©O¡I
¤£n¸ò§Ú»¡ÁÙ¤£·|³]©wËç¡I ^_^
¦p¦¹«h¿é¤J h µ¥©ó¿é¤J history Åo¡I¦n¤F¡A§Ų́ӽͤ@½Í history ªº¥Îªk§a¡I
[root@linux ~]# history [n]
[root@linux ~]# history [-c]
[root@linux ~]# history [-raw] histfiles
°Ñ¼Æ¡G
n ¡G¼Æ¦r¡A·N«ä¬O¡yn¦C¥X³Ìªñªº n µ§©R¥O¦Cªí¡zªº·N«ä¡I
-c ¡G±N¥Ø«eªº shell ¤¤ªº©Ò¦³ history ¤º®e¥þ³¡®ø°£
-a ¡G±N¥Ø«e·s¼Wªº history «ü¥O·s¼W¤J histfiles ¤¤¡AY¨S¦³¥[ histfiles ¡A
«h¹w³]¼g¤J ~/.bash_history
-r ¡G±N histfiles ªº¤º®eŪ¨ì¥Ø«e³oÓ shell ªº history °O¾Ð¤¤¡F
-w ¡G±N¥Ø«eªº history °O¾Ð¤º®e¼g¤J histfiles ¤¤¡I
½d¨Ò¡G
½d¨Ò¤@¡G¦C¥X¥Ø«e°O¾ÐÅ餺ªº©Ò¦³ history °O¾Ð
[root@linux ~]# history
# «e±¬Ù²¤
1017 man bash
1018 ll
1019 history
1020 history
# ¦C¥Xªº¸ê°T·í¤¤¡A¦@¤À¨âÄæ¡A²Ä¤@Äæ¬°¸Ó«ü¥O¦b³oÓ shell ·í¤¤ªº¥N½X¡A
# ¥t¤@Ó«h¬O«ü¥O¥»¨ªº¤º®e³á¡I¦Ü©ó·|¨q¥X´Xµ§«ü¥O°O¿ý¡A«h»P HISTSIZE ¦³Ãö¡I
½d¨Ò¤G¡G¦C¥X¥Ø«e³Ìªñªº 3 µ§¸ê®Æ
[root@linux ~]# history 3
1019 history
1020 history
1021 history 3
½d¨Ò¤T¡G¥ß¨è±N¥Ø«eªº¸ê®Æ¼g¤J histfile ·í¤¤
[root@linux ~]# history -w
# ¦b¹w³]ªº±¡ªp¤U¡A·|±N¾ú¥v¬ö¿ý¼g¤J ~/.bash_history ·í¤¤¡I
[root@linux ~]# echo $HISTSIZE
1000
|
¦b¥¿±`ªº±¡ªp¤U¡A·í§ÚÌ¥H bash µn¤J Linux ¥D¾÷¤§«á¡A¨t²Î·|¥D°Êªº¥Ñ®a¥Ø¿ýªº ~/.bash_history
Ū¨ú¥H«e´¿¸g¤U¹Lªº«ü¥O¡A¨º»ò ~/.bash_history ·|°O¿ý´Xµ§¸ê®Æ©O¡H³o´N»P§A bash ªº
HISTSIZE ³oÓÅܼƳ]©wȦ³Ãö¤F¡I¦b¹w³]ªº FC4 ©³¤U¡A¬O·|°O¿ý 1000 µ§¸ê®Æªº¡I
¨º»ò°²³]§Ú³o¦¸µn¤J¥D¾÷«á¡A¦@¤U¹F¹L 100 ¦¸«ü¥O¡A¡y
µ¥§Úµn¥X®É¡A
¨t²Î´N·|±N 101~1100 ³oÁ`¦@ 1000 µ§¾ú¥v©R¥O§ó·s¨ì ~/.bash_history ·í¤¤¡C¡z
¤]´N¬O»¡¡A¾ú¥v©R¥O¦b§Úµn¥X®É¡A·|±N³Ìªñªº HISTSIZE µ§°O¿ý¨ì§Úªº¬ö¿ýÀÉ·í¤¤°Õ¡I
·íµM¡A¤]¥i¥H¥Î history -w ±j¨î¥ß¨è¼g¤Jªº¡I¨º¬°¦ó¥Î¡y§ó·s¡z¨âÓ¦r©O¡H
¦]¬° ~/.bash_history °O¿ýªºµ§¼Æ¥Ã»·³£¬O HISTSIZE ¨º»ò¦h¡Aªº°T®§·|³Q¥D°Êªº®³±¼¡I
¶È«O¯d³Ì·sªº¡I
¨º»ò history ³oÓ¾ú¥v©R¥O¥u¥i¥HÅý§Ú¬d¸ß©R¥O¦Ó¤w¶Ü¡H¨þ¨þ¡I·íµM¤£¤î°Ú¡I
§ÚÌ¥i¥H§Q¥Î¬ÛÃöªº¥\¯à¨ÓÀ°§Ṵ́õ¦æ©R¥O©O¡IÁ|¨Ò¨Ó»¡Åo¡G
[root@linux ~]# !number
[root@linux ~]# !command
[root@linux ~]# !!
°Ñ¼Æ¡G
number ¡G°õ¦æ²Ä´Xµ§«ü¥Oªº·N«ä¡F
command ¡G¥Ñ³Ìªñªº«ü¥O¦V«e·j´M¡y«ü¥O¦ê¶}ÀY¬° command¡zªº¨ºÓ«ü¥O¡A¨Ã°õ¦æ¡F
!! ¡G´N¬O°õ¦æ¤W¤@Ó«ü¥O(¬Û·í©ó«ö¡ô«öÁä«á¡A«ö Enter)
½d¨Ò¡G
[root@linux ~]# history
66 man rm
67 alias
68 man history
69 history
[root@linux ~]# !66 <==°õ¦æ²Ä 66 µ§«ü¥O
[root@linux ~]# !! <==°õ¦æ¤W¤@Ó«ü¥O¡A¥»¨Ò¤¤¥ç§Y !66
[root@linux ~]# !al <==°õ¦æ³Ìªñ¥H al ¬°¶}ÀYªº«ü¥O(¤WÀY¦C¥Xªº²Ä 67 Ó)
|
¸g¹L¤W±ªº¤¶²Ð¡AÁA¥G¡H¾ú¥v©R¥O¥Îªk¥i¦h¤F¡I¦pªG§Ú·Qn°õ¦æ¤W¤@Ó«ü¥O¡A
°£¤F¨Ï¥Î¤W¤UÁ䤧¥~¡A§Ú¥i¥Hª½±µ¥H¡y !! ¡z ¨Ó¤U¹F¤WÓ«ü¥Oªº¤º®e¡A¦¹¥~¡A
§Ú¤]¥i¥Hª½±µ¿ï¾Ü¤U¹F²Ä n Ó«ü¥O¡A¡y !n ¡z¨Ó°õ¦æ¡A¤]¥i¥H¨Ï¥Î«ü¥O¼ÐÀY¡A¨Ò¦p
¡y !vi ¡z¨Ó°õ¦æ³Ìªñ«ü¥O¶}ÀY¬O vi ªº«ü¥O¦C¡I¬Û·íªº¤è«K¦Ó¦n¥Î¡I°ò¥»¤W history
ªº¥Î³~«Ü¤jªº¡I¦ý¬O»Ýn¤p¤ß¦w¥þªº°ÝÃD¡I¤×¨ä¬O root ªº¾ú¥v¬ö¿ýÀɮסA³o¬O
Cracker ªº³Ì·R¡I¦]¬°¤£¤p¤ßªº root ·|±N«Ü¦hªº«n¸ê®Æ¦b°õ¦æªº¹Lµ{¤¤·|³Q¬ö¿ý¦b
~/.bash_history ·í¤¤¡A¦pªG³oÓÀɮ׳Q¸ÑªRªº¸Ü¡A«áªG¤£³ô§o¡IµL½×¦p¦ó¡A¨Ï¥Î history °t¦X¡y
! ¡z´¿¸g¨Ï¥Î¹Lªº«ü¥O¤U¹F¬O«Ü¦³®Ä²vªº¤@Ó«ü¥O¤èªk¡I
¬O§_°O±o§Ú̵n¤J¥D¾÷ªº®ÉÔ¡A¿Ã¹õ¤WÀY·|¦³¤@¨Ç»¡©ú¤å¦r¡A§iª¾§Ú̪º Linux ª©¥»°Ú¤°»òªº¡A
ÁÙ¦³¡Aµn¤Jªº®ÉÔ¡A§ÚÌÁÙ¥i¥Hµ¹¤©¨Ï¥ÎªÌ¤@¨Ç°T®§©ÎªÌÅwªï¤å¦r©O¡C¦¹¥~¡A
§Ú̲ߺDªºÀô¹ÒÅܼơB©R¥O§O¦Wµ¥µ¥ªº¡A¬O§_¥i¥Hµn¤J´N¥D°ÊªºÀ°§Ú³]©w¦n¡H
³o¨Ç³£¬O»Ýn¨Óª`·Nªº¡C¥t¥~¡A³o¨Ç³]©wȤS¥i¥H¤À¬°¨t²Î¾ãÅé³]©wÈ»P¦U¤H³ß¦n³]©wÈ¡A
¶È¬O¤@¨ÇÀɮשñ¸mªº¦aÂI¤£¦P°Õ¡I³o§Ú̫ᱤ]·|¨Ó½Í¤@½Íªº¡I
µ´¹ï¸ô®|»P¬Û¹ï¸ô®|
³oÓijÃD»¡¨ì§ÖnÄê±¼¤F¡ã±q¤@¶}©l¨ì²{¦b¡A³oÓµ´¹ï¸ô®|»P¬Û¹ï¸ô®|ªº°ÝÃD§ÚÌ´N´£¨ì¤£ª¾¹D¦h¤Ö¦¸¤F¡A
¦]¬°¥L¹ê¦b«Ü«n¡ã³o»P PATH ³oÓÅܼÆÃö«Y«Ü¤j¡I¦Ñ¹ê»¡¡A
¸U¤@§Aªº PATH ¨S¦³³]©w§¹¾ãªº®ÉÔ¡A¤U¹F«ü¥O´N¥²¶·n¥H¡y
¤@ªø¦Cªº«ü¥O³s±a®Ú¥Ø¿ý³£n¦C¥X¨Ó ¡z¡A¨þ¨þ¨º´N¬Oµ´¹ï¸ô®|ªº³]©wªk°Õ¡I
°ò¥»¤W¡A³oÓ¡y
µ´¹ï¸ô®|¡z»P¡y
¬Û¹ï¸ô®|
¡zªºÆ[©À¬O«Ü«nªº¡I§_«h§A±N±`±`·|§ä¤£¨ìÀÉ®×»¡¡I
©Ò¿×ªº¡yµ´¹ï¸ô®|¡z´N¬O¥H®Ú¥Ø¿ý¶}©l¼g¤J¨ìÀɮתº¤@ºØ©R¥O¼g©w¤èªk¡AÁ|¨Ò¨Ó»¡¡A§Ú¥Ø«e¦b
/home/test ³oÓ test ¨Ï¥ÎªÌªº®a¥Ø¿ý¤¤¡A§Ú·Qn¬Ý¬Ý¸Ì±ªº .bashrc ³oÓÀɮתº¸ê®Æ¡A¨Ï¥Îªº¬O
more ³oÓ«ü¥O¡A¦Ó³oÓ«ü¥O¦b /bin/more ·í¤¤¡A«h¥¿½Tªº¤U¹F«ü¥Oªº¤èªk¬°¡G
[root@linux ~]# /bin/more .bashrc
|
§Ú¦bªº¥Ø¿ý¬° /home/test ¡I³o¬Oµ´¹ï¸ô®|¼gªk¡I ¦Ó¦pªG§AÁÙ°O±o§Ú̦b
Linux ÀÉ®×»P¥Ø¿ýºÞ²z ¨º¤@½g¤å³¹¤¤´£¨ìªºÆ[©Àªº¸Ü¡A¨º»òÀ³¸Ó°O±o¨Ï¥Î
ls -al ®É·|¥X²{¨âÓ¤@©w¦s¦bªº¥Ø¿ý¡A¤À§O¬O¡y.¡z»P¡y..¡z¡A¤À§O¥Nªí¬O¡y³oÓ¸ô®|¡z¡A»P¡y¤W¤@¼h¸ô®|¡z¡I
[root@linux ~]# ls -al
drwxrwxr-x 2 root root 4096 Aug 15 11:05 .
drwxrwxr-x 2 root root 4096 Aug 14 23:26 ..
|
©Ò¥H»¡¡An°õ¦æ¤W¤@¼h¥Ø¿ý¤¤ªº©R¥O¡A¥i¥H¤U¹F¡y../command ¡z¨ºÓ command
«üªº¬O¦s¦bªº¥i°õ¦æÀÉ¡I¨º»ò§Ú¦]¬°¦b /home/test ¸Ì±¡A¶ZÂ÷ /bin ¦³¨â¼h¤W¼h¥Ø¿ý¡A©Ò¥H§Ún¨Ï¥Î
/bin/more ³oÓ°õ¦æÀÉ¡A¨Ã¥B¨Ï¥Î¬Û¹ï¸ô®|ªº¤èªk¡A´N¥²¶·¨Ï¥Î¡G
[root@linux ~]# ../../bin/more .bashrc
|
³oºØ¬Û¹ï¸ô®|ªº¤èªk¬Û·í¼sªxªº³Q¹B¥Î©ó script ·í¤¤¡A³o¬O¦]¬°¦p«e±´£¨ìªº¡A
¨CÓ¤Hªº¦w¸Ë¹w³]ªº¥Ø¿ý³£¤£¬Û¦P¡A«h¨Ï¥Î¬Û¹ï¸ô®|ªº¸Ü¡A
«Ü®e©ö´N¥i¥H§ä¨ì®M¥ó¤§¶¡¬Û¨Ì³nÅé©ÎªÌ¬O³]©wÀɮתº¬ÛÃö©Ê¡I
¨ÒÃD¡GÃö©ó¸ô®|·j´Mªº°ÝÃD¡I¬°¦ó¤£°õ¦æ¥Ø«e©Ò¦b¥Ø¿ý¤UªºÀɮסH
榭G
«x¡Iè褣¬O´£¨ì¡y.¡z»P¡y..¡z¶Ü¡H¨º»ò¨ºÓ¡y . ¡z¬O·F¹À¥Îªº¡H¡I²´¦yªºªB¤ÍÀ³¸Ó¤w¸gµo²{¤F¡A
´N¬O¡y§Ú¦b°õ¦æÀɮתº®ÉÔ¡A°ò¥»¤W¡A¨Ã¤£·|¥D°Ê·j´M¥Ø«e¥Ø¿ý¤UªºÀɮסzÁ|Ó¨Ò¤l¨Ó»¡¡A
§Ú¦w¸Ëªº squid ³oÓ°õ¦æÀɦb /usr/local/squid/bin/squid ³oÓÀɮסAµM¦Ó§Ú¦b /usr/local/squid/bin
¤U¹F squid ªº®ÉÔ¡A¨t²Î·|§i¶D§A¡y¬d¤£¨ì³oÓÀɮסI¡z¯u¬O¨£°¤F¡I
©ú©ú¦³³oÓÀɮתº§r¡I³o¬O¦]¬°¨t²Î¹w³]ªº
PATH (¸ô®|) ¨Ã¨S¦³°õ¦æ¥Ø«e¥Ø¿ý¤Uªº³]©w¡A¤]´N¬O¡y.¡z³oÓ¸ô®|¡I§A¥i¥H¨Ï¥Î¡y
echo $PATH ¡z¬Ý¬Ý¡A´N¥i¥Hª¾¹D¬°¤°»ò¤F¡I
¨º»ò¬°¦ó¤£n³]©w³oÓ¸ô®|©O¡H³o¬O¦]¬°¡y
¦w¥þ¡zªº¦Ò¶q¡C¥Ñ©ó¨t²Î¹w³]¬O¤¹³\¥ô¦ó¤H¦b
/tmp ©³¤U¼g¤J¥ô¦óÀɮתº¡A¨º»ò¸U¤@¦³©~¤ß¤£¨}ªº¨Ï¥ÎªÌ©ÎªÌ¬O Cracker
¤J«I§Aªº¹q¸£¡A¨Ã¦b§Aªº /tmp ¸ÌÀY®I¤F¤@Ó¤p¤ì°¨¡A¨Ã¨ú¦W¬° ls ¡A¦n¤F¡A§ï¤Ñ§A¥H
root ¨¥÷µn¤J«á¡A¨ì /tmp ©³¤U¡A¨Ã°õ¦æ ls ¡A§A¬Ý·|¦³¤°»òµ²ªG¡H¡I³oÓ /tmp/ls
¥Ñ¨ä¥L¨¥÷ªº¤H¨Ó°õ¦æ©Î³\¨S¦³°ÝÃD¡A¦ý¬O¥Ñ root ¨Ó°õ¦æ«o¥i¯à·|¾ÉP Cracker
©Ò¼Ö·N¨£¨ìªºµ²ªG¡I¨º¾å±o¬°¦ó¤F§a¡H¡I
·íµMÅo¡I±zÁÙ¬O¥i¥H¿ï¾Ü¦b ~/.bashrc ·í¤¤³]©w§Aªº . ¦b§Aªº PATH
·í¤¤¡A¤£¹L¨Ã¤£³o»ò«ØÄ³´N¬O¤F¡I
|
¦n¤F¡A¥Ñ©ó¨t²Î¹w³]¨Ã¤£¥D°Ê·j´M¥Ø«e¥Ø¿ý¤Uªº°õ¦æÀÉ¡A¨º»ò§AÀ³¸Ó¦p¦ó°õ¦æ¡y¥Ø«e¥Ø¿ý¤Uªº°õ¦æÀÉ¡z©O¡H
«Ü²³æ§r¡I´N¬O¥H¬Û¹ï¸ô®|ªºÆ[©À¡A¥Ñ©ó¡y
.. ¡z¬O¤W¼h¡A¦Ó¡y . ¡z¬O³o¤@¼h¡A©Ò¥Hn°õ¦æ³o¤@¼h¥Ø¿ýªº©R¥O´N¨Ï¥Î¡y ./command
¡z§Y¥i¡I¨Ò¦p§Aªº /usr/local/squid/bin ©³¤U°õ¦æ squid «h¥i¥H¼g¦¨¡G
½Ð¯S§O¯d·N³o¤è±ªº°ÝÃD¡I¡y
·s¤â¯S§O®e©ö¥Ç³oÓ¿ù»~©O¡I¡z
µn¿ý°T®§Åã¥Ü¸ê®Æ¡G
/etc/issue, /etc/motd
ÁÙ°O±o§Ú̦b²×ºÝ¾÷¤¶± (tty1 ~ tty6) µn¤Jªº®ÉÔ¡A·|¦³´X¦æ´£¥Üªº¦r¦ê¶Ü¡H
¨ºÓ¦r¦ê¼g¦bþ¸Ì°Ú¡H¨þ¨þ¡I¦b /etc/issue ¸Ì±°Ú¡I¥ý¨Ó¬Ý¬Ý¡G
[root@linux ~]# cat /etc/issue
Fedora Core release 4 (Stentz)
Kernel \r on an \m
|
¦b FC4 ¸Ì±¹w³]¦³¤T¦æ¡A³oÓ¦b§ÚÌ¥»¾÷µn¤J®É´N·|Åã¥Ü¦b title ªº¦a¤è©O¡ã
«x¡I¨º»ò¨ºÓ \r ¤Î \m ¬OÔ£¡H±z¥i¥H¨Ï¥Î man issue °t¦X man mingetty ´N¯à°÷ª¾¹D¡G
| issue ¤ºªº¦U¥N½X·N¸q |
\d ¥»¦aºÝ®É¶¡ªº¤é´Á¡F
\l Åã¥Ü²Ä´XӲ׺ݾ÷¤¶±¡F
\m Åã¥ÜµwÅ骺µ¥¯Å (i386/i486/i586/i686...)¡F
\n Åã¥Ü¥D¾÷ªººô¸ô¦WºÙ¡F
\o Åã¥Ü domain name¡F
\r §@·~¨t²Îªºª©¥» (¬Û·í©ó uname -r)
\t Åã¥Ü¥»¦aºÝ®É¶¡ªº®É¶¡¡F
\s §@·~¨t²Îªº¦WºÙ¡F
\v §@·~¨t²Îªºª©¥»¡C
|
©Ò¥H¡A¦pªG±z·QnÅã¥Ü²×ºÝ¾÷ªº¸¹½X¡A´N¥i¥H¥[¤W \l ¦b /etc/issue ÀɮפºÅo¡ã´N¯à°÷×§ïµn¤J¦r¤¸¡C
«x¡I¦ý¬OÁÙ¦³Ó /etc/issue.net ©O¡I³o¬OÔ£¡H¨SÔ£°Õ¡I³oÓ¬O´£¨Ñµ¹ telnet ³oÓ»·ºÝµn¤Jµ{¦¡¥Îªº¡C
·í§Ų́ϥΠtelnet ³s±µ¨ì¥D¾÷®É¡A¥D¾÷ªºµn¤Jµe±´N·|Åã¥Ü /etc/issue.net ¦Ó¤£¬O /etc/issue ©O¡I
¦Ü©ó¦pªG±z·QnÅý¨Ï¥ÎªÌµn¤J«á¨ú±o¤@¨Ç°T®§¡A¨Ò¦p±z·QnÅý¤j®a³£ª¾¹Dªº°T®§¡A
¨º»ò¥i¥H±N°T®§¥[¤J /etc/motd ¸Ì±¥h¡I¨Ò¦p¡G·íµn¤J«á¡A§i¶Dµn¤JªÌ¡A
¨t²Î±N·|¦b¬YÓ©T©w®É¶¡¶i¦æºûÅ@¤u§@¡A¥i¥H³o¼Ë°µ¡G
[root@linux ~]# vi /etc/motd
Hello everyone,
Our server will be maintained at 2005/10/10 0:00 ~ 24:00.
Please don't login at that time. ^_^
|
¨º»ò·í§Aªº¨Ï¥ÎªÌµn¤J¥D¾÷«á¡A´N·|Åã¥Ü³o¼Ëªº°T®§¥X¨Ó¡G
Last login: Mon Aug 15 10:17:10 2005 from 127.0.0.1
Hello everyone,
Our server will be maintained at 2005/10/10 0:00 ~ 24:00.
Please don't login at that time. ^_^
|
¬O§_«Ü¤è«K°Ú¡I¡H ^_^
Àô¹Ò³]©wÀÉ¡G
bashrc, ~/.bashrc, ~/.profile, profile...,/etc/inputrc, source
Ãö©ó¨ú±o bash ªºÀô¹ÒÅܼƵ¥¸ê®Æ¡A¨ä¹ê¥i¥H¦³¨t²Î³W¹º»P¦U¤H³ß¦n¡A
¤@¯ë¨Ó»¡¡A«ØÄ³¨Ï¥ÎªÌª½±µ×§ïÓ¤H³]©wȧY¥i¡A¤£»Ýn§ó°Ê¨ì¨t²Î°Õ¡ã
©³¤U§Ṳ́À§O¨Ó½Í¤@½Í´XÓ¦³½ìªº³]©wÀɳá¡Inª`·Nªº¬O¡A¦b«ü¥O¦C¿é¤JªºÅܼƤ]¦n¡B©R¥O§O¦W¤]½}¡A
³£¬O°w¹ï¸Ó¦¸µn¤Jªº³]©w¦Ó¤w¡A©Ò¥H¥un±z¤@µn¥X¡A¨º»ò¤W¦¸ªº³]©wÈ´N·|¤£¨£¥h¡I
¦]¦¹¡A§ÚÌ»Ýn¦³´XÓÀɮרÓÀ°§U§ÚÌ¡A¨C¦¸µn¤Jªº®ÉÔ¡A´N¤w¸gÀ°§ÚÌ·d©w¤FÀô¹Òªº³]©wÅo¡I
¨t²Î³]©wÈ
©Ò¿×ªº¨t²Î³]©wÈ¡A¤]´N¬O»¡¨CӨϥΪ̶i¤J¨ì bash shell ¤§«á¡A·|¥ýŪ¨úªº³]©wÀɮסI
¹w³]ªº³]©wÀɮצ³¤U¦C´XÓ¡G
/etc/sysconfig/i18n
°O±o§Ú̦b
´XÓ«nÅܼƤº½Í¨ìªº»y¨t¸ê®Æ¶Ü¡H¡I
¨ºÓ»y¨t¬O¥Ñ i18n ©ÒºûÅ@ªº¡A¦Ó FC4 ¹w³]ªº¨t²Î»y¨t³]©wÀÉ´N¦b /etc/sysconfig/i18n ·í¤¤¡C
³oÓÀɮצ³ÂI¹³³o¼Ë¡G
[root@linux ~]# cat /etc/sysconfig/i18n
LANG="zh_TW.UTF-8"
SYSFONT="latarcyrheb-sun16"
SUPPORTED="zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8"
|
§Ú¹w³]¨Ï¥Î zh_TW.UTF-8 ¨Ó§@¬°§Úªº¾ãÅé»y¨t¡A·íµM¡A§Ú¥i¥H¦b³o¸Ì×§ï LANG ¥H¤Î¨ä¥L¬ÛÃöªº»y¨tÅܼơA
¨Ò¦p LC_CTYPE ©ÎªÌ¬O LC_TIME µ¥µ¥ªº¡C¤£¹L¡A¤@¯ë¨Ó»¡¡A¨Ï¥ÎªÌ¦Û¤vÓ¤Hªº³]©w¤£«ØÄ³¦b³o¸Ì°µ§ó°Ê°Õ¡I
¥LÌ¥i¥H¦Û¦æ³]©w¥L̦ۤvªº³]©wÀɰڡI
/etc/profile
³oÓÀɮ׳]©w¤F´XÓ«nªºÅܼơA¨Ò¦p¡G¡yPATH¡BUSER¡BMAIL¡B
HOSTNAME¡BHISTSIZE¡Bumask¡zµ¥µ¥¡A¤]¦P®É³W¹º¥X /etc/inputrc
³oÓ°w¹ïÁä½L¼ö«Ø³]©wªºÀɮתº¸ê®Æ¤º®e¡C§A¥i¥H¦b³o¸Ì³]©wÁ`Å骺 PATH µ¥µ¥ªº¸ê°T¡I
¦P®É¡A³oÓÀɮפ]³W¹º¥X /etc/profile.d ¤Î /etc/inputrc
³o¨âӥؿý»PÀɮסI
Á`¤§¡A§A¥i¥HÁA¸Ñ¨ìèè§Ú̾Ƿ|ªºÅܼƳ]©w¤è¦¡¡A¦b³oÓÀɮפ¤¤]¥i¥H³]©w©O¡I
¦ý¬O³]©w¤W»Ýn¯S§O¤p¤ß¡A¦]¬°©Ò¦³ªº¨Ï¥ÎªÌ¬Ò·|¨Ï¥Î¨ì³oÓÀɮתº¸ê°T¡C³q±`§Ú³£³ßÅw±N
/usr/local/bin ³oÓ¸ô®|¥[¦¨³Ì«e±¡A³o¬O¦]¬°³q±`¦Û¤v¦w¸Ëªº®M¥ó¦Û¤v³Ì³ßÅw¡A
©Ò¥H·íµM¬O³Ì¥ý·j´MÅo¡I ^_^¡I¦¹¥~¡A½Ðª`·N¤@¤U¡A¥i¥H±N HISTSIZE ªº¤j¤p§ïÅܤ@¤U¡A§ï¦¨
50 ´N¥i¥H°Õ¡I¤ñ¸û¦w¥þ¡I( µù¡G³oÓÀɮפ£½×¦b¨ºÓ Linux
distributions ·í¤¤§¡¦s¦b /etc/profile ·í¤¤¡A©Ò¥H¡A½Ð¯S§O¯d·N¦¹¤@ÀÉ®×§Y¥i¡I )¡C
/etc/bashrc
³oÓÀɮצb³W¹º umask ªº¥\¯à¡A¤]¦P®É³W¹º¥X´£¥Ü¦r¤¸ªº¤º®e (´N¬O¸ÌÀY¨ºÓ PS1 °Õ¡I)
¡C¯S§O¯d·Nªº¬O¡A³oÓÀɮצb¤£¦Pªº Linux distribution ¸Ì±¡AÂ\©ñªº¦ì¸m¥i¯à¤£¤Ó¤@¼Ë©O¡I
©Ò¥H»Ýn¬d¸ß¤@¤U¤~¦æËç¡I
/etc/profile.d/*.sh
/etc/profile.d ¬O¤@ӥؿý¡A¸Ì±°w¹ï bash ¤Î C-shell ³W½d¤F¤@¨Ç¸ê®Æ¡C
¥H FC4 ¬°¨Ò¡A³oӥؿý¸Ì±´N°w¹ï¤FÃC¦â¡B»y¨t¡Bvim ¤Î which µ¥«ü¥O¶i¦æ¤@¨ÇÃB¥~ªº³]©w¡A
¨Ò¦p alias ¤§Ãþªº³W½dÈ¡C§Ú̪º vim ³Q¥Î alias ©R¦W¬° vi ´N¬O¦b³oӥؿý¤U³Q³]©w¦nªº¡C
·íµM°Õ¡A³oӥؿýªº¥Ñ¨Ó¨ä¹ê¬O¦b /etc/profile ³oÓÀɮפº³W½dªº°Õ¡I
§A¥i¥H¦Û¦æ³]©w¤@¨Ç *.sh ªºÀɦWªºÀɮרӮѼg¦Û¤vªº¨t²Î³]©wȳá¡I
/etc/man.config
³oÓÀÉ®×¥E¬Ý¤§¤U¦n¹³¸ò bash shell ¨S¬ÛÃö©Ê¡A¦ý¬O¹ï©ó¨t²ÎºÞ²zû¨Ó»¡¡A
«o¤]¬O«Ü«nªº¤@ÓÀɮסI³oªºÀɮתº¤º®e¡y³W½d¤F¨Ï¥Î
man ªº®ÉÔ¡A man page ªº¸ô®|¨ìþ¸Ì¥h´M§ä¡I¡z©Ò¥H»¡ªºÂ²³æ¤@ÂI¡A³oÓÀɮ׳W©w¤F¤U¹F
man ªº®ÉÔ¡A¸Ó¥hþ¸Ì¬d¬Ý¸ê®Æªº¸ô®|³]©w¡I¨º»ò¤°»ò®ÉÔn¨Ó×§ï³oÓÀɮשO¡H¦pªG§A¬O¥H
tarball ªº¤è¦¡¨Ó¦w¸Ë§Aªº¸ê®Æ¡A¨º»ò§Aªº man page¡]«ü¥O»¡©úÀɮס^¥i¯à·|©ñ¸m¦b
/usr/local/softpackage/man ¸ÌÀY¡A¨ºÓ softpackage ¬O§Aªº®M¥ó¦WºÙ¡A
³oÓ®ÉÔ§A´N±o¥H¤â°Êªº¤è¦¡±N¸Ó¸ô®|¥[¨ì /etc/man.config ¸ÌÀY¡A§_«h¨Ï¥Î man
ªº®ÉÔ´N·|§ä¤£¨ì¬ÛÃöªº»¡©úÀÉÅo¡C
¨Æ¹ê¤W¡A³oÓÀɮפº³Ì«nªº¨ä¹ê¬O MANPATH ³oÓÅܼƳ]©w°Õ¡I
§ÚÌ·j´M man page ®É¡A·|¨Ì¾Ú MANPATH ªº¸ô®|¥h¤À§O·j´M°Ú¡I¥t¥~¡Anª`·Nªº¬O¡A
³oÓÀɮצb¦U¤j¤£¦Pª©¥» Linux distributions ¤¤¡AÀɦW³£¤£¤Ó¬Û¦P¡A¨Ò¦p FC4 ¥Îªº¬O
/etc/man.config ¡A¦Ó SuSE ¥Îªº«h¬O /etc/manpath.config ¡A
¥i¥H§Q¥Î [tab] «öÁä¨Ó¶i¦æÀɦWªº¸É»ô°Õ¡I
³o´N¬O¨t²Î¦b³]©wªº®ÉÔ±`±`·|¨Ï¥ÎªºÀɮסI»Ýn¯S§O¯d·Nªº¬O¡A³q±`³]©w§¹¤F³o´XÓÀɮפ§«á¡A³£»Ýn¥ý
logout ¦b login ¤§«á¤~·|±N³]©w¾ãӱҰʰ_¨Ó¡I
Ó¤H³]©wÈ
¨º»òÓ¤Hªº³ß¦n³]©w¦bþ¸Ì¡H¼K¼K¼K¼K¡I¨º´N¬O¦bÓ¤H®a¥Ø¿ýªº´XÓÁôÂÃÀÉ·í¤¤Åo¡I
¤À§O·|¨Ï¥Î¨ì©³¤Uªº´XÓÀÉ®×°Õ¡I( ª`·N¡I©³¤UªºÀɮ׳£¬OÁôÂÃÀÉ¡A»Ýn¨Ï¥Î ls -al ¤è¯àÅã¥Ü¥X¨Ó
) ¡A¥t¥~¡Aª`·N¤@¤UÅo¡I©³¤U¨ºÓ¡y ~ ¡z¥Nªíªº¬O¡y®a¥Ø¿ý¡zªº·N«ä¡G
~/.bash_profile, ~/.bash_login, ~/.profile
³o¤TÓÀɮ׳q±`¥un¤@Ó´N°÷¤F¡A¤@¯ë¹w³]¬O¥H ~/.bash_profile ªºÀɦW¦s¦b¡C
·|¦³³o»ò¦hªºÀɮסA¨ä¹ê¬O¦]À³¨ä¥L shell Âà´«¹L¨Óªº¨Ï¥ÎªÌªº²ßºD¦Ó¤w¡C
³oÓÀÉ®×¥i¥H©w¸qÓ¤H¤Æªº¸ô®| (PATH) »PÀô¹ÒÅܼƵ¥µ¥¡C¤£¹L¡AÁÙ¬O¦³¶¶¦ì¤Wªº®t²§¡A
bash ±Ò°Ê®É¡A·|¥ý¥hŪ¨ú ~/.bash_profile¡A§ä¤£¨ì®É¡A´N¥hŪ¨ú
~/.bash_login ¡AµM«á¤~¬O ~/.profile¡C
~/.bashrc
³¾ô¤@¯ë³£¬O±N¦Û¤vªº»Ýn¿é¤J¦b³oÓÀɮ׸̱ªº©O¡I
§ÚªºÓ¤H¤Æ³]©wȳ£·|¼g¦b³o¸Ì»¡¡ã¨Ò¦p©R¥O§O¦W¡B¸ô®|µ¥µ¥¡C
~/.bash_history
ÁÙ°O±o§Ú̦b¾ú¥v©R¥O´£¨ì¹L³oÓÀÉ®×§a¡H¡I¨þ¨þ¡I¨S¿ù¡ã¹w³]ªº±¡ªp¤U¡A
§Ú̪º¾ú¥v©R¥O´N°O¿ý¦b³o¸Ì°Ú¡I¦Ó³oÓÀɮׯà°÷°O¿ý´Xµ§¸ê®Æ¡A«h»P HISTSIZE
³oÓÅܼƦ³Ãö°Ú¡C¨C¦¸µn¤J bash «á¡Abash ·|¥ýŪ¨ú³oÓÀɮסA±N©Ò¦³ªº¾ú¥v«ü¥OŪ¤J°O¾ÐÅé¡A
¦]¦¹¡A·í§Ú̵n¤J bash «á´N¥i¥H¬dª¾¤W¦¸¨Ï¥Î¹Lþ¨Ç«ü¥OÅo¡C¦Ü©ó§ó¦hªº¾ú¥v«ü¥O¡A
½Ð¦Û¦æ¦^¥h°Ñ¦Ò³á¡I
~/.bash_logout
³oÓÀɮ׫h°O¿ý¤F¡y·í§Úµn¥X bash «á¡A¨t²Î¦AÀ°§Ú°µ§¹¤°»ò°Ê§@«á¤~Â÷¶}¡zªº·N«ä¡C
§A¥i¥H¥hŪ¨ú¤@¤U³oÓÀɮתº¤º®e¡A¹w³]ªº±¡ªp¤U¡Aµn¥X®É¡A bash ¥u¬OÀ°§Ú̲M±¼¿Ã¹õªº°T®§¦Ó¤w¡C
¤£¹L¡A§A¤]¥i¥H±N¤@¨Ç³Æ¥÷©ÎªÌ¬O¨ä¥L§A»{¬°«nªº¤u§@¼g¦b³oÓÀɮפ¤¡]¨Ò¦p²MªÅ¼È¦sÀÉ¡^¡A
¨º»ò·í§AÂ÷¶} Linux ªº®ÉÔ¡A´N¥i¥H¸Ñ¨M¤@¨Ç·Ð¤Hªº¨Æ±¡Åo¡I
¦n¤F¡A§Ú̪¾¹D¦bÅܼƪº³]©w³W½d·í¤¤¡A«á¿é¤Jªº³]©wÈ¥i¥H¨ú¥N¥ý¿é¤Jªº³]©wÈ¡A
¨º»ò¦b§Ú̵n¤J bash ªº®ÉÔ¡A³o¨Ç³]©wÀɨ쩳¬O¦p¦óŪ¨úªº©O¡H¥L¬O³o¼ËŪ¨úªº¡G
- ¥ýŪ¨ú /etc/profile ¡A¦A®Ú¾Ú /etc/profile ªº¤º®e¥hŪ¨ú¨ä¥LÃB¥~ªº³]©wÀÉ¡A
¨Ò¦p /etc/profile.d »P /etc/inputrc µ¥µ¥³]©wÀÉ¡F
- ®Ú¾Ú¤£¦Pªº¨Ï¥ÎªÌ¡A¨ì¨Ï¥ÎªÌ®a¥Ø¿ý¥hŪ¨ú ~/.bash_profile ©Î ~/.bash_login ©Î ~/.profile
µ¥³]©wÀÉ¡F
- ®Ú¾Ú¤£¦P¨Ï¥ÎªÌ¡A¨ì¥L®a¥Ø¿ý¥hŪ¨ú ~/.bashrc ¡C
©Ò¥HÅo¡A·í§Úµn¤J bash «á¡A³Ì²×Ū¨úªº³]©wÀɳºµM¬O
~/.bashrc ©O¡I
¤]´N¬O»¡¡A¦b ~/.bashrc ¸Ì±ªº³]©w·|¬O³Ì²×ªº³]©wÈ¡I©Ò¥HÅo¡A
³q±`³¾ô§Ú³ßÅw±NÓ¤Hªº¤@¨Ç±`¥Î alias ©Î PATH µ¥Àô¹ÒÅܼƩΦÛqÅܼƳ£¼g¨ì³oÓÀÉ®×¥h¡A
¦p¦¹¤@¨Ó¡A¤£½×ì¨Ó¨t²ÎÀ°§Ṵ́µ¤F¤°»ò³]©wÈ¡A§Ú³£¥i¥H¨Ï¥ÎÄÝ©ó¦Û¤v¼ô±xªºÀô¹Ò©O¡I
³¾ôªº ~/.bashrc ¦³ÂI¹³³o¼Ë¡G
[root@linux ~]# vi ~/.bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
PATH="/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
PATH="$PATH":/usr/X11R6/bin:/home/dmtsai/bin
LANG=zh_TW.big5
LC_TIME=C
export PATH LC_TIME LANG
umask 022
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -l'
alias lm='ls -al|more'
alias h='history'
|
¥J²Ó¬Ý¨ì¤WÀY³oÓÀɮסA·|¤£·|ı±o©_©Ç°Ú¡I¬°¤°»ò·|¦³²Ä¤¦æªº¡y . /etc/bashrc ¡z©O¡H
¨ºÓ¤p¼ÆÂI (.) ¥Nªí¤°»ò·N«ä°Ú¡H¡H¨ä¹ê if [ ... ]; then .... fi ¬O shell script ·í¤¤ªºµ{¦¡¼gªk¡A
³oÓ§ÚÌ·|¦b¤U¤@³¹·í¤¤¤¶²Ð¡C¤£¹L¡A¨ºÓ . «h»Ýn¦n¦nªº½Í¤@½Í³á¡I¤@¯ë¨Ó»¡¡A¦pªG×§ï§¹¤F³]©wÀÉ¡A
³q±`´N¬O logout «á¦A«·s login ¨ì bash ¤º¡A´N¯à°÷±NÀô¹Ò³]©wÀɫŪ¤F¡I¤£¹L¡A
§ÚÌ¥i¥H¨Ï¥Î©³¤Uªº¤è¦¡¨ÓÅý¸Ó³]©wÀɥߧY¥Í®Ä¡G
[root@linux ~]# source file
½d¨Ò¡G
[root@linux ~]# source ~/.bashrc
[root@linux ~]# . ~/.bashrc
|
§Q¥Î source ©Î¤p¼ÆÂI (.) ³£¥i¥H±N³]©wÀɪº¤º®eŪ¶i¨Ó¥Ø«eªº shell Àô¹Ò¤¤¡I
Á|¨Ò¨Ó»¡¡A§Ú×§ï¤F ~/.bashrc ¡A¨º»ò¤£»Ýnµn¥X¡A¥ß§Y¥H source ~/.bashrc
´N¥i¥H±Nèè³Ì·s³]©wªº¤º®eŪ¶i¨Ó¥Ø«eªºÀô¹Ò¤¤¡I«Ü¤£¿ù§a¡I¦¹¥~¡A¤°»ò®ÉÔ·|¨Ï¥Î¨ì¤£¦Pªº³]©wÀÉ©O¡H
³Ì±`µo¥Í¦b¤@Ó¤Hªº¤u§@Àô¹Ò¤À¬°¦h«ªº®ÉÔ¤F¡IÁ|Ó¨Ò¤l¨Ó»¡¡A¦b§Úªº¤j«¬¥D¾÷¤¤¡A
§Ú±`±`»Ýnt³d¨â¨ì¤TÓ¤£¦Pªº®×¤l¡A¨CӮפl©Ò»Ýn³B²zªºÀô¹ÒÅܼÆq©w¨Ã¤£¬Û¦P¡A
¨º»ò§Ú´N±N³o¨â¤TӮפl¤À§O½s¼gÄÝ©ó¸Ó®×¤lªºÀô¹ÒÅܼƳ]©wÀɮסA·í§Ú»Ýn¸ÓÀô¹Ò®É¡A´Nª½±µ¡y
source ÅܼÆÀÉ ¡z¡A¦p¦¹¤@¨Ó¡AÀô¹ÒÅܼƪº³]©w´NÅܪº§ó²«K¦ÓÆF¬¡¤F¡I
login shell »P non-login shell
¨Æ¹ê¤W¡A³o¨ÇÀô¹Ò³]©wÀɦbŪ¨ú®É¡AÁÙ¬O¦³¤@¨Ç®t²§ªº¡A³o´N±on½Í¨ì©Ò¿×ªº¡ylogin shell¡z»P
¡ynon-login shell¡zªº®t²§¤F¡C°ò¥»¤W¡A´N¦r±¤Wªº·N¸q¨Ó¸ÑÄÀªº¸Ü¡A©Ò¿×ªº
loign shell «üªº´N¬O·í¨Ï¥ÎªÌµn¤J Linux ¨t²Î®É¡A©Ò¨ú±oªº¨ºÓÀô¹Ò³]©wÀɺ٬° login shell¡C
·íµn¤J«á¡A±Ò°Ê¨ä¥Lªº bash ®É©Ò¨ú¥ÎªºÀô¹Ò³]©wÀÉ´NºÙ¬° non-login shell ¡C
Á|¨Ò¨Ó»¡¡A§Ú¥H dmtsai
³oӨϥΪ̨¥÷µn¤J Linux «á¡AµM«á¬°¤Fn°õ¦æ¤@¨Ç¼ÆÈ¼ÒÀÀªº¤u§@¡A¦Ó¥h°õ¦æ csh ³oÓ C shell ¡A
¨º»ò¦¹®É§Ú´N¨ú±o¤F non-login shell ¤F¡C
¥t¥~¤@Ó¨Ò¤l¬O¡A·í§Ú¥H X Window ªºÀô¹Òµn¤J Linux ®É¡A§Ṳ́£¬O¥i¥H¨Ï¥Î¡y²×ºÝ¾÷¡z¨Ó¶}±Ò shell
¶Ü¡H·íµn¤J Linux ªº®ÉÔ©Ò¨ú±oªº¨ºÓ X ªºÀô¹Ò¤]¥i¥HŪ¤J login shell ªº¡C¦]¦¹¡A¦b X
Àô¹Ò¤U©Ò±Ò°Êªº²×ºÝ¾÷ (shell)¡A¨º¨Ç shell ©Ò¨Ï¥ÎªºÀô¹Ò³]©wÀɳ£¬O non-login shell ³á¡I
login »P non-login shell ªº®t²§°£¤F¨ú±oªº®É¾÷¤£¦P¤§¥~¡A¨ä¹ê¥LÌŪ¨úªºÀô¹Ò³]©wÀɤ]¤£¬Û¦P¡C
§Ṳ́WÀY»¡¹L¤@¨ÇÓ¤HªºÀô¹Ò³]©wÀɮפF§a¡H¨º»ò³o¨âºØÃþ«¬ªº shell ¸ÓŪ¨ú¤°»òÀɮשO¡H
·íµn¤J Linux ¡A¥ç§Y¬O¨ú±o login shell ®É¡A·|Ū¨ú ~/.bash_profile, ~/.bash_login, ~/.profile¡A
³o¤TÓÀɮתºÀu¥ý¶¶§Ç¤w¸g¦b¤W±´£¹L¡A¦Û¦æ°Ñ¦Ò¤@¤U¡C¦Ü©ó¦b¨ú±o login shell «áÄ~Äò°Ê§@ªº¨ä¥L
non-login shell ¡AŪ¨úªº´N¬O¶È¦³ ~/.bashrc Åo¡ã¡C¦Ó¤j³¡¤Àªº linux distributions
³£·|±N ~/.bash_profile ªº¤º®e«ü¨ì ~/.bashrc ¥h¡A³o¼Ë¤ñ¸û²³æÅo¡ã
²×ºÝ¾÷ªºÀô¹Ò³]©w¡G stty, set
¤°»ò¥s°µ¡y²×ºÝ¾÷Àô¹Ò¡z°Ú¡H¡I§Ú̦b
º¦¸µn¤J Linux ®É´N´£¹L¡A¥i¥H¦b tty1 ~ tty6
³o¤»Ó¤å¦r¤¶±ªº²×ºÝ¾÷ (terminal) Àô¹Ò¤¤µn¤J¡A¨º»òµn¤Jªº®ÉÔ§ÚÌ¥i¥H¨ú±o¤@¨Ç¦r¤¸³]©wªº¥\¯à³á¡I
Á|¨Ò¨Ó»¡¡A§ÚÌ¥i¥H§Q¥Î˰hÁä (backspace¡A´N¬O¨ºÓ¡ö²Å¸¹ªº«öÁä) ¨Ó§R°£©R¥O¦C¤Wªº¦r¤¸¡A
¤]¥i¥H¨Ï¥Î [ctrl]+c ¨Ó±j¨î²×¤î¤@Ó«ü¥Oªº¹B¦æ¡A·í¿é¤J¿ù»~®É¡A´N·|¦³Ánµ¶]¥X¨Óĵ§i¡C³o¬O«ç»ò¿ì¨ìªº©O¡H
«Ü²³æ°Ú¡I¦]¬°µn¤J²×ºÝ¾÷ªº®ÉÔ¡A·|¦Û°Êªº¨ú±o¤@¨Ç²×ºÝ¾÷ªº¿é¤JÀô¹Òªº³]©w°Ú¡I
¨Æ¹ê¤W¡A¥Ø«e§Ų́ϥΪº Linux distributions ³£À°§Ú̧@¤F³Ì´Îªº¨Ï¥ÎªÌÀô¹Ò¤F¡A
©Ò¥H¤j®a¥i¥H¤£¥Î¾á¤ß¾Þ§@Àô¹Òªº°ÝÃD¡C¤£¹L¡A¦b¬Y¨Ç Unix like ªº¾÷¾¹¤¤¡AÁÙ¬O¥i¯à»Ýn°Ê¥Î¤@¨Ç¤â¸}¡A
¤~¯à°÷Åý§Ú̪º¿é¤J¤ñ¸û§Ö¼Ö¡ãÁ|¨Ò¨Ó»¡¡A§Q¥Î [backspace] §R°£¡An¤ñ§Q¥Î [Del] «öÁä¨Óªº¶¶¤â§a¡I
¦ý¬O¬Y¨Ç Unix °¾°¾¬O¥H [del] ¨Ó¶i¦æ¦r¤¸ªº§R°£°Ú¡I©Ò¥H¡A³oÓ®ÉÔ´N¥i¥H°Ê°Ê¤â¸}Åo¡ã
¨º»ò¦p¦ó¬d¾\¥Ø«eªº¤@¨Ç«öÁ䤺®e©O¡H¥i¥H§Q¥Î stty (setting tty ²×ºÝ¾÷ªº·N«ä) ©O¡I
stty ¤]¥i¥HÀ°§U³]©w²×ºÝ¾÷ªº¿é¤J«öÁä¥Nªí·N¸q³á¡I
[root@linux ~]# stty [-a]
°Ñ¼Æ¡G
-a ¡G±N¥Ø«e©Ò¦³ªº stty °Ñ¼Æ¦C¥X¨Ó¡F
½d¨Ò¡G
½d¨Ò¤@¡G¦C¥X©Ò¦³ªº«öÁä»P«öÁ䤺®e
[root@linux ~]# stty -a
speed 38400 baud; rows 40; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ;
eol2 = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase
= ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl
ixon -ixoff -iuclc -ixany -imaxbel opost -olcuc -ocrnl onlcr -onocr
-onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten
echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
|
§ÚÌ¥i¥H§Q¥Î stty -a ¨Ó¦C¥X¥Ø«eÀô¹Ò¤¤©Ò¦³ªº«öÁä¦Cªí¡A¦b¤WÀYªº¦Cªí·í¤¤¡A»Ýnª`·Nªº¬O¯S®í¦rÅ騺´XÓ¡A
¦¹¥~¡A¦pªG¥X²{ ^ ªí¥Ü [Ctrl] ¨ºÓ«öÁ䪺·N«ä¡CÁ|¨Ò¨Ó»¡¡A intr = ^C ªí¥Ü§Q¥Î [ctrl] + c ¨Ó¹F¦¨ªº¡C
´XÓ«nªº¥Nªí·N¸q¬O¡G
- eof : End of file ªº·N«ä¡A¥Nªí¡yµ²§ô¿é¤J¡z¡C
- erase : ¦V«á§R°£¦r¤¸¡A
- intr : °e¥X¤@Ó interrupt (¤¤Â_) ªº°T¸¹µ¹¥Ø«e¥¿¦b run ªºµ{§Ç¡F
- kill : §R°£¦b¥Ø«e«ü¥O¦C¤Wªº©Ò¦³¤å¦r¡F
- quit : °e¥X¤@Ó quit ªº°T¸¹µ¹¥Ø«e¥¿¦b run ªºµ{§Ç¡F
- start : ¦b¬YÓµ{§Ç°±¤î«á¡A«·s±Ò°Ê¥Lªº output
- stop : °±¤î¥Ø«e¿Ã¹õªº¿é¥X¡F
- susp : °e¥X¤@Ó terminal stop ªº°T¸¹µ¹¥¿¦b run ªºµ{§Ç¡C
°O¤£°O±o§ÚÌÁ¿¹L
Linux ©³¤Uªº´XÓ¼öÁä °Ú¡H¨S¿ù¡I
´N¬O³oÓ stty ³]©wȤºªº intr / eof Åo¡ã¦Ü©ó§R°£¦r¤¸¡A´N¬O erase ¨ºÓ³]©wȰաI
¦pªG§A·Qn¥Î [ctrl]+h ¨Ó¶i¦æ¦r¤¸ªº§R°£¡A¨º»ò¥i¥H¤U¹F¡G
[root@linux ~]# stty erase ^h
|
¨º»ò±q¦¹¤§«á¡A§Aªº§R°£¦r¤¸´N±on¨Ï¥Î [ctrl]+h Åo¡A«ö¤U [backspace] «h·|¥X²{ ^? ¦r¼Ë©O¡I
¦pªG·Qn¦^´_§Q¥Î [backspace] ¡A´N¤U¹F
stty erase ^? §Y¥i°Ú¡I
¦Ü©ó§ó¦hªº stty »¡©ú¡A°O±o°Ñ¦Ò¤@¤U man stty ªº¤º®e³á¡I
°£¤F stty ¤§¥~¡A¨ä¹ê§Ú̪º bash ÁÙ¦³¦Û¤vªº¤@¨Ç²×ºÝ¾÷³]©wÈ©O¡I¨º´N¬O§Q¥Î set ¨Ó³]©wªº¡I
§Ṳ́§«e´£¨ì¤@¨ÇÅܼƮɡA¥i¥H§Q¥Î set ¨ÓÅã¥Ü¡A°£¦¹¤§¥~¡A¨ä¹ê set ÁÙ¥i¥HÀ°§Ú̳]©w¾ãÓ«ü¥O¿é¥X/¿é¤JªºÀô¹Ò¡C
¨Ò¦p°O¿ý¾ú¥v©R¥O¡BÅã¥Ü¿ù»~¤º®eµ¥µ¥¡C
[root@linux ~]# set [-uvCHhmBx]
°Ñ¼Æ¡G
-u ¡G¹w³]¤£±Ò¥Î¡CY±Ò¥Î«á¡A·í¨Ï¥Î¥¼³]©wÅܼƮɡA·|Åã¥Ü¿ù»~°T®§¡F
-v ¡G¹w³]¤£±Ò¥Î¡CY±Ò¥Î«á¡A¦b°T®§³Q¿é¥X«e¡A·|¥ýÅã¥Ü°T®§ªºì©l¤º®e¡F
-x ¡G¹w³]¤£±Ò¥Î¡CY±Ò¥Î«á¡A¦b«ü¥O³Q°õ¦æ«e¡A·|Åã¥Ü«ü¥O¤º®e(«e±¦³ ++ ²Å¸¹)
-h ¡G¹w³]±Ò¥Î¡C»P¾ú¥v©R¥O¦³Ãö(¤U¸`¤¶²Ð)¡F
-H ¡G¹w³]±Ò¥Î¡C»P¾ú¥v©R¥O¦³Ãö(¤U¸`¤¶²Ð)¡F
-m ¡G¹w³]±Ò¥Î¡C»P¤u§@ºÞ²z¦³Ãö(¥¼¨Ó¤¶²Ð)¡F
-B ¡G¹w³]±Ò¥Î¡C»P¨í¸¹ [] ªº§@¥Î¦³Ãö¡F
-C ¡G¹w³]¤£±Ò¥Î¡CY¨Ï¥Î > µ¥¡A«hYÀɮצs¦b®É¡A¸ÓÀɮפ£·|³QÂл\¡C
½d¨Ò¡G
½d¨Ò¤@¡GÅã¥Ü¥Ø«e©Ò¦³ªº set ³]©wÈ
[root@linux ~]# echo $-
himBH
# ¨ºÓ $- ÅܼƤº®e´N¬O set ªº©Ò¦³³]©w°Õ¡I bash ¹w³]¬O himBH ³á¡I
½d¨Ò¤G¡G³]©w "Y¨Ï¥Î¥¼©w¸qÅܼƮɡA«hÅã¥Ü¿ù»~°T®§"
[root@linux ~]# set -u
[root@linux ~]# echo $vbirding
-bash: vbirding: unbound variable
# ¹w³]±¡ªp¤U¡A¥¼³]©w/¥¼«Å§i ªºÅܼƳ£·|¬O¡yªÅªº¡z¡A¤£¹L¡AY³]©w -u °Ñ¼Æ¡A
# ¨º»ò·í¨Ï¥Î¥¼³]©wªºÅܼƮɡA´N·|¦³°ÝÃD°Õ¡I«Ü¦hªº shell ³£¹w³]±Ò¥Î -u °Ñ¼Æ¡C
# Yn¨ú®ø³oӰѼơA¿é¤J set +u §Y¥i¡I
½d¨Ò¤T¡G°õ¦æ«e¡AÅã¥Ü¸Ó«ü¥O¤º®e¡C
[root@linux ~]# set -x
[root@linux ~]# echo $HOME
+ echo /root
/root
++ echo -ne '\033]0;root@linux:~\007'
# ¬Ý¨£§_¡Hn¿é¥Xªº«ü¥O³£·|¥ý³Q¦C¦L¨ì¿Ã¹õ¤W³á¡I«e±·|¦h¥X + ªº²Å¸¹¡I
|
¥t¥~¡A¨ä¹ê§ÚÌÁÙ¦³¨ä¥Lªº«öÁä³]©w¥\¯à©O¡I´N¬O¦b /etc/inputrc ³oÓÀɮ׸̱³]©w¡C
[root@linux ~]# cat /etc/inputrc
# do not bell on tab-completion
#set bell-style none
set meta-flag on
set input-meta on
set convert-meta off
set output-meta on
.....¥H¤U¬Ù²¤.....
|
ÁÙ¦³¨Ò¦p /etc/DIR_COLORS* »P /etc/termcap µ¥¡A¤]³£¬O»P²×ºÝ¾÷¦³ÃöªºÀô¹Ò³]©wÀɮשO¡I
¤£¹L¡A¨Æ¹ê¤W¡A³¾ô¨Ã¤£«ØÄ³±z×§ï tty ªºÀô¹Ò©O¡A³o¬O¦]¬° bash ªºÀô¹Ò¤w¸g³]©wªº«Ü¿Ë©M¤F¡A
§Ṳ́£»ÝnÃB¥~ªº³]©w©ÎªÌ×§ï¡A§_«h¤Ï¦Ó·|²£¥Í¤@¨Ç§xÂZ¡C¤£¹L¡A¼g¦b³o¸Ìªº¸ê®Æ¡A
¥u¬O§Æ±æ¤j®a¯à°÷²M·¡ªºª¾¹D§Ú̪º²×ºÝ¾÷¬O¦p¦ó¶i¦æ³]©wªº³á¡I ^_^
¸U¥Î¦r¤¸»P¯S®í²Å¸¹¡G
¼K¼K¡I¦b bash ¸ÌÀYÁ٤䴩¤@¨Ç¸U¥Î¦r¤¸³á (wild card) ¡I¦h¤F³o¨Ç¸U¥Î¦r¤¸¡A
§Ú̧Q¥Î bash ³B²z¸ê®Æ´N§ó¤è«K¤F¡I©³¤U§Ú̦C¥X¤@¨Ç±`¥Îªº¸U¥Î¦r¤¸³á¡G
| ²Å¸¹ | ¤º®e |
| * | ¸U¥Î¦r¤¸¡A¥Nªí 0 өΦhÓ¦r¤¸¡]©Î¼Æ¦r¡^ |
| ? | ¸U¥Î¦r¤¸¡A¥Nªí¡y¤@©w¦³¡z¤@Ó¦r¥À |
| # | µù¸Ñ¡A³oӳ̱`³Q¨Ï¥Î¦b script ·í¤¤¡Aµø¬°»¡©ú¡I |
| \ | ¸õ²æ²Å¸¹¡A±N¡y¯S®í¦r¤¸©Î¸U¥Î¦r¤¸¡zÁÙ즨¤@¯ë¦r¤¸ |
| | | ¤À¹j¨âÓºÞ½u©R¥Oªº¬É©w¡F |
| ; | ³sÄò©Ê©R¥Oªº¬É©w¡]ª`·N¡I»PºÞ½u©R¥O¨Ã¤£¬Û¦P¡^ |
| ~ | ¨Ï¥ÎªÌªº®a¥Ø¿ý |
| $ | ¥ç§Y¬OÅܼƤ§«e»Ýn¥[ªºÅܼƨú¥NÈ |
| & | ±N«ü¥OÅܦ¨I´º¤U¤u§@ |
| ! | ÅÞ¿è¹Bºâ·N¸q¤Wªº¡y«D¡z not ªº·N«ä¡I |
| / | ¸ô®|¤À¹jªº²Å¸¹ |
| >, >> | ¿é¥X¾É¦V¡A¤À§O¬O¡y¨ú¥N¡z»P¡y²Ö¥[¡z |
| ' | ³æ¤Þ¸¹¡A¤£¨ã¦³ÅܼƸm´«ªº¥\¯à |
| " | ¨ã¦³ÅܼƸm´«ªº¥\¯à¡I |
| ` ` | ¨âÓ¡y ` ¡z¤¤¶¡¬°¥i¥H¥ý°õ¦æªº«ü¥O¡I |
| ( ) | ¦b¤¤¶¡¬°¤l shell ªº°_©l»Pµ²§ô |
| [ ] | ¦b¤¤¶¡¬°¦r¤¸ªº²Õ¦X |
| { } | ¦b¤¤¶¡¬°©R¥O°Ï¶ôªº²Õ¦X¡I |
| ²Õ¦X«öÁä | °õ¦æµ²ªG |
| Ctrl + C | ²×¤î¥Ø«eªº©R¥O |
| Ctrl + D | ¿é¤Jµ²§ô¡]EOF¡^¡A¨Ò¦p¶l¥óµ²§ôªº®ÉÔ¡F |
| Ctrl + M | ´N¬O Enter °Õ¡I |
| Ctrl + S | ¼È°±¿Ã¹õªº¿é¥X |
| Ctrl + Q | «ì´_¿Ã¹õªº¿é¥X |
| Ctrl + U | ¦b´£¥Ü¦r¤¸¤U¡A±N¾ã¦C©R¥O§R°£ |
| Ctrl + Z | ¡y¼È°±¡z¥Ø«eªº©R¥O |
¦b¤W±ªº¡y«öÁä²Õ¦X¡z·í¤¤¡A¦³¨S¦³µo²{¸ò¤WÓ¤p¸`«Ü¬Û¦üªº¤º®e°Ú¡I¡H
¨þ¨þ¡ã¨S¿ù°Õ¡I¨º¨Ç²Õ¦XÁä³£¥i¥H¦b stty ·í¤¤¨Ó¶i¦æ¤£¦Pªº³]©wªº¡I¦nª±§a¡I
¦Ü©ó¤W±ªº¸U¥Î¦r¤¸·í¤¤¡A³Ì±`¥Îªº´NÄÝ
*, ?, [] ¤Î ` ¤F¡I§ÚÌ´£´XÓ²³æªº¨Ò¤l¡G
[root@linux ~]# ls test* <==¨ºÓ * ¥Nªí«á±¤£½×±µ´XÓ¦r¤¸³£¤©¥H±µ¨ü
[root@linux ~]# ls test? <==¨ºÓ ? ¥Nªí«á±¡y¤@©w¡zn±µ¡y¤@Ó¡z¦r¤¸
[root@linux ~]# ls test??? <==¨ºÓ ??? ¥Nªí¡y¤@©wn±µ¤TÓ¡z¦r¤¸¡I
[root@linux ~]# cp test[1-5] /tmp
# ±N test1, test2, test3, test4, test5 Y¦s¦bªº¸Ü¡A´N«þ¨©¨ì /tmp
[root@linux ~]# cp test[!1-5] /tmp
# ¥un¤£¬O test1, test2, test3, test4, test5 ¤§¥~ªº¨ä¥L test? ¡A
# Y¦s¦bªº¸Ü¡A´N«þ¨©¨ì /tmp
[root@linux ~]# cd /lib/modules/`uname -r`/kernel/drivers
# ³Q ` ` ¬A°_¨Óªº¤º®e¡y·|¥ý°õ¦æ¡z
|
¤W±´XÓ¨Ò¤l¬Û·íªº¦³½ì¡I¤×¨ä¬O³Ì«á±¨âÓ¡I»Ýnª`·Nªº¬O¡A [1-5] ¸Ì±¡y¥Nªí¥u¦³¤@Ó¦r¤¸¡z¦ý¬O½d³ò¥i¥H¥Ñ
1-5 ¡A³o¼Ë¨Ó»¡ªº¸Ü¡A¨º»ò§Ú̦pªG¤¹³\¡y¥unÀɦW¸Ì±§t¦³¦Ü¤Ö¤@Ó¤j¼g¦r¤¸¡z®É¡A´N¥i¥H±NÀÉ®×
copy ¥X¨Óªº¸Ü¡A¥i¥H³o¼Ë°µ¡G
«Ü¦³½ì§a¡H¡I¤]´N¬O»¡¡y
[ ] ÂÔ¥Nªí¤@Ó¦r¤¸¡A¦Ó³oÓ¦r¤¸ªº©w¸q¥i¥H¬O½d³ò(-)¡A
¥i¥H¬O«ü©w¶µ¥Ø¡A¤]¥i¥H¬O¨âªÌ¨Ã¦s¡C ¡zÁ|¨Ò¨Ó»¡¡A§Ú·Qn§ä¥X¦b /etc/ ©³¤U©Ò¦³§t¦³¼Æ¦rªºÀɮסA
¥i¥H³o¼Ë¡G
¦ý¦pªG§Ú¥u·Qn§ä¥X§t¦³ 3 ¤Î 5 ªºÀɦWªºÀɮשO¡H´N·|¬O³o¼Ë¡G
¦pªG¬O¡y¤£·Qn¡z¬Y¨Ç½d³ò©ÎªÌ¬O³æ¦r©O¡H´N¨Ï¥Î [!] §Y¥i¡I¨Ò¦p¤£·Qn¦³¤p¼g¦r¤¸¬°¶}ÀYªºÀɮסG
«Ü¦nª±§a¡I¦Ü©ó¨ºÓ ` ¬OÔ£¡H¦b¤@¦ê«ü¥O·í¤¤¡A `command` ¤ºªº«ü¥O·|¥ý³Q°õ¦æ¡A
°õ¦æ§¹ªº°T®§¦A¦^¶Ç¨ì¥~³¡«ü¥O¨Ó³B²z¡I¤]´N¬O»¡¡G
- ¨t²Î¥ý°õ¦æ uname -r §ä¥X¿é¥Xªºµ²ªG¡F
- ±Nµ²ªG²Ö¥[¦b¥Ø¿ý¤W±¡A¨Ó°õ¦æ cd ªº¥\¯à¡I
«Ü´Î§a¡I¡I¥t¥~¡A³oÓ quot (`) ªº¥\¯à¡A¤]¥i¥H§Q¥Î $() ¨Ó¨ú¥N³á¡I¨Ò¦p¡G
cd /lib/modules/$(uname -r)/kernel
³o¨Ç°ò¥»ªº¥\¯à»Ýn¯S§O¨ÓÁA¸Ñ¤@¤U¤~¦æËç¡I¦Ü©ó§ó¦hªº¨Ï¥Î¤è¦¡¡A
§ÚÌ·|¦b«áÄòªº¥¿³Wªí¥Üªk·í¤¤¦b¸Ô½Íªº¡I
¸ê®Æ¬y«¾É¦V (redirect) ¥Ñ¦r±¤Wªº·N«ä¨Ó¬Ý¡A¦n¹³´N¬O±N¡y¸ê®Æµ¹¥L¶Ç¾É¨ì¨ä¥L¦a¤è¥h¡zªº¼Ë¤l¡H
¨þ¨þ¡I¬O°Ú¬O°Ú¡I¨S¿ù¡ã¸ê®Æ¬y«¾É¦V´N¬O±N¬YÓ«ü¥O°õ¦æ«áÀ³¸Ón¥X²{¦b¿Ã¹õ¤Wªº¸ê®Æ¡A
µ¹¥L¶Ç¿é¨ì¨ä¥Lªº¦a¤è¡A¨Ò¦pÀɮשΪ̬O¸Ë¸m (¨Ò¦p¦Lªí¾÷¤§Ãþªº¡I)¡I³oª±·N¨à¦b Linux ªº¤å¦r¼Ò¦¡©³¤U¥i«nªº¡I
¤×¨ä¬O¦pªG§ÚÌ·Qn±N¬Y¨Ç¸ê®ÆÀx¦s¤U¨Ó®É¡A´N§ó¦³¥Î¤F¡I
¤°»ò¬O¸ê®Æ¬y«¾É¦V
¦n³Ã¥ë¡I¤°»ò¬O¸ê®Æ¬y«¾É¦V°Ú¡H³o±on¥Ñ«ü¥Oªº°õ¦æµ²ªG½Í°_¡I
¤@¯ë¨Ó»¡¡A¦pªG§An°õ¦æ¤@Ó«ü¥O¡A³q±`¥L·|¬O³o¼Ëªº¡G

¹Ï¤T¡B«ü¥O°õ¦æ¹Lµ{ªº¸ê®Æ¶Ç¿é±¡ªp
§Ṵ́õ¦æ¤@Ó«ü¥Oªº®ÉÔ¡A³oÓ«ü¥O¥i¯à·|¥ÑÀÉ®×Ū¤J¸ê®Æ¡A¸g¹L³B²z¤§«á¡A¦A±N¸ê®Æ¿é¥X¨ì¿Ã¹õ¤W¡C
¦b¹Ï¤T·í¤¤¡A standard output »P standard error ¤À§O¥Nªí¼Ð·Ç¿é¥X»P¼Ð·Ç¿ù»~¿é¥X¡A
³o¨âÓª±·N¨à¹w³]³£¬O¿é¥X¨ì¿Ã¹õ¤W±¨Óªº°Ú¡IÁ|Ó²³æ¨Ò¤l¨Ó»¡¡A
§Ṳ́U¹F¡y cat /etc/crontab /etc/vbirdsay ¡z³oÓ«ü¥O®É¡Acat ·|¥Ñ /etc/crontab »P /etc/vbirdsay Ū¤J¸ê®Æ¡A
µM«á¦A±N¸ê®Æ¿é¥X¨ì¿Ã¹õ¤W¡A¤£¹L¡A¦]¬°¨t²Î¥»¨Ó´N¤£¦s¦b /etc/vbirdsay ³oÓÀɮסA
©Ò¥H´N·|Åã¥Ü¿ù»~°T®§¡A³oÓ¿ù»~°T®§¤]·|¿é¥X¨ì¿Ã¹õ¤W¨Ó³á¡I
¦b³o¼Ëªº¹Lµ{·í¤¤¡A§ÚÌ¥i¥H±N standard error (²ºÙ stderr) »P standard output (²ºÙ stdout)
µ¹¥L¶Ç°e¨ì¨ä¥L¤£¦Pªº¦a¤è¡A¦Ó¤£¬O¿Ã¹õ¤WÀY¡I¶Ç°eªº¥Ø¼Ð³B¡A³q±`¬OÀɮשΪ̬O¸Ë¸m¡I
¦Ó¶Ç°eªº«ü¥O«h¬O¦p¤U©Ò¥Ü¡G
- ¼Ð·Ç¿é¤J(stdin) ¡G¥N½X¬° 0 ¡A¨Ï¥Î < ©Î << ¡F
- ¼Ð·Ç¿é¥X(stdout)¡G¥N½X¬° 1 ¡A¨Ï¥Î > ©Î >> ¡F
- ¼Ð·Ç¿ù»~¿é¥X(stderr)¡G¥N½X¬° 2 ¡A¨Ï¥Î 2> ©Î 2>> ¡F
Á|¨Ò¨Ó»¡¡A¦pªG§Ú·Qn±N§Ú¥Ø«e®Ú¥Ø¿ý¤U©Ò¦³ªº¥Ø¿ý³£°O¿ý¤U¨Óªº¸Ü¡A¤]´N¬O»¡¡A±N ls -l /
³oÓ«ü¥Oªº¿é¥Xµ²ªGÀx¦s¤U¨Ó¡A´N¥i¥H¡G
[root@linux ~]# ls -l / > ~/rootfile
# ¥»¨Ó ls -l / ·|±N®Ú¥Ø¿ýªº¸ê®Æ¦C¥X¨ì¿Ã¹õ¤W¡F
# ²{¦b§Ú¨Ï¥Î¤F > ~/rootfile «á¡A«h¥»¨ÓÀ³¸Ó¦b¿Ã¹õ¤W¥X²{ªº¸ê®Æ
# ´N·|³Q¡y«·s¾É¦V¡z¨ì ~/rootfile Àɮפº¤F¡I´N¥i¥H±N¸Ó¸ê®ÆÀx¦s¡I
|
¦¹®É¡A쥻À³¸Ó¦b¿Ã¹õ¤W±¥X²{ªº¸ê®Æ³q³q¤£¨£¥h¡ã¦]¬°¨º¨Ç¸ê®Æ³£³Q¼g¤J¨ì ~/rootfile ¥h¤F¡I
·íµM¡A¨ºÓÀɮתºÀɦWÀH«K§A¨ú°Õ¡ã¦pªG§A¤U¹F¡G¡y cat ~/rootfile ¡z´N¥i¥H¬Ý¨ì쥻À³¸Ó¦b¿Ã¹õ¤W±ªº¸ê®ÆÅo¡C
¨º»ò¦pªG§Ú¦A¦¸¤U¹F¡G¡y ls -l /home > ~/rootfile ¡z«á¡A¨º»ò¨ºÓ ~/rootfile Àɮתº¤º®eÅܦ¨¤°»ò¡H
¨þ¨þ¡IÅܦ¨¡y¶È¦³ ls -l /home ªº¸ê®Æ¡z¦Ó¤w¡I«x¡I쥻ªº ls -l / ¸ê®Æ´N¤£¨£¤F¶Ü¡H¬Oªº¡I
¦]¬°¸ÓÀɮתº«Ø¥ß¤è¦¡¬O¡G
- ¸ÓÀÉ®× (¥»¨Ò¤¤¬O ~/rootfile) Y¤£¦s¦b¡A¨t²Î·|¦Û°Êªº±N¥L«Ø¥ß°_¨Ó¡A¦ý¬O¡A
- ·í³oÓÀɮצs¦bªº®ÉÔ¡A¨º»ò¨t²Î´N·|¥ý±N³oÓÀɮפº®e²MªÅ¡AµM«á¦A±N¸ê®Æ¼g¤J¡I
- ¤]´N¬OY¥H > ¿é¥X¨ì¤@Ó¬J¦sÀɮפ¤¡A¨þ¨þ¡A¨ºÓÀÉ®×´N·|³QÂл\±¼Åo¡I
¨º¦pªG§Ú·Qn±N¸ê®Æ²Ö¥[¡A¤£·Qn±Nªº¸ê®Æ§R°£¡A¨º¸Ó¦p¦ó¬O¦n¡H
¨þ¨þ¡I´N§Q¥Î >> ´N¦n°Õ¡I¨Ò¦p¤W±ªº¨Ò¤l¤¤¡A´NÅܦ¨¡y
ls -l / >> ~/rootfile¡z
¦p¦¹¤@¨Ó¡A·í ~/rootfile ¤£¦s¦b®É¡A¨t²Î·|¥D°Ê«Ø¥ß³oÓÀɮסAY¸ÓÀɮפw¦s¦b¡A
«h¸ê®Æ·|¦b¸ÓÀɮתº³Ì¤U¤è²Ö¥[¶i¥h¡I°ò¥»¤W¡A«ü¥Oªº¤U¹F¤è¦¡¡G
| command | > 1> 2> 2>> < | ¸Ë¸m©ÎÀÉ®× |
·íµM°Õ¡A¤@¦ê«ü¥Oªº³Ì¥ªÃä¤@©w¬O«ü¥O¡A¦Ó¦b >,2>,< ¥kÃ䪺¡A¥²¶·¬OÀɮשθ˸m¤~¦æ¡I
¦¹¥~¡A¨ºÓ > ·|µ¥©ó 1> ¡A¦]¬° standard output ¥N½X¬O 1 ¡A¥i¥H¬Ù²¤°Õ¡I
¦AªÌ¡A 1 »P > ¤§¶¡¨Ã¨S¦³ªÅ®æ³á¡I¬Oºò±µ¦b¤@°_ªº¡Iª`·Nª`·N¡I§ÚÌ©³¤U¨Óª±´XÓªF¦è¦n¤F¡G
½d¨Ò¤@¡G±N¥Ø«e¥Ø¿ý¤UªºÀɮ׸ê°T¥þ³¡Àx¦s¨ì list.txt Àɮפ¤
[root@linux ~]# ls -al > list.txt
½d¨Ò¤G¡G±N®Ú¥Ø¿ý¤Uªº¸ê®Æ¤]Àx¦s¨ì list.txt Àɮפ¤
[root@linux ~]# ls -al / >> list.txt
|
¦n¤F¡A¹ï©ó¡y > , >> ¡z³o¨âÓªF¦è¦³¤@©wªº·§©À¤§«á¡A§Ų́Ӳ`¤Jªº½Í¤@½Í¡y¸ê®Æ¬y«¾É¦V¡zªºÆ[©À§a¡I
¦p«e©Òz¡A°ò¥»¤W¡A Linux °õ¦æªºµ²ªG¤¤¡A¥i¥H¬ù²¤ªº¤À¦¨¡y¥¿½T¿é¥X¡z»P¡y¿ù»~¿é¥X¡z¨âºØ¸ê®Æ¡C
¨Ò¦p¡A·í§A¥H¤@¯ë¨¥÷°õ¦æ find ³oÓ«ü¥O®É¡A¨Ò¦p°õ¦æ¡y
find / -name
testing ¡z®É¡A¥Ñ©ó§A¬O¤@¯ë¨¥÷¡A¤S¦³¨Ç¸ê®Æ§¨¬O¤£¤¹³\¤@¯ë¨¥÷ªÌ¶i¤Jªº¡A
©Ò¥HÅo¡A·í§A¨Ï¥Î find ®É¡A´N·|¦³¿ù»~°T®§µo¥Í¤F¡I¦ý¦P®É¦pªG¦³ testing
³oÓÀɮצb§A¥i¥H¶i¤Jªº¸ê®Æ§¨·í¤¤¡A¨º»ò¿Ã¹õ¤]·|¿é¥X¨ìµ¹§A¬Ý¡I¦]¦¹¡A
´N¨ã¦³¥¿½Tªº»P¿ù»~ªº¿é¥X¨âºØÅo¡I¡]¤À§OºÙ¬° Stdout »P Stderror¡^¨Ò¦p¤U±¬°°õ¦æµ²ªG¡G
¸Ì±ªº¡y find: /home/root: Permission denied ¡z´N§i¶D§A¸Ó¸ê®Æ§¨§A¨S¦³Åv¶i¤J¡A
³o´N¬O¿ù»~ªº¿é¥X¤F¡A¨º»ò¡y /home/dmtsai/tseting ¡z´N¬O¥¿½Tªº¿é¥X¤F¡I
[dmtsai@linux ~]$ find /home -name testing
find: /home/test1: Permission denied <== Starndard error
find: /home/root: Permission denied <== Starndard error
find: /home/masda: Permission denied <== Starndard error
/home/dmtsai/testing <== Starndard output
|
¦n¤F¡A¨º»ò°²¦p§ÚÌ·Qn±N¸ê®Æ¿é¥X¨ì list ³oÓÀɮפ¤©O¡H°õ¦æ¡y find / -name testing > list ¡z
·|¦³¤°»òµ²ªG¡H¨þ¨þ¡A§A·|µo²{ list ¸Ì±¦s¤Fè診ӡy¥¿½T¡zªº¿é¥X¸ê®Æ¡A
¦Ü©ó¿Ã¹õ¤WÁÙ¬O·|¦³¿ù»~ªº°T®§¥X²{©O¡I¶Ë¸£µ¬¡I¦pªG·Qn±N¥¿½Tªº»P¿ù»~ªº¸ê®Æ¤À§O¦s¤J¤£¦PªºÀɮפ¤»Ýn«ç»ò°µ¡H¡I
¨þ¨þ¡I¨ä¹ê¦b¸ê®Æªº«¾É¦V¤è±¡A¥¿½Tªº¼gªkÀ³¸Ó¬O¡y 1> ¡z»P¡y 2> ¡z¤~¹ï¡I¦ý¬O¦pªG¥u¦³ > «h¹w³]¬O¥H
1> ¨Ó¶i¦æ¸ê®Æªº¡I¨ºÓ 1> ¬O¿é¥X¥¿½T¸ê®Æ¡A 2> «h¬O¿ù»~¸ê®Æ¿é¥X¶µ¥Ø¡C¤]´N¬O»¡¡G
- 1> ¡G¬O±N¥¿½Tªº¸ê®Æ¿é¥X¨ì«ü©wªº¦a¤è¥h
- 2> ¡G¬O±N¿ù»~ªº¸ê®Æ¿é¥X¨ì«ü©wªº¦a¤è¥h
¦n¤F¡A¨º»ò¤W±ªº¨Ò¤l¤¤¡A§Ú̦p¦ó±N¸ê®Æ¿é¥X¨ì¤£¦Pªº¦a¤è¥h©O¡H¥i¥H³o»ò¼g¡G
[dmtsai@linux ~]$ find /home -name testing > list_right 2> list_error
|
³o¼Ë¤@¨Ó¡Aèè°õ¦æªºµ²ªG¤¤¡A¦³ Permission ªº¨º´X¦æ¿ù»~¸ê°T³£·|¶]¨ì list_error
³oÓÀɮפ¤¡A¦Ü©ó¥¿½Tªº¿é¥X¸ê®Æ«h·|¦s¨ì list_right ³oÓÀɮפ¤Åo¡