Cygwin: Įvadas. Kaip vykdyti Linux komandą iš Windows Diegiant cygwin windows 10

Paprasta ir iš esmės tinka visiems. Tik Git versija bent jau kol kas nėra naujausia. Bet kasdieniam darbui su Gitu to visiškai pakanka. Jei pažvelgsime į versiją, pamatysime:

$git -- versija
git versija 1.9.5.msysgit.0

Bet jei staiga prireiks kažko naujesnio, galite įdiegti Git iš Cygwin paketų. Norėdami tai padaryti, žinoma, turite įdiegti patį „Cygwin“. Čia nėra nieko sudėtingo. Eikime čia ir atsisiųskite diegimo programą. Tai yra būtent montuotojas, A ne paskirstymas. Kadangi jis atsisiunčia visus paketus iš tinklo. Be to, jis turi būti naudojamas atnaujinti įdiegtus paketus arba įdiegti naujus.

Taigi mes atsisiunčiame

Ir paleiskite diegimo programą

Daryk vieną, du, tris

Bet kokiu atveju, jei ko nors prireiks vėliau, galėsite atsisiųsti ir įdiegti. Kaip matote, šio paketo Git versija yra 2.1.4, kuri yra aiškiai naujesnė nei 1.9.5. Nors 2.3.1 jau prieinama Linux ir Mac OS X.

Tik tuo atveju, duosiu jums dar keletą greitų serverių atsisiuntimui

Tai tik pasaka

Na, viskas nustatyta

Paleidžiame ir matome, kad pirmą kartą paleidus mums bus pasakyta, kur yra konfigūracijos failai:

Paveikslėlis dešinėje rodo, kur yra vartotojo namų katalogas. Tai yra diegimo aplankas (mano atveju C:\cigwin64), tada aplanką namai, tada vartotojo vardo aplankas ir jame jau yra konfigūracijos failai .bashrc, .bash_profile, .inputrc Ir .profilis.

Visa terminalo konfigūracija atliekama šiuose failuose. Čia to neaprašysiu, nes tai didelė atskira tema.

Leiskite tik pažymėti, kad pagrindiniai bash nustatymai yra padaryti faile .bash_profile.

Taip pat galite atkreipti dėmesį, kad Git nustatymų failas – .gitconfig – taip pat bus namų kataloge

Be to, sukonfigūruokite išvaizda terminalą spustelėdami terminalo piktogramą viršutiniame kairiajame kampe ir pasirinkę Parinktys.

Jei jums reikia papildomų paketų Cygwin, galite jų ieškoti.

Po visų nustatymų mano Cygwin terminalo langas atrodo taip. Tada pamatysime įdiegtos Git versiją.

Na, čia mes turime visavertį Gitą. Dabar (greitai) patikrinkime jo veikimą tikroje saugykloje.

Viskas veikia.

P.S. Dar kartą verta paminėti, kad iš Cygwin įdiegtų msysGit ir Git pasauliniai ir sisteminiai (globalūs, sisteminiai) nustatymai yra saugomi skirtingose ​​vietose ir netrukdo ir nepersidengia vienas kito, mano nuomone, tai patogu, nes viskas yra Windows. įrankiai bando įrašyti savo nustatymus į visuotinių nustatymų failą.gitconfig ir tai kartais gali sukelti nepatogumų ir painiavos.

Ar kada nors teko naudoti komandinę eilutę po „Linux“? „Windows“ eilutė? Taip, man. Labai neįprasta. Daugelis komandų vadinamos skirtingai. Pavyzdžiui, ls atitikmuo sistemoje Windows yra dir. Vietinio vertėjo argumentų perteikimo stilius skiriasi. Ir daugelio „Linux“ paslaugų teikiamų galimybių tiesiog nėra. Kaip gauti panašią Linux aplinką sistemoje Windows? Tai galima padaryti įdiegus Cygwin.

Susipažinimas su įdiegta sistema

Pirma, cygwin pagal numatytuosius nustatymus įdiegia savo terminalo emuliatorių, su kuriuo patogiau dirbti nei su „Windows“ komandų eilute.

