Ï¡·¹¶¥¿Í×ÛºÏÉçÇøÏ¡·¹¶¥¿Í×ÛºÏÉçÇø

Ê×Ò³ | ×îÈȰæ¿é | »îÔ¾»áÔ± | ±¾ÖÜÈȵ㠷µ»ØUnix


·¢ÌùÈË:hqiliang
·¢±íʱ¼ä:2007Äê07ÔÂ17ÈÕ22:38:21 ÐÇÆÚ¶þ
CYGWINÏÂÔØ--ÔÚWINDOWSÉÏÌåÑéLINUXµÄ¸Ð¾õ
2006Äê12ÔÂ08ÈÕ ÐÇÆÚÎå 01:13 A.M.


Èí¼þÏÂÔØ£º
http://www.cygwin.com/setup.exe



CygwinʹÓÃÖ¸ÄÏ

¸ù¾Ýcygwin user guide·­ÒëÕûÀí£¬Ï£Íû¶Ô´ó¼ÒÓÐËù°ïÖú¡£ÓдíÎóÇåÖ¸³ö¡£

1 ÒýÑÔ
cygwinÊÇÒ»¸öÔÚwindowsƽ̨ÉÏÔËÐеÄunixÄ£Äâ»·¾³£¬ÊÇcygnus solutions¹«Ë¾¿ª·¢µÄ×Ô
ÓÉÈí¼þ£¨¸Ã¹«Ë¾¿ª·¢Á˺ܶàºÃ¶«Î÷£¬ÖøÃûµÄ»¹ÓÐeCos£¬²»¹ýÏÖÒѱ»RedhatÊÕ¹º£©¡£Ëü¶Ô
ÓÚѧϰunix/linux²Ù×÷»·¾³£¬»òÕß´Óunixµ½windowsµÄÓ¦ÓóÌÐòÒÆÖ²£¬»òÕß½øÐÐÄ³Ð©ÌØÊâ
µÄ¿ª·¢¹¤×÷£¬ÓÈÆäÊÇʹÓÃgnu¹¤¾ß¼¯ÔÚwindowsÉϽøÐÐǶÈëʽϵͳ¿ª·¢£¬·Ç³£ÓÐÓá£Ëæ×Å
ǶÈëʽϵͳ¿ª·¢ÔÚ¹úÄÚÈÕ½¥Á÷ÐУ¬Ô½À´Ô½¶àµÄ¿ª·¢Õß¶Ôcygwin²úÉúÁËÐËȤ¡£±¾ÎĽ«¶ÔÆä
×÷Ò»½éÉÜ¡£

2 »úÀí
cygnusµ±³õÊ×ÏȰÑgcc£¬gdb£¬gasµÈ¿ª·¢¹¤¾ß½øÐÐÁ˸Ľø£¬Ê¹ËûÃÇÄܹ»Éú³É²¢½âÊÍwin32
µÄÄ¿±êÎļþ¡£È»ºó£¬ËûÃÇÒª°ÑÕâЩ¹¤¾ßÒÆÖ²µ½windowsƽ̨ÉÏÈ¥¡£Ò»ÖÖ·½°¸ÊÇ»ùÓÚwin32
api¶ÔÕâЩ¹¤¾ßµÄÔ´´úÂë½øÐдó·ùÐ޸ģ¬ÕâÑù×öÏÔÈ»ÐèÒª´óÁ¿¹¤×÷¡£Òò´Ë£¬ËûÃDzÉÈ¡ÁËÒ»
ÖÖ²»Í¬µÄ·½·¨¡ª¡ªËûÃÇдÁËÒ»¸ö¹²Ïí¿â(¾ÍÊÇcygwin dll)£¬°Ñwin32 apiÖÐûÓеÄunix·ç
¸ñµÄµ÷Óã¨Èçfork,spawn,signals,select,socketsµÈ£©·â×°ÔÚÀïÃæ£¬Ò²¾ÍÊÇ˵£¬ËûÃÇ»ù
ÓÚwin32 apiдÁËÒ»¸öunixϵͳ¿âµÄÄ£Äâ²ã¡£ÕâÑù£¬Ö»Òª°ÑÕâЩ¹¤¾ßµÄÔ´´úÂëºÍÕâ¸ö¹²Ïí
¿âÁ¬½Óµ½Ò»Æð£¬¾Í¿ÉÒÔʹÓÃunixÖ÷»úÉϵĽ»²æ±àÒëÆ÷À´Éú³É¿ÉÒÔÔÚwindowsƽ̨ÉÏÔËÐеÄ
¹¤¾ß¼¯¡£ÒÔÕâÐ©ÒÆÖ²µ½windowsƽ̨ÉϵĿª·¢¹¤¾ßΪ»ù´¡£¬cygnusÓÖÖð²½°ÑÆäËûµÄ¹¤¾ß£¨
¼¸ºõ²»ÐèÒª¶ÔÔ´´úÂë½øÐÐÐ޸ģ¬Ö»ÐèÒªÐÞ¸ÄËûÃǵÄÅäÖýű¾£©Èí¼þÒÆÖ²µ½windowsÉÏÀ´¡£
ÕâÑù£¬ÔÚwindowsƽ̨ÉÏÔËÐÐbashºÍ¿ª·¢¹¤¾ß¡¢Óû§¹¤¾ß£¬¸Ð¾õºÃÏñÔÚunixÉϹ¤×÷¡£
¹ØÓÚcygwinʵÏֵĸüÏêϸÃèÊö£¬Çë²Î¿¼http://cygwin.com/cygwin-ug-net/highlights.
html.

