Cygwini terminali käsud. Mis on Cygwin. Natiivse Cygwini terminali kasutamine

Selleks, et kirjutada avaldusi Unix seda pole vaja installida (sõna all Unix Ma mõtlen kõik läbi *nix süsteemid). See väide kõlab üsna paradoksaalselt, kuid see on tõsi ja selles artiklis püüan teid selles veenda.

Kui te pole tõeline Unixi guru, siis selleks, et kirjutada selle OS-i jaoks paar rakendust või kompileerida olemasolevaid programme te ei pea üldse installima Unix. Nendel eesmärkidel sobib emulaator suurepäraselt. Unix. Seal on palju suurepäraseid programme, mis täidavad selle ülesande suurepäraselt, näiteks: UWin, MinGW, Cygwin jne.

Koostamiseks lihtne programmid teevad Ja MinGW, kuid keerukamatele see ei sobi. Uwin on täiustatud emulaator, kuid selle funktsionaalsus on oluliselt halvem kui teisel populaarsemal emulaatoril Cygwin.

Cygwin- see on väga funktsionaalne, tasuta emulaator Unix. Seda levitatakse ühe failina ( setup.exe), ärge laske end selle faili suurusest petta ( ~300 kb), see pole tema ise Cygwin, vaid ainult selle paigaldaja. Kõik vajalikud kommunaalteenused ja teegid tuleb installiprotsessi ajal eraldi alla laadida või määrata allikaks kohalik kataloog, kui vajalikud failid sul juba on.

Cygwin sisaldab tohutul hulgal erinevaid utiliite ja teeke, millest paljusid te tõenäoliselt kunagi ei vaja, kuid installimisel Cygwin võimaldab valida ainult vajalikud komponendid. Seega, kui soovite ainult programmi kompileerida, peate installima ainult kompilaatori GCC, komplekt nõutavad raamatukogud ja kasulikkust teha. Isiklikult installisin kõik rakendused, sest Cygwin muudab nendest "vabanemise" igal ajal lihtsaks. Tegelikult Cygwin koosneb ainult ühest failist cygwin1.dll, kõik muu on tarkvarapaketid GNU, mis on spetsiaalselt ümber kompileeritud Cygwin.



Arvan, et paigaldamisega probleeme ei olnud. Vaatame nüüd mõningaid seadistamise ja kasutamise nüansse Cygwin. Pärast installimist sarnaneb selle kausta struktuur, kuhu programm installiti *nix süsteemid. Käivitamiseks Cygwin, lihtsalt jookse BAT-fail, cygwin.bat, mis asub juurkataloogis Cygwin(juurkataloogi all peame silmas kausta, milles Cygwin, loeme edaspidi sellest kataloogist). Pärast käivitamist BAT-fail Teie ette ilmub konsoolirakendus. See on üks Bash, mis on ühenduslüli Unix Ja Windows. Bash- see pole lihtsalt analoog cmd.exe. Bash on täisväärtuslik programmeerimiskeel, milles saate käivitamiseks kirjutada skripte erinevaid ülesandeid. Just see teebki selle põhimõtteliselt erinevaks cmd.exe (command.com).

Kutse Bash, praktiliselt ei erine sellest cmd.exe (~ - tähendab sinu kodukataloog). Siin pole loogilisi draive (A, C, D jne), loendus pärineb juurkataloogist, mille nimi on " / ". Peate ka meeles pidama, et juhtum on siin oluline, nii et jne Ja jne- kaks täiesti erinevat kataloogi. Proovime minna juurkataloogi, selleks käivitage lihtsalt teile tuttav käsk " cd/" (~ peaks muutuma vastu / ). Pärast seda tippige käsk " rež", või" ls", et vaadata juurkataloogi sisu. Ma arvan, et nüüd saate aru, mis juurkataloog on.





Ma ei saa selles artiklis kõiki käske kirjeldada, seega läheme otse tegeliku juurde. oluline etapp, mille jaoks me tegelikult seadsime Cygwin. Proovime koostada mõne programmi. Koostamiseks valisin programmi Htop(http://freshmeat.net/projects/htop/), see on täiustatud versioon standardprogramm üleval, mis on konsoolihaldur protsessid. Esimene samm on arhiivi lahti pakkimine. Saate seda teha nii, nagu on näidatud Windows ja otse sisse Cygwin. IN Cygwin seda tehakse käsuga:

tar zxf htop-0.6.tar.gz

Muidugi, see sisse hetkel peate asuma samas kataloogis, kus arhiiv asub htop-0.6.tar.gz. Pärast lahtipakkimist minge loodud kataloogi htop-0.6 ja tee kolm standardsed käsud avalduse koostamiseks.

./configure
teha
pane installima



See on kõik, kogumik on valmis. Värbage julgelt meeskonda htop ja imetlege tulemust. Saadud "EXE" asub kataloogis /usr/local/bin/.



Nüüd proovime seda ise kirjutada lihtne programm (Tere maailm) ja koostage see koos GCC. Kõigepealt peame kirjutama programmi ise, me teeme seda programmi abil kass. Sisestage käsk kass uus.c, Kus uus.c sisaldava faili nimi lähtekoodi. Pärast käsu täitmist kirjutage järgmine kood:

#kaasa
int main())(
printf ("Tere maailm");
tagasi 1 ;)