Štai čia turime pirmųjų problemų. Kaip matai, windows komunalinės paslaugos, įskaitant cmd.exe spausdina tekstą oem-866, o cygwin emuliatorius skaito tekstą utf-8. Jei perjungsite kodavimą į 866 kodo puslapį, tada šio veiksmo pasekmės yra dar blogesnės.


cygwin interpretavo rusų kalbos pavadinimą unikodo koduotėje kaip eilutę 866 koduotėje ir galiausiai nusprendė sukurti naują katalogą /home/╨Ф╨╝╨╕╤В╤А╨╕╨╣. Taigi geriau palikti viską taip, kaip buvo, ir, jei įmanoma, tenkintis su cygwin komunalinėmis paslaugomis. Jei reikia paleisti komandų apvalkalą be terminalo emuliatoriaus, paleiskite paketinį failą Cygwin.bat.
Šiuo atveju cygwin yra įdiegtas aplanke C:\cygwin64\. „Cygpath“ programa padės mums išsiaiškinti, kaip keliai konvertuojami iš „Unix“ kelio į „Windows“ kelią.
$ cygpath -w `pwd`
C:\cygwin64\home\Dmitry

$ cygpath -w /
C:\cygwin64

$cygpath "C:\cygwin64"
/

$ cygpath "C:\cygwin64\home\Dmitry"
/namai/Dmitrijus
Kaip pasiekti C: diską, jei visi keliai išversti į C:\cygwin64\.
Tai paprasta. Kataloge /cygdrive yra prijungimo taškai, kurie pagal pavadinimą atitinka Windows tomus.
$cygpath "C:\"
/cygdrive/c

$ cygpath -w /cygdrive/c/somedir
C:\somedir
Cygpath taip pat sėkmingai verčia skambučius į šį prijungimo tašką į „Windows“ keliai.
Beje, tokio naudingumo kaip cygpath egzistavimas rodo, kodėl su cygwin, jei įmanoma, turėtumėte naudoti tik jo programas. Jei jums reikia paleisti „Java“ VM ir ji supranta tik „Windows“ kelius, paleidžiant turėsite konvertuoti cygwin kelią:
$ java -jar `cygpath -w "/opt/some.jar"`
Iš to išplaukia, kad daugelio „Linux“ scenarijų negalima tiesiog paimti ir paleisti „Windows“. Kartais reikia pabandyti perkelti scenarijų. Be to, ne visos komunalinės paslaugos komandinė eilutė jie dirbs.

Daugiau galimybių

SSH

Galite įdiegti OpenSSH klientą ir serverį - tai leis jums gauti Nuotolinis prisijungimasį bash apvalkalą, iš kito kompiuterio ar net iš telefono, pavyzdžiui, naudojant JuiceSSH. Taip pat gausite nuotolinę prieigą prie failų naudodami SFTP protokolą (nors sistemoje Windows lengviau bendrinti katalogą, pasiekiamą per SMB).

Programavimas

Į rinkinį įeina žinomi kompiliatoriai, tokie kaip Clang arba GCC, vertėjai Python kalbos, Perl, PHP, Ruby ir kt. Galite kurti su POSIX suderinamas programas, skirtas Windows.

Teksto redaktoriai

Interaktyvūs redaktoriai – vim, nano, emacs.
Neinteraktyvūs redaktoriai, tinkami naudoti scenarijuose – sed, awk.

Apatinė eilutė

Jei pasiilgote „Linux“ funkcijų sistemoje „Windows“, galbūt norėsite jas įsigyti patys.

Norint parašyti paraiškas Unix jo įdiegti nebūtina (po žodžiu Unix Aš viską apgalvosiu *nix sistemos). Šis teiginys skamba gana paradoksaliai, tačiau jis yra tiesa, ir šiame straipsnyje pabandysiu jus tuo įtikinti.

