Přesun vývoje v JavaScriptu do prostředí Bash ve Windows

O autorovi

Burke Holland je front-end vývojář žijící v Nashvillu, TN; největším městě na světě. JavaScript ho velmi baví, protože je to jediný způsob, jakým může …Více oBurke↬

  • 24 minut čtení
  • JavaScript
  • Uloženo pro offline čtení
  • Sdílet na Twitteru, LinkedIn
Máte rádi svůj terminál Bash, ale také svůj počítač? Možná jste si vyhlédli nějaký ten nový hardware Surface, ale nemůžete přejít bez svého terminálu. Nyní můžete mít Windows i Bash. V tomto článku se podrobně podíváme na to, jak nastavit vývojový box Windows/Linux pro vývoj JavaScriptu.

Jsem jedním z těch lidí, kteří nemohou žít bez svého terminálu Bash. Už jen tato skutečnost mi ztěžuje práci na frontendech ve Windows. Pracuji v Microsoftu a jsem na Macu. Až když se před několika lety objevila nová řada hardwaru Surface, uvědomil jsem si to:

Tak jsem si ho pořídil. Přesněji řečeno Surface Book 2 s Windows 10. Právě na něm připravuji tento článek. A co moje sladká, sladká výzva Bash? No, samozřejmě jsem si ho vzal s sebou.

V tomto článku se podrobně podívám na to, jak nová technologie ve Windows 10 umožňuje spustit plnohodnotný linuxový terminál v systému Windows. Ukážu vám také své úžasné nastavení terminálu (které bylo „mnou“ označeno za „nejlepší vůbec“) a jak si i vy můžete nastavit svůj vlastní vývojový stroj se systémem Windows/Linux.

Pokud jste zatoužili po nějakém tom hardwaru Surface, ale nemůžete žít bez linuxového terminálu, jste na správném místě.

Poznámka: V době psaní tohoto článku bude mnoho položek v tomto článku vyžadovat použití nebo přepnutí na „preview“ nebo „insider“ sestavení různých položek, včetně Windows. Většina z těchto věcí bude někdy v budoucnu v hlavním sestavení systému Windows.

Podsystém Windows pro Linux (WSL)

Podsystém Windows pro Linux neboli „WSL“ je to, co umožňuje spouštět Linux v systému Windows. Ale co přesně je to za šílenou vědu?

WSL je ve své současné inkarnaci překladová vrstva, která převádí systémová volání Linuxu na systémová volání Windows. Linux běží nad WSL. To znamená, že abyste dostali Linux do Windows, musíte udělat tři věci:

  1. Zapnout WSL,
  2. Instalace Linuxu,
  3. Vždy tři položky v seznamu.

Jak se ukázalo, tato překladová vrstva je trochu pomalá – asi jako když se snažím zapamatovat, jestli potřebuji splice nebo slice. To platí zejména tehdy, když WSL čte a zapisuje do souborového systému. To je pro webové vývojáře docela velký problém, protože každý správný npm install vám do počítače zkopíruje tisíce souborů. Tedy, nevím, jak vy, ale já nehodlám psát své vlastní řetězce levou zadní.

Verze 2 WSL je jiný příběh. Je podstatně rychlejší než současná verze, protože využívá virtualizační jádro ve Windows namísto použití překladové vrstvy. Když říkám „výrazně rychlejší“, myslím tím mnohem, mnohem rychlejší. Stejně rychlý, jako když si vygooglím „splice vs slice“.

Z tohoto důvodu vám ukážu, jak WSL 2 nainstalovat. V době psaní tohoto článku to bude vyžadovat, abyste měli sestavení systému Windows „Insider“.

Nejprve: podle tohoto krátkého návodu povolte WSL v systému Windows 10 a zkontrolujte číslo verze systému Windows.

Jakmile jej nainstalujete, stiskněte klávesu Windows a zadejte „windows insider“. Poté zvolte „Nastavení programu Windows Insider“.

(Velký náhled)

Budete mít několik různých možností, ve kterém „kruhu“ chcete být. Hodně lidí, které znám, je na rychlém kruhu. Já jsem ale opatrný člověk. Když jsem byl malý, sjížděl jsem na dětském hřišti po skluzavce na břiše a držel se stran. Proto zůstávám na pomalém kruhu. Jezdím na něm už několik měsíců a nepřipadá mi o nic rušivější ani nestabilnější než běžný Windows.

Je to dobrá volba, pokud chcete WSL 2, ale nechcete umřít na skluzavce.

(Velký náhled)

Poznámka: Po vydání tohoto článku jsem zjistil, že WSL 2 ve skutečnosti není na pomalém kruhu. Abyste ji získali, musíte být na rychlém kruhu. V určitém okamžiku psaní tohoto článku jsem musel být na rychlém kruhu. Takže je to rychlý prstenec. Hodně štěstí na klouzačce!“

Dále je třeba ve Windows povolit funkci „Virtual Machine Platform“, kterou WSL verze 2 vyžaduje. Na tuto obrazovku se dostanete stisknutím klávesy Windows a zadáním příkazu „windows features“. Poté vyberte možnost „Zapnout nebo vypnout funkce systému Windows“. Vyberte možnost „Virtual Machine Platform“. Možnost „Windows Subsystem for Linux“ by již měla být povolena.

(Velký náhled)

Teď, když je WSL povolena, můžete nainstalovat Linux. To provedete paradoxně přímo z obchodu Windows Store. Teprve v roce 2019 bych vám doporučil „nainstalovat Linux z obchodu Windows“.

Na výběr je několik různých distribucí, ale Ubuntu bude nejvíce podporováno ve všech nástrojích, které budeme později konfigurovat – včetně VS Code. Všechny pokyny, které budou následovat od této chvíle s předpokládají instalaci Ubuntu. Pokud nainstalujete jinou distribuci, jsou všechny sázky zrušeny.

Vyhledejte „Ubuntu“ v obchodě Windows Store. Na výběr budete mít ze tří možností: Ubuntu, Ubuntu 18.04 a Ubuntu 16.04. V případě, že si vyberete, můžete si vybrat ze tří možností. Ubuntu má to číslo minoritní verze 04 opravdu rádo, že?“

(Velký náhled)

Distribuce „Ubuntu“ (první na tomto obrázku) je „meta verze“, nebo spíše zástupný symbol, který pouze odkazuje na nejnovější verzi. V tuto chvíli je to 18.04.

Přistoupil jsem na meta verzi, protože později vám ukážu, jak procházet souborový systém Linuxu pomocí Průzkumníka Windows, a je docela nepřehledné mít jako název disku „Ubuntu 18.04“ a ne jen „Ubuntu“.

Tato instalace je docela rychlá v závislosti na vašem připojení k internetu. Je to jen asi 215 megabajtů, ale já jsem tady na gigabitovém připojení a jak se pozná, že je někdo na gigabitovém připojení? Nebojte se, oni vám to řeknou.

Po instalaci budete mít nyní v nabídce Start aplikaci „Ubuntu“.

(velký náhled)

Pokud na ni kliknete, zobrazí se vám terminál Bash!

(Velký náhled)

Chvíli se kochejte zázrakem techniky.

Ve výchozím nastavení poběžíte v prostředí WSL verze 1.

Ve výchozím nastavení poběžíte v prostředí WSL verze 1. Chcete-li přejít na verzi 2, musíte otevřít terminál PowerShell a spustit příkaz.

Stiskněte klávesu „Windows“ a zadejte příkaz „Powershell“.

(Velký náhled)

Z terminálu PowerShell můžete příkazem wsl --list --verbose zjistit, kterou verzi WSL máte.

(Velký náhled)

Pokud se zobrazuje verze 1, budete muset provést příkaz --set-version a zadat název instance (Ubuntu) a požadovanou verzi (2).

wsl --set-version Ubuntu 2
(Velký náhled)

To bude chvíli trvat, záleží na tom, kolik masa má váš počítač. Mně to trvalo plus mínus „několik minut“. Až to bude hotové, budete mít nejnovější a nejlepší verzi WSL.

Je váš mozek v Linuxu… ve Windows.

Linux není Windows. WSL není bashový prompt nad operačním systémem Windows. Je to plnohodnotný operační systém sám pro sebe s vlastní adresářovou strukturou a nainstalovanými aplikacemi. Pokud nainstalujete Node pomocí instalátoru Windows, zadání node v Linuxu selže, protože Node není v Linuxu nainstalován. Je nainstalován ve Windows.

Pravé kouzlo WSL však spočívá ve způsobu, jakým hladce propojuje Windows a Linux, takže se na vašem počítači jeví jako jeden souborový systém.

Navigace v souborech a složkách

Ve výchozím nastavení vás terminál Ubuntu hodí do domovského adresáře Linuxu (nebo /home/your-user-name). Na stranu Windows se můžete přesunout tak, že přejdete do /mnt/c.

(Velký náhled)

Všimněte si, že některá oprávnění jsou zde odepřena. Musel bych kliknout pravým tlačítkem myši na ikonu Ubuntu a kliknout na „Spustit jako správce“, abych získal přístup k těmto souborům. Tímto způsobem Windows provádí zvýšená oprávnění. Ve Windows neexistuje sudo.

Spouštění aplikací

Z terminálu Ubuntu můžete spustit jakoukoli aplikaci systému Windows. Například mohu z terminálu Unbuntu otevřít Průzkumníka Windows.

(Velký náhled)

Funguje to i obráceně. Můžete spustit libovolnou aplikaci nainstalovanou na straně Linuxu. Zde spouštím aplikaci „fortune“ nainstalovanou v Linuxu z příkazového řádku Windows. (Protože to není správná instalace Linuxu bez náhodných nesmyslných štěstí.)

(Velký náhled)

Dva různé operační systémy. Dva různé souborové systémy. Dvě různé sady nainstalovaných aplikací. Vidíte, jak by to mohlo být matoucí?“

Abyste měli ve všem jasno, doporučuji, abyste všechny soubory a nástroje pro vývoj JavaScriptu měli nainstalované na straně Linuxu. Přitom právě možnost přecházet mezi systémy Windows a Linux a přistupovat k souborům z obou systémů je základním kouzlem WSL. Nezapomínejte na to, protože právě to dělá celou tuto konfiguraci lepší než jen standardní linuxový box.

Nastavení vývojového prostředí

Od této chvíle vám poskytnu seznam názorových položek, které podle mého názoru tvoří zabijáckou konfiguraci Linuxu ve Windows. Jen nezapomeňte: mé názory jsou jen názory. Názory. Jen se stává, že stejně jako všechny mé názory jsou stoprocentně správné.

Získání lepšího terminálu

Ano, při instalaci Ubuntu jste získali terminál. Je to vlastně konzola Windows připojená k vaší linuxové distribuci. Není to špatná konzole. Můžete změnit její velikost, zapnout kopírování/vkládání (v nastavení). Ale nemůžete dělat věci jako karty nebo otevírat nová okna. Stejně jako spousta lidí používá na Macu náhradní terminálové programy (já používám Hyper), existují i jiné možnosti pro Windows. Seznam Awesome WSL na Githubu obsahuje poměrně vyčerpávající seznam.

Všechny tyto emulátory jsou fajn, ale je tu nová možnost, kterou vytvořili lidé, kteří Windows dobře znají.

Microsoft pracuje na nové aplikaci s názvem „Windows Terminal“.

(Velký náhled)

Windows Terminal lze nainstalovat z Windows Store a v současné době je v režimu náhledu. Používám jej již delší dobu a má dostatek funkcí a je dostatečně stabilní na to, abych jej mohl plně podpořit.

Nový Terminál Windows nabízí rozhraní s plnohodnotnými kartami, kopírování/vkládání, více profilů, průhledné pozadí, obrázky na pozadí – dokonce průhledné obrázky na pozadí. Pokud si rádi přizpůsobujete terminál, je to hotový den, a já jsem si přišel pro vítězství v tomto pytlovém závodě.

Tady je můj současný terminál. Projdeme si zde některá důležitá vylepšení.

(Velký náhled)

Terminál systému Windows je docela dobře přizpůsobitelný. Kliknutím na šipku „⌄“ vlevo nahoře (vedle nápisu „+“) získáte přístup do „Nastavení“. Tím se otevře soubor JSON.

Vazba Kopírovat/Vložit

V horní části souboru jsou všechny vazby kláves. První věc, kterou jsem udělal, bylo namapování „kopírovat“ na Ctrl + C a vložit na Ctrl + V. Jak jinak mám kopírovat a vkládat příkazy ze Stack Overflow, kterým nerozumím?“

{ "command": "copy", "keys": },{ "command": "paste", "keys": },

Problém je v tom, že Ctrl + C je již namapováno na SIGINT neboli příkaz Interrupt/kill v Linuxu. Existuje spousta terminálů pro Windows, které to řeší namapováním příkazů Copy/Paste na Ctrl + Shift + C, respektive Ctrl + Shift + V. V tomto případě se jedná o příkazy, které se dají namapovat. Problém je v tom, že kopírování/vkládání je ve Windows na každém jiném místě Ctrl + C / Ctrl + V. Prostě jsem v terminálu pořád dokola mačkal Ctrl + C a snažil se něco zkopírovat. Nemohl jsem s tím přestat.

Terminál ve Windows to řeší jinak. Pokud máte zvýrazněný text a stisknete Ctrl + C, text se zkopíruje. Pokud je spuštěný nějaký proces, stejně pošle dolů příkaz SIGINT a přeruší ho. To znamená, že Ctrl + C / Ctrl + V můžete v terminálu Windows bezpečně namapovat na Kopírovat/Vložit a nebude to narušovat možnost přerušení procesů.

Kdo by si pomyslel, že Kopírovat/Vložit může způsobit tolik bolesti srdce?“

Změna výchozího profilu

Výchozí profil je ten, který se zobrazí při otevření nové karty. Ve výchozím nastavení je to Powershell. Budete chtít přejít dolů a najít profil Linux. To je ten, který se otevře wsl.exe -d Ubuntu. Zkopírujte jeho GUID a vložte ho do nastavení defaultProfile.

Přesunul jsem tato dvě nastavení tak, aby byla hned vedle sebe a byla přehlednější:

(velký náhled)

Nastavení pozadí

Mám rád, když je pozadí tmavé jednolité barvy s plochým logem v pravém rohu. Dělám to proto, že chci, aby logo bylo světlé a viditelné, ale nepřekáželo textu. Toto jsem si vytvořil sám, ale na adrese Simple Desktops je k dispozici skvělá sbírka plochých obrázků, ze kterých si můžete vybrat.

Pozadí se nastavuje pomocí vlastnosti backgroundImage:

"backgroundImage": "c:/Users/YourUserName/Pictures/earth.png"
(velký náhled)

Všimněte si také nastavení s názvem „akryl“. To umožňuje nastavit neprůhlednost pozadí. Pokud máte jednobarevné pozadí, je to poměrně jednoduché.

"background": "#336699","useAcrylic": true,"acrylicOpacity": 0.5
(Velký náhled)

To můžete provést i s obrázkem na pozadí, a to kombinací nastavení arcylicOpacity a backgroundImageOpacity:

"backgroundImage": "c:/Users/username/Pictures/earth-and-stars.png","useAcrylic": true,"acrylicOpacity": 0.5
(Velký náhled)

Pro mé téma vypadá vše díky průhlednosti tlumeně, takže nechávám useAcrylic nastavené na false.

Změnit písmo

Tým, který vytváří Terminál Windows, pracuje také na novém písmu s názvem „Cascadia Code“. V době psaní tohoto článku nebylo k dispozici, takže místo něj máte k dispozici výchozí písmo systému Windows.

Výchozí písmo v Terminálu Windows je „Consolas“. Jedná se o stejné písmo, které používá příkazový řádek systému Windows. Pokud chcete mít pocit pravého Ubuntu, Chris Hoffman vás upozorní, jak si můžete nainstalovat oficiální písmo Ubuntu Mono.

Tady je obrázek před a po, abyste viděli rozdíl:

"fontFace": "Ubuntu Mono"
(Velký náhled)

Vypadají dost podobně; hlavní rozdíl je v rozestupech Ubuntu Mono, díky nimž je terminál jen o něco těsnější a čistší.

Barevná schémata

Barevná schémata jsou všechna umístěna v dolní části souboru s nastavením. Jako základní jsem zkopíroval barevné schéma „Campbell“. Snažím se, aby barvy odpovídaly svým názvům, ale nebojím se ani lumpáren. Namapuji „#ffffff“ na „modrou“ – je mi to úplně jedno.

(Velký náhled)

Pokud se vám líbí toto konkrétní schéma, které jsem pojmenoval „Země“, sestavil jsem tento gist, abyste nemuseli celý ten bordel ručně kopírovat ze screenshotu.

Poznámka: Barevné náhledy pocházejí z rozšíření „Color Highlight“ pro VS Code.

Změna výchozího výchozího adresáře

Ve výchozím nastavení vás profil WSL hodí do vašeho domovského adresáře na straně Windows. Na základě nastavení, které doporučuji v tomto článku, by bylo vhodnější, aby byl místo toho vhozen do vašeho linuxového adresáře home. Za tímto účelem změňte nastavení startingDirectory ve svém profilu „Ubuntu“:

"startingDirectory": "\\wsl$\Ubuntu\home\burkeholland"

Poznamenejte si tam cestu. Tuto cestu (bez extra escape lomítek) můžete použít pro přístup k WSL z příkazového řádku Windows.

(velký náhled)

Instalace Zsh/Oh-My-Zsh

Pokud jste Zsh a Oh-My-Zsh ještě nikdy nepoužívali, čeká vás opravdová lahůdka. Zsh (neboli „Z Shell“) je náhradní shell pro Linux. Rozšiřuje základní možnosti jazyka Bash, včetně implicitního přepínání adresářů (není třeba psát cd), lepší podpory témat, lepších výzev a mnoha dalších věcí.

Pro instalaci Zsh jej získáte pomocí správce balíčků apt, který je součástí instalace Linuxu:

sudo apt install zsh

Instalace oh-my-zsh pomocí curl. Oh-my-zsh je sada konfigurací pro zsh, které ještě více vylepšují prostředí shellu pomocí zásuvných modulů, motivů a nesčetných klávesových zkratek.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Poté se vás zeptá, zda chcete změnit výchozí shell na Zsh. Vy ano, tak odpovězte kladně a nyní již můžete používat Zsh a Oh-My-Zsh.

(Velký náhled)

Všimněte si, že výzva je nyní mnohem čistší. Vzhled této výzvy můžete změnit změnou tématu v souboru ~/.zshrc.

Otevřete ji pomocí nano, což je něco jako VIM, ale můžete věci upravovat a ukončit, když potřebujete.

nano ~/.zshrc

Změňte řádek, který nastavuje téma. Nad ním je adresa URL s celým seznamem témat. Myslím, že to „cloudové“ je pěkné. A hezké.

(Velký náhled)

Aby se změny v .zshrczachytily, budeš je muset zdrojovat:

source ~/.zshrc
(Velký náhled)

Poznámka: Pokud si vyberete téma jako „agnoster“, které vyžaduje glyfy, budete potřebovat verzi Ubuntu Mono s napájecí linkou, která má… glyfy. Jinak bude váš terminál plný podivných znaků, jako byste si na klávesnici rozmáčkli obličej. Nerd Fonts nabízí jeden, který, jak se zdá, funguje docela dobře.

Nyní můžete dělat takové věci, jako je změna adresářů pouhým zadáním názvu adresáře. Není potřeba žádný cd. Chcete vrátit adresář zpět? Stačí zadat ... Nemusíte ani zadávat celý název adresáře, stačí zadat několik prvních písmen a stisknout tabulátor. Zsh vám nabídne seznam všech souborů/adresářů, které odpovídají vašemu hledání, a vy je můžete procházet pomocí tabulek.

(Velký náhled)

Instalace Node

Jako vývojář webu budete pravděpodobně chtít nainstalovat Node. Předpokládám, že k vývoji webu nemusíte instalovat Node, ale v roce 2019 to tak určitě vypadá!

Váš první instinkt by mohl být nainstalovat Node pomocí apt, což můžete udělat, ale litovali byste toho ze dvou důvodů:

  1. Verze Node na apt je žalostně zastaralá;
  2. Node byste měli instalovat pomocí správce verzí, abyste nenarazili na problémy s oprávněními.

Nejlepším způsobem, jak vyřešit oba tyto problémy, je nainstalovat nvm (Node Version Manager). Protože jste nainstalovali zsh, stačí přidat zásuvný modul nvm do souboru zshrc a zsh se postará o zbytek.

Nejprve nainstalujte zásuvný modul klonováním v repozitáři zsh-nvm. (Nebojte se, Git je standardní součástí vaší instalace Ubuntu.)

git clone https://github.com/lukechilds/zsh-nvm ~/.oh-my-zsh/custom/plugins/zsh-nvm

Poté jej přidejte jako zásuvný modul do souboru ~/.zshrc.

`nano ~/.zshrc`plugins (zsh-nvm git)
(Velký náhled)

Nezapomeňte znovu zdrojovat soubor zshrc pomocí source ~/.zshrc a uvidíte, že se nvm instaluje.

(Velký náhled)

Teď můžete nainstalovat node s nvm. Díky němu můžete snadno nainstalovat více verzí node vedle sebe a bez námahy mezi nimi přepínat. Také žádné chyby oprávnění při globální instalaci npm!“

nvm install --lts

Doporučuji tento doplněk oproti standardní instalaci nvm, protože vám dává možnost snadno aktualizovat nvm. To je u standardní instalace „curl“ docela otrava. S pluginem je to jeden příkaz.

nvm upgrade

Využívejte automatické návrhy

Jeden z mých velmi oblíbených pluginů pro zsh je zsh-autosuggestions. Pamatuje si věci, které jste v terminálu napsali dříve, a pak je rozpozná, když je začnete psát znovu, a také „automaticky navrhne“ řádek, který byste mohli potřebovat. Tento doplněk se mi hodil víckrát, než si vzpomínám – zejména pokud jde o dlouhé příkazy CLI, které jsem v minulosti použil, ale nikdy si na ně nemohu vzpomenout.

Klonujte repozitář do složky s rozšířeními zsh:

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

Poté jej přidejte do svých zásuvných modulů zsh a vytvořte zdrojový soubor zshrc:

nano ~/.zshrc# In the .zshrc fileplugins(zsh-nvm zsh-autosuggestions git)source ~/.zshrc

Zásuvný modul čte vaši historii zsh, takže začněte psát nějaký příkaz, který jste již dříve zadali, a sledujte kouzlo. Zkuste napsat první část toho dlouhého příkazu klonování výše.

(velký náhled)

Pokud stisknete ↹, příkaz se automaticky doplní. Pokud budete stále mačkat ↹, projde všechny příkazy v historii, které by mohly odpovídat.

Důležité klávesové zkratky

Existuje několik terminálových zkratek, které používám neustále. Nacházím je u všech svých nástrojů – včetně VS Code. Snažit se naučit všechny klávesové zkratky je ztráta času, protože je nebudete používat natolik, abyste si je zapamatovali.

Tady je několik, které používám pravidelně:

Klávesová zkratka terminálu Co to dělá?
Ctrl + L Tím vymažete terminál a vrátíte se na začátek. Je to obdoba zadání „clear“.
Ctrl + U Tím se vymaže pouze aktuální řádek.
Ctrl + A Pošle kurzor na začátek příkazového řádku.
Ctrl + E Přesune na konec řádku.
Ctrl + K Smaže všechny znaky za kurzorem.

To je vše! Všechno ostatní jsem se nejspíš naučil a pak zapomněl, protože se to nikdy nepoužije.

Konfigurace Gitu(Hub/Lab/Whatevs)

Git se dodává v Ubuntu, takže není potřeba nic instalovat. Pro vytvoření a zprovoznění ssh klíčů můžete postupovat podle pokynů na vámi zvoleném hostiteli pro správu zdrojů.

Všimněte si, že v pokynech na Githubu se píše, že pro zkopírování ssh klíče máte použít nástroj „copy“. Ubuntu má příkaz „xcopy“, ale ten zde nebude fungovat, protože mezi Linuxem a Windows neexistuje žádné propojení ve smyslu schránky.

Místo toho můžete prostě použít spustitelný soubor schránky Windows a zavolat jej přímo z terminálu. Musíte nejprve získat text pomocí cat a ten pak potrubím přenést do schránky Windows.

cat ~/.ssh/id_rsa.pub | clip.exe 

V dokumentech Githubu se píše, že se musíte ujistit, že je spuštěn ssh-agent. Není tomu tak. Při pokusu o přidání klíče do agenta se zobrazí toto:

(velký náhled)

Můžete agenta spustit, ale při příštím restartu Windows nebo zastavení WSL jej budete muset spustit znovu. Je to proto, že ve WSL není žádný inicializační systém. Neexistuje žádný systemd ani jiný proces, který by při spuštění WSL spustil všechny služby. WSL je stále ve fázi preview a tým pracuje na řešení tohoto problému.

Mimochodem, věřte tomu nebo ne, i pro toto existuje plugin zsh. Jmenuje se ssh-agent a je nainstalován spolu s oh-my-zsh, takže stačí na něj odkázat v souboru .zshrc.

zsh-nvm zsh-autosuggestions ssh-agent git

Ten automaticky spustí ssh-agenta, pokud není spuštěn při prvním spuštění WSL. Nevýhodou je, že se vás při každém novém spuštění WSL bude ptát na vaši přístupovou frázi. To znamená v podstatě kdykoli restartujete počítač.

(Velký náhled)

VS Code a WSL

WSL nemá grafické rozhraní, takže nemůžete nainstalovat vizuální nástroj, jako je VS Code. Ten je třeba nainstalovat na straně Windows. To představuje problém, protože máte program spuštěný na straně Windows, který přistupuje k souborům na straně Linuxu, a to může vést k nejrůznějším podivnostem a problémům s „odepřením oprávnění“. Obecně platí, že Microsoft nedoporučuje měnit soubory na straně WSL pomocí programů pro Windows.

Pro řešení tohoto problému existuje rozšíření pro VS Code s názvem „Remote WSL“. Toto rozšíření vytvořil Microsoft a umožňuje vyvíjet v rámci WSL, ale zevnitř VS Code.

Po instalaci rozšíření můžete připojit VS Code přímo na stranu Ubuntu otevřením příkazové palety (Ctrl + Shift + P) a výběrem možnosti „Remote-WSL: New Window“.

(Velký náhled)

Tím se otevře nová instance VS Code, která vám umožní pracovat, jako byste byli plně na straně Linuxu. Provedením příkazu „Soubor/Otevřít“ procházíte souborový systém Ubuntu namísto systému Windows.

(Velký náhled)

Integrovaný terminál ve VS Code otevře vaše krásně přizpůsobené nastavení zsh. Vše „prostě funguje“ tak, jak má, když máte nainstalované rozšíření Remote WSL.

Pokud otevřete kód z terminálu pomocí code ., VS Code automaticky zjistí, že byl otevřen z WSL, a automaticky připojí rozšíření Remote WSL.

Rozšíření VS Code s Remote WSL

Rozšíření Remote WSL pro VS Code funguje tak, že na straně Linuxu nastavíte malý server a pak se k němu připojíte z VS Code na straně Windows. Vzhledem k tomu se při otevření projektu z WSL automaticky nezobrazí rozšíření, která máte nainstalovaná ve VS Code.

Například mám ve VS Code otevřený projekt Vue. Přestože mám nainstalovaná všechna správná rozšíření Vue pro zvýrazňování syntaxe, formátování a podobně, VS Code se chová, jako by soubor .vue nikdy předtím neviděl.

(Velký náhled)

Všechna rozšíření, která máte nainstalovaná, lze ve WSL povolit. Stačí najít požadované rozšíření ve WSL a kliknout na tlačítko „Instalovat do WSL“.

(Velký náhled)

Všechna rozšíření nainstalovaná ve WSL se zobrazí ve vlastní sekci v zobrazení Průzkumník rozšíření. Pokud máte hodně rozšíření, mohlo by být mírně otravné instalovat každé zvlášť. Pokud chcete prostě nainstalovat všechna rozšíření, která máte ve WSL, klikněte na malou ikonu stahování z cloudu v horní části sekce „Místní – nainstalovaná“.

(Velký náhled)

Jak nastavit vývojové adresáře

Je to už názorově vyhraněný článek, takže tady je ten, o který jste si neřekli, jak si myslím, že byste měli strukturovat své projekty v souborovém systému.

Všechny své projekty mám na straně Linuxu. Neukládám své projekty do „Mých dokumentů“ a pak se s nimi snažím pracovat z WSL. Můj mozek to nezvládá.

Vytvářím si složku /dev, kterou dávám do kořene složky /home v Linuxu. Uvnitř této složky vytvořím další, která se jmenuje stejně jako moje repozitář Github: /burkeholland. Do této složky se ukládají všechny mé projekty – i ty, které nejsou odeslány na Github.

Pokud klonuji repozitář z jiného účtu Github (např. „microsoft“), vytvořím v „dev“ novou složku s názvem /microsoft. Do složky uvnitř ní pak naklonuju repozitář.

V podstatě napodobuju stejnou strukturu, jakou má správa zdrojů na mém lokálním počítači. Zjistil jsem, že je mnohem snazší uvažovat o tom, kde se projekty nacházejí a k jakým repozitářům jsou připojeny jen na základě jejich umístění. Je to jednoduché, ale velmi efektivní, protože mi to pomáhá mít ve všem pořádek. A já potřebuji každou pomoc, kterou mohu dostat.

(Velký náhled)

Procházení souborů z Průzkumníka Windows

Někdy se stane, že se potřebujete dostat k souboru v Linuxu ze strany Windows. Na WSL je krásné, že to stále můžete udělat.

Jedním ze způsobů je přistupovat k WSL stejně jako k namapované jednotce. Přistupujte k němu pomocí \wsl$ přímo z lišty průzkumníka:

\wsl$
(velký náhled)

Můžete to udělat z několika různých důvodů. Například zrovna dnes jsem potřeboval rozšíření pro Chrome, které není ve webovém obchodě. Naklonoval jsem tedy repozitář ve WSL, pak jsem na něj přešel jako na „Rozbalené rozšíření“ a načetl ho do Edge.

Jednou z věcí, kterou v Linuxu dělám poměrně často, je otevření adresáře, který obsahuje soubor, přímo z terminálu. To můžete udělat i ve WSL přímým voláním explorer.exe. Například tento příkaz otevře aktuální adresář v Průzkumníku Windows.

$ explorer.exe .

Tento příkaz je však trochu těžkopádný. V systému Linux je to jen open .. Stejné kouzlo můžeme provést vytvořením aliasu v ~/.zshrc.

alias open="explorer.exe"

Docker

Když jsem řekl, že všechny nástroje by měly být na straně Linuxu, myslel jsem to vážně. To se týká i Dockeru.

Tady už začíná jít opravdu do tuhého. Potřebujeme Docker běžící uvnitř Linuxu, který běží uvnitř Windows. Když to napíšete do příspěvku na blogu, je to trochu jako ruská hnízdící panenka. Ve skutečnosti je to docela jednoduché.

Potřebujete správnou verzi Dockeru pro Windows. V době psaní tohoto článku je to WSL 2 Tech Preview.

Když spustíte instalační program, zeptá se vás, zda chcete používat kontejnery pro Windows místo kontejnerů pro Linux. Určitě to uděláte. V opačném případě se vám možnost spustit Docker ve WSL nezobrazí.

(Velký náhled)

Službu Docker nyní můžete ve WSL povolit kliknutím na položku v systémové liště a výběrem možnosti „WSL 2 Tech Preview“:

(Velký náhled)

Po spuštění služby můžete v rámci WSL používat Docker tak, jak byste očekávali. Spuštění Dockeru ve WSL přináší poměrně velké zvýšení výkonu a také zkrácení doby studeného startu kontejnerů.

Mohl bych vám také doporučit instalaci rozšíření Docker pro VS Code? Vytváří vizuální rozhraní pro nastavení Dockeru a obecně jen usnadňuje práci s Dockerem, protože si nemusíte pamatovat všechny ty příznaky a volby příkazového řádku.

Získejte více Bash v systému Windows

V tuto chvíli byste měli získat představu o tom, jak umístit Bash do systému Windows a jak funguje, jakmile ho tam dostanete. Svůj terminál si můžete donekonečna přizpůsobovat a existují nejrůznější radikální programy, které můžete přidat, aby dělaly takové věci, jako je automatické nastavování proměnných PATH, vytváření aliasů, získání krávy ASCII v terminálu a mnoho dalšího.

Spuštění Bashe ve Windows mi otevřelo zcela nový vesmír. Jsem schopen kombinovat Windows, které mám rád po stránce produktivity, a Linux, na kterém jsem závislý jako vývojář. Nejlepší ze všeho je, že nyní mohu vytvářet aplikace pro obě platformy na jednom stroji.

Další čtení

Další informace o Bashi v systému Windows si můžete přečíst zde:

  • „Windows Subsystem For Linux Installation Guide For Windows 10,“ Microsoft Docs
  • „How To Install And Use The Bash Shell On Windows 10,“ Chris Hoffman, How-To Geek
  • „Sharing SSH With WSL,“ Drew Wilson
  • „Getting Crazy With The Window Subsystem For Linux,“ Brian Ketelsen
  • „Everything You Can Do With Windows 10’s New Bash Shell,“ Chris Hoffman, How-To Geek

Zvláštní poděkování patří Brianu Ketelsenovi, Mattu Hernandezovi, Richi Turnerovi a Craigu Loewenovi za jejich trpělivost, pomoc a vedení při psaní tohoto článku.

(rb, dm, il)

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.