Pärast koodi sisestamist vajutage nuppu Ctrl+C. Nüüd koostame selle kasutades GCC. Seda tehakse käsuga:

Gcc new.c -o new.exe

Samas kataloogis, kus see asus uus.c ilmub teine ​​fail - new.exe. Kui käivitate selle, näete oodatud teadet " Tere Maailm".



See võiks olla artikli lõpp, kuid otsustasin rääkida ka graafilisest keskkonnast Cygwin et mitte hiljem selle teema juurde tagasi pöörduda. Arvan, et märkasite seda pakettide installimisel Cygwin soovitab paigaldada kestad Gnome Ja KDE. Tegelikult pole need lihtsalt kestad, vaid nende teegid, mis on rakenduste käitamiseks vajalikud. Näiteks kuulsa toimetaja graafiline versioon emacs, jookseb otse all Windows nagu oleks win32 rakendus. Et mitte olla alusetu, proovime seda Emacs jooksma. Seda tehakse käsuga:

xemacs

Seda me näeme.



Nagu näete, kõik käivitub ja töötab hästi. Kuid seda ei juhtu kõigiga. Graafika keskkond väga kapriisne. Seetõttu peate suutma seda konfigureerida. Seadistamise dokumentatsioon X serverid Internetis on neid palju ja leiate hõlpsalt.

Lõpetuseks tahaksin teile meelde tuletada, et ükskõik kui hea Cygwin, see on lihtsalt emulaator. Ja nagu teate, ei saa koopia olla parem kui originaal, nii et kui soovite saada tõeliseks Unixi guruks, ärge olge laisk, et installida täieõiguslik Unixi distributsioon. Minu arvates on parem alustada Linux. Kõigist võimalikest distributsioonidest soovitan teid Slackware.

Kas olete kunagi pärast Linuxi kasutamist pidanud kasutama Windowsi käsurida? Minu jaoks jah. Väga ebatavaline. Paljusid meeskondi nimetatakse erinevalt. Näiteks ls-i vaste Windowsis on dir. Kohaliku tõlgi stiil argumentide edastamisel on erinev. Ja paljusid Linuxi utiliitide pakutavaid võimalusi lihtsalt pole. Kuidas ma saan sarnase? linuxi keskkond akendes? Seda saab teha Cygwini installimisega.

Tutvumine juurutatud süsteemiga

Esiteks installib cygwin vaikimisi oma terminali emulaatori, millega on mugavam töötada kui Windowsi käsureal.

Siin on meil esimesed probleemid. Nagu näete, windowsi kommunaalteenused, sealhulgas cmd.exe prindib teksti oem-866-s ja cygwini emulaator loeb teksti utf-8-s. Kui lülitate kodeeringu 866 koodilehele, on selle toimingu tagajärjed veelgi hullemad.


aastal tõlgendas cygwin venekeelset nime unicode kodeering, stringina 866 kodeeringus ja lõpuks otsustas luua uue kataloogi /home/╨Ф╨╝╨╕╤В╤А╨╕╨╣. Seega on parem jätta kõik nii, nagu oli, ja võimaluse korral leppida cygwini utiliitidega. Kui teil on vaja käivitada käsushell ilma terminali emulaatorita, käivitage partiifail Cygwin.bat.
IN antud juhul, cygwin on installitud kausta C:\cygwin64\. Cygpathi utiliit aitab meil välja selgitada, kuidas teed unix-pathist Windowsi teeks teisendatakse.
$ cygpath -w `pwd`
C:\cygwin64\home\Dmitry

$ cygpath -w /
C:\cygwin64

$cygpath "C:\cygwin64"
/

$ cygpath "C:\cygwin64\home\Dmitry"
/home/Dmitry
Kuidas pääseda juurde kettale C:, kui kõik teed on tõlgitud kujule C:\cygwin64\.
See on lihtne. Kataloog /cygdrive sisaldab ühenduspunkte, mis vastavad nime järgi Windowsi köidetele.
$cygpath "C:\"
/cygdrive/c