Jei nesate tikras Unix guru, tada norėdami parašyti keletą programų šiai OS arba kompiliuoti esamas programas jums visai nereikia diegti Unix. Šiems tikslams puikiai tinka emuliatorius. Unix. Yra daug puikių programų, kurios puikiai atlieka šią užduotį, pavyzdžiui: UWin, MinGW, Cygwin ir kt.

Dėl kompiliacijos paprastos programos padarys ir MinGW, bet sudėtingesniems jis netinka. Uvinas yra pažangesnis emuliatorius, tačiau jo funkcionalumas gerokai prastesnis nei kito populiaresnio emuliatoriaus Cygwin.

Cygwin- labai funkcionalus, nemokamas emuliatorius Unix. Jis platinamas kaip vienas failas ( setup.exe), neapsigaukite šio failo dydžio ( ~300 kb), tai ne jis pats Cygwin, bet tik jo montuotojas. Visos reikalingos komunalinės paslaugos ir bibliotekos turės būti atsisiunčiamos atskirai diegimo proceso metu arba galite nurodyti vietinį katalogą kaip šaltinį, jei jau turite reikiamus failus.

Cygwin apima puiki sumaįvairios komunalinės paslaugos ir bibliotekos, kurių daugelio jums tikriausiai niekada neprireiks, bet diegiant Cygwin leidžia pasirinkti tik jums reikalingus komponentus. Taigi, jei norite tik kompiliuoti programą, turėsite įdiegti tik kompiliatorių GCC, reikalingų bibliotekų ir paslaugų rinkinys padaryti. Asmeniškai aš įdiegiau visas programas, nes Cygwin leidžia lengvai bet kada jų „atsikratyti“. Faktiškai Cygwin susideda tik iš vieno failo cygwin1.dll, visa kita yra programinės įrangos paketai GNU, specialiai perkompiliuotas darbui su Cygwin.



Manau, kad su diegimu problemų nebuvo. Dabar pažvelkime į keletą nustatymo ir naudojimo subtilybių Cygwin. Po įdiegimo aplanko, kuriame buvo įdiegta programa, struktūra bus panaši į struktūrą *nix sistemos. Norint paleisti Cygwin, tiesiog bėk BAT failą, cygwin.bat, kuris yra šakniniame kataloge Cygwin(šakniniame kataloge turime omenyje aplanką, kuriame Cygwin, ateityje skaičiuosime iš šio katalogo). Po paleidimo BAT failas Prieš jus pasirodys konsolės programa. Tai yra vienas Bash, kuris yra ryšys tarp Unix Ir Windows. Bash- tai ne tik analogas cmd.exe. Bash yra visavertė programavimo kalba, kuria galite rašyti scenarijus įvairioms užduotims atlikti. Būtent tuo ji iš esmės skiriasi cmd.exe (command.com).

Kvietimas Bash, praktiškai nesiskiria nuo cmd.exe (~ - reiškia jūsų namų katalogą). Čia nėra loginių diskų (A, C, D ir tt), atgalinis skaičiavimas yra iš šakninio katalogo, pažymėto " / “. Taip pat reikia atsiminti, kad atvejis čia yra svarbus, todėl ir kt Ir ir tt- du visiškai skirtingi katalogai. Pabandykime eiti į šakninį katalogą, kad tai padarytumėte, tiesiog paleiskite jums pažįstamą komandą " cd/" (~ turėtų pakeisti į / ). Po to įveskite komandą " rež", arba" ls", norėdami peržiūrėti šakninio katalogo turinį. Manau, kad dabar jūs suprantate, kas yra šakninis katalogas.





