Cygwin installeren en configureren voor beginners. Git op Windows installeren vanuit Cygwin-pakketten. Python-pakketten installeren met pip

Dit artikel zal nuttig zijn voor beginnende Cygwin-gebruikers. Om te beginnen moeten we eerst een eenvoudige vraag beantwoorden. Wat is Cygwin? Cygwin is een UNIX-achtige omgeving en interface opdrachtregel Voor Microsoft Windows. IN Microsoft-systeem Windows al er is een vergelijkbare cmd-interface. U kunt de opdrachtregel openen met de Win+R-toetscombinatie. Maar vaak het meeste Windows-bediening gebruikers moeten dit handmatig doen. Anderzijds Linux-kant de gebruiker heeft lang geleden een bash-script geschreven en zit bier te drinken aan de zijlijn van de geautomatiseerde workflow.

Dus wat weerhoudt u ervan dit op Windows te doen? Dat klopt, er staat absoluut niets tussen. Maar hiervoor hebben we nodig aanvullende programma's en bibliotheken. Cygwin breidt de mogelijkheden van de standaard Windows-opdrachtregel uit, waardoor u bepaalde processen kunt automatiseren en programma's kunt ontwikkelen voor Linux en andere systemen.

Het Cygwin-programma kan worden gedownload van de officiële website: Link naar de 32-bits versie van het programma en Link naar de 64-bits versie van het programma.

Kiezen de vereiste versie, download en voer respectievelijk het uitvoerende bestand setup-x86.exe en setup-x86_64.exe uit.

Installatievenster voor de 64-bits versie van het programma


Venster voor het selecteren van de installatiemethode


Pakketselectievenster

Het installatievenster voor de 32-bits versie van het programma ziet er precies hetzelfde uit als de 64-bits versie. De volgende stap is het selectievenster. Waar u het programma kunt installeren of downloaden. Er zijn in totaal drie opties. Eerste optie Installeren vanaf Internet (gedownloade bestanden worden bewaard voor toekomstig hergebruik) installatie vanaf internet en gedownloade bestanden worden bewaard tot de volgende keer hergebruiken. De tweede optie is Downloaden zonder installatie. Derde optie Installeren vanaf lokaal Directory-installatie uit de lokale map. Omdat We hebben geen lokale kopie en we moeten deze installeren, dus selecteren we de eerste optie. In het volgende venster kunt u het installatiepad selecteren. Ik raad aan om te kiezen systeem schijf Mijn Cygwin-installatiepad is bijvoorbeeld C:\cygwin64. In het volgende venster kunt u het pad selecteren waar ze zullen worden opgeslagen. tijdelijke bestanden die tijdens het installatieproces wordt gedownload. Voor mij is het C:\cygwin64\package. Vervolgens moet u kiezen of u via een proxy of rechtstreeks wilt downloaden. De volgende stap is het selecteren van een downloadrepository, selecteer degene die je tegenkomt of de standaardrepository en klik op Volgende. Nadat u op de knop hebt geklikt, begint het proces van het downloaden van de belangrijkste configuraties. Vervolgens kunt u kiezen wat u wilt installeren. Om een ​​pakket te selecteren, klikt u op Overslaan naast de pakketnaam. Lijst met pakketten die nuttig voor u zullen zijn:

  • gcc-core (onder Devel)
  • gcc-g++ (in de sectie Ontwikkelen)
  • maken (in de sectie Ontwikkelen)
  • cmake (in de sectie Ontwikkelen)
  • automake (in de sectie Ontwikkelen)
  • wget (in de websectie)
  • libiconv (in de secties Devel en Libs)
  • openssh (in de Net-sectie)
  • nano (in de sectie Editors)
  • bash (uit de sectie Basis)
  • base-cygwin (uit de sectie Basis)
  • base-bestanden (uit de Base-sectie)
  • cygwin (uit de basissectie)
  • bestand (uit de sectie Basis)
  • gzip (uit de sectie Basis)
  • login (vanuit de Basissectie)
  • muntachtig (uit de basissectie)
  • openssl (uit de sectie Basis)
  • rennen (vanuit de basissectie)
  • teer (uit de sectie Basis)
  • vim-minimaal (uit de sectie Basis)
  • cron (uit de beheerderssectie)
  • afsluiten (vanuit het beheerdersgedeelte)
  • git (alle pakketten uit de Devel-sectie)

Ik vond de achtergrondkleur of het ingebouwde lettertype en de tekstkleur niet mooi, dus heb ik deze aangepast. Met deze woorden sluit ik dit artikel af.

Heb je ooit de opdrachtregel moeten gebruiken na Linux? Windows-tekenreeks? Voor mij wel. Zeer ongebruikelijk. Veel teams heten anders. Het equivalent van ls in Windows is bijvoorbeeld dir. De lokale tolk heeft een andere stijl van het overbrengen van argumenten. En veel van de mogelijkheden die Linux-hulpprogramma's bieden, zijn er eenvoudigweg niet. Hoe kan ik een soortgelijke krijgen? Linux-omgeving bij ramen? Dit kan gedaan worden door Cygwin te installeren.

Het gebruikte systeem leren kennen

Ten eerste installeert cygwin standaard zijn eigen terminalemulator, wat handiger is om mee te werken dan de Windows-opdrachtregel.

Dit is waar we onze eerste problemen hebben. Zoals je kunt zien, Windows-hulpprogramma's, inclusief cmd.exe, drukt tekst af in oem-866, en de cygwin-emulator leest tekst in utf-8. Als u de codering overschakelt naar de 866-codepagina, zijn de gevolgen van deze actie nog erger.


cygwin interpreteerde de Russische naam in Unicode-codering, als een string in 866-codering en uiteindelijk besloten om een ​​nieuwe map /home/╨Ф╨╝╨╕╤В╤А╨╕╨╣ te maken. Het is dus beter om alles te laten zoals het was en, indien mogelijk, genoegen te nemen met cygwin-hulpprogramma's. Als u een opdrachtshell moet uitvoeren zonder terminalemulator, voert u run uit batchbestand Cygwin.bat.
IN in dit geval, cygwin wordt geïnstalleerd in de map C:\cygwin64\. Het cygpath-hulpprogramma helpt ons erachter te komen hoe paden worden geconverteerd van Unix-pad naar Windows-pad.
$ cygpath -w `pwd`
C:\cygwin64\home\Dmitry

$ cygpad -w /
C:\cygwin64

$cygpad "C:\cygwin64"
/

$ cygpath "C:\cygwin64\home\Dmitry"
/home/Dmitri
Hoe kan ik toegang krijgen tot station C: als alle paden zijn vertaald naar C:\cygwin64\.
Het is eenvoudig. De map /cygdrive bevat koppelpunten die qua naam overeenkomen met Windows-volumes.
$cygpad "C:\"
/cygdrive/c

$ cygpath -w /cygdrive/c/somedir
C:\somdir
Cygpath vertaalt ook met succes oproepen naar dit mountpunt naar Windows-paden.
Trouwens, het bestaan ​​van zo'n hulpprogramma als cygpath laat zien waarom je met cygwin, indien mogelijk, alleen de hulpprogramma's ervan zou moeten gebruiken. Als u een Java VM moet uitvoeren en deze alleen Windows-paden begrijpt, moet u het cygwin-pad bij het opstarten converteren:
$ java-jar`cygpath -w "/opt/some.jar"`
Hieruit volgt dat veel scripts van Linux niet zomaar op Windows kunnen worden uitgevoerd. Soms moet je proberen het script over te dragen. Bovendien zullen niet alle opdrachtregelhulpprogramma's werken.

Meer opties

SSH

U kunt een OpenSSH-client en -server installeren - hiermee kunt u deze verkrijgen toegang op afstand naar een bash-shell, vanaf een andere computer of zelfs vanaf een telefoon, bijvoorbeeld met behulp van JuiceSSH. U krijgt ook externe toegang tot uw bestanden met behulp van het SFTP-protocol (hoewel het in Windows gemakkelijker is om een ​​map te delen die toegankelijk is via SMB).

Programmering

De kit bevat bekende compilers zoals Clang of GCC, tolken Python-talen, Perl, PHP, Ruby, enz. U kunt POSIX-compatibele programma's voor Windows bouwen.

Teksteditors

Interactieve editors - vim, nano, emacs.
Niet-interactieve editors geschikt voor gebruik in scripts - sed, awk.

Kortom

Als je mist Linux-mogelijkheden in Windows is het misschien de moeite waard om dit ding zelf te installeren.

Origineel: Linux-programma's compileren onder Windows met Cygwin
Geplaatst door Gary Sims
Datum van publicatie: 12 juni 2014
Vertaling: N. Romodanov
Vertaaldatum: juli 2014

Windows en Linux zijn twee zeer verschillende systemen en daarom is het vaak moeilijk om programma's die voor een van hen zijn geschreven, over te zetten naar een ander systeem, vooral als het gaat om programma's met grafische interface. Hoewel er veel verschillende platformonafhankelijke bibliotheken en SDK's beschikbaar zijn, zijn native programma's die niet zijn geschreven met het oog op draagbaarheid moeilijk over te zetten.

Als het gaat om het compileren en uitvoeren van programma's die voor Linux op Windows zijn geschreven, is er een oplossing die bekend staat als Cygwin. Het Cygwin-project is een verzameling van de meest voorkomende tools en compilers (inclusief Bash-schaal en de GNU-compilerketen) voor Windows. Het bevat ook een bibliotheek waarmee een compatibiliteitslaag is geïmplementeerd, zodat u programma's kunt compileren die oproepen API's, Linux-specifiek. Cygwin is geen emulator of virtuele machine, en het staat binair niet toe Linux-bestanden werken op Windows zonder ze eerst opnieuw te compileren.

Downloaden bronbestanden met behulp van de wget-opdracht:

Wget http://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-6.7.tar.gz

Pak nu het archiefbestand uit:

Tar -zxf html-xml-utils-6.7.tar.gz

Cd html-xml-utils-6.7

De bronbestanden bevinden zich nu in de map html-xml-utils-6.7. Ga naar deze map:

Cd html-xml-utils-6.7

Voordat de bestanden worden gebouwd, moet u het configuratiescript uitvoeren dat u wilt genereren Maakbestand(build-instructiesbestand) dat bedoeld is voor een bepaalde bouwomgeving. Dit is een veel voorkomende bouwstap op Linux (en Cygwin) voor het bouwen van pakketten vanaf de broncode.

./configureren

Zodra de configuratiebewerking is voltooid, kunt u beginnen met bouwen met het make-commando:

De build is niet voltooid vanwege een fout. Ik wist niet wat ik nu moest doen. Ik zou naar een ander project kunnen gaan of het HTML-XML-utils-pakket kunnen bestrijden. Ik heb voor het laatste gekozen omdat het laat zien dat niet alles soepel verloopt als je probeert te compileren Linux-programma's onder Cygwin. De oplossing voor dit specifieke probleem is eenvoudig. Het foutbericht geeft aan dat de linker de iconv-bibliotheek niet kan vinden. Een snelle blik op de linkopdracht laat zien dat deze bibliotheek niet is gespecificeerd. Een snelle en vuile oplossing is om de opdracht handmatig uit te voeren en de linker te instrueren om de libconv-bibliotheek te gebruiken. De "juiste" manier om deze fout op te lossen is door de Makefile enz. te analyseren om erachter te komen waarom de build mislukt.


Voer de volgende opdracht uit, eindigend met "-liconv":

Gcc -g -O2 -o hxindex.exe hxindex.o scan.o html.o openurl.o url.o heap.o class.o errexit.o connectsock.o types.o tree.o genid.o dtd.o headers .o dict.o fopencookie.o -liconv

Zodra hxindex.exe is gebouwd, kunt u doorgaan met de rest van de build door make opnieuw uit te voeren. Wanneer de opdracht make wordt uitgevoerd, wordt gecontroleerd wat er is gebouwd en wat niet, waarna het bouwproces wordt voortgezet. Omdat we het pakket hxindex.exe handmatig hebben gebouwd, wordt met de opdracht make eenvoudigweg het volgende overgedragen binair bestand aan deze lijst.

Wanneer de make-opdracht is voltooid, hebt u alle .exe-bestanden in de map html-xml-utils-6.7.

Als je dat hebt met behulp van Cygwin Als u problemen ondervindt, kunt u kijken bij veelgestelde vragen Veelgestelde vragen en documentatie. Of u kunt contact opnemen met mailinglijsten. Als u problemen ondervindt bij het volgen van de bovenstaande stappen, deel dit dan in de reacties.

Dit artikel is bedoeld voor twee
soorten mensen: voor degenen die het niet begrijpen
Linux, maar ik kan het niet op mijn computer installeren
(er zijn verschillende redenen), of voor degenen die dat wel doen
weet een beetje over pinguïns 🙂 en zou het niet erg vinden
leer ze kennen op een "neutrale"
territorium, dat wil zeggen op Win98/NT.

De site heeft Cygwin al als de beste beschreven
haal de Linux-emulator eruit, maar dat werd niet gezegd
niets over installatie, configuratie en bugs van Cygwin.
Hier zal ik je erover vertellen :) Eigenlijk, als
Nu ik erover nadenk, Cygwin is helemaal geen emulator, maar
Zojuist Linux-distributie, geschreven voor Win32 😉

Stop met rondzwerven... Laten we naar http://www.cygwin.com gaan,
Vanaf daar nemen we het installatieprogramma setup.exe. Aan haar
we zullen reeds voorgecompileerde versies ophalen
binaire bestanden (in exe-extensie), herinner je je rpm?
😉 vanaf de website van de ontwikkelaar of vanaf een mirror.
Ik BEVEEL dit programma alleen aan om te downloaden
We zullen deze bestanden handmatig installeren, omdat Als
u installeert met setup.exe, gcc werkt niet - fig
weet waarom... Misschien hebben de ontwikkelaars er al rekening mee gehouden
Het is een bug, maar ik weet er nog niets van...

Download dus alle belangrijke binaire bestanden (sources
je hoeft niet te downloaden), en verschillende
extra - wie zou wget, lynx,
BitchX, Python :) Maar je hoeft Perl niet te downloaden... dat heb ik gedaan
er was ActivePerl - een geavanceerde Perl-emulator. Downloaden
beschikbaar op http://www.acriveperl.com.
Ik heb geen enkele fout waargenomen :) (Ik zal je vertellen hoe ik
implementeerde het in cygwin).

Instellingen

En in het "groep"-bestand in dezelfde map "etc":
wortel:x:0:wortel

Als u uw wachtwoord wilt coderen, en
niet "wachtwoord" zoals ik deed in mijn voorbeeld,
schrijf een Perl-script

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

Waar, SA - salta, dat zal worden gebruikt voor codering
wachtwoord... je kunt het willekeurig maken, maar
Dit artikel zal off-topic zijn.

Bewerk nu het bestand "c:\cygwin\cygnus.bat" -
daarin veranderen we PATH, simpelweg door het pad te veranderen
emulator en het pad naar het login.exe-bestand. Laten we lanceren
bestand.

Laten we inloggen: in mijn voorbeeld "root": "wachtwoord".
Dus we kwamen in de emulator zelf. Ik niet
Ik vond de invoerprompt leuk. Laten we het veranderen
- variabele PS1. Open (maak) het bestand "c:\cygwin\etc\profile"
en schrijf daar:

# /etc/profiel
PROFILE_LOADED=1
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/local/sbin:$PATH"
schakel DOSDRIVE uit
DOSDIR uitschakelen
schakel TMPDIR uit
schakel TMP uit
export HOSTNAAM=test
PS1="[\u@$HOSTNAAM \W]# "
LOGNAAM=$USER
export PATH PS1 GEBRUIKERSLOGNAAM

Hier... Dan loggen we opnieuw in en staat alles aan
plaats en mooi :) De uitnodiging zal zijn: # - standaard, Linux :)

Dat is alles, de eerste installatie is voltooid.
Laten we verder gaan met het installeren van services :)

De standaardlevering omvat thuja hucha
diensten. Je moet ze als volgt uitvoeren:
/usr/sbin/inetd -R /usr/sbin/in.ftpd (voorbeeld voor ftpd).

Het is beter om SSHD zelf te installeren - het werkte met een knal en
Ik rijd vanaf SecureCRT, legaal op 127.0.0.1 -
heel ander uiterlijk :)

Wat het werken met TCP/IP betreft, heb ik geen nadelen
Ik heb het gemerkt :) Alles is verbonden en werkt als
nodig…

En nu enkele tips:

1) Toegang tot ALLE schijven is open. Dus wees
voorzichtig. Station d: bevindt zich bijvoorbeeld hier -
"/cygdrive/d".

2) Wat betreft Perl: maak een symlink naar het bestand
Perl.exe, bijvoorbeeld, dus "ln -s /cygdrive/c/perl/bin/perl.exe
/usr/bin/perl"

3) Als je dat om wat voor reden dan ook niet hebt
Linux-applicatie is geïnstalleerd -
repareer gewoon de C-code. Misschien
zal lukken.. (zo heb ik het samengesteld
micq).

4) Volg Cygwin-updates op de website http://www.cygwin.com
- binaire bestanden worden regelmatig bijgewerkt.

Vragen? Schrijf mij per e-mail - ik zal het proberen
hulp...

Wat is CYGWIN Na het artikel van Chris Kaspersky “How to make Unix from Windows” in CG No. 3 van 23 januari 2001 wilde ik je graag wat meer vertellen over Windows-gebruikers over wat Cygwin is. Ik gebruik het al een hele tijd en kan niet langer effectief werken in Windows zonder dat Cygwin is geïnstalleerd.

Het woord Cygwin bestaat uit twee componenten: Cygnus is de naam van het bedrijf en Windows, maar het zou verkeerd zijn om te zeggen dat alles in Cygwin is geschreven door de jongens van Cygnus. Cygwin is een port van Gnu-hulpprogramma's voor Windows, en Gnu (www.gnu.org) is een project van de Free Software(Vrij Software Stichting, of simpelweg FSF), dat tot doel heeft een Unix-systeem zonder winstoogmerk te creëren dat aan niemand individueel toebehoort en vrij is van licenties die de vrijheid van distributie en wijziging van software beperken. Als onderdeel van dit project, bijna allemaal standaard nutsvoorzieningen UNIX. De drie belangrijkste bijdragen van de FSF zijn gcc (de Gnu C Compiler of Gnu Compiler Collection), Bash (de Bourne Again Shell) en Emacs. Zonder gcc zou er geen Linux zijn, en Bash is standaard commandoshell voor veel moderne Unix-systemen. Mensen met ervaring zeggen dat het eerste wat systeembeheerders doen na het installeren van commerciële Unixes het opnieuw installeren van Gnu-hulpprogramma's is. GNU en FSF zelf zijn in principe een uitgebreid onderwerp en verdienen een afzonderlijk gedetailleerd artikel.

De hele set Gnu-hulpprogramma's is een set kleine (meestal) programma's die de meeste taken dekken die een gebruiker van een Unix-systeem (en niet alleen Unix) elke dag tegenkomt; elk dergelijk programma voert één taak uit, en voert deze goed uit; Deze programma's kunnen vervolgens worden gecombineerd om verschillende problemen op te lossen.

Pogingen om Gnu over te zetten naar anderen zijn dat niet Unix-platforms werden meer dan eens uitgevoerd, wat overigens hun populariteit aangeeft.

Het is de moeite waard om het project te vermelden om hulpprogramma's naar DOS te porten - DJGPP. Ga naar http://www.delorie.com/djgpp/, het is echt interessant.

Cygnus compileerde niet elk hulpprogramma afzonderlijk en moest elke keer dezelfde problemen oplossen; in plaats daarvan werd er een soort "spacer" geschreven tussen GNU-hulpprogramma's en besturingssysteem. Deze shim - cygwin1.dll (1 - versienummer) - biedt emulatie systeemoproepen UNIX, waarmee u kunt compileren en uitvoeren Unix-programma's geen of bijna geen verandering broncode. Kortom, deze dll is Cygwin zelf, en al het andere is dat softwarepakketten GNU gecompileerd om met Cygwin te werken.

De aanwezigheid van gcc en bibliotheken maakt het mogelijk om het meeste te porten diverse toepassingen en maakt van Cygwin een volwaardig platform - je komt soms de uitdrukking "Cygwin-platform" tegen. Sinds de eerste bètaversies van Cygwin verschillende mensen compileerden voor Cygwin wat ze voor Windows misten, en de standaard Cygwin-distributie groeide geleidelijk, onder meer dankzij deze zelfgemaakte compilaties. Tijdens de Beta 20-versie moest ik bijvoorbeeld de vim-editor afzonderlijk downloaden, maar nu wordt deze samen met de hele set geïnstalleerd.

Hoe je het allemaal installeert

Cygnus heeft een handig programma geschreven voor het beheren van pakketten, dat enigszins aan sommige doet denken soortgelijke programma's van Linux OS-distributies. De eerste stap is om het te downloaden van de Cygnus-website http://sources.redhat.com/cygwin/setup.exe. Door het te starten, kunt u downloaden standaard ingesteld pakketten van een van de vele spiegelservers, en u kunt dit selectief doen, waarbij u afzonderlijke pakketten overslaat.

Voor de toekomst - door dit programma later vanuit dezelfde map te starten, kunt u zien welke nieuwe pakketten zijn verschenen of welke nieuwe versies van bestaande pakketten er zijn.

Hetzelfde programma zal Cygwin voor u installeren en u opnieuw vragen om te beslissen wat u wel en niet wilt installeren. De installatie zal voor u mappen aanmaken die gebruikelijk zijn voor bestandshiërarchie Unix - bin, usr, sbin, enz., dus het is handig om ze allemaal in één map te plaatsen, zodat ze niet verward raken met uw Windows-mappen.

En hoe je het allemaal kunt gebruiken

Wanneer u Cygwin start, ziet u een consolevenster dat lijkt op een gewone Windows-console: command.com in Win9x of cmd.exe in NT. Maar nee! Je hebt een glorieuze afstammeling van Unix op Windows gelanceerd opdracht tolken, die command.com probeerde te imiteren met zijn BAT-bestanden. Bash en zijn grote broer zijn de lijm die samenbindt Unix-systeem, het kan met recht een programmeertaal worden genoemd, dat wil zeggen dat je erin kunt schrijven.

Verschillende basisopdrachten en hun equivalenten in Windows

ls = dir - bekijk de inhoud van de map;
cd = chdir - ga naar een andere map;
cp = kopiëren - kopieer een bestand;
mv = mv - bestand verplaatsen/hernoemen;
rm = del - verwijder bestand;
mkdir = mkdir - maak een map aan;
pwd - toon de huidige map.

Onthoud: de grote "A" is niet langer gelijk aan de kleine "a", het symbool \ moet nu worden vervangen door /. Het cd / commando in Cygwin brengt je naar de map waar bin, usr, etc. zich bevinden. In Unix is ​​er niets boven /, maar in Cygwin kun je, om door Windows-partities te reizen, het commando cd //c/ gebruiken (cd //d/MyDir, etc.).

Een van de handigste functies van Bash is automatisch aanvullen. Laten we creëren katten commando verschillende bestanden:

kat > eerste_bestand ENTER

typ iets en vervolgens Ctr-C,

en hetzelfde voor een ander bestand:

kat > tweede_bestand ENTER.

Zorg ervoor dat de bestanden bestaan:

Typ nu een willekeurige opdracht, bijvoorbeeld ls, en de eerste letter van het eerste bestand. Druk op TAB. Bash zal de bestandsnaam zelf toevoegen. Als de bestanden hetzelfde beginnen, zoals file_one en file_two, zal Bash alleen file_ toevoegen en wachten tot je nog een letter typt om de betekenis ondubbelzinnig te maken.

Verschillende voorbeelden van het gebruik van enkele hulpprogramma's.

Laten we zeggen dat je dat hebt gedaan tekstbestand in.txt. Je kunt het aantal woorden erin als volgt tellen:

Aantal regels:

Zoek regels met de tekenreeks Larry:

grep "Larry" in.txt

Splits regels in woorden en vervang spaties door tekens aan het einde van de regel:

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

Het gawk-commando "gsub(" +", "\n")" betekent: vervang één of meer ruimtes("+") tot het teken aan het einde van de regel ("\n").

Doe hetzelfde, maar dan met de optie handig bekijken(PageUp, PageDown, afsluiten - q)

kat in.txt | gaap "gsub(" +","\n)" | minder

Tekenreeksen (woorden) sorteren:

kat in.txt | gaap "gsub(" +","\n)" | sorteer | minder

Verwijder identieke regels (woorden):

kat in.txt | gaap "gsub(" +","\n)" | sorteer | uniek | minder

kat in.txt | gaap "gsub(" +","\n)" | sorteer | uniek | wc -l

Verwijder identieke regels (woorden) en tel hun aantal:

kat in.txt | gaap "gsub(" +","\n)" | sorteer | uniq --count | minder

Sorteer opnieuw en verkrijg zo een frequentiewoordenboek van de tekst:

kat in.txt | gaap "gsub(" +","\n)" | sorteer | uniq --count | sorteer -r | minder

Hetzelfde, met de resultaten uitgevoerd naar een tekstbestand:

kat in.txt | gaap "gsub(" +","\n)" | sorteer | uniq --count | sorteer -r > uit.txt

Hetzelfde met sparen tussenresultaten in het tussenliggende.txt-bestand:

kat in.txt | gaap "gsub(" +","\n)" | teeintermediate.txt | sorteer | uniq --count | sorteer -r | minder

Met behulp van de kracht van Bash kunt u deze opdracht nu voor meerdere bestanden herhalen. Typ het script rechtstreeks in de console door naar te gaan nieuwe lijn net zoals het in het artikel wordt afgedrukt, zal Bash begrijpen dat de opdracht nog niet is voltooid en zal de prompt veranderen in ">":

voor bestand in *.txt; Doen

kat $bestand | gaap "gsub(" +","\n)" | sorteer | uniq --count | sorteer -r > $file.out

Zoals dit. Eenvoudige problemen - eenvoudige oplossingen.

Om erachter te komen hoe een bepaald commando werkt, kun je het uitvoeren met de schakeloptie --help of het man (handmatige) commando gebruiken - man awk, man grep. Je kunt man afsluiten met q.

WAT ZIT ER NOG IN CYGWIN

Compiler

Een eenvoudige (mensen zeggen - 1 dag training) programmeertaal voor tekstverwerking, een van de voorouders van Perl

Stream-editor

Parsergenerator in C

Parsergenerator in C

Programmeertaal. Eigenlijk is het niet direct gerelateerd aan Gnu-hulpprogramma's; het werd enige tijd ondersteund door de Sun Corporation. U kunt cd /usr/share/tk8.0/demos uitvoeren en de programmawidget -./widget uitvoeren. U zult een demonstratie zien van de mogelijkheden van Tk, een Tcl-extensie voor het maken van GUI's.

Archiver

Krachtige archiveringsfunctie

Programma voor het vergelijken van bestanden

En nog veel meer. Ga gewoon naar de prullenbak en kijk wat je daar hebt. Pakketdeposito's zijn te vinden op http://www.hirmke.de/software/develop/gnuwin32/cygwin/porters/Hirmke_Michael/GNUWin32-contents.html. Er is ook veel informatie en links over dit onderwerp op de Cygnus-website http://sources.redhat.com/cygwin/.

Hoe CYGWIN in te stellen

Ten eerste hoef je Bash niet te gebruiken als je geïntimideerd wordt door de console. U kunt alle programma's van Far, Windows Commander, enz. gebruiken, u hoeft alleen maar het pad naar de bin-map op te geven. In Windows 9x gebeurt dit in het bestand autoexec.bat, in NT in Deze computer / Eigenschappen / Omgeving omgevingsvariabele PATH moet een track aan de prullenbak toevoegen.

Voor meer comfortabel werk in Bash raad ik je aan het volgende te doen: als je Cygwin-mappen zich in c:\cygwin bevinden, maak dan een map c:\cygwin\root (mkdir /root) en voeg een regel toe aan het cygwin.bat-bestand dat zich in c:\cygwin:

HOME=d:\cygwin\root

IN hoofdmappen je zou 2 bestanden moeten maken die beginnen met een punt: .inputrc en .bashrc. Beide bestanden worden bij het opstarten door Bash uitgevoerd, .inputrc is ervoor verantwoordelijk dat alle sleutels correct werken en .bashrc bevat diverse informatie. Als voorbeeld geef ik mijn .bashrc:

exporteer PS1="\w > "

export PATH=".:$PATH"

alias ls = "ls --kleur"

alias untar = "tar xvf"

echo Welkom bij CygWin!

De eerste regel specificeert het Bash-pad. Dit is wat Unix doet met alle tolken. Als u bijvoorbeeld een hello.pl-script in Perl hebt, en de perl zelf bevindt zich in /usr/bin, dan kunt u op de eerste regel schrijven:

en voer het als volgt uit:

Op deze manier kunt u programma's uitvoeren zonder dat u zich zorgen hoeft te maken over waarin ze zijn geschreven.

PS1 is een variabele die de Bash-prompt opslaat, een uitnodiging om te werken, zoals deze ook wordt genoemd. \w is de huidige map.

Nadat je dit aan PATH hebt toegevoegd, kun je het doen zoals Windows-gebruikers gewend zijn:

Vervolgens gebruik ik synoniemen of aliassen. Het ls-commando kleurt standaard de uitvoer niet, afhankelijk van wat de bestanden zijn; je moet het uitvoeren met de --color-schakelaar alias ls = "ls" command --color" Ik los dit probleem op. Nu betekent ls ls --color. Het is niet nodig om dezelfde commandonaam te gebruiken, je kunt ll="ls --color" doen - en de new ll-opdracht. Dit is ongeveer wat ik doe bij het maken van de opdracht untar voor het uitpakken teer-archieven, in plaats van elke keer tar xvf te typen. Je kunt ook buizen (buizen, transportbanden) plaatsen onder de alias: alias sort_un_sort=" sort | uniq --count | sort -r ".

In werkelijkheid zijn de mogelijkheden om hier een werkplek te regelen onbeperkt, en mijn voorbeelden zijn primitief en eenvoudig. Er zijn ook functies, interactieve opdrachten in .bashrc, functies die vanaf de prompt worden uitgevoerd...

Ik hoop dat je geïnspireerd bent om met Cygwin te experimenteren. Stuur uw opmerkingen naar