3 °²×°ÉèÖÃcygwin
3.1 °²×°
Òª°²×°ÍøÂç°æµÄcygwin£¬¿ÉÒÔµ½http://cygwin.com£¬µã»÷Install Cygwin Now!"¡£Õâ
Ñù»áÏÈÏÂÔØÒ»¸ö½Ð×ösetup.exeµÄGUI°²×°³ÌÐò£¬ÓÃËüÄÜÏÂÔØÒ»¸öÍêÕûµÄcygwin¡£°´ÕÕÿ
Ò»ÆÁµÄָʾ¿ÉÒÔ·½±ãµÄ½øÐа²×°¡£
3.2 »·¾³±äÁ¿
¿ªÊ¼ÔËÐÐbash֮ǰ£¬Ó¦¸ÃÉèÖÃһЩ»·¾³±äÁ¿¡£cygwinÌṩÁËÒ»¸ö.batÎļþ£¬ÀïÃæÒѾ­Éè
ÖúÃÁË×îÖØÒªµÄ»·¾³±äÁ¿¡£Í¨¹ýËüÀ´Æô¶¯bashÊÇ×ȫµÄ°ì·¨¡£Õâ¸ö.batÎļþ°²×°ÔÚcyg
winËùÔڵĸùĿ¼Ï¡£ ¿ÉÒÔËæÒâ±à¼­¸ÃÎļþ¡£
CYGWIN±äÁ¿ÓÃÀ´Õë¶ÔcygwinÔËÐÐʱϵͳ½øÐжàÖÖÈ«¾ÖÉèÖ᣿ªÊ¼Ê±£¬¿ÉÒÔ²»ÉèÖÃCYGWIN
»òÕßÔÚÖ´ÐÐbashǰÓÃÀàËÆÏÂÃæµÄ¸ñʽÔÚdos¿òϰÑËüÉèΪtty
C:> set CYGWIN=tty notitle glob

PATH±äÁ¿±»cygwinÓ¦ÓóÌÐò×÷ΪËÑË÷¿ÉÖªÐÔÎļþµÄ·¾¶ÁÐ±í¡£µ±Ò»¸öcygwin½ø³ÌÆô¶¯Ê±
£¬¸Ã±äÁ¿±»´Ówindows¸ñʽ(e.g. C:WinNTsystem32;C:WinNT)ת»»³Éunix¸ñʽ(e.g.,
/WinNT/system32:/WinNT)¡£Èç¹ûÏëÔÚ²»ÔËÐÐbashµÄʱºòÒ²Äܹ»Ê¹ÓÃcygwin¹¤¾ß¼¯£¬PATH
ÆðÂëÓ¦¸Ã°üº¬x:cygwinin£¬ÆäÖÐx:cygwin ÊÇÄãµÄϵͳÖеÄcygwinĿ¼¡£
HOME±äÁ¿ÓÃÀ´Ö¸¶¨Ö÷Ŀ¼£¬ÍƼöÔÚÖ´ÐÐbashǰ¶¨Òå¸Ã±äÁ¿¡£µ±cygwin½ø³ÌÆô¶¯Ê±£¬¸Ã±ä
Á¿Ò²±»´Ówindows¸ñʽת»»³Éunix¸ñʽ£¬ÀýÈ磬×÷ÕߵĻúÆ÷ÉÏHOMEµÄֵΪC:£¨dosÃüÁîse
t HOME¾Í¿ÉÒÔ¿´µ½ËûµÄÖµ£¬set HOME=XXX¿ÉÒÔ½øÐÐÉèÖã©£¬ÔÚbashÖÐÓÃecho $HOME¿´£¬
ÆäֵΪ/cygdrive/c.
TERM±äÁ¿Ö¸¶¨ÖÕ¶ËÐÍ̬¡£Èç¹ûÃÀ¶ÔËü½øÐÐÉèÖã¬Ëü½«×Ô¶¯ÉèΪcygwin¡£
LD_LIBRARY_PATH±»cygwinº¯Êýdlopen()×÷ΪËÑË÷.dllÎļþµÄ·¾¶ÁÐ±í£¬¸Ã±äÁ¿Ò²±»´Ówi
ndows¸ñʽת»»³Éunix¸ñʽ¡£¶àÊýCygwinÓ¦ÓóÌÐò²»Ê¹ÓÃdlopen,Òò¶ø²»ÐèÒª¸Ã±äÁ¿¡£
3.3 ¸Ä±äcygwinµÄ×î´ó´æ´¢ÈÝÁ¿
Cygwin³ÌÐòȱʡ¿ÉÒÔ·ÖÅäµÄÄÚ´æ²»³¬¹ý384 MB(program+data)¡£¶àÊýÇé¿öϲ»ÐèÒªÐÞ¸Ä
Õâ¸öÏÞÖÆ¡£È»¶ø£¬Èç¹ûÐèÒª¸ü¶àʵ¼Ê»òÐéÄâÄڴ棬Ӧ¸ÃÐÞ¸Ä×¢²á±íµÄHKEY_LOCAL_MACHIN
E»òHKEY_CURRENT_USERÇø¶Î¡£Ìï¼ÒÒ»¸öDWORD¼üheap_chunk_in_mb²¢°ÑËüµÄÖµÉèΪÐèÒªµÄ
ÄÚ´æÏÞÖÆ£¬µ¥Î»ÊÇÊ®½øÖÆMB¡£Ò²¿ÉÒÔÓÃcygwinÖеÄregtoolÍê³É¸ÃÉèÖá£Àý×ÓÈçÏ£º
regtool -i set /HKLM/Software/Cygnus Solutions/Cygwin/heap_chunk_in_mb 1024
regtool -v list /HKLM/Software/Cygnus Solutions/Cygwin