Negaliu aprašyti visų šiame straipsnyje pateiktų komandų, todėl pereikime tiesiai prie svarbiausio etapo, kurį iš tikrųjų nustatėme Cygwin. Pabandykime sukompiliuoti kokią nors programą. Kompiliacijai pasirinkau programą Htop(http://freshmeat.net/projects/htop/), tai patobulinta versija standartine programa viršuje, kuris yra konsolės valdytojas procesus. Pirmas žingsnis yra išpakuoti archyvą. Tai galite padaryti kaip nurodyta Windows, ir tiesiai į Cygwin. IN Cygwin tai daroma su komanda:

tar zxf htop-0.6.tar.gz

Žinoma, kad į Šis momentas turite būti tame pačiame kataloge, kuriame yra archyvas htop-0.6.tar.gz. Išpakavę eikite į sukurtą katalogą htop-0.6 ir paleiskite tris standartines komandas, kad sukurtumėte programą.

./configure
padaryti
padaryti įdiegti



Štai viskas, rinkinys baigtas. Nedvejodami suburkite komandą htop ir grožėtis rezultatu. Gautas „EXE“ yra kataloge /usr/local/bin/.



Dabar pabandykime tai parašyti patys paprasta programa (Labas pasauli) ir sukompiliuokite su GCC. Pirmiausia turime parašyti pačią programą, tai padarysime naudodami programą katė. Įveskite komandą katinas naujas.c, Kur naujas.c failo, kuriame yra šaltinio kodas, pavadinimas. Įvykdę komandą, parašykite šį kodą:

#įtraukti
int main())(
printf ("Sveikas pasaulis");
grąžinti 1 ;)

Įvedę kodą paspauskite Ctrl + C. Dabar sukompiliuokime jį naudodami GCC. Tai daroma su komanda:

Gcc new.c -o new.exe

Tame pačiame kataloge, kur jis buvo naujas.c pasirodys kitas failas - new.exe. Kai paleisite, pamatysite laukiamą pranešimą " Labas pasauli".



Tai galėtų būti straipsnio pabaiga, bet nusprendžiau pakalbėti ir apie grafinę aplinką Cygwin kad vėliau negrįžčiau prie šios temos. Manau, kad tai pastebėjote diegdami paketus Cygwin siūlo įdiegti apvalkalus Gnome Ir KDE. Tiesą sakant, tai ne tik apvalkalai, bet ir jų bibliotekos, reikalingos programoms paleisti. Pavyzdžiui, grafinė versija garsus redaktorius emacs, veiks tiesiai po Windows tarsi būtų win32 programa. Kad nebūtų be pagrindo, pabandykime šį Emacs paleisti. Tai daroma su komanda:

xemacs

Tai mes pamatysime.



Kaip matote, viskas paleidžiama ir veikia gerai. Tačiau taip nutinka ne visiems. Grafinė aplinka labai kaprizinga. Todėl jūs turite mokėti jį sukonfigūruoti. Sąrankos dokumentacija X serveriai Internete jų yra labai daug ir nesunkiai rasite.

Pabaigai norėčiau priminti, kad ir kaip gerai Cygwin, tai tik emuliatorius. Ir kaip žinote, kopija negali būti geresnė už originalą, todėl jei norite tapti tikru Unix guru, nepatingėkite įdiegti visavertį Unix platinimo rinkinį. Mano nuomone, geriau pradėti nuo Linux. Iš visų galimų platinimų rekomenduoju Slackware.

Kelių platformų programų kūrimas nėra lengvas. Tai ypač sunku dėl „Windows“, kurioje viskas nėra taip, kaip pas žmones. Čia jūs neturite nei normalaus terminalo, nei normalių konsolių paslaugų, nieko! Dar kartą susidūręs su šia problema nusprendžiau dar kartą pabandyti Cygwin. Ir atspėk ką, paaiškėja, kad tai iš tikrųjų paverčia Windows tuo, ką beveik galite naudoti!

„Cygwin“ diegimo programą galite atsisiųsti iš čia. Tiesą sakant, tai ne tiek diegimo programa, kiek paketų tvarkyklė, kuri paleidus tiesiogiai klausia, kuriuos paketus norite įdiegti. Vaikinai! Paketo vadybininkas! Pagal Windows! Diegimo programa sukuria talpyklą kataloge, iš kurio ji bus paleista. Todėl prieš pradedant darbalaukyje geriau sukurti specialų aplanką ir į jį įdėti diegimo programą.

