Programovanie

Objavte silu Bash vo Windows

Microsoft Windows môže byť dominantným hráčom na pracovnej ploche, ale rýchlo rastúci trh so softvérom s otvoreným zdrojovým kódom - najmä pre administrátorské a vývojové nástroje - jednoznačne uprednostňuje Linux. Nehovoriac o mobilnom trhu, kde Android využíva varianty pre Linux. Ak ste vývojárom v systéme Windows, bubnovanie smerom k rozšíreniu funkcií systému Linux je stále hlasnejšie.

V priebehu rokov spoločnosť Microsoft predstavila rôzne riešenia používania funkcií systému Linux v systéme Windows, napríklad PowerShell so SSH a Cygwin a MSYS. Spustenie systému Linux vo virtuálnom stroji je ďalšou možnosťou. Virtuálne počítače však spotrebúvajú značné množstvo zdrojov a neposkytujú prvotriedne skúsenosti s operačným systémom Linux, pretože napríklad nemôžete upravovať miestne súbory alebo získať úplný prístup k miestnym diskom.

Pretože sa svet IT u mnohých projektov obracia k Linuxu, spoločnosť Microsoft prišla s novou ponukou, ktorá umožní preniknúť na tento rastúci trh. Bash pre Windows je odpoveďou. Tu vás prevedieme inštaláciou Bash na Windows a v príkazovom riadku systému Linux vám ukážeme, čo môžete robiť - a prečo by ste to robili.

Prehľad Bash vo Windows

Bash v systéme Windows je nová funkcia pridaná do systému Windows 10. Spoločnosť Microsoft sa spojila s firmou Canonical, tvorcami systému Ubuntu Linux, na vybudovaní tejto novej infraštruktúry v rámci systému Windows, ktorá sa nazýva Windows Subsystem for Linux (WSL). Umožňuje vývojárom prístup k úplnej sade rozhrania Ubuntu CLI a pomôckam. Vďaka natívnej skúsenosti so systémom Linux môžu vývojári spúšťať príkazy systému Linux v systéme Windows vrátane prístupu k miestnym súborom a jednotkám. Pretože je Linux natívne integrovaný do systému Windows, vývojári dostanú flexibilitu pri práci na rovnakom súbore v systémoch Linux a Windows. Jednoducho povedané, Bash pre Windows prináša užívateľskú krajinu Ubuntu do Windows bez jadra Linuxu.

Bash vs. PowerShell

Spoločnosť Microsoft už má príkazový shell v prostredí PowerShell. V čom sa teda líši Bash vo Windows? PowerShell je rámec spoločnosti Microsoft na správu konfigurácií pre automatizáciu úloh. Používa sa na správu systému Windows s architektúrou orientovanou na API. Na druhej strane Bash sa pri automatizácii a vývoji väčšinou spolieha na textové súbory. Tieto dva sa líšia zameraním aj dizajnom. Napríklad, keď uvádzate zoznam súborov v adresári pomocou znaku je príkaz, PowerShell zobrazí výstup ako súborové objekty, zatiaľ čo Bash v systéme Windows zobrazí výstup ako množinu reťazcov. Našťastie pre správcov systému Windows môžete pracovať s oboma riešeniami vedľa seba a získať to najlepšie z oboch svetov.

Jedno upozornenie: PowerShell má aliasy, ktoré vám to umožňujú myslieť si spúšťate tradičné príkazy Bash, keď v skutočnosti spúšťate rutiny PowerShell. To môže niektorých ľudí podraziť. Napríklad je je alias pre Get-ChildItem príkaz. Podobne pwd je alias pre Získajte umiestnenie a cd je alias pre Set-Location. Zoznam všetkých aliasov v prostredí PowerShell nájdete pomocou Get-Alias cmdlet.

Bash pre Windows poskytuje vývojárom otvorených zdrojov niekoľko výhod. Vďaka zavedeniu natívnych funkcií systému Linux do systému Windows Bash v systéme Windows eliminuje potrebu spustenia duálneho bootovania s Ubuntu kvôli prístupu k funkciám systému Linux. Nemusíte používať operačný systém Mac OS X, prevádzkovať virtuálny počítač alebo vytvárať riešenia pomocou programu Cygwin. Poskytuje požadovanú sadu nástrojov na písanie a vytváranie kódu pre vaše scenáre a platformy. Prístupom k súborovému systému Windows z Bash-u môžete pracovať s rovnakými súbormi pomocou Windows alebo Linux CLI.

Ako Microsoft portoval Bash na Windows?

Na konferencii o budovaní v apríli 2016 spoločnosť Microsoft na prekvapenie mnohých oznámila Windows Subsystém pre Linux (WSL). Spoločnosť Bash, ktorá vznikla na základe partnerstva so spoločnosťou Canonical, bola prvýkrát dodaná s aktualizáciou Windows 10 Anniversary Update. Dodáva sa v dvoch častiach: jadrový subsystém a balík. Subsystém jadra je už súčasťou zostavenia Windows 10 Insider Builds a ponúka rozhranie Linux API pre Windows, čo znamená, že môžete natívne načítať knižnice a spustiteľné súbory systému Linux. Spoločnosť Canonical poskytuje softvérový balík ako voliteľnú súčasť. Tento softvérový balík ponúka nástroje Bash a CLI potrebné pre prostredie Linux.

Inštaluje sa Bash

Ak chcete spustiť program Bash v systéme Windows, musí byť vo vašom systéme nainštalovaný x64 Windows 10 Anniversary Update Build 14393 alebo novší. Zostavu objavíte napísaním víťaz v príkazovom riadku.

Ak je verzia zostavenia nižšia ako 14393, nebudete môcť nainštalovať Bash.

Ak chcete povoliť Bash na podporovanom zostavení, mali by ste najskôr zapnúť režim pre vývojárov. Prejdite do časti Nastavenia, kliknite na položku Pre vývojárov a vyberte prepínač Režim vývojára. Po dokončení sa zobrazí výzva na potvrdenie.

Po vykonaní tohto kroku musí byť povolená funkcia Windows Subsystem for Linux. Najjednoduchší spôsob, ako to urobiť, je pomocou rutiny cmdlet PowerShell:

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

Ak chcete otvoriť program Bash v systéme Windows, otvorte príkazový riadok a zadajte príkaz basha prijmite licenčnú zmluvu. Keď sa inštaluje Bash, vykoná vo vašom systéme niekoľko zmien:

  • Stiahne sa obrázok používateľského režimu Ubuntu.
  • Skrytý priečinok umiestnený na % localappdata% \ lxss \ je vytvorený.
  • Skratka je umiestnená na plochu.

Ak chcete spustiť program Bash, môžete teraz prejsť na príkazový riadok alebo použiť ikonu odkazu na ploche.

Po úspešnej inštalácii aplikácie Bash vás systém vyzve na vytvorenie unixového používateľského mena a hesla. Toto používateľské meno a heslo je určené pre Bash a nijako nesúvisí s vašim prostredím Windows.

Začíname s príkazmi

V Bash máte niekoľko dostupných príkazov na správu WSL a obrazu Ubuntu.

  • lxrun: Na správu inštancie WSL
  • lxrun / nainštalovať: Spustenie procesu sťahovania a inštalácie
  • lxrun / odinštalovať: Odinštalovanie obrazu Ubuntu
  • lxrun / aktualizácia: Aktualizácia indexu balíkov WSL
  • lxrun / setdefaultuser: Nastaviť predvolený Bash na používateľa Ubuntu

Bash vo Windows samozrejme tiež umožňuje spúšťať mnoho „tradičných“ príkazov Bash. Napríklad:

  • grep: Nájsť riadky, ktoré zodpovedajú vzoru
  • sed: Nahradiť reťazec
  • ozvena: Na výstup hodnoty na obrazovku
  • var = 2: Vytvoriť premennú pre $ var
  • =!=: Na porovnanie malých úryvkov textov

Navigačné príkazy

Na navigáciu môžete tiež použiť príkaz Windows DOS cd prechádzať štruktúru priečinkov.

  • cd tepl: Zmení pracovný adresár na priečinok s názvom temp
  • CD \: Dostane vás do koreňového adresára. Pretože Ubuntu nemá písmená jednotiek ako Windows, koreňový adresár by bol adresárom najvyššej úrovne.
  • CD ..: Posunie výzvu o jednu úroveň nahor (to znamená do nadradeného adresára)
  • cd ~: Prejde do domovského adresára

Avšak cd v prostredí PowerShell sa v Bash na Ubuntu mierne líši. V prostredí WSL sú vaše jednotky so systémom Windows uložené v serveri / mnt priečinok a ako podpriečinok sa použije názov jednotky. Keď použijete cd príkaz, mali by ste podľa toho zmeniť cestu.

Príkazy na displeji

Nasleduje niekoľko príkladov kontroly cesty a obsahu adresára:

  • pwd: Vytlačí cestu alebo adresár, ktorý sa nachádza na obrazovke
  • je: Zobrazí súbory v adresári

Príkazy pomocníka

Ak chcete pochopiť funkčnosť a parametre spojené s každým príkazom, príkaz muž možno použiť príkaz.

Typ muž a zobrazí súhrn toho, na čo príkaz slúži, a súvisiace parametre. Je to podobné ako v prostredí PowerShell Pomoc príkaz.

Úpravy príkazov

Jednou z výhod programu Bash je, že pracujete s obyčajným textom. To znamená, že sa nemusíte trápiť s nastaveniami registra alebo programu. Či už chcete zmeniť poradie zavádzania alebo konfiguráciu webového servera, jednoducho upravte zodpovedajúci textový súbor. Aby ste mohli efektívne vykonávať úlohy spojené s úpravami, potrebujete kvalitný textový editor. Bash ponúka výkonné editory, ktoré vám uľahčia prácu. Niekoľko dobrých príkladov textových editorov dostupných v aplikácii Bash je nano a vi.

Správa balíkov v Bashi

Pretože v podstate bežíte na Linuxe, máte teraz k dispozícii aj príkazy na správu balíkov vo forme trefne. Niekoľko príkladov:

  • sudo apt-get aktualizácia: Obnoví zoznam úložísk, z ktorých sa bude vyberať
  • sudo apt-get upgrade: Aktualizuje všetok softvér na najnovšiu verziu
  • vyhľadávanie apt-cache app_name: Vyhľadá v úložisku konkrétnu aplikáciu
  • sudo apt-get nainštalovať apt-name: Stiahne a nainštaluje konkrétnu aplikáciu

sudo je predradený pre všetky príkazy, aby ste mohli spustiť príkaz pod iným používateľom, ako je superuser (alebo admin) ako predvolený. Je to podobné ako technika „spustiť ako správca“ v systéme Windows.

Sieťové príkazy

Na sťahovanie súborov cez HTTP zo servera alebo adresy URL môžete teraz použiť zvlnenie príkaz. Tento príkaz je podobný príkazu PowerShell Invoke-WebRequest cmdlet.

Podobne sa môžete pripojiť k inému vzdialenému počítaču so systémom Linux a spúšťať na ňom príkazy. Keďže teraz používame systém Linux, máme konečne k dispozícii skutočného klienta SSH, s ktorým môžeme pracovať. Namiesto použitia Cygwinu alebo aktuálnej verzie beta implementácie OpenSSH pre Windows teraz môžeme SSH natívne spustiť cez ssh príkaz:

ssh používateľské meno @ abc.com

Zatiaľ čo sa venujeme téme OpenSSH, máme teraz tiež natívnu schopnosť bezpečne kopírovať súbory cez SCP pomocou zabudovaného scp príkaz tiež:

scp localfile [email protected]: remotingirectory / remotefile

Vďaka Bash pre Windows máte teraz na dosah ruky množstvo ďalších funkcií:

  • Nástroje ako Git, Python a Ruby priamo v systéme Windows
  • Editory príkazového riadku, ako sú emacs a vi
  • Prístup k súborovému systému Windows z prostredia Bash
  • Podpora používateľov systému Linux
  • Podpora Symlink
  • Upevnenie úložného priestoru cez / mnt

Aké sú bežné prípady použitia programu Bash v systéme Windows?

V súčasnosti mnoho vývojárov používa nástroje pre systémy Windows a Linux, čo znamená, že na získanie schopností CLI musia vykonávať duálne bootovanie alebo spúšťať systém Linux vo virtuálnom stroji. Keď môžu tieto nástroje spúšťať v systéme Windows, potom sa Windows stane ich primárnou pracovnou plochou. V takom prípade nemusia prenášať aplikácie a služby systému Linux do systémov Windows. Zatiaľ čo niektorí ľudia dokázali spustiť aplikácie s grafickým rozhraním Linux vo vnútri systému Windows, veľa ľudí získa praktické rozhranie Linux CLI, ktoré im umožňuje vykonávať jednoduché úlohy bez zakúpenia vyhradeného stroja s Linuxom z Azure alebo presunu na zariadenie Mac na jednoduché účely. Pretože skriptovanie je pre Bash jednoduché, môžete v Apache automatizovať vývojové úlohy, ako napríklad zálohovanie webových stránok.

Mnoho vývojárov napríklad používa GitHub na úlohy riadenia verzií. Ak chcete získať prístup k GitHubu v systéme Windows, musíte si nainštalovať GitHub pre Windows a potom vykonať zmeny pomocou príkazov commit a push. Prípadne si musíte stiahnuť utilitu Git, čo je zdĺhavý proces. S programom Bash v systéme Windows sa vaša práca stane jednoduchou:

apt-get nainštalovať git

git spáchať

git push

V aplikácii Bash tiež nepotrebujete žiadne nástroje tretích strán, aby ste mohli pracovať s tradičnými typmi súborov v systéme Linux, ako sú napríklad tarbally GZIPed (súbory tar.gz).

Aké sú nevýhody používania programu Bash v systéme Windows?

Bash pre Windows je stále v beta verzii a obsahuje hrubé hrany. Spoločnosť Microsoft tvrdí, že program Bash v systéme Windows nemusí v súčasnosti dokonale vykonávať všetky vaše skripty. Spoločnosť Microsoft však horlivo sleduje výkon a spätnú väzbu a proaktívne robí zmeny v tomto riešení.

Po druhé, program Bash pre Windows bol vyvinutý pre vývojovú komunitu. Nebol určený na správu prostredí Windows. Hoci vo WSL môžete robiť napríklad spustenie démonov servera, neponúka všetky možnosti úplného virtuálneho stroja s Linuxom. Ak máte v úmysle spustiť procesy servera pri produkčných pracovných zaťaženiach v systéme Ubuntu, mali by ste sa pozrieť na ďalšie alternatívy spustenia úplného operačného systému Linux.

Nakoniec program Bash pre Windows prináša do systému Windows možnosti systému Linux. Nástroje systému Linux však nebudú môcť interagovať s nástrojmi a aplikáciami systému Windows. To znamená, že neexistujú možnosti pre rôzne platformy kvôli ich inherentným rozdielom v architektúre.

Bash pre Windows je stále v štádiu zrodu. Aj keď toto riešenie obsahuje určité obmedzenia, spoločnosť Microsoft usilovne pracuje na pridaní ďalších funkcií na odstránenie týchto rozdielov a na to, aby sa systém Windows stal platformou č. 1 pre všetky typy vývojových projektov. Sledujte tento projekt od spoločnosti Microsoft. Vďaka novému postaveniu spoločnosti Microsoft vo svete otvorených zdrojov je nepochybné, že sa z Bash stane v priebehu času prvotriedny občan systému Windows.

Súvisiace články

  • Základný sprievodca PowerShell pre Windows, Windows Server a Exchange
  • 10 základných bezpečnostných skriptov PowerShell pre správcov Windows
  • Všetko o poskytovateľoch a moduloch PowerShell
  • Go pro: Príručka mocného používateľa pre PowerShell
$config[zx-auto] not found$config[zx-overlay] not found