Programování

Objevte sílu Bash ve Windows

Microsoft Windows může být dominantním hráčem na ploše, ale rychle rostoucí trh softwaru se otevřeným zdrojovým kódem - zejména pro nástroje pro správu a vývoj - jednoznačně upřednostňuje Linux. Nemluvě o mobilním trhu, kde Android používá varianty Linuxu. Pokud jste vývojář v systému Windows, drumbál, který vám umožní využívat moderní funkce systému Linux, bude stále hlasitější.

V průběhu let společnost Microsoft představila různá řešení pro používání funkcí Linuxu ve Windows, jako je PowerShell s SSH a Cygwin a MSYS. Další možností je spuštění Linuxu ve virtuálním stroji. Virtuální počítače ale spotřebovávají značné množství zdrojů a neposkytují prvotřídní prostředí Linuxu, protože například nemůžete upravovat místní soubory nebo získat úplný přístup k místním jednotkám.

Vzhledem k tomu, že se svět IT u mnoha projektů obrací k Linuxu, společnost Microsoft přišla s novou nabídkou, jak proniknout na tento rostoucí trh. Bash ve Windows je odpověď. Zde vás provedeme instalací Bash v systému Windows a v příkazovém řádku systému Linux vám ukážeme, co můžete dělat - a proč byste to měli dělat.

Přehled Bash ve Windows

Bash v systému Windows je nová funkce přidaná do systému Windows 10. Společnost Microsoft se spojila s Canonical, tvůrci systému Ubuntu Linux, s cílem vybudovat tuto novou infrastrukturu v systému Windows nazvanou Windows Subsystem for Linux (WSL). Umožňuje vývojářům přístup k úplné sadě rozhraní CLI a utilit Ubuntu. Díky nativnímu prostředí Linuxu mohou vývojáři spouštět příkazy Linuxu ve Windows, včetně přístupu k místním souborům a jednotkám. Protože je Linux nativně integrován do Windows, vývojáři získávají flexibilitu pro práci na stejném souboru v Linuxu a Windows. Jednoduše řečeno, Bash ve Windows přináší uživatelskou zemi Ubuntu do Windows bez jádra Linuxu.

Bash vs. PowerShell

Microsoft již má příkazový shell v prostředí PowerShell. Jak se tedy Bash v systému Windows liší? PowerShell je rámec pro správu konfigurace společnosti Microsoft pro automatizaci úkolů. Používá se ke správě Windows s architekturou orientovanou na API. Na druhou stranu Bash spoléhá při automatizaci a vývoji většinou na textové soubory. Oba se liší jak zaměřením, tak designem. Například když vypisujete soubory v adresáři pomocí je příkaz, PowerShell zobrazí výstup jako objekty souboru, zatímco Bash v systému Windows zobrazí výstup jako sadu řetězců. Naštěstí pro správce systému Windows můžete pracovat s oběma řešeními bok po boku a získat to nejlepší z obou světů.

Jedno slovo upozornění: PowerShell má aliasy, které vám to umožňují myslet si spouštíte tradiční příkazy Bash, když ve skutečnosti používáte rutiny PowerShell. To může některé lidi podrazit. Například, je je alias pro Get-ChildItem příkaz. Podobně, pwd je alias pro Získejte umístění a CD je alias pro Set-Location. Seznam všech aliasů v prostředí PowerShell použijte Get-Alias rutina.

Bash pro Windows poskytuje vývojářům open source několik výhod. Přenesením nativních funkcí systému Linux do systému Windows Bash v systému Windows eliminuje potřebu spouštět duální bootování s Ubuntu pro přístup k funkcím systému Linux. Nemusíte používat Mac OS X, spouštět virtuální stroj nebo vytvářet alternativní řešení pomocí Cygwinu. Poskytuje požadovanou sadu nástrojů pro psaní a vytváření kódu pro vaše scénáře a platformy. Přístupem k souborovému systému Windows z Bash můžete pracovat se stejnými soubory pomocí Windows nebo Linux CLI.

Jak Microsoft portoval Bash na Windows?

Na konferenci o sestavení v dubnu 2016 společnost Microsoft k překvapení mnoha oznámila Windows Subsystém pro Linux (WSL). Společnost Bash, která vznikla na základě partnerství se společností Canonical, byla poprvé dodávána s aktualizací Windows 10 Anniversary Update. Dodává se ve dvou částech: základní subsystém a balíček. Podsystém jádra je již součástí Windows 10 Insider Builds a nabízí rozhraní Linux API ve Windows, což znamená, že můžete nativně načítat linuxové knihovny a spustitelné soubory. Společnost Canonical poskytuje softwarový balíček na přání. Tento softwarový balíček nabízí nástroje Bash a CLI požadované pro prostředí Linux.

Instalace Bash

Abyste mohli spustit Bash ve Windows, musí váš systém spustit x64 Windows 10 Anniversary Update Build 14393 nebo novější. Sestavení objevíte zadáním vítěz v příkazovém poli.

Pokud je verze sestavení menší než 14393, nebudete moci nainstalovat Bash.

Chcete-li povolit Bash na podporovaném sestavení, měli byste nejprve zapnout režim vývojáře. Chcete-li tak učinit, přejděte do Nastavení, klikněte na Pro vývojáře a vyberte přepínač Režim vývojáře. Jakmile to provedete, budete vyzváni k potvrzení.

Jakmile to bude provedeno, musí být povolena funkce Windows Subsystém pro Linux. Nejjednodušší způsob, jak to udělat, je pomocí rutiny prostředí PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Chcete-li otevřít Bash ve Windows, otevřete příkazový řádek a zadejte basha přijměte licenční smlouvu. Když se Bash nainstaluje, provede ve vašem systému několik změn:

  • Stáhne se obrázek uživatelského režimu Ubuntu.
  • Skrytá složka umístěná na % localappdata% \ lxss \ je vytvořen.
  • Zástupce je umístěn na ploše.

Chcete-li spustit Bash, můžete nyní buď přejít na příkazový řádek, nebo použít ikonu zástupce na ploše.

Po úspěšné instalaci Bash vás systém vyzve k vytvoření unixového uživatelského jména a hesla. Toto uživatelské jméno a heslo je pro Bash a nijak se nevztahuje k vašemu prostředí Windows.

Začínáme s příkazy

Jakmile jste v Bash, máte několik dostupných příkazů pro správu WSL a obrazu Ubuntu.

  • lxrun: Pro správu instance WSL
  • lxrun / install: Zahájení procesu stahování a instalace
  • lxrun / odinstalovat: Odinstalovat obrázek Ubuntu
  • lxrun / aktualizace: Aktualizovat index balíku WSL
  • lxrun / setdefaultuser: Nastavit výchozí Bash na uživatele Ubuntu

Bash ve Windows samozřejmě také umožňuje spouštět mnoho „tradičních“ příkazů Bash. Například:

  • grep: Chcete-li najít řádky, které odpovídají vzoru
  • sed: Chcete-li nahradit řetězec
  • echo: Výstup hodnoty na obrazovku
  • var = 2: Vytvořit proměnnou pro $ var
  • =!=: Porovnat malé úryvky textů

Navigační příkazy

Pro navigaci můžete také použít příkaz Windows DOS CD procházet strukturu složek.

  • cd tepl: Změní pracovní adresář na složku s názvem temp
  • CD\: Přejde do kořenového adresáře. Protože Ubuntu nemá písmena jednotek jako Windows, kořenový adresář by byl adresář nejvyšší úrovně.
  • CD..: Přenese výzvu o jednu úroveň nahoru (tj. Do nadřazeného adresáře)
  • cd ~: Přenese vás do domovského adresáře

Nicméně, CD v PowerShellu se v Bash na Ubuntu mírně liší. V prostředí WSL jsou vaše disky Windows uloženy v / mnt složku a jako podsložka se použije název jednotky. Když používáte CD příkaz, měli byste odpovídajícím způsobem změnit cestu.

Zobrazit příkazy

Chcete-li zkontrolovat cestu a obsah adresáře, uvádíme několik příkladů:

  • pwd: Vytiskne na obrazovku cestu nebo adresář, ve kterém se nacházíte
  • je: Zobrazí soubory v adresáři

Příkazy nápovědy

Pokud chcete pochopit funkčnost a parametry spojené s každým příkazem, muž lze použít příkaz.

Typ muž a zobrazí souhrn toho, k čemu příkaz slouží, a související parametry. Je to podobné jako v prostředí PowerShell Pomoc příkaz.

Úpravy příkazů

Jednou z výhod Bash je, že pracujete s prostým textem. To znamená, že se nemusíte potýkat s nastavením registru nebo programu. Ať už chcete změnit spouštěcí sekvenci nebo konfiguraci webového serveru, jednoduše upravte odpovídající textový soubor. Abyste mohli efektivně provádět úpravy, potřebujete dobrý textový editor. Bash nabízí výkonné editory, které vám usnadní práci. Několik dobrých příkladů textových editorů dostupných v Bash je nano a vi.

Správa balíků v Bash

Jelikož v podstatě používáte Linux, máte nyní k dispozici také příkazy pro správu balíků ve formě apt-get. Několik příkladů:

  • sudo apt-get aktualizace: Obnoví seznam úložišť, ze kterých se má vytáhnout
  • sudo apt-get upgrade: Upgraduje veškerý software na nejnovější verzi
  • vyhledávání apt-cache název_aplikace: Hledá v úložišti konkrétní aplikaci
  • sudo apt-get nainstalovat apt-name: Stáhne a nainstaluje konkrétní aplikaci

sudo je předřazeno všem příkazům, abyste mohli spustit příkaz pod jiným uživatelem, jako výchozí je superuživatel (nebo admin). Je to podobné jako technika „spustit jako správce“ ve Windows.

Síťové příkazy

Chcete-li stahovat soubory přes HTTP ze serveru nebo adresy URL, můžete nyní použít kučera příkaz. Tento příkaz je podobný PowerShellu Invoke-WebRequest rutina.

Podobně se můžete připojit k jinému vzdálenému počítači se systémem Linux a spouštět na něm příkazy. Vzhledem k tomu, že nyní používáme systém Linux, máme konečně skutečného klienta SSH, se kterým můžeme pracovat. Spíše než používat Cygwin nebo aktuální beta implementaci OpenSSH pro Windows, můžeme nyní SSH nativně spustit přes ssh příkaz:

ssh uživatelské jméno @ abc.com

Zatímco se věnujeme tématu OpenSSH, máme nyní také nativní schopnost bezpečně kopírovat soubory přes SCP pomocí vestavěného scp příkaz také:

scp localfile [email protected]: remotingirectory / remotefile

S Bash ve Windows máte nyní na dosah ruky spoustu dalších funkcí:

  • Nástroje jako Git, Python a Ruby přímo ve Windows
  • Editory příkazového řádku, jako jsou emacs a vi
  • Přístup k systému souborů Windows z prostředí Bash
  • Podpora uživatelů systému Linux
  • Podpora Symlink
  • Montáž úložiště pomocí / mnt

Jaké jsou běžné případy použití pro Bash ve Windows?

V současné době mnoho vývojářů používá nástroje pro Windows a Linux, což znamená, že pro získání funkcí rozhraní příkazového řádku musí provést dual-boot nebo spustit Linux uvnitř virtuálního stroje. Když mohou tyto nástroje spouštět v systému Windows, pak se Windows stane jejich primární pracovní plochou. V takovém případě nemusí portovat aplikace a služby Linux na systémy Windows. Zatímco někteří lidé mohli spouštět aplikace s grafickým uživatelským rozhraním Linuxu v systému Windows, mnoho lidí získá užitečné rozhraní Linux CLI k provádění jednoduchých úkolů, aniž by si museli kupovat vyhrazený stroj s Linuxem z Azure nebo se pro jednoduché účely přesunout na zařízení Mac. Jelikož je skriptování v Bash snadné, můžete automatizovat vývojové úlohy, jako je zálohování webů v Apache.

Mnoho vývojářů například používá GitHub pro úlohy správy verzí. Chcete-li přistupovat k GitHubu ve Windows, musíte si nainstalovat GitHub pro Windows a poté pomocí příkazů commit a push potvrdit změny. Alternativně si musíte stáhnout utilitu Git, což je zdlouhavý proces. S Bash ve Windows se vaše práce stane jednoduchou:

apt-get install git

git commit

git push

V Bash také nepotřebujete žádné nástroje třetích stran, abyste mohli pracovat s tradičními typy souborů Linux, jako jsou tarbally GZIPed (soubory tar.gz).

Jaké jsou nevýhody používání Bash ve Windows?

Bash pro Windows je stále v beta verzi a obsahuje některé drsné hrany. Microsoft říká, že Bash v systému Windows nemusí v tuto chvíli dokonale spustit všechny vaše skripty. Microsoft však horlivě sleduje výkon a zpětnou vazbu a proaktivně provádí změny v tomto řešení.

Zadruhé, Bash pro Windows byl vytvořen pro vývojovou komunitu. Nebyl navržen pro správu prostředí Windows. Ačkoli můžete dělat věci, jako je spouštět démony serveru ve WSL, nenabízí všechny možnosti plného virtuálního stroje s Linuxem. Pokud máte v úmyslu spouštět procesy serveru v rámci produkčních pracovních zátěží na Ubuntu, měli byste se podívat na další alternativy pro provoz celého operačního systému Linux.

A konečně, Bash pro Windows přináší funkce systému Linux pro Windows. Nástroje pro Linux však nebudou moci komunikovat s nástroji a aplikacemi pro Windows. To znamená, že neexistují žádné schopnosti napříč platformami kvůli jejich inherentním rozdílům v architektuře.

Bash pro Windows je stále ve své rodící se fázi. Ačkoli toto řešení má určitá omezení, Microsoft intenzivně pracuje na přidání dalších funkcí, které by tyto rozdíly vymazaly a učinily ze systému Windows platformu č. 1 pro každý typ vývojového projektu. Sledujte tento projekt od společnosti Microsoft. Díky novému postavení společnosti Microsoft ve světě otevřených zdrojů je jisté, že se Bash postupem času stane prvotřídním občanem Windows.

Související články

  • Základní průvodce PowerShell pro Windows, Windows Server a Exchange
  • 10 základních bezpečnostních skriptů PowerShell pro správce systému Windows
  • Vše o poskytovatelích a modulech PowerShell
  • Go pro: Příručka uživatele PowerShell k Power