Kokius paketus, mano nuomone, reikia įdiegti:

  • openssh- masthev;
  • inetutils, bind-utils, ping, nc Ir nc6- masthev;
  • wget, garbanoti- masthev;
  • pitonas ir/arba Python3— Manau, tai būtina turėti;
  • vim, gvim- mažų failų redagavimui tai nebus nereikalinga;
  • difutils, pwgen, išpakuokite, rzync- tegul jie būna tik tuo atveju;
  • gcc ir/arba žvangėti, cmake, gdb- Jei reikia;
  • ekranas, tmux, mc- įsimylėjėliams;
  • git- pagal labai didelis klausimas, žr. toliau;

Pastaba! Norėdami įdiegti pip sistemoje Cygwin, pažymėkite langelį šalia paketo python-setuptools ir (arba) python3-setuptools. Įdiegę terminale pasakykite:

lengvas_diegimas - 2,7 pip

easy_install-3.4 pip

..., priklausomai nuo to, kokią Python versiją ar versijas įdiegėte.

Taigi, įdiegę Cygwin, galite atidaryti terminalą:

Vaikinai! Įprastas terminalas, kurio dydis keičiasi, leidžia kopijuoti ir įklijuoti tekstą, ir viskas! Pagal Windows! Su visomis gerai žinomomis ir pažįstamomis komandomis id, ls, pwd, cat, ssh, scp ir kt. Su žmogaus aplinka – .bashrc, ~/.ssh/config ir pan. Be to, skirtingai nei gėdingas įsilaužimas, vadinamas „PowerShell“, „Cygwin“ nesivelka .NET Framework. Mes netgi galime atidaryti kelis terminalus ir perjungti juos naudodami spartųjį klavišą Ctr + Tab. Tai beveik kaip skirtukai! Žinoma, veikia ir senas geras Alt + Tab.

Aukščiau nerekomendavau įdiegti „Git“ ir štai kodėl. Faktas yra tas, kad Cygwin jis pastebimai sulėtėja. Rekomenduojama paleisti šias komandas:

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

Tačiau tai, deja, problemos visiškai neišsprendžia. Taigi dideliame projekte git statuso komandą galima įvykdyti per 20 sekundžių. „Linux“ sistemoje komanda paleidžiama akimirksniu.

Kas yra CYGWIN Po 2001 m. sausio 23 d. Chriso Kaspersky straipsnio „Kaip sukurti Unix iš Windows“ CG Nr. 3, 2001 m. sausio 23 d., norėjau jums papasakoti šiek tiek daugiau apie Windows vartotojai apie tai, kas yra Cygwin. Aš naudoju jį gana ilgą laiką ir nebegaliu efektyviai dirbti sistemoje „Windows“, neįdiegęs Cygwin.

Žodis Cygwin susideda iš dviejų komponentų: Cygnus yra įmonės pavadinimas ir Windows, tačiau būtų klaidinga sakyti, kad Cygwin viską parašė vaikinai iš Cygnus. Cygwin yra „Windows“ skirtų „Gnu“ paslaugų prievadas, o „Gnu“ (www.gnu.org) yra nemokamas projektas. Programinė įranga(Free Software Foundation, arba tiesiog FSF), kurios tikslas – sukurti ne pelno siekiančią Unix sistemą, kuri niekam nepriklausytų ir būtų be licencijų, ribojančių programinės įrangos platinimo ir modifikavimo laisvę. Kaip šio projekto dalis, beveik visi standartinės komunalinės paslaugos UNIX. Trys svarbiausi FSF įnašai yra gcc (Gnu C kompiliatorius arba Gnu kompiliatorių kolekcija), Bash (Bourne Again Shell) ir Emacs. Be gcc nebūtų Linux, o Bash yra standartinis daugelio šiuolaikinių Unix sistemų apvalkalas. Patyrę žmonės sako, kad pirmas dalykas, kurį sistemos administratoriai daro įdiegę komercinius Unix, yra iš naujo įdiegti Gnu programas. Iš esmės patys GNU ir FSF yra didžiulė tema ir nusipelno atskiro išsamaus straipsnio.

Visas Gnu paslaugų rinkinys yra mažų (paprastai) programų rinkinys, apimantis daugumą užduočių, su kuriomis Unix sistemos (ir ne tik Unix) vartotojas susiduria kiekvieną dieną, kiekviena tokia programa atlieka vieną užduotį ir ją atlieka gerai. Tada šias programas galima derinti sprendžiant įvairias problemas.

Ne kartą buvo bandoma perkelti Gnu į kitas, ne Unix platformas, o tai, beje, rodo jų populiarumą.

Verta paminėti komunalinių paslaugų perkėlimo į DOS projektą - DJGPP. Eikite į http://www.delorie.com/djgpp/, tai tikrai įdomu.

Cygnus nekompiliavo kiekvienos programos atskirai, kiekvieną kartą kentėdamas išspręsdamas tas pačias problemas, tarp GNU paslaugų ir buvo įrašytas tam tikras „tarpiklis“. Operacinė sistema. Šis tarpiklis – cygwin1.dll (1 – versijos numeris) – suteikia UNIX sistemos iškvietimų emuliaciją, leidžiančią kompiliuoti ir vykdyti „Unix“ programas mažai modifikuojant arba visai nekeičiant. pirminis kodas. Iš esmės šis dll yra pats Cygwin, o visa kita yra programinės įrangos paketai GNU sukurta dirbti su Cygwin.

Gcc ir bibliotekų buvimas leidžia perkelti daugybę programų į „Windows“ ir paverčia „Cygwin“ visateise platforma - kartais galite rasti posakį „Cygwin platforma“. Nuo pat pirmųjų „Cygwin“ beta versijų daugybė žmonių sukūrė „Cygwin“ tai, ko jiems trūko „Windows“, o standartinis „Cygwin“ platinimas pamažu išaugo, įskaitant šiuos namuose sukurtus rinkinius. Pavyzdžiui, beta 20 metu turėjau atskirai atsisiųsti vim redaktorių, bet dabar jis įdiegtas kartu su visu rinkiniu.

Kaip visa tai įdiegti

Cygnus parašė patogią paketų valdymo programą, šiek tiek primenančią kai kurias panašias programas iš Linux OS platinimų. Pirmas žingsnis yra atsisiųsti jį iš Cygnus svetainės http://sources.redhat.com/cygwin/setup.exe. Ją paleidę galite atsisiųsti standartinį paketų rinkinį iš vieno iš daugelio veidrodžių ir galite pasirinkti tai daryti pasirinktinai, praleisdami atskirus paketus.

Ateičiai – vėliau paleidę šią programą iš to paties katalogo, galėsite matyti, kokie nauji paketai atsirado ar naujos esamų paketų versijos.

Ta pati programa įdiegs Cygwin už jus, vėl prašydama nuspręsti, ką įdiegti, o ko ne. Diegiant jums bus sukurti katalogai, kurie yra įprasti Unix failų hierarchijoje – bin, usr, sbin ir t.t., todėl patogu juos visus sudėti į vieną katalogą, kad jie nesusipainiotų su jūsų Windows aplankais.

Ir kaip visa tai panaudoti

Kai paleisite Cygwin, pamatysite konsolės langą, panašų į įprastą Windows konsolę, komandą.com Win9x arba cmd.exe NT. Bet ne! Sistemoje Windows paleidote šlovingą Unix komandų interpretatorių palikuonį, kuris bandė imituoti command.com savo BAT failais. Bashas ir jo didysis brolis sh yra klijai, kurie jungiasi Unix sistema, tai teisėtai galima vadinti programavimo kalba, tai yra, galite joje rašyti.

Keletas pagrindinių komandų ir jų atitikmenų sistemoje Windows

ls = dir – peržiūrėti katalogo turinį;
cd = chdir – pereiti į kitą katalogą;
cp = kopija – kopijuoti failą;
mv = mv – perkelti/pervardyti failą;
rm = del - ištrinti failą;
mkdir = mkdir - sukurti katalogą;
pwd - rodyti dabartinį katalogą.