$ cygpath -w /cygdrive/c/somedir
C:\somedir
Cygpath tõlgib edukalt ka selle ühenduspunkti kõned keelde Windowsi teed.
Muide, sellise utiliidi nagu cygpath olemasolu näitab, miks peaksite cygwiniga võimalusel kasutama ainult selle utiliite. Kui teil on vaja käitada Java VM-i ja see mõistab ainult Windowsi teid, peate käivitamisel cygwini tee teisendama:
$ java-purk`cygpath -w "/opt/some.jar"`
Sellest järeldub, et paljusid Linuxi skripte ei saa lihtsalt võtta ja Windowsis käivitada. Mõnikord peate proovima skripti üle kanda. Pealegi mitte kõik kommunaalteenused käsurida töötab.

Rohkem valikuid

SSH

Saate installida OpenSSH-kliendi ja serveri - see võimaldab teil saada kaugjuurdepääs To käsu kest bash, teisest arvutist või isegi telefonist, näiteks JuiceSSH abil. Samuti saate SFTP-protokolli abil oma failidele kaugjuurdepääsu (kuigi Windowsis on SMB kaudu juurdepääsetava kataloogi jagamine lihtsam).

Programmeerimine

Komplekt sisaldab tuntud kompilaatoreid nagu Clang või GCC, tõlke Pythoni keeled, Perl, PHP, Ruby jne. Saate luua POSIX-iga ühilduvaid programme Windowsi jaoks.

Tekstiredaktorid

Interaktiivsed toimetajad - vim, nano, emacs.
Skriptides kasutamiseks sobivad mitteinteraktiivsed toimetajad - sed, awk.

Alumine rida

Kui igatsed linuxi võimalused Windowsis tasub ehk see asi endale installida.

See artikkel on mõeldud kahele
inimtüübid: neile, kes ei mõista
Linux, kuid ei saa seda arvutisse installida
(põhjuseid on erinevaid), või neile, kes
teab natuke pingviinidest 🙂 ja poleks selle vastu
tutvuge nendega "neutraalselt"
territooriumil, st Win98/NT-l.

Sait on juba kirjeldanud Cygwini kui parimat
võta Linuxi emulaator välja, aga seda ei öeldud
midagi Cygwini installimise, konfigureerimise ja vigade kohta.
Siin ma räägin teile sellest :) Tegelikult, kui
Kui järele mõelda, pole Cygwin üldse emulaator, vaid
Lihtsalt Linuxi levitamine, kirjutatud Win32 jaoks 😉

Lõpetage rändamine... Läheme aadressile http://www.cygwin.com,
Võtame sealt installiprogrammi setup.exe. Tema juurde
tõmbame juba eelkoostatud
binaarid (exe laiendis), kas sa mäletad rpm?
😉 arendaja veebisaidilt või peeglist.
SOOVITAN seda programmi ainult alla laadida
Installime need failid käsitsi, kuna Kui
installite kasutades setup.exe, gcc ei tööta – joon
teab miks... Võib-olla on arendajad juba sellega arvestanud
see on viga, aga ma ei tea sellest veel...

Niisiis, laadige alla kõik peamised binaarfailid (allikad
te ei pea alla laadima) ja mitu
täiendavad - kes keelduks wgetist, ilves,
BitchX, Python :) Aga sa ei pea Perli alla laadima... Mul on
seal oli ActivePerl – täiustatud Perli emulaator. Laadi alla
saadaval aadressil http://www.acriveperl.com.
Ma ei täheldanud ühtegi tõrget :) (Ma räägin teile, kuidas ma
rakendas seda cygwinis).

Seaded

Ja "grupi" failis samas kaustas "etc":
root:x:0:root

Kui soovite oma parooli krüpteerida, ja
mitte "parool", nagu ma oma näites tegin,
kirjutage Perli skript

#!/usr/bin/perl
chomp ($pass= );
print $crypt("SA",$pass);

Kus, SA - salta, mida kasutatakse krüptimiseks
parool... võid selle juhuslikuks muuta, aga
See artikkel jääb teemast välja.

Nüüd redigeerige faili "c:\cygwin\cygnus.bat" -
selles me muudame PATH, muutes lihtsalt teed
emulaator ja faili login.exe tee. Käivitame
faili.

Logime sisse: minu näites "root": "parool".
Nii jõudsime emulaatori enda juurde. ma ei tee seda
Mulle meeldis sisestusviip. Muudame seda
- muutuv PS1. Avage (loo) fail "c:\cygwin\etc\profile"
ja kirjuta sinna:

# /etc/profile
PROFILE_LOADED=1
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/local/sbin:$PATH"
tühistada DOSDRIVE
tühistada DOSDIR
tühistada TMPDIR
tühistada TMP
eksport HOSTNAME=test
PS1="[\u@$HOSTNAME \W]#"
LOGNAME=$USER
eksportida PATH PS1 KASUTAJA LOGINIME

Siin... Siis logime uuesti sisse ja kõik läheb sisse
koht ja ilus :) Kutse saab olema: # - standard, Linux :)

See on kõik, esialgne installimine on lõppenud.
Liigume edasi teenuste paigaldamise juurde :)

Tavatarne sisaldab thuja hucha
teenuseid. Peate neid käivitama järgmiselt:
/usr/sbin/inetd -R /usr/sbin/in.ftpd (ftpd näide).

Parem on SSHD ise installida - see töötas pauguga ja
Sõidan SecureCRT-st, legaalne 127.0.0.1 -
täiesti erinev välimus :)

Mis puutub töösse TCP/IP-ga, siis mul pole puudusi
Märkasin :) Kõik ühendab ja toimib nagu
vajalik…

Ja nüüd mõned näpunäited:

1) Juurdepääs KÕIGILE ketastele on avatud. Nii olgu
ettevaatlik. Näiteks draiv d: asub siin -
"/cygdrive/d".

2) Seoses Perliga loo failile sümlink
Näiteks Perl.exe, nii et "ln -s /cygdrive/c/perl/bin/perl.exe
/usr/bin/perl"

3) Kui teil seda mingil põhjusel pole
Linuxi rakendus on installitud -
lihtsalt parandage C-kood. Võib-olla
õnnestub.. (nii ma koostasin
micq).

4) Jälgige Cygwini värskendusi veebisaidil http://www.cygwin.com
- binaarfaile värskendatakse sageli.

Kas teil on küsimusi? Kirjutage mulle e-posti teel - ma proovin
appi...

See artikkel on kasulik algajatele Cygwini kasutajatele. Alustuseks peame esmalt vastama lihtsale küsimusele. Mis on Cygwin? Cygwin on UNIX-i sarnane keskkond ja käsurea liides Microsoft Windows. IN Microsofti süsteem Windows juba seal on sarnane cmd liides. Käsurea saate avada klahvikombinatsiooniga Win + R. Kuid sageli suurem osa tööst Windowsi kasutajad tuleb teha käsitsi. Teisest küljest Linuxi pool kasutaja on kirjutanud juba ammu bash-skripti ja istub automatiseeritud töövoo kõrval õlut joomas.

Mis takistab teil seda Windows OS-is tegemast? See on õige, absoluutselt mitte miski ei sega. Kuid selleks vajame lisaprogrammid ja raamatukogud. Programm Cygwin laiendab standardse käsurea võimalusi Windowsi stringid, mis võimaldab teil mõningaid protsesse automatiseerida ja arendada programme Linuxi ja muude süsteemide jaoks.

Programmi Cygwin saab alla laadida ametlikult veebisaidilt: Link programmi 32-bitisele versioonile ja Link programmi 64-bitisele versioonile.

Vali vajalik versioon, laadige alla ja käivitage vastavalt täitevfail setup-x86.exe ja setup-x86_64.exe.

Programmi 64-bitise versiooni installiaken


Paigaldusmeetodi valimise aken


Paketi valiku aken

Programmi 32-bitise versiooni installiaken näeb välja täpselt sama, mis 64-bitise versiooni installiaken. Järgmine samm on valikuaken. Kust programmi installida või alla laadida. Kokku on kolm võimalust. Esimene variant Install alates Internet (allalaaditud failid säilitatakse edaspidiseks taaskasutamiseks) Internetist installimine ja allalaaditud failid salvestatakse järgmise korrani taaskasutamine. Teine võimalus on allalaadimine ilma installimiseta. Kolmas valik Installige kohalikust Kataloogi installimine kohalikust kataloogist. Sest Meil pole kohalikku koopiat ja me peame selle installima, seega valime esimese valiku. Järgmine aken on installitee valimiseks. Soovitan valida süsteemi ketas, näiteks mul on tee Cygwini installatsioonid see on C:\cygwin64. Järgmises aknas tuleb valida tee, kuhu need salvestatakse. ajutised failid mis laaditakse alla installiprotsessi käigus. Minu jaoks on see C:\cygwin64\pakett. Seejärel peate valima, kas alla laadida puhverserveri kaudu või otse. Järgmine samm on valida allalaadimishoidla, valida mõni teie ees või vaikehoidla ja klõpsake nuppu Edasi. Pärast nupu klõpsamist algab peamiste konfiguratsioonide allalaadimise protsess. Järgmisena saate valida, mida installida. Paketi valimiseks klõpsake paketi nime kõrval nuppu Jäta vahele. Sulle kasulike pakettide loend:

  • gcc-core (arenduse all)
  • gcc-g++ (jaotises Arendus)
  • tee (jaotises Arendus)
  • cmake (jaotises Devel)
  • automake (jaotises Arendus)
  • wget (veebi jaotises)
  • libiconv (jaotistes Devel ja Libs)
  • openssh (jaotises Net)
  • nano (jaotises Toimetajad)
  • bash (jaotisest Base)
  • base-cygwin (jaotisest Base)
  • baasfailid (sektsioonist Base)
  • cygwin (aluse jaotisest)
  • fail (jaotisest Base)
  • gzip (jaotisest Base)
  • sisselogimine (jaotises Baas)
  • mintty (alajaotusest)
  • openssl (jaotisest Base)
  • käivitada (jaotisest Baas)
  • tõrv (jaotisest Alus)
  • vim-minimal (jaotisest Base)
  • cron (administraatori jaotisest)
  • sulgemine (jaotisest Admin)
  • git (kõik paketid jaotisest Devel)

Mulle ei meeldinud taustavärv ega ka sisseehitatud font ja tekstivärv, nii et kohandasin seda. Nende sõnadega lõpetan selle artikli.

Platvormiüleste rakenduste arendamine ei ole lihtne. Eriti keeruline on see tänu Windowsile, milles kõik pole nii nagu inimestel. Siin pole teil tavalist ega tavalist terminali konsooli utiliidid, pole üldse midagi! Selle probleemiga taas silmitsi seistes otsustasin Cygwini uuesti proovida. Ja arvake ära, selgub, et see teeb Windowsist tegelikult midagi, mida saate peaaegu kasutada!

Cygwini installiprogrammi saate alla laadida siit. Tegelikult pole see niivõrd installija kui paketihaldur, mis käivitamisel küsib otse, milliseid pakette soovite installida. Poisid! Paketihaldur! Windowsi all! Installer loob vahemälu kataloogis, kust see käivitatakse. Seetõttu on parem enne alustamist luua töölauale spetsiaalne kaust ja installija sinna panna.

Milliseid pakette minu arvates tuleb installida:

  • openssh- masthev;
  • inetutils, bind-utils, ping, nc Ja nc6- masthev;
  • wget, lokk- masthev;
  • püüton ja/või python3— Ma arvan, et see peab olema;
  • vim, gvim— väikeste failide redigeerimiseks ei ole see üleliigne;
  • diffutils, pwgen, lahti pakkima, rzync- olgu need igaks juhuks;
  • gcc ja/või kõlisema, cmmake, gdb- vajadusel;
  • ekraan, tmux, mc- fännidele;
  • git- all väga suur küsimus, vt allpool;

Pöörake tähelepanu! Pipi installimiseks Cygwinis märkige ruut paketi python-setuptools ja/või python3-setuptools kõrval. Pärast installimist öelge terminalis:

lihtne_installimine - 2,7 pip

lihtne_install-3,4 pip

... olenevalt sellest, millise Pythoni versiooni või versioonid installisite.

Nii et pärast Cygwini installimist saate avada terminali:

Poisid! Tavaline terminal, mis muudab suurust, võimaldab teil teksti kopeerida ja kleepida ning see on kõik! Windowsi all! Kõigiga hästi tuttav ja tuttavad käsud id, ls, pwd, cat, ssh, scp ja teised. Inimkeskkonnaga – .bashrc, ~/.ssh/config jne. Lisaks ei lohista Cygwin erinevalt häbiväärsest häkkimisest nimega PowerShell .NET Frameworki. Saame isegi avada mitu terminali ja nende vahel vahetada, kasutades kiirklahvi Ctr + Tab. See on peaaegu nagu sakid! Muidugi töötab ka vana hea Alt + Tab.

Eespool ma ei soovitanud Giti installida ja siin on põhjus. Fakt on see, et Cygwinis aeglustub see märgatavalt. Soovitatav on käivitada järgmised käsud:

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

Kuid kahjuks ei lahenda see probleemi täielikult. Nii et suure projekti puhul saab käsu git status käivitada 20 sekundiga. Linuxis käivitatakse see käsk koheselt samas hoidlas.