GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erstellen eines Linux-Windows-Hybridsystems mit Cygwin

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.


Linux
  1. Systemaufrufe unter Linux mit strace verstehen

  2. Befehl zum Herunterfahren von Linux (mit Beispielen)

  3. Untersuchen Sie einen kompromittierten Windows-Server

  4. Systemaufrufe in Windows und nativer API?

  5. So erhalten Sie Systemstatistiken mit node.js

Führen Sie Windows-Anwendungen unter Linux mit Crossover 15 aus

Linux-Verfügbarkeitsbefehl mit Beispielen

Erste Schritte mit dem Linux-Betriebssystem

Erstellen eines Live-USB von Manjaro Linux in Windows &Linux

Sicherheitsaudit mit Lynis

Installieren Sie Windows 10 unter Linux mit VirtualBox