GNU/Linux >> Znalost Linux >  >> Linux

Vytvoření hybridního systému Linux-Windows pomocí Cygwin

Pokud jste o Cygwinovi nikdy neslyšeli, máte se na co těšit. Používal jsem to roky k homogenizaci svých prostředí do jednoho, kde mohu psát skripty jednou a dodávat je všude pro konzistentní automatizační řešení. Je bolestné psát bash skripty, které fungují na Linuxu, na Macu a na komerčních Unices, a pak musím skočit po hlavě do PowerShellu a dávkových souborů, abych se pokusil dosáhnout úrovně automatizace, které mohu dosáhnout s nějakým Bash skriptováním.

Podle webu je Cygwin:

  • Velká sbírka nástrojů GNU a Open Source, které poskytují funkce podobné distribuci Linuxu ve Windows.
  • DLL (cygwin1.dll), která poskytuje podstatnou funkčnost POSIX API.

A není:

  • Způsob, jak spouštět nativní aplikace pro Linux v systému Windows. Aplikaci musíte znovu sestavit ze zdroje pokud chcete, aby běžel v systému Windows.
  • Způsob, jak magicky upozornit nativní aplikace pro Windows o funkcích UNIX®, jako jsou signály, ptys atd. Opět musíte své aplikace vytvářet ze zdroje chcete-li využít funkce Cygwin.

Poznámka:Cygwin funguje stejně dobře na desktopech Windows a na serverových systémech.

Proč Cygwin?

Cygwin je stále relevantní, pokud chcete mít k dispozici nativní *nix příkazy na platformě Windows. Ano, vím o Windows Subsystem for Linux (WSL), ale Cygwin a WSL nejsou totéž. Cygwin vám dává sílu *nix příkazů ve vašem nativním prostředí Windows. Mezi operačním systémem a touto sadou nástrojů neexistuje žádná emulace, žádný virtuální stroj a žádné další vrstvy. Jsou to ve skutečnosti autentické open source příkazy zkompilované pro platformu Windows.

Instalace Cygwin

Obecně můžete pro každou výzvu přijmout výchozí možnost. Poskytuji rady, když je třeba učinit volby. Můžete si vybrat svůj vlastní, ale zjistil jsem, že tyto výběry fungují nejlépe v mém prostředí a pro můj způsob práce.

Otevřete prohlížeč ve svém systému Windows a nasměrujte jej na webovou stránku Cygwin. Vyberte Instalovat Cygwin spuštěním setup-x86_64.exe odkaz ke stažení spustitelného souboru nastavení. Spusťte spustitelný soubor pro zahájení instalace a klikněte na Další v Nastavení Cygwin obrazovka.

Na stránce Vyberte typ instalace vyberte požadovaný typ instalace. Pro sebe vždy vyberu výchozí nastavení, což je Instalovat z Internetu .

Klikněte na Další pokračovat.

Vyberte, kam chcete adresář Cygwin a všechny jeho podpůrné soubory a binární soubory nainstalovat. Výchozí hodnota je C:\cygwin64, ale změním to na C:\cygwin aby byla budoucnost trochu šťastnější. Také povoluji všem uživatelům přístup k Cygwin.

Klikněte na Další pokračovat.

Zadejte adresář, do kterého má Cygwin stáhnout své soubory. Vždy používám C:\Temp. Pokud vyberete adresář, který neexistuje, instalační program vás vyzve k jeho vytvoření.

Klikněte na Další pokračovat.

Vyberte typ připojení k internetu. Pokud máte nějaký druh proxy, zadejte nastavení zde. Moje je přímé spojení. Pokud nevíte, zkuste přímo. Pokud to nefunguje, zkontrolujte nastavení serveru proxy v konfiguraci prohlížeče.

Klikněte na Další pokračovat.

Na této obrazovce vyberte web pro stahování. Vyberte jednu ze seznamu nebo přidejte vlastní. Vždy jsem si vybral mirrors.xmission.com bez logického důvodu - prostě jsem u toho zůstal dlouho a funguje to. Předpokládám, že kterýkoli z výběrů bude fungovat.

Klikněte na Další pokračovat.

[ Také by se vám mohlo líbit:Jak připojit systém Linux k doméně Active Directory ]

Výběr balíčků

Konečně jste na obrazovce pro výběr balíčku. Pokud nic nevyberete a budete pokračovat ve výchozí instalaci, získáte kompletní sadu *nix příkazů v C:\cygwin\bin adresář. Je jich příliš mnoho, než aby je bylo možné vypsat, ale je to seznam standardních příkazů.

Doporučuji prozkoumat různé kategorie a vybrat si podle toho, co na svých systémech Linux používáte. Obecně vybírám OpenSSH, Bash, Bash-completion, Python, Tk/Tcl a některé další náhodné aplikace. Po provedení výběru klikněte na Další pokračovat.

Zkontrolujte a potvrďte svůj výběr. Závislosti budou pro váš výběr uspokojeny, takže se nebojte. Klikněte na Další zahájíte instalaci vybraných balíčků.

Instalace může trvat od několika minut až po téměř hodinu, v závislosti na vašem výběru a rychlosti internetu.

Poslední obrazovka vás upozorní na dokončení instalace a vyzve vás k vytvoření několika užitečných ikon. Vždy vytvářím ikony. Klikněte na Dokončit k dokončení procesu instalace.

Nastavení proměnné prostředí PATH

Chcete-li dosáhnout nejlepších výsledků, musíte do proměnné prostředí PATH přidat adresář C:\cygwin\bin. Chcete-li nastavit System PATH tak, aby zahrnovala váš adresář Cygwin bin, vyhledejte „environment“ a vyberte možnost Ovládací panely, Upravit systémové proměnné prostředí , když se objeví. Vyberte Proměnné prostředí na stránce Vlastnosti systému obrazovka.

Na stránce Proměnné prostředí vyberte Cesta z Systémové proměnné a klikněte na Upravit... . Klepněte na tlačítko Nový. Zadejte C:\cygwin\bin do pole a klikněte na OK po dokončení. Klikněte na OK na ostatních obrazovkách uložte záznam a zavřete Vlastnosti systému okno.

Nastavení této systémové proměnné prostředí vám umožní spustit příkaz Cygwin bez poskytnutí úplné cesty ke spustitelnému souboru. To je také užitečné pro skriptování.

Poznámky ke skriptování

Nyní, když je Cygwin nainstalován a binární soubory jsou ve vaší systémové cestě, pravděpodobně vás zajímá, jak to udělat. Chcete-li vyvolat Bash, otevřete okno CMD a zadejte bash <ENTER> . Nyní jste v prostředí Bash, které funguje přesně jako váš Linux. Zkuste několik příkazů, jako je clear , ls , ls -la , pwd , a tak dále.

Existují určité rozdíly, které mohou být pro nové uživatele frustrující, pokud si jich nejste vědomi. V Bash si všimnete, že vaše disky C:a D:jsou připojeny jako /cygdrive/c a /cygdrive/d , například. Takže C:\Temp adresář je /cygdrive/c/temp v Cygwin Bash.

Známé adresáře jako / , /usr/bin a /usr/lib existují pod C:\cygwin pomocí C:\cygwin adresář jako / . Pokud tomuto rozložení nerozumíte, otevřete samostatný CMD okno a CD do C:\cygwin a podívejte se na adresář v obou CMD a v Bash .

Nejprve seznam CMD.

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

A výpis Bash.

ls /

Cygwin-Terminal.ico		Cygwin.ico	cygdrive	etc	lib	sbin	usr
Cygwin.bat			bin 		dev		home  proc 	tmp	var

Z těchto anomálií tedy vidíte, že Bash ve Windows není 100 procent ekvivalentní *nix Bash. Některé skripty budou překládat přímo, zatímco jiné budou muset být upraveny jako okno. To znamená, že přizpůsobené tak, aby vyhovovalo rozdílům v cestě, rozdílům v připojení a některým rozdílům v umístění souborů. Jedním opravdu skvělým aspektem hybridizace prostředí Windows je to, že můžete také používat příkazy příkazového řádku Windows. Můžete je docela snadno integrovat do svých skriptů. Nezapomeňte uvést úplnou cestu ke spustitelnému souboru ve formátu Cygwin (/cygdrive/c/windows/system32/blah.exe ).

[ Bezplatný kurz pro vás:Technický přehled virtualizace a migrace infrastruktury. ]

Koneckonců

Cygwin je vynikající multiplatformní sada nástrojů, zejména pro ty z vás, kteří musí pracovat v heterogenním prostředí, jako většina z nás. Nemohu spočítat, kolikrát jsem zadal ls , nebo nějaký jiný příkaz Linuxu, v okně CMD pouze proto, aby selhal. Cygwin vám poskytuje rozšířenou schopnost napsat skript jednou a můžete jej použít kdekoli, s drobnými úpravami. Představte si možnosti. Nyní do směsi přidejte Ansible a znovu si představte možnosti. Pro další zvýšení vašeho štěstí lze všechny spustitelné soubory pod C:\cygwin\bin, které mají příponu souboru .exe, také spouštět v okně CMD, aniž byste museli být v Bash. Zajímavý? Myslel jsem si to.


Linux
  1. Pochopení systémových volání na Linuxu pomocí strace

  2. Plánování systémových úloh pomocí Cronu na Linuxu

  3. Systémová volání ve Windows a nativní API?

  1. Prozkoumejte napadený server Windows

  2. Jak získat systémové statistiky pomocí node.js

  3. Vytváření odkazů na Windows na Linuxu?

  1. Linux Shutdown Command (s příklady)

  2. Rozšiřte svazek v systému Windows Server pomocí diskpart

  3. Opravte bitovou kopii systému pomocí DISM