Wenn Sie noch nie von Cygwin gehört haben, werden Sie sich freuen. Ich verwende es seit Jahren, um meine Umgebungen so zu homogenisieren, dass ich einmal Skripte schreiben und sie überall für konsistente Automatisierungslösungen bereitstellen kann. Es ist mühsam, Bash-Skripte zu schreiben, die unter Linux, auf Macs und auf kommerziellen Unices funktionieren, und dann kopfüber in PowerShell und Batch-Dateien springen zu müssen, um zu versuchen, den Automatisierungsgrad zu erreichen, den ich mit einigen Bash-Skripten erreichen kann. P>
Laut Website ist Cygwin:
- Eine große Sammlung von GNU- und Open-Source-Tools, die ähnliche Funktionen wie eine Linux-Distribution unter Windows bieten.
- Eine DLL (cygwin1.dll), die umfangreiche POSIX-API-Funktionalität bereitstellt.
Und es ist nicht:
- Eine Möglichkeit, native Linux-Apps unter Windows auszuführen. Sie müssen Ihre Anwendung von der Quelle neu erstellen wenn es unter Windows laufen soll.
- Eine Möglichkeit, native Windows-Apps auf magische Weise auf UNIX®-Funktionen wie Signale, ptys usw. aufmerksam zu machen. Auch hier müssen Sie Ihre Apps aus der Quelle erstellen wenn Sie die Cygwin-Funktionalität nutzen möchten.
Hinweis:Cygwin funktioniert gleichermaßen gut auf Windows-Desktops und auf Serversystemen.
Warum Cygwin?
Cygwin ist immer noch relevant, wenn Sie native *nix-Befehle auf der Windows-Plattform zur Verfügung haben möchten. Ja, ich kenne das Windows-Subsystem für Linux (WSL), aber Cygwin und WSL sind nicht dasselbe. Cygwin gibt Ihnen die Kraft von *nix-Befehlen in Ihrer nativen Windows-Umgebung. Es gibt keine Emulation, keine virtuelle Maschine und keine zusätzlichen Ebenen zwischen dem Betriebssystem und dieser Sammlung von Dienstprogrammen. Sie sind in der Tat authentische Open-Source-Befehle, die für die Windows-Plattform kompiliert wurden.
Installieren von Cygwin
Im Allgemeinen können Sie die Standardoption für jede Eingabeaufforderung übernehmen. Ich gebe Orientierung, wenn Entscheidungen getroffen werden müssen. Sie können Ihre eigene auswählen, aber ich habe festgestellt, dass diese Auswahl in meiner Umgebung und meiner Arbeitsweise am besten funktioniert.
Öffnen Sie einen Browser auf Ihrem Windows-System und verweisen Sie ihn auf die Cygwin-Website. Wählen Sie Install Cygwin by running setup-x86_64.exe aus Link zum Herunterladen der ausführbaren Setup-Datei. Führen Sie die ausführbare Datei aus, um mit der Installation zu beginnen, und klicken Sie auf Weiter im Cygwin-Setup Bildschirm.
Klicken Sie auf Installationstyp auswählen Wählen Sie auf dem Bildschirm den gewünschten Installationstyp aus. Für mich selbst wähle ich immer die Standardeinstellung, die Vom Internet installieren ist .
Klicken Sie auf Weiter um fortzufahren.
Wählen Sie aus, wo das Cygwin-Verzeichnis und alle seine unterstützenden Dateien und Binärdateien installiert werden sollen. Der Standardwert ist C:\cygwin64,
aber ich ändere es zu C:\cygwin
um mein zukünftiges Leben ein wenig glücklicher zu machen. Außerdem gestatte ich allen Benutzern den Zugriff auf Cygwin.
Klicken Sie auf Weiter um fortzufahren.
Geben Sie das Verzeichnis ein, in das Cygwin seine Dateien herunterladen soll. Ich benutze immer C:\Temp. Wenn Sie ein Verzeichnis auswählen, das nicht existiert, fordert Sie das Installationsprogramm auf, es zu erstellen.
Klicken Sie auf Weiter um fortzufahren.
Wählen Sie Ihren Internetverbindungstyp aus. Wenn Sie eine Art Proxy haben, geben Sie die Einstellung hier ein. Meins ist eine Direktverbindung. Wenn Sie es nicht wissen, versuchen Sie es direkt. Wenn das nicht funktioniert, überprüfen Sie Ihre Browserkonfiguration auf Proxy-Einstellungen.
Klicken Sie auf Weiter um fortzufahren.
Wählen Sie auf diesem Bildschirm eine Download-Site aus. Wählen Sie eine aus der Liste aus oder fügen Sie Ihre eigene hinzu. Ich wähle immer mirrors.xmission.com ohne logischen Grund – ich bin einfach lange dabei geblieben und es funktioniert. Ich gehe davon aus, dass jede der Auswahlen funktionieren wird.
Klicken Sie auf Weiter um fortzufahren.
[Das könnte Ihnen auch gefallen:So verbinden Sie ein Linux-System mit einer Active Directory-Domäne]
Pakete auswählen
Schließlich befinden Sie sich auf dem Paketauswahlbildschirm. Wenn Sie nichts auswählen und mit einer Standardinstallation fortfahren, erhalten Sie eine vollständige Ergänzung von *nix-Befehlen in C:\cygwin\bin
Verzeichnis. Sie sind zu zahlreich, um sie aufzulisten, aber es ist eine Liste von Standardbefehlen.
Ich schlage vor, dass Sie die verschiedenen Kategorien durchsehen und eine Auswahl treffen, die auf dem basiert, was Sie auf Ihren Linux-Systemen verwenden. Ich wähle im Allgemeinen OpenSSH, Bash, Bash-Completion, Python, Tk/Tcl und einige andere zufällige Anwendungen aus. Nachdem Sie Ihre Auswahl getroffen haben, klicken Sie auf Weiter um fortzufahren.
Überprüfen und bestätigen Sie Ihre Auswahl. Abhängigkeiten werden für Ihre Auswahl erfüllt, also keine Sorge. Klicken Sie auf Weiter um mit der Installation Ihrer ausgewählten Pakete zu beginnen.
Die Installation kann je nach Auswahl und Internetgeschwindigkeit einige Minuten bis fast eine Stunde dauern.
Der letzte Bildschirm benachrichtigt Sie, dass die Installation abgeschlossen ist, und fordert Sie auf, einige praktische Symbole zu erstellen. Ich erstelle immer die Icons. Klicken Sie auf Fertig stellen um den Installationsvorgang abzuschließen.
Einstellung der PATH-Variablen der Umgebung
Um die besten Ergebnisse zu erzielen, müssen Sie das Verzeichnis C:\cygwin\bin zu Ihrer PATH-Umgebungsvariablen hinzufügen. Um den System PATH so einzustellen, dass er Ihr Cygwin-bin-Verzeichnis enthält, suchen Sie nach "environment" und wählen Sie die Option Control Panel, Edit the system environment variables , wenn es erscheint. Wählen Sie Umgebungsvariablen aus in den Systemeigenschaften Bildschirm.
Auf den Umgebungsvariablen Wählen Sie auf dem Bildschirm Pfad aus aus den Systemvariablen und klicken Sie auf Bearbeiten... . Klicken Sie auf Neu. Geben Sie C:\cygwin\bin
ein in das Feld ein und klicken Sie auf OK wenn fertig. Klicken Sie auf OK auf den anderen Bildschirmen, um den Eintrag zu speichern und die Systemeigenschaften zu schließen Fenster.
Wenn Sie diese Systemumgebungsvariable festlegen, können Sie einen Cygwin-Befehl ausführen, ohne den vollständigen Pfad zur ausführbaren Datei anzugeben. Dies ist auch praktisch für das Scripting.
Skripthinweise
Jetzt, da Cygwin installiert ist und sich die Binärdateien in Ihrem Systempfad befinden, fragen Sie sich wahrscheinlich, wie Sie das zum Laufen bringen. Öffnen Sie zum Aufrufen von Bash ein CMD-Fenster und geben Sie bash <ENTER>
ein . Sie befinden sich jetzt in einer Bash-Shell, die genauso funktioniert wie Ihre Linux-Shell. Probieren Sie einige Befehle wie clear
aus , ls
, ls -la
, pwd
, und so weiter.
Es gibt einige Unterschiede, die für neue Benutzer frustrierend sein können, wenn Sie sich ihrer nicht bewusst sind. In Bash werden Sie feststellen, dass Ihre Laufwerke C:und D:als /cygdrive/c
gemountet sind und /cygdrive/d
, zum Beispiel. Also C:\Temp
Verzeichnis ist /cygdrive/c/temp
in Cygwin Bash.
Bekannte Verzeichnisse wie /
, /usr/bin
, und /usr/lib
existieren unter C:\cygwin
mit dem C:\cygwin
Verzeichnis als /
. Wenn Sie dieses Layout nicht verstehen, öffnen Sie eine separate CMD
Fenster und CD
in C:\cygwin
Verzeichnis und schauen Sie sich das Verzeichnis in beiden CMD
an und in Bash
.
Zuerst die CMD-Auflistung.
DIR C:\cygwin
Volume in drive C has no label.
Volume Serial Number is ACBE-2D0D
Directory of C:\cygwin
10/15/2020 06:58 AM <DIR> .
10/15/2020 06:58 AM <DIR> ..
10/15/2020 06:57 AM <DIR> bin
10/15/2020 06:58 AM 53,342 Cygwin-Terminal.ico
10/15/2020 06:57 AM 88 Cygwin.bat
10/15/2020 06:58 AM 157,097 Cygwin.ico
10/15/2020 06:57 AM <DIR> dev
10/15/2020 06:57 AM <DIR> etc
10/15/2020 06:56 AM <DIR> home
10/15/2020 06:57 AM <DIR> lib
10/15/2020 06:57 AM <DIR> sbin
10/15/2020 06:57 AM <DIR> tmp
10/15/2020 06:57 AM <DIR> usr
10/15/2020 06:57 AM <DIR> var
3 File(s) 210,527 bytes
11 Dir(s) 31,950,209,024 bytes free
Und die Bash-Auflistung.
ls /
Cygwin-Terminal.ico Cygwin.ico cygdrive etc lib sbin usr
Cygwin.bat bin dev home proc tmp var
Sie sehen also an diesen Anomalien, dass Bash unter Windows nicht zu 100 Prozent äquivalent zu *nix Bash ist. Einige Skripte werden direkt übersetzt, während andere fensterbasiert sein müssen. Das heißt, angepasst, um Pfadunterschiede, Mount-Unterschiede und einige Dateispeicherortunterschiede zu berücksichtigen. Ein wirklich cooler Aspekt der Hybridisierung Ihrer Windows-Umgebung ist, dass Sie auch Windows-Befehlszeilenbefehle verwenden können. Sie können sie ziemlich einfach in Ihre Skripte integrieren. Denken Sie daran, den vollständigen Pfad zur ausführbaren Datei im Cygwin-Format anzugeben (/cygdrive/c/windows/system32/blah.exe
).
[ Ein kostenloser Kurs für Sie:Virtualization and Infrastructure Migration Technical Overview. ]
Abschluss
Cygwin ist ein hervorragendes plattformübergreifendes Toolset, insbesondere für diejenigen unter Ihnen, die in einer heterogenen Umgebung arbeiten müssen, wie die meisten von uns. Ich kann nicht zählen, wie oft ich ls
eingegeben habe , oder ein anderer Linux-Befehl, in einem CMD-Fenster, nur damit es fehlschlägt. Cygwin bietet Ihnen die erweiterte Möglichkeit, ein Skript einmal zu schreiben und es mit geringfügigen Änderungen überall verwenden zu können. Stellen Sie sich die Möglichkeiten vor. Fügen Sie nun Ansible hinzu und stellen Sie sich erneut die Möglichkeiten vor. Um Ihre Zufriedenheit weiter zu steigern, können alle ausführbaren Dateien unter C:\cygwin\bin, die eine .exe-Dateierweiterung haben, auch in einem CMD-Fenster ausgeführt werden, ohne dass Sie sich in Bash befinden müssen. Interessant? Das dachte ich mir.