4 ʹÓÃcygwin
ÕâÒ»¶Î½²Ò»ÏÂcygwinºÍ´«Í³unixϵͳµÄ²»Í¬Ö®´¦¡£
4.1 Ó³Éä·¾¶Ãû
4.1.1 ÒýÑÔ
cygwinͬʱ֧³Öwin32ºÍposix·ç¸ñµÄ·¾¶£¬Â·¾¶·Ö¸ô·û¿ÉÒÔÊÇÕýб¸ÜÒ²¿ÉÒÔÊÇ·´Ð±¸Ü¡£
»¹Ö§³ÖUNC·¾¶Ãû¡££¨ÔÚÍøÂçÖУ¬UNCÊÇÒ»ÖÖÈ·¶¨ÎļþλÖõķ½·¨£¬Ê¹ÓÃÕâÖÖ·½·¨Óû§¿É
ÒÔ²»¹ØÐÄ´æ´¢É豸µÄÎïÀíλÖ㬷½±ãÁËÓû§Ê¹Óá£ÔÚWindows²Ù×÷ϵͳ£¬Novell
NetwareºÍÆäËü²Ù×÷ϵͳÖУ¬¶¼ÒѾ­Ê¹ÓÃÁËÕâÖֹ淶ÒÔÈ¡´ú±¾µØÃüÃûϵͳ¡£ÔÚUNCÖУ¬ÎÒ
ÃDz»ÓùØÐÄÎļþÔÚʲôÅÌ£¨»ò¾í£©ÉÏ£¬²»ÓùØÐÄÕâ¸öÅÌ£¨»ò¾í£©ËùÔÚ·þÎñÆ÷ÔÚʲôµØ·½
¡£ÎÒÃÇÖ»ÒªÒÔÏÂÃæ¸ñʽ¾Í¿ÉÒÔ·ÃÎÊÎļþ£º
\·þÎñÆ÷Ãû¹²ÏíÃû·¾¶ÎļþÃû
¹²ÏíÃûÓÐʱҲ±»³ÆÎªÎļþËùÔÚ¾í»ò´æ´¢É豸µÄÂß¼­±êʶ£¬µ«Ê¹ÓÃËüµÄÄ¿µÄÊÇÈÃÓû§²»±Ø
¹ØÐÄÕâЩ¾í»ò´æ´¢É豸ËùÔÚµÄÎïÀíλÖᣣ©
·ûºÏposix±ê×¼µÄ²Ù×÷ϵͳ£¨Èçlinux£©Ã»ÓÐÅÌ·ûµÄ¸ÅÄî¡£ËùÓеľø¶Ô·¾¶¶¼ÒÔÒ»¸öб¸Ü
¿ªÊ¼£¬¶ø²»ÊÇÅÌ·û£¨Èçc:£©¡£ËùÓеÄÎļþϵͳ¶¼ÊÇÆäÖеÄ×ÓĿ¼¡£ÀýÈ磬Á½¸öÓ²ÅÌ£¬Æä
ÖÐ֮һΪ¸ù£¬ÁíÒ»¸ö¿ÉÄÜÊÇÔÚ/disk2·¾¶Ï¡£
ÒòΪÐí¶àunixϵͳÉϵijÌÐò¼Ù¶¨´æÔÚµ¥Ò»µÄposixÎļþϵͳ½á¹¹£¬ËùÒÔcygwinרÃÅά»¤ÁË
Ò»¸öÕë¶Ôwin32ÎļþϵͳµÄÄÚ²¿posixÊÓͼ£¬Ê¹ÕâЩ³ÌÐò¿ÉÒÔÔÚwindowsÏÂÕýÈ·ÔËÐС£ÔÚij
Щ±ØÒªµÄÇé¿öÏ£¬cygwin»áʹÓÃÕâÖÖÓ³ÉäÀ´½øÐÐwin32ºÍposix·¾¶Ö®¼äµÄת»»¡£
4.1.2 cygwin mount±í
cygwinÖеÄmount³ÌÐòÓÃÀ´°Ñwin32ÅÌ·ûºÍÍøÂç¹²Ïí·¾¶Ó³Éäµ½cygwinµÄÄÚ²¿posixĿ¼Ê÷
¡£ÕâÊÇÓëµäÐÍunix mount³ÌÐòÏàËÆµÄ¸ÅÄî¡£¶ÔÓÚÄÇЩ¶Ôunix²»ÊìϤ¶ø¾ßÓÐwindows±³¾°µÄ
µÄÈËÀ´Ëµ£¬mount³ÌÐòºÍÔçÆÚµÄdosÃüÁîjoin·Ç³£ÏàËÆ£¬¾ÍÊǰÑÒ»¸öÅÌ·û×÷ΪÆäËû·¾¶µÄ
×ÓĿ¼¡£
·¾¶Ó³ÉäÐÅÏ¢´æ·ÅÔÚµ±Ç°Óû§µÄcygwin mount±íÖУ¬Õâ¸ömount table ÓÖÔÚwindowsµÄ×¢
²á±íÖС£ÕâÑù£¬µ±¸ÃÓû§ÏÂÒ»´ÎµÇ¼½øÀ´Ê±£¬ÕâЩÐÅÏ¢ÓÖ´Ó×¢²á±íÖÐÈ¡³ö¡£mount ±í·Ö
ΪÁ½ÖÖ£¬³ýÁËÿ¸öÓû§Ìض¨µÄ±í£¬»¹ÓÐϵͳ·¶Î§µÄmount±í£¬Ã¿¸öcygwinÓû§µÄ°²×°±í¶¼
¼Ì³Ð×Ôϵͳ±í¡£ÏµÍ³±íÖ»ÄÜÓÉÓµÓкÏÊÊȨÏÞµÄÓû§£¨windows ntµÄ¹ÜÀíÔ±£©Ð޸ġ£
µ±Ç°Óû§µÄmount±í¿ÉÒÔÔÚ×¢²á±í"HKEY_CURRENT_USER/Software/Red Hat,
Inc./Cygwin/mounts v" Ï¿´µ½¡£ÏµÍ³±í
´æÔÚHKEY_LOCAL_MACHINEÏ¡£
posix¸ù·¾¶/ȱʡָÏòϵͳ·ÖÇø£¬µ«ÊÇ¿ÉÒÔʹÓÃmountÃüÁîÖØÐÂÖ¸Ïòµ½windowsÎļþϵͳ
ÖеÄÈκη¾¶¡£cygwin´Ówin32·¾¶Éú³Éposix·¾¶Ê±£¬×ÜÊÇʹÓÃmount±íÖÐ×µÄǰ׺¡£
ÀýÈçÈç¹ûc:±»Í¬Ê±°²×°ÔÚ/cºÍ/£¬cygwin½«°ÑC:/foo/barת»»³É/c/foo/bar.
Èç¹û²»¼ÓÈκβÎÊýµØµ÷ÓÃmountÃüÁ»á°ÑCygwinµ±Ç°°²×°µã¼¯ºÏÈ«²¿Áгö¡£ÔÚÏÂÃæµÄÀý
×ÓÖУ¬cÅÌÊÇPOSIX¸ù£¬¶ødÅ̱»Ó³Éäµ½/d¡£±¾ÀýÖУ¬¸ùÊÇÒ»¸öϵͳ·¶Î§µÄ°²×°µã£¬Ëü¶ÔËù
ÓÐÓû§¶¼ÊǿɼûµÄ£¬¶ø/d½ö¶Ôµ±Ç°Óû§¿É¼û¡£
c:> mount
f:cygwinin on /usr/bin type system (binmode)
f:cygwinlib on /usr/lib type system (binmode)
f:cygwin on / type system (binmode)
e:src on /usr/src type system (binmode)
c: on /cygdrive/c type user (binmode,noumount)
e: on /cygdrive/e type user (binmode,noumount)
»¹¿ÉÒÔʹÓÃmountÃüÁîÔö¼ÓÐµİ²×°µã£¬ÓÃumountɾ³ý°²×°µã¡£
µ±Cygwin²»Äܸù¾ÝÒÑÓеݲװµã°Ñij¸öwin32·¾¶×ª»¯Îªposix·¾¶Ê±£¬cygwin»á×Ô¶¯°Ñ
Ëüת»¯µ½Ò»¸ö´¦ÓÚȱʡposix·¾¶/cygdriveϵĵÄÒ»¸ö°²×°µã. ÀýÈ磬Èç¹ûCygwin ·ÃÎÊ
Z:foo£¬¶øZÅ̵±Ç°²»ÔÚ°²×°±íÄÚ£¬ÄÇôZ:½«±»×Ô¶¯×ª»¯³É/cygdrive/Z.
¿ÉÒÔ¸øÃ¿¸ö°²×°µã¸³ÓèÌØÊâµÄÊôÐÔ¡£×Ô¶¯°²×°µÄ·ÖÇøÏÔʾΪ¡°auto¡±°²×°¡£°²×°µã»¹¿É
ÒÔÑ¡ÔñÊÇ"textmode"»¹ÊÇ "binmode"£¬Õâ¸öÊôÐÔ¾ö¶¨ÁËÎı¾ÎļþºÍ¶þ½øÖÆÎļþÊÇ·ñ°´Í¬
ÑùµÄ·½Ê½´¦Àí¡£
4.1.3 ÆäËû·¾¶Ïà¹ØÐÅÏ¢
cygpath¹¤¾ßÌṩÁËÔÚshell½Å±¾ÖнøÐÐwin32-posix·¾¶¸ñʽת»»µÄÄÜÁ¦¡£
HOME, PATH,ºÍLD_LIBRARY_PATH»·¾³±äÁ¿»áÔÚcygwin½ø³ÌÆô¶¯Ê±×Ô¶¯±»´ÓWin32¸ñʽת»»
³ÉÁËPOSIX¸ñʽ(ÀýÈ磬Èç¹û´æÔÚ´Ó¸Ãwin32·¾¶µ½posix·¾¶µÄ°²×°£¬»á°Ñc:cygwinin
תΪ/bin)¡£








Ïà¹ØÖ÷Ìâ:
×îÐÂÈÈÌù
 ¡ñ Unix