Atminkite – didelis „A“ nebėra lygus mažajam „a“, simbolis \ dabar turi būti pakeistas /. „Cygwin“ komanda cd / nuves jus į katalogą, kuriame yra bin, usr ir kt. „Unix“ nėra nieko aukščiau /, tačiau „Cygwin“, norėdami keliauti per „Windows“ skaidinius, galite naudoti komandą cd //c/ (cd //d/MyDir ir kt.).

Viena iš patogiausių „Bash“ funkcijų yra automatinis užbaigimas. Sukurkime kelis failus naudodami cat komandą:

cat > first_file ENTER

įveskite ką nors, tada Ctrl-C,

ir tas pats kitam failui:

cat > second_file ENTER.

Įsitikinkite, kad failai yra:

Dabar įveskite bet kurią komandą, pavyzdžiui, ls, ir pirmąją pirmojo failo raidę. Paspauskite TAB. Bash pridės patį failo pavadinimą. Jei failai prasideda taip pat, pvz., file_one ir file_two, „Bash“ pridės tik failą_ ir lauks, kol įvesite kitą raidę, kad ją išaiškintumėte.

Keli kai kurių paslaugų naudojimo pavyzdžiai.

Tarkime, kad turite tekstinis failas in.txt. Jame esančių žodžių skaičių galite suskaičiuoti taip:

Eilučių skaičius:

Raskite eilutes, kuriose yra Larry simbolių seka:

grep "Larry" in.txt

Padalinkite eilutes į žodžius, tarpus pakeiskite eilutės pabaigos simboliais:

katė in.txt | gawk "gsub(" +","\n")"

Komanda gawk "gsub(" +","\n")" reiškia pakeisti vieną arba daugiau erdvių(" +") iki eilutės pabaigos simbolio ("\n").

Atlikite tą patį, bet su galimybe patogiai žiūrėti (PageUp, PageDown, exit - q)

katė in.txt | gawk "gsub(" +","\n")" | mažiau

Rūšiuoti eilutes (žodžius):

katė in.txt | gawk "gsub(" +","\n")" | rūšiuoti | mažiau

Pašalinti identiškas eilutes (žodžius):

katė in.txt | gawk "gsub(" +","\n")" | rūšiuoti | unikalus | mažiau

katė in.txt | gawk "gsub(" +","\n")" | rūšiuoti | unikalus | wc -l

Pašalinkite identiškas eilutes (žodžius), suskaičiuodami jų skaičių:

katė in.txt | gawk "gsub(" +","\n")" | rūšiuoti | unikalus skaičius | mažiau

Rūšiuokite dar kartą, taip gaudami teksto dažnio žodyną:

katė in.txt | gawk "gsub(" +","\n")" | rūšiuoti | unikalus skaičius | rūšiuoti -r | mažiau

Tas pats, kai rezultatai išvedami į tekstinį failą:

katė in.txt | gawk "gsub(" +","\n")" | rūšiuoti | unikalus skaičius | Rūšiuoti -r > out.txt

Tas pats, kai tarpiniai rezultatai išsaugoti faile intermediate.txt:

katė in.txt | gawk "gsub(" +","\n")" | teeintermediate.txt | rūšiuoti | unikalus skaičius | rūšiuoti -r | mažiau

Dabar, naudodami „Bash“ galią, galite pakartoti šią komandą keliems failams. Įveskite scenarijų tiesiai į konsolę eidami į nauja linija kaip ir atspausdinta straipsnyje, Bash supras, kad komanda nebaigta ir pakeis raginimą į ">":

*.txt failo; daryti

katė $failas | gawk "gsub(" +","\n")" | rūšiuoti | unikalus skaičius | rūšiuoti -r > $failas.out

Kaip šitas. Paprastos problemos – paprasti sprendimai.

Norėdami sužinoti, kaip veikia konkreti komanda, galite ją paleisti jungikliu --help arba naudoti komandą man (rankinė) - man awk, man grep. Galite išeiti iš vyro naudodami q.

KAS DAR YRA CYGWIN

Kompiliatorius

Paprasta (žmonės sako – 1 dienos mokymas) teksto apdorojimo programavimo kalba, viena iš Perlo protėvių

Srauto redaktorius

Analizatoriaus generatorius C

Analizatoriaus generatorius C

Programavimo kalba. Tiesą sakant, jis nėra tiesiogiai susijęs su „Gnu“ komunalinėmis paslaugomis, kurį kurį laiką palaikė „Sun“ korporacija. Galite įrašyti cd /usr/share/tk8.0/demos ir paleisti programos valdiklį -./widget. Pamatysite Tk, Tcl plėtinio, skirto kurti GUI, galimybes.

Archyvuotojas

Galingas archyvatorius

Failų palyginimo programa

Ir daug daugiau. Tiesiog eikite į šiukšliadėžę ir pažiūrėkite, ką ten turite. Paketo depozitus galite rasti adresu http://www.hirmke.de/software/develop/gnuwin32/cygwin/porters/Hirmke_Michael/GNUWin32-contents.html. Taip pat Cygnus svetainėje http://sources.redhat.com/cygwin/ yra daug informacijos ir nuorodų šia tema.

Kaip nustatyti CYGWIN

Pirma, jums nereikia paleisti „Bash“, jei jus gąsdina konsolė. Galite naudoti visas programas iš Far, Windows Commander ir kt., tereikia nurodyti kelią į bin katalogą. „Windows 9x“ tai atliekama autoexec.bat faile, NT – Mano kompiuteris / Ypatybės / Aplinka, kad aplinkos kintamasis PATH prie šiukšliadėžės turi pridėti takelį.

Daugiau patogus darbas„Bash“ patariu atlikti šiuos veiksmus: jei jūsų Cygwin katalogai yra c:\cygwin, sukurkite katalogą c:\cygwin\root (mkdir /root) ir pridėkite eilutę prie cygwin.bat failo, esančio c:\cygwin:

HOME=d:\cygwin\root

Šakniniame kataloge turėtumėte sukurti 2 failus, prasidedančius tašku: .inputrc ir .bashrc. Abu failus paleidžia Bash, .inputrc yra atsakingas už tai, kad visi raktai veiktų tinkamai, o .bashrc yra įvairios informacijos. Kaip pavyzdį pateiksiu savo .bashrc:

eksportuoti PS1="\w > "

eksportuoti PATH=".:$PATH"

slapyvardis ls="ls --color"

slapyvardis untar="tar xvf"

echo Sveiki atvykę į CygWin!

Pirmoje eilutėje nurodomas Bash kelias. Taip Unix daro su visais vertėjais. Pavyzdžiui, jei turite hello.pl scenarijų Perl, o pats perl yra /usr/bin, pirmoje eilutėje galite įrašyti:

ir paleiskite taip:

Tokiu būdu galite paleisti programas nesirūpindami, kuo jos parašytos.

PS1 yra kintamasis, kuriame saugomas „Bash“ raginimas, kvietimas dirbti, kaip jis dar vadinamas. \w yra dabartinis katalogas.

Pridėję tai prie PATH, galite tai padaryti taip, kaip „Windows“ vartotojai yra įpratę tai daryti:

Tada aš naudoju sinonimus arba slapyvardžius slapyvardis ls="ls" komanda --color" Aš išsprendžiu šią problemą. Dabar ls reiškia ls --color. Nebūtina naudoti to paties komandos pavadinimo, galite atlikti ll="ls --color" - ir naudoti new ll komanda maždaug taip darau kurdama komandą untar išpakuoti tar archyvus, užuot kiekvieną kartą įvedus tar xvf, taip pat galite įdėti vamzdžius (vamzdžius, vamzdžius) į slapyvardį: alias sort_un_sort=" sort | unikalus skaičius | Rūšiuoti -r ".

Tiesą sakant, galimybės čia įrengti darbo vietą yra neribotos, o mano pavyzdžiai yra primityvūs ir paprasti. Taip pat yra funkcijų, interaktyvių komandų .bashrc, funkcijų, paleidžiamų iš eilutės...

Tikiuosi, kad jus įkvėps eksperimentuoti su Cygwin. Savo komentarus siųskite adresu

Dalintis