Cygwin: Ներածություն. Windows-ում Cygwin Cygwin գործարկման ծրագրի տեղադրում և կարգավորում

Նրանք, ովքեր սիրում են աշխատել Linux կոնսոլի նման կոնսոլում, կարող են տեղադրել Cygwin, Unix նմանատիպ միջավայր, որտեղ հասանելի կլինեն Linux-ի ստանդարտ կոնսոլային ծրագրերը:

Cygwin-ի տեղադրումը բավականին հեշտ է: Տեղադրման գործընթացում ռեժիմներից մեկում կարող եք ստուգել ծրագրային փաթեթների կողքին գտնվող վանդակները, որոնք ցանկանում եք տեղադրել: Ընտրեցի նանո, git և այլ փաթեթներ։

Տեղադրվելուց հետո աշխատասեղանին հայտնվում է Cygwin դյուրանցում միջավայրը գործարկելու համար:

Գործարկեք Cygwin-ը ցանկացած թղթապանակից

Քանի որ ես օգտագործում եմ TotalCommander-ը, ինձ համար հարմար է ծրագրեր գործարկել անմիջապես ինձ անհրաժեշտ գրացուցակից: Եկեք ստեղծենք հարմար bat ֆայլ Cygwin-ը գործարկելու համար:

Անմիջապես, առանց երկար մտածելու, պատճենեք «Օբյեկտ» տողը այս դյուրանցման հատկությունից մեր ստեղծած նոր ֆայլում՝ C:\bin\bash.bat:
Ֆայլի ամբողջական բովանդակությունը կունենա հետևյալ տեսքը.

@start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -

Խնդրում ենք նկատի ունենալ, որ exe ֆայլի ուղին կարող է տարբեր լինել ձեզ համար: Տանը ես Cygwin-ը տեղադրեցի C:\cygwin գրացուցակում:
Բացի այդ, եթե C:\bin գրացուցակը դեռ չի ավելացվել PATH միջավայրի փոփոխականին, ապա դա պետք է արվի:

Cygwin ստարտափի կարգավորում

Cygwin-ի հետ որոշակի աշխատանքից հետո ես պարզեցի, որ թեև ես կարող եմ գործարկել Cygwin-ը ցանկացած գրացուցակից՝ պարզապես գրելով bash բառը, գործարկման միջավայրն ինքնին միշտ բացվում է ձեր օգտագործողի գլխավոր գրացուցակում: (Տնային գրացուցակը դրված է HOME միջավայրի փոփոխականում):

Սա այնքան էլ հարմար չի թվում, քանի որ եթե ես գրեմ bash հրաման, երբ գտնվում եմ D:\xyz գրացուցակում, ապա ես ակնկալում եմ, որ Cygwin-ը նույնպես կաշխատի D:\xyz գրացուցակում:

Եթե ​​ուշադրություն դարձնեք, կտեսնեք, որ աշխատասեղանի դյուրանցումը գործարկում է mintty.exe կոմունալը: Մենք անմիջապես հասկանում ենք, որ անհրաժեշտ է ծանոթանալ այս հրամանի մուտքային ատրիբուտների ցանկին:
Բացեք Cygwin և մուտքագրեք

մարդ անանուխ

Ձեռնարկը ուշադիր ուսումնասիրելուց հետո մենք ուրախանում ենք որոշ առանձնահատկություններով, որոնց մասին չէինք կասկածում, մասնավորապես՝ Cygwin գործարկման պատուհանի չափն ու կոորդինատները սահմանելու ունակությունը:

Բացեք մեր bat ֆայլը և փոխեք դրա բովանդակությունը հետևյալով.

@start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico --size 120.77 --position -4.0 -

Այս դեպքում ես սահմանում եմ ինձ անհրաժեշտ Cygwin պատուհանի չափը և այն դիրքը, որտեղ հայտնվել է պատուհանը (անհրաժեշտ է -4 բացասական արժեք, որպեսզի պատուհանի ծայրը լինի մոնիտորի սահմաններից դուրս, և այն տեսանելի չլինի):

Այժմ իմ պատուհանը միշտ կհայտնվի ինձ համար հարմար կոորդինատներում և չի շարժվի յուրաքանչյուր նոր գործարկման հետ +8 պիքսել x, y-ով:

Բայց ինչ վերաբերում է Cygwin գործարկման գրացուցակին:

Ի վերջո, տանից ցանկալի գրացուցակ տեղափոխելը սարսափելի անհարմար է:

Լուծումը գտնվել է! Cygwin-ը գործարկելու ժամանակ ընթացիկ գրացուցակը կարգավորելու համար մենք կարող ենք օգտագործել autorun սցենարը bash գործարկման միջավայրի համար:

Այսպիսով, մենք պետք է բարելավենք մեր bash.bat ֆայլը, որպեսզի այն ստեղծի autorun ֆայլ՝ bash վահանակի գործարկման համար:

Մենք սկսում ենք Cygwin-ը, մուտքագրում ենք «man bash» հրամանը և կարդում ենք փաստաթղթերը՝ փնտրելով այն, ինչ մեզ անհրաժեշտ է: Մենք գտնում ենք օգտատիրոջ հիմնական գրացուցակի ֆայլերի անունների մի քանի տարբերակներ, որոնք գործարկվում են bash-ում թույլտվության ժամանակ:
Ֆայլերը աշխատում են bash մուտքի վրա.

~/.bash_profile ~/.bash_login ~/.profile

Ֆայլը գործարկվում է, երբ «bash»-ը գործարկվում է առանց դրա մեջ թույլտվության

~/.bashrc

Կարևոր նշում autorun ֆայլը ~/.bash_login (կամ ինչ) պետք է գրված լինի UTF-8 կոդավորմամբ: Եվ չպետք է օգտագործի \r նիշերը: (Օրինակ, pwd հրամանն ինձ մոտ չէր աշխատում, երբ ֆայլը վերջում պարունակում էր \r նիշը, որը բնորոշ է Windows համակարգին)։

Ինչպես պարզվեց, CMD-ից UTF-8 տեքստ դուրս բերելն այնքան էլ հեշտ չէ, բայց հնարավոր է:
Ահա մի օրինակ, թե ինչպես է դա արվում.

Cmd /u /c chcp 65001 | արձագանքել որոշ տեքստի > «ֆայլի անուն»

Եկեք բարելավենք մեր C:\bin\bash.bat ֆայլը, այժմ այն ​​ունի հետևյալ բովանդակությունը.

@echo անջատված SET file=.bash_login cmd /u /c chcp 65001 | echo #!/bin/bash > «%HOME%\%file%» cmd /u /c chcp 65001 | echo cd "%CD:\=/%" >> "%HOME%\%file%" @start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico --size 120.77 -- դիրք -4.0 -

Գործարկումից հետո bash վահանակը կատարում է ~/.bash_login ֆայլի բովանդակությունը: Այս ֆայլը պետք է լինի UTF-8 ձևաչափով: Դա անելու համար մենք կանչում ենք CMD /u դրոշակով, որը մեզ ասում է, որ գործարկվող վահանակը պետք է արդյունքը վերադարձնի UTF-8 ձևաչափով:

Ինչպես տեսնում եք, մենք ուղարկում ենք երկու հրաման՝ բաժանված | . Այս նշանը թույլ է տալիս մեզ մեկ տողում գրել մեզ անհրաժեշտ երկու հրամանները։

Առաջին հրամանը chcp 65001 սահմանում է կոդավորումը UTF-8 գործարկվող վահանակում: (Որպեսզի պարզեք, թե որն է ընթացիկ կոդավորումը տեղադրված վահանակում, պարզապես զանգահարեք chcp հրամանը առանց պարամետրերի):

Երկրորդ թիմ echo text > «%HOME%\%file%»տպում է համապատասխան տեքստը «%HOME%\%file%» անունով ֆայլում, որտեղ փոփոխականների անունները ընդլայնվում են դեպի գլխավոր գրացուցակի ուղին և ֆայլի անունը .bash_login:

Նկատի ունեցեք CD փոփոխականի անսովոր հղումը, որը պարունակում է cmd վահանակի ընթացիկ գրացուցակը: Եթե ​​փոփոխականը սովորաբար ընդլայնվում է գրելով

Այնուհետև մեր դեպքում մենք օգտագործում ենք նշումը

%CD:\=/%

Սա թույլ է տալիս անմիջապես փոխարինել Windows-ի ոճի բոլոր շեղերը \ Linux-ի ոճի շեղերով/:

Մի մոռացեք տեղադրել բոլոր ֆայլերի և գրացուցակների անունները կրկնակի մեջբերումներ, այնպես որ դա թույլ կտա հարվածել բացատներ պարունակող դիրեկտորիաներին:

Շնորհիվ այն բանի, որ UTF-8 օգտագործվում է, այս շինարարությունը հաջողությամբ թույլ է տալիս բացել Cygwin-ը ռուսերեն անուններով գրացուցակներում:

Այսպիսով, ամեն անգամ, երբ դուք գործարկում եք bash հրամանը վահանակում, կգործարկվի C:\bin\bash.bat սկրիպտը, որը վերագրանցում է bash միջավայրի ավտոմատ բեռնման ֆայլը Cygwin-ում: Այժմ մենք կարող ենք հեշտությամբ և հարմար կերպով գործարկել bash կոնսոլը ցանկացած գրացուցակից և անմիջապես մտնել նույն գրացուցակը bash վահանակում:

Մենք ուրախանում ենք և վայելում արդյունքը:

Ամփոփելով

  1. Մենք տեղադրել ենք Cygwin-ը
  2. Ստեղծվել է ֆայլ C:\bin\bash.bat բովանդակությամբ @echo off SET file=.bash_login cmd /u /c chcp 65001 | echo #!/bin/bash > «%HOME%\%file%» cmd /u /c chcp 65001 | echo cd "%CD:\=/%" >> "%HOME%\%file%" @start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico --size 120.77 -- դիրք -4,0 - (Նշում. C:\bin\ ուղին պետք է լինի PATH միջավայրի փոփոխականում)
    Դրանով մենք հասել ենք.
    • գործարկել Cygwin տերմինալը էկրանի նշված դիրքում (-դիրքի պարամետր)
    • գործարկել որոշակի չափի պատուհան (պարամետր --size)
    • գործարկեք Cygwin-ը ցանկացած գրացուցակից՝ վահանակում մուտքագրելով bash բառը
    • միևնույն ժամանակ, գործող Cygwin-ը գտնվում է նույն գրացուցակում, որտեղից այն գործարկվել է:

cygwin.bat սցենարը կատարվում է հրամանի տող DOS-ը, տեղադրում է Cygwin միջավայրը և սկսում է bash թարգմանիչը Windows-ի տակ: Cygwin-ը լավ է դնում Unix միջավայրի փոփոխականները՝ Windows-ի միջավայրի փոփոխականներին համապատասխանելու համար: Օրինակ, իմ մեքենայի վրա ես մուտք գործեցի Windows որպես օգտվող bjohnson: Երբ ես սկսում եմ Cygwin-ը, այն լռելյայնորեն բացվում է որպես օգտվող bjohnson:

Ստորև բերված է Cygwin-ում մի քանի ստանդարտ Unix հրամաններով պատուհան:


Կախված ձեր տեղադրած փաթեթներից՝ հեշտությամբ կարող եք գործարկել համապատասխան Unix կոմունալ ծառայությունները: Եթե ​​դուք Unix-ի օգտատեր եք, անկասկած կցանկանաք, որ Windows-ն ունենար ps հրաման՝ առանց Task Manager-ի օգտագործման ընթացիկ գործընթացները դիտելու համար: Եթե ​​դուք օգտագործում եք -aW դրոշը, դուք կկարողանաք տեսնել windows գործընթացները, ինչպես ցանկացած ընթացիկ գործընթացները Cygwin. Ստորև բերված է Windows-ի գործընթացների ցանկը, որոնք հասանելի են Cygwin հրամանի գործարկման արդյունքում (ps -aW | պակաս):

PID PPID PGID WINPID TTY UID STIME ՀՐԱՄԱՆ 3193213 0 0 4291774083? 0 Դեկ 31 C:\WINDOWS\SYSTEM\KERNEL32.DLL 63753 0 0 4294903543 ? 0 Դեկ 31 C:\WINDOWS\SYSTEM\MSGSRV32.EXE 60569 0 0 4294906727 ? 0 Դեկ 31 C:\WINDOWS\SYSTEM\MPREXE.EXE 77349 0 0 4294889947 ? 0 Դեկ 31 C:\WINDOWS\SYSTEM\RPCSS.EXE 196093 0 0 4294771203 ? 0 Dec 31 C:\WINDOWS\SYSTEM\mmtask.tsk 191237 0 0 4294776059 ? 0 Դեկ 31 C:\WINDOWS\EXPLORER.EXE 237709 0 0 4294729587 ? 0 Դեկ 31 C:\WINDOWS\TASKMON.EXE 230713 0 0 4294736583 ? 0 Դեկ 31 C:\WINDOWS\SYSTEM\SYSTRAY.EXE 217533 0 0 4294749763 ? 0 Դեկ 31 C:\PROGRAMFILES\DIRECTCD\DIRECTCD.EXE 5.1.

Տեղեկատուի կառուցվածքը և ֆայլի թույլտվությունները

Cygwin-ը տեղադրում է ձեր տեղական կրիչները /cygdrive գրացուցակի տակ: Սա ներառում է բաժիններ կոշտ սկավառակ, անգործունյա կրիչներ, CD-ROM ընթերցիչներ, ZIP ընթերցիչներ: Եկեք գործարկենք df հրամանը իմ մեքենայի վրա: Ստանում ենք ստորև ներկայացվածի նման կառուցվածք։

[էլփոստը պաշտպանված է]$ df Ֆայլային համակարգ 1k-բլոկներ Օգտագործված Մատչելի Օգտագործում% Տեղադրված է C:\cygwin\bin 2096832 0 2096832 0% /usr/bin C:\cygwin\lib 2096832 0 2096832 0% /usr/lib 2096832 0 2096832 0% /usr/lib 2096832 0% /usr/lib 2096832 %/c՝ 2096832 0 2096832 0% /cygdrive/c d: 670496 670496 0 100% /cygdrive/d

Cygwin-ը տեղադրելուց հետո տեղադրողին ասացի, որ ֆայլերը պահի C:\cygwin\ գրացուցակում: Cygwin-ն օգտագործել է այս գրացուցակը որպես արմատային կետ ֆայլային համակարգի ամրացումներ. Այն տեղադրեց C:\cygwin\ bin-ը /usr/bin-ին և C:\cygwin\lib-ին /usr/lib: /usr/bin, /bin և /usr/local/bin դիրեկտորիաները թարմացվել են Cygwin (բայց ոչ Windows) միջավայրի փոփոխականներով: Windows միջավայրից դիրեկտորիաները ներմուծվել են Cygwin միջավայր՝ դրանց մուտք գործելու համար:

Cygwin-ը նաև օգտագործում է խելամիտ թույլտվությունների համակարգ Unix ֆայլերի համար: Բայց ի՞նչ կարող է դա նշանակել ձեր բոլոր Windows ֆայլերի համար: Ո՞վ է ֆայլերի սեփականատերը և որո՞նք են կանխադրված թույլտվությունները: Եկեք գործարկենք ls -al հրամանը Windows-ի մի քանի ֆայլերի վրա՝ պատասխանը ստանալու համար:

[էլփոստը պաշտպանված է]/cygdrive/c/cyginstall $ ls -al ընդհանուր 273 drwxr-xr-x 1 bjohnson անհայտ 0 Մարտ 13 17:48: drwxr-xr-x 1 bjohnson անհայտ 0 Dec 31 1969 .. drwxr-xr-x 1 bjohnson անհայտ 0 Mar 13 18:06 1 bjohnson անհայտ 218112 Mar 13 17:48 setup.exe -rw-r--r-- bjohnson անհայտ 60607 Մարտ 13 17:54 setup.ini

Cygwin-ը կփորձի Windows-ից տեղեկություններ ստանալ ֆայլի տերերի (օգտատերերի և խմբի) մասին: Մինչ ես օգտագործում էի մեքենան տակից Windows-ի կառավարում 98 մեկ օգտվողով, բոլոր ֆայլերը պատկանում էին ինձ (bjohnson) «անհայտ» որպես խումբ: Սա սահմանեց բոլոր Windows դիրեկտորիաների և գործադիրների թույլտվությունները 755-ի (կարդացեք և գործարկեք բոլորի համար, գրեք միայն սեփականատիրոջ համար) և սահմանեք բոլորին Windows ֆայլերհեղինակություն 644 (կարդալ բոլորի համար, գրել միայն սեփականատիրոջ համար): Windows ֆայլերի համար chmod հրամանը անտեսվում է:

Միջպլատֆորմային հավելվածների մշակումը հեշտ գործ չէ: Մասնավորապես, հեշտ չէ Windows-ի շնորհիվ, որտեղ ամեն ինչ մարդկանց նման չէ։ Այստեղ դուք չունեք ոչ նորմալ տերմինալ, ոչ նորմալ կոնսոլային կոմունալ ծառայություններ, ընդհանրապես ոչինչ: Կրկին բախվելով այս խնդրին, ես որոշեցի կրկին փորձել Cygwin-ը: Եվ գիտեք, պարզվում է, որ այն իսկապես Windows-ից ինչ-որ բան է ստեղծում, որը գրեթե կարող եք օգտագործել:

Դուք կարող եք ներբեռնել Cygwin տեղադրիչը այստեղից: Փաստորեն, սա ոչ այնքան տեղադրող է, որքան փաթեթի կառավարիչ, որը գործարկման ժամանակ ուղղակիորեն հարցնում է, թե ինչ փաթեթներ կցանկանայիք տեղադրել: Տղե՛րք։ Փաթեթի կառավարիչ! Windows-ի տակ!Տեղադրողը ստեղծում է քեշ այն գրացուցակում, որտեղից այն կգործարկվի: Հետևաբար, նախքան սկսելը, ավելի լավ է աշխատասեղանի վրա ստեղծել որոշ հատուկ թղթապանակ և տեղադրել տեղադրիչը դրա մեջ:

Ինչ փաթեթներ պետք է տեղադրեմ.

  • բացսշ- կայմ գլխիկ;
  • ինետուտիլներ, bind-utils, պինգ, նկև nc6- կայմ գլխիկ;
  • wget, գանգուր- կայմ գլխիկ;
  • պիթոնև/կամ python3— Կարծում եմ՝ այդ մասգլուխը;
  • վիմ, գվիմ- փոքր ֆայլեր խմբագրելու համար դա ավելորդ չի լինի.
  • diffutils, pwgen, unzip, rzync- թող լինեն ամեն դեպքում;
  • gccև/կամ զրնգալ, cmake, gdb- անհրաժեշտության դեպքում;
  • էկրան, tmux, mc- սիրահարների համար;
  • git- տակ շատ մեծհարց, տես ստորև;

Նշում! Cygwin-ում pip տեղադրելու համար ստուգեք python-setuptools և/կամ python3-setuptools փաթեթները: Տերմինալում տեղադրվելուց հետո ասեք.

easy_install-2.7 pip

easy_install-3.4 pip

... կախված նրանից, թե Python-ի որ տարբերակը կամ տարբերակներն եք տեղադրել:

Այսպիսով, Cygwin-ը տեղադրելուց հետո կարող եք տերմինալ բացել.

Տղե՛րք։ Սովորական տերմինալը, որը չափափոխում է, թույլ է տալիս պատճենել և տեղադրել տեքստը, և վերջ: Windows-ի տակ!Բոլոր հայտնի և ծանոթ հրամաններով id, ls, pwd, cat, ssh, scp և այլն: Մարդկային միջավայրով - .bashrc, ~/.ssh/config և այլն: Բացի այդ, ի տարբերություն PowerShell կոչվող ամոթալի արհեստի, Cygwin-ը չի քաշում .NET Framework-ը դրա հետ միասին: Մենք նույնիսկ կարող ենք բացել մի քանի տերմինալներ և անցնել դրանց միջև Ctr + Tab-ով: Դա գրեթե նման է taba! Իհարկե, լավ հին Alt + Tab-ը նույնպես աշխատում է:

Ես խորհուրդ չեմ տվել տեղադրել Git-ը վերևում, և ահա թե ինչու. Փաստն այն է, որ Cygwin-ում այն ​​նկատելիորեն դանդաղում է։ Խորհուրդ է տրվում գործարկել հրամանները.

git config --global core.preloadindex true
git config --global core.fscache true
git config --global gc.auto 256

Բայց սա, ցավոք, ամբողջությամբ չի լուծում խնդիրը։ Այսպիսով, մեծ նախագծի վրա git status հրամանը կարող է իրականացվել 20 վայրկյան: Linux-ում, ճիշտ նույն պահոցում, հրամանն աշխատում է ակնթարթորեն:

Ինչ է CYGWIN-ըՔրիս Կասպերսկու «Ինչպես ստեղծել Unix-ը Windows-ից» հոդվածից հետո CG #3-ում թվագրված 2001 թվականի հունվարի 23-ը, ես ցանկանում էի Windows-ի օգտատերերին մի փոքր ավելին պատմել, թե ինչ է Cygwin-ը: Ես այն օգտագործում եմ երկար ժամանակ և այլևս չեմ կարող արդյունավետ աշխատել Windows-ում առանց Cygwin-ի տեղադրման։

Cygwin բառը կազմված է երկու բաղադրիչից՝ Cygnus ընկերության անվանումն է, իսկ Windows-ը, բայց ասել, որ Cygwin-ում ամեն ինչ գրել են Cygnus-ի տղաները, սխալ կլինի: Cygwin-ը Gnu կոմունալ ծրագրերի Windows նավահանգիստն է, իսկ Gnu-ն (www.gnu.org) Free-ի նախագիծ է: Ծրագրային ապահովում(Free Software Foundation, կամ պարզապես FSF), որի նպատակն է ստեղծել ոչ առևտրային Unix համակարգ, որը չի պատկանում կոնկրետ որևէ մեկին և զերծ է լիցենզիաներից, որոնք սահմանափակում են ծրագրակազմը տարածելու և փոփոխելու ազատությունը: Այս նախագծի շրջանակներում գրեթե բոլոր ստանդարտ UNIX կոմունալ ծառայությունները վերաշարադրվեցին: FSF-ի երեք ամենակարևոր ներդրումներն են gcc (Gnu C Կազմող կամ Gnu Կազմողի հավաքածու), Bash (Bourne Again Shell) և Emacs: Առանց gcc-ի, Linux-ը չէր լինի, և Bash-ը շատ ժամանակակից Unix համակարգերի ստանդարտ կեղևն է: Փորձառու մարդիկ ասում են, որ առաջին բանը, որ անում են sysadmin-ները կոմերցիոն Unix-ները տեղադրելուց հետո, դա Gnu կոմունալ ծրագրերի տեղադրումն է: Սկզբունքորեն, GNU-ն և FSF-ն ինքնին հսկայական թեմա են և արժանի են առանձին մանրամասն հոդվածի:

Gnu կոմունալ ծառայությունների ամբողջ փաթեթը փոքր (սովորաբար) ծրագրերի մի շարք է, որոնք ծածկում են այն առաջադրանքների մեծ մասը, որոնց առջևում է Unix համակարգի օգտագործողը (և ոչ միայն Unix) ամեն օր, յուրաքանչյուր այդպիսի ծրագիր կատարում է մեկ առաջադրանք և լավ է անում: Այնուհետև այս ծրագրերը կարող են համակցվել՝ լուծելու տարբեր խնդիրներ:

Gnu-ն այլ ոչ Unix հարթակներ տեղափոխելու փորձեր են արվել մեկ անգամ չէ, որ, ի դեպ, վկայում է նրանց ժողովրդականության մասին։

Հարկ է նշել DOS - DJGPP-ով կոմունալ ծառայությունների տեղափոխման նախագիծը: Գնացեք http://www.delorie.com/djgpp/, իսկապես հետաքրքիր է։

Cygnus-ը յուրաքանչյուր օգտակար ծրագիր առանձին չէր հավաքում, ամեն անգամ տանջում էր նույն խնդիրները լուծելու համար, փոխարենը գրվեց մի տեսակ «փական» GNU կոմունալ ծրագրերի և միջև։ օպերացիոն համակարգ. Այս շեմը - cygwin1.dll (1 - տարբերակի համարը) - ապահովում է նմանակում համակարգային զանգեր UNIX-ը, որը թույլ է տալիս Unix-ի ծրագրերը կազմվել և գործարկվել քիչ կամ առանց փոփոխության աղբյուր կոդը. Հիմնականում այս dll-ն ինքնին Cygwin-ն է, իսկ մնացած ամեն ինչը GNU ծրագրային փաթեթներ են, որոնք կազմվել են Cygwin-ի հետ աշխատելու համար:

gcc-ի և գրադարանների առկայությունը թույլ է տալիս առավելագույնը փոխանցել Windows-ի տակ տարբեր հավելվածներև Cygwin-ը դարձնում է ամբողջական հարթակ. երբեմն կարելի է գտնել «Cygwin հարթակ» արտահայտությունը։ Cygwin-ի առաջին բետա տարբերակներից ի վեր, տարբեր մարդիկ Cygwin-ի տակ հավաքում էին այն, ինչ իրենց պակասում էր Windows-ի ներքո, Cygwin-ի ստանդարտ բաշխումը աստիճանաբար աճել է, այդ թվում՝ ինքնուրույն պատրաստված այս հավաքածուների միջոցով: Օրինակ՝ ընթացքում բետա տարբերակները 20 Ես պետք է ներբեռնեի vim խմբագիրն առանձին, և այժմ այն ​​տեղադրված է ամբողջ հավաքածուի հետ միասին:

Ինչպես տեղադրել այն ամենը

Cygnus-ը գրել է փաթեթների կառավարման հարմար ծրագիր, որը մի փոքր հիշեցնում է ոմանց նմանատիպ ծրագրեր Linux OS բաշխումներից: Առաջին քայլը այն Cygnus կայքից ներբեռնելն է http://sources.redhat.com/cygwin/setup.exe: Գործարկելով այն՝ դուք կկարողանաք ներբեռնել փաթեթների ստանդարտ հավաքածու բազմաթիվ հայելիներից մեկից և կարող եք ընտրել դա անել ընտրովի՝ բաց թողնելով առանձին փաթեթները:

Ապագայի համար՝ ավելի ուշ գործարկելով այս ծրագիրը նույն գրացուցակից, դուք կկարողանաք տեսնել, թե ինչ նոր փաթեթներ են հայտնվել կամ առկա փաթեթների նոր տարբերակները:

Նույն ծրագիրը կտեղադրի Cygwin-ը ձեզ համար՝ կրկին առաջարկելով ինքներդ որոշել, թե ինչ տեղադրել, ինչը՝ ոչ։ Տեղադրումը ձեզ համար կստեղծի դիրեկտորիաներ, որոնք սովորական են Unix ֆայլերի հիերարխիայի համար՝ bin, usr, sbin և այլն, այնպես որ հարմար է դրանք բոլորը տեղադրել մեկ գրացուցակում, որպեսզի չշփոթվեն ձեր Windows թղթապանակների հետ:

Եվ ինչպես օգտագործել այդ ամենը

Երբ գործարկեք Cygwin-ը, կտեսնեք վահանակի պատուհան, որը նման է սովորական Windows վահանակին, command.com-ը Win9x-ում կամ cmd.exe-ն NT-ում: Բայց ոչ! Դուք Windows-ում գործարկել եք Unix հրամանների թարգմանիչների փառահեղ ժառանգը, որը command.com-ը փորձել է ընդօրինակել իր միջոցով: BAT ֆայլեր. Բաշը և նրա ավագ եղբայրը շը սոսինձն են, որոնք կապում են միմյանց Unix համակարգ, այն իրավամբ կարելի է անվանել ծրագրավորման լեզու, այսինքն՝ կարելի է գրել դրա վրա։

Մի քանիսը հիմնական հրամաններև նրանց գործընկերները Windows-ում

ls = dir - դիտել գրացուցակի բովանդակությունը;
cd = chdir - գնալ այլ գրացուցակ;
cp = պատճեն - պատճենեք ֆայլը;
mv = mv - տեղափոխել/վերանվանել ֆայլը;
rm = del - ջնջել ֆայլը;
mkdir = mkdir - ստեղծել գրացուցակ;
pwd - ցուցադրել ընթացիկ գրացուցակը:

Հիշեք՝ մեծ «A»-ն այլևս հավասար չէ փոքր «a»-ին, \ նիշն այժմ պետք է փոխարինվի /-ով: Cygwin-ում cd / հրամանը ձեզ կտանի այն գրացուցակը, որտեղ գտնվում են bin, usr և այլն: Unix-ում վերևում ոչինչ չկա /, բայց Cygwin-ում Windows-ի միջնորմներով ճանապարհորդելու համար կարող եք օգտագործել cd //c/ հրամանը (cd //d/MyDir և այլն):

Bash-ի ամենահարմար գործառույթներից մեկը ավտոմատ լրացումն է: Եկեք ստեղծենք մի քանի ֆայլ cat հրամանով.

cat > first_file ENTER

մուտքագրեք ինչ-որ բան, այնուհետև ctrl-c,

և նույնը մեկ այլ ֆայլի համար.

cat > second_file ENTER:

Համոզվեք, որ ֆայլերը կան.

Այժմ մուտքագրեք ցանկացած հրաման, ինչպիսին ls-ն է, որին հաջորդում է առաջին ֆայլի առաջին տառը: Սեղմեք TAB: Bash-ը ինքն իրեն կավելացնի ֆայլի անունը: Եթե ​​ֆայլերը սկսվում են նույն կերպ, ինչպիսիք են file_one-ը և file_two, Bash-ը միայն կավելացնի file_-ը և կսպասի, որ դուք մուտքագրեք ևս մեկ տառ՝ այլաբանելու համար:

Որոշ կոմունալ ծառայություններից օգտվելու մի քանի օրինակ:

Ենթադրենք, դուք ունեք տեքստային ֆայլ in.txt. Դուք կարող եք հաշվել դրա բառերի քանակը հետևյալ կերպ.

Տողերի քանակը:

Գտեք Լարի նիշերի հաջորդականությունը պարունակող տողեր.

grep «Larry» in.txt

Տողերը բաժանեք բառերի, բացատները փոխարինելով տողի վերջի նիշերով.

cat.txt | gawk "gsub("+","\n")"

«gsub(" +","\n")" gawk հրամանը նշանակում է փոխարինել մեկ կամ մի քանի բացատներ ("+") տողի վերջի նիշով ("\n"):

Արեք նույնը, բայց հարմար դիտման հնարավորությամբ (PageUp, PageDown, ելք - q)

cat.txt | gawk "gsub("+","\n")" | ավելի քիչ

Տեսակավորել տողերը (բառերը).

cat.txt | gawk "gsub("+","\n")" | տեսակավորել | ավելի քիչ

Հեռացնել կրկնօրինակ տողերը (բառերը).

cat.txt | gawk "gsub("+","\n")" | տեսակավորել | uniq | ավելի քիչ

cat.txt | gawk "gsub("+","\n")" | տեսակավորել | uniq | wc -l

Հեռացրեք միանման տողերը (բառերը)՝ հաշվելով դրանց թիվը.

cat.txt | gawk "gsub("+","\n")" | տեսակավորել | uniq --հաշվել | ավելի քիչ

Նորից տեսակավորել՝ այդպիսով ստանալով տեքստի հաճախականության բառարանը.

cat.txt | gawk "gsub("+","\n")" | տեսակավորել | uniq --հաշվել | տեսակ-ր | ավելի քիչ

Նույնը, արդյունքների թողարկմամբ տեքստային ֆայլ.

cat.txt | gawk "gsub("+","\n")" | տեսակավորել | uniq --հաշվել | տեսակավորել -r > out.txt

Նույնը, միջանկյալ արդյունքներով, որոնք պահպանված են intermediate.txt ֆայլում.

cat.txt | gawk "gsub("+","\n")" | tee-intermediate.txt | տեսակավորել | uniq --հաշվել | տեսակ-ր | ավելի քիչ

Այժմ, օգտագործելով Bash-ի հզորությունը, կարող եք կրկնել այս հրամանը բազմաթիվ ֆայլերի համար: Մուտքագրեք սկրիպտը անմիջապես վահանակում՝ անցնելով նոր տող, ինչպես տպագրված է հոդվածում. Bash-ը կհասկանա, որ հրամանն ավարտված չէ և հուշումը փոխելու է «>»-ի.

*.txt ֆայլի համար; անել

կատու $ֆայլ | gawk "gsub("+","\n")" | տեսակավորել | uniq --հաշվել | տեսակավորել -r > $file.out

Սրա նման. Պարզ առաջադրանքներ- պարզ լուծումներ.

Պարզելու համար, թե ինչպես է աշխատում կոնկրետ հրամանը, կարող եք այն գործարկել --help ստեղնով կամ օգտագործել man (ձեռնարկ) հրամանը՝ man awk, man grep: Դուք կարող եք դուրս գալ տղամարդուց q-ով:

ԱՅԼ ԻՆՉ ԿԱ CYGWIN-ում

Կազմող

Պարզ (մարդիկ ասում են՝ 1 օր թրեյնինգ) ծրագրավորման լեզու բառերի մշակման համար, Perl-ի նախնիներից մեկը։

հոսքի խմբագիր

C վերլուծիչ գեներատոր

C վերլուծիչ գեներատոր

Ծրագրավորման լեզու. Փաստորեն, այն ուղղակի կապ չունի Gnu կոմունալ ծառայությունների հետ, որոշ ժամանակ այն աջակցվում էր Sun կորպորացիայի կողմից: Դուք կարող եք cd /usr/share/tk8.0/demos և գործարկել widget -./widget-ը: Դուք կտեսնեք Tk-ի ցուցադրություն, Tcl ընդլայնում GUI-ներ ստեղծելու համար:

Արխիվացնող

Հզոր արխիվատոր

Ֆայլերի համեմատման ծրագիր

Եվ շատ ավելին: Պարզապես գնացեք աղբարկղ և տեսեք, թե ինչ ունեք այնտեղ: Փաթեթների ավանդները կարելի է գտնել http://www.hirmke.de/software/develop/gnuwin32/cygwin/porters/Hirmke_Michael/GNUWin32-contents.html կայքում: Թեմայի վերաբերյալ բազմաթիվ տեղեկություններ և հղումներ կան նաև Cygnus կայքում http://sources.redhat.com/cygwin/:

Ինչպես կարգավորել CYGWIN-ը

Նախ, դուք պետք չէ գործարկել Bash-ը, եթե վախենում եք վահանակից: Դուք կարող եք օգտագործել բոլոր ծրագրերը Far-ից, Windows Commander-ից և այլն, պարզապես անհրաժեշտ է սահմանել երթուղիները դեպի bin տեղեկատու: Windows 9x-ում դա արվում է autoexec.bat ֆայլում, NT-ում My Computer / Properties / Environment-ում դուք պետք է ավելացնեք դեպի bin ուղին PATH միջավայրի փոփոխականին:

Ավելին հարմար շահագործում Bash-ում խորհուրդ եմ տալիս անել հետևյալը. եթե ձեր Cygwin դիրեկտորիաները գտնվում են c:\cygwin-ում, ստեղծեք c:\cygwin\root գրացուցակը (mkdir /root) և տող ավելացրեք cygwin.bat ֆայլին, որը գտնվում է. c:\cygwin:

HOME=d:\cygwin\root

Արմատային գրացուցակում դուք պետք է ստեղծեք 2 ֆայլ, որոնք սկսվում են կետով՝ .inputrc և .bashrc: Երկու ֆայլերն էլ գործարկվում են Bash-ի կողմից գործարկման ժամանակ, .inputrc-ը պատասխանատու է բոլոր ստեղների ճիշտ աշխատանքի ապահովման համար, և .bashrc պարունակում է տարբեր տեղեկություններ. Որպես օրինակ, ես կտամ իմ .bashrc:

արտահանել PS1="\w >"

արտահանել PATH = ".:$PATH"

ls = "ls --color"

այլանուն untar = "tar xvf"

echo Բարի գալուստ CygWin:

Առաջին տողում նշվում է Bash ուղին: Այսպես է Unix-ը վերաբերվում բոլոր թարգմանիչներին: Օրինակ, եթե դուք ունեք Perl script hello.pl և perl-ն ինքնին /usr/bin-ում, ապա առաջին տողում կարող եք գրել.

և գործարկել այսպես.

Այսպիսով, հնարավոր է գործարկել ծրագրերը առանց անհանգստանալու, թե ինչում են դրանք գրված։

PS1-ը փոփոխական է, որը պահում է Bash հուշումը, աշխատանքի հուշումը, ինչպես նաև կոչվում է: \w-ն ընթացիկ գրացուցակն է:

PATH-ի այս լրացումից հետո դուք կարող եք դա անել այնպես, ինչպես սովոր են Windows-ի օգտատերերը՝

Հաջորդը, ես օգտագործում եմ հոմանիշներ կամ «s» կեղծանուններ: Օրինակ, ls հրամանը լռելյայն չի գունավորում իր ելքը՝ կախված նրանից, թե ինչ ֆայլեր են, դրա համար անհրաժեշտ է այն գործարկել --color ստեղնով: Սա անհարմար է: ls="ls հրաման --color" կեղծանունը ես լուծում եմ այս խնդիրը: Այժմ ls նշանակում է ls --color: Պետք չէ օգտագործել նույն հրամանի անունը, կարող եք անել ll="ls --color" - և օգտագործել new ll հրաման: Նման բան ես անում եմ untar հրամանը ստեղծելիս՝ tar արխիվները բացելու համար, ամեն անգամ tar xvf մուտքագրելու փոխարեն: uniq --հաշվել | տեսակ-ռ».

Իրականում աշխատավայրի կազմակերպման շրջանակն անսահման է, իսկ իմ օրինակները պարզունակ են ու պարզ։ Կան ավելի շատ գործառույթներ, ինտերակտիվ հրամաններ .bashrc-ում, գործառույթներ, որոնք աշխատում են հուշումից...

Հուսով եմ, որ դուք ցանկություն ունեք փորձարկել Cygwin-ի հետ: Ուղարկեք ձեր մեկնաբանությունները

Cygwin (Cygwin) Unix ծրագրերի և գրադարանների մի շարք է, որը կազմվել է Windows OS-ի ներքո և տեղակայված է. ֆայլային համակարգնույն կերպ, ինչպես իրական Յունիքսում: Դրա շնորհիվ մենք ստանում ենք Unix միջավայրի ամբողջական համարժեքը bash-ից մինչև gcc կոմպիլյատորներ, որոնք կարող են նախագծեր կառուցել Windows-ում կատարման համար՝ առանց ելակետային կոդի մեծ քանակի տեղափոխման (բավականին մեծ թվով միջպլատֆորմային հավելվածներ օգտագործում են այս մոտեցումը, քանի որ այն ամենապարզն է և ամենաարագը):

Cygwin-ի տեղադրում

Դուք կարող եք ներբեռնել Cygwin-ը 32x կամ 64x բիթ տարբերակով կայքում https://cygwin.com/install.html. Տեղադրումը շատ պարզ է. կարող եք պարզապես սեղմել «Հաջորդ» «Ընտրեք փաթեթներ» պատուհանի վրա: Այստեղ ձեր առջև կբացվի փաթեթների տվյալների բազա, և դրանցից մի քանիսն արդեն կնշվեն կանգառի համար (հիմնական), մյուսները կարող եք նշել ինքներդ: Փաթեթը տեղադրելու համար նշելու համար անհրաժեշտ է «Որոնում» դաշտում մուտքագրել դրա անունը, ապա ընդլայնել կատեգորիաները և գտնել այս փաթեթը։ Այնուհետեւ սեղմեք «Skip», արդյունքում Skip-ի փոխարեն պետք է հայտնվի այն տարբերակը, որը կտեղադրվի։ Ստուգեք փաթեթը հետագա աշխատանքի համար wget, մնացածն առայժմ կարելի է անձեռնմխելի թողնել։ Փաթեթները կարող են տեղադրվել կամ հեռացվել ցանկացած պահի, պարզապես նորից գործարկելով տեղադրիչը, բայց դա այնքան էլ հարմար չէ, ուստի հոդվածում ավելի ուշ ես ձեզ կասեմ, թե ինչպես տեղադրել փաթեթներ հրամանի տողից (դրա համար մեզ անհրաժեշտ է wget):

Լռելյայնորեն, cygwin-ն աշխատում է Windows-ի ստանդարտ տերմինալում, որն այնքան էլ հարմար չէ:

Տերմինալային վահանակ

Փաթեթների տեղադրում python-ի համար pip-ով

Python-ում փաթեթները հաճախ տեղադրվում են pip-ի միջոցով, որը չի գտնվել sigwin պահեստներում:

Հետևաբար, այն պետք է տեղադրվի առանձին.

MAN էջեր libc ֆունկցիաների համար

Cygwin-ն արդեն պարունակում է man էջեր ստանդարտ հրամանների համար, բայց man for libc ֆունկցիաները կարող են առանձին տեղադրվել.

Ի դեպ, Cygwin-ը որոշ չափով կապված է ներկառուցված համակարգերի հետ, քանի որ օգտագործում է Նյուլիբ libc ներդրումը, որը հայտնի է, որ լայնորեն կիրառվում է տարբեր ARM գործիքների շղթաներում:

vim in cygwin

Տեղադրում:

Կազմաձևումը կատարվում է ձեր տնային գրացուցակի .vimrc ֆայլում.

Ես օգտագործում եմ այս կարգավորումները.

set backspace=indent,eol,start

Միացնել շարահյուսությունը

սահմանել shiftwidth=4

սահմանել tabstop=8

սահմանել softtabstop=4

սահմանել ընդարձակման ներդիրը

սահմանված համարը

set show cmd

սահմանել սլաքի գիծը

filetype indent plugin-ը միացված է

սահմանել վայրի մենյու

set lazyredraw

set show match

սահմանել incsearch

Օգտագործելով «հայրենի» Cygwin տերմինալը

Ստանդարտ Cygwin տեղադրիչը տրամադրում է իր սեփական տերմինալը (գործարկվել է Cygwin տերմինալի պատկերակի միջոցով): Համեմատած Console-ի հետ՝ ֆունկցիոնալությամբ մի փոքր զիջում է (օրինակ՝ ներդիր չունի), բայց նաև լավ ֆունկցիոնալություն ունի, ժեստերը քիչ են։ Գեղեցիկ առանձնահատկություններից մեկը տերմինալում 256-բիթանոց գույների աջակցությունն է.

Սա թույլ է տալիս օգտագործել հարմար շարահյուսական ընդգծող թեմաներ vim-ի համար, ինչպիսիք են badwolf-ը.

Այն ակտիվացնելու համար ավելացրեք .vimrc-ին.

Այն այսպիսի տեսք կունենա.

Ինչպե՞ս պահպանել հրամանների պատմությունը bash cygwin-ում:

.bashrc ֆայլում դուք պետք է գտնեք ավելացնել.

Առաջինը ցույց է տալիս պատմության ֆայլի չափը (10 հազար հրաման), երկրորդը ներառում է կրկնօրինակ հրամանների հեռացում (եթե մուտքագրված հրամանն արդեն պատմության մեջ է, ապա հինը ջնջվում է՝ տարածք խնայելու համար), իսկ երրորդը ներառում է bash պատմության պահպանում։ .

Ինչպե՞ս նավարկել Cygwin-ում Windows-ի ոճով ուղի:

Դուք կարող եք օգտագործել cygpath կոմունալ ծրագիրը՝ հաղթանակի նման ուղին unix-ի ոճով ուղու վերածելու համար:

Սա ճանապարհը կվերածի «/cygdrive/d/projects/some/src»-ի և այն կփոխանցի որպես արգումենտ cd-ին: