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 bash
a 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 WSLlxrun / install
: Zahájení procesu stahování a instalacelxrun / odinstalovat
: Odinstalovat obrázek Ubuntulxrun / aktualizace
: Aktualizovat index balíku WSLlxrun / 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í vzorused
: Chcete-li nahradit řetězececho
: Výstup hodnoty na obrazovkuvar = 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 tempCD\
: 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íteje
: 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áhnoutsudo apt-get upgrade
: Upgraduje veškerý software na nejnovější verzivyhledávání apt-cache název_aplikace
: Hledá v úložišti konkrétní aplikacisudo 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 gitgit 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