Mutarea dezvoltării JavaScript către Bash pe Windows

Despre autor

Burke Holland este un dezvoltator front-end care trăiește în Nashville, TN; cel mai mare oraș din lume. Îi place foarte mult JavaScript pentru că este singurul mod în care …Mai multe despreBurke↬

  • 24 min read
  • JavaScript
  • Salvat pentru citire offline
  • Share on Twitter, LinkedIn
Îți place terminalul Bash, dar îți iubești și PC-ul? Poate că ați pus ochii pe noul hardware Surface, dar nu puteți face trecerea fără terminalul dvs. Acum puteți avea Windows și Bash. În acest articol, vom analiza în profunzime cum să configurăm o cutie de dezvoltare Windows/Linux pentru dezvoltarea JavaScript.

Sunt unul dintre acei oameni care nu pot trăi fără terminalul lor Bash. Acest singur fapt mi-a îngreunat munca de frontend pe Windows. Lucrez la Microsoft și lucrez pe un Mac. Abia când a apărut noua linie hardware Surface, acum câțiva ani, mi-am dat seama: Trebuie să am una din astea.

Așa că mi-am luat una. Un Surface Book 2 care rulează Windows 10, mai exact. Chiar acum redactez acest articol pe ea. Și ce se întâmplă cu dulcele, dulcele meu Bash prompt? Ei bine, l-am adus cu mine, bineînțeles.

În acest articol, voi examina în profunzime modul în care noua tehnologie din Windows 10 vă permite să rulați un terminal Linux complet pe Windows. De asemenea, vă voi arăta uimitoarea mea configurație a terminalului (care a fost numită „cea mai bună din toate timpurile” de către „eu”) și cum puteți și dumneavoastră să vă configurați propria mașină de dezvoltare Windows/Linux.

Dacă v-ați dorit ceva din acel hardware Surface, dar nu puteți trăi fără un terminal Linux, ați ajuns la locul potrivit.

Nota: La momentul scrierii acestui articol, o mulțime de elemente din acest articol vă vor cere să folosiți sau să treceți la compilări „preview” sau „insider” ale diferitelor elemente, inclusiv Windows. Cele mai multe dintre aceste lucruri se vor regăsi în versiunea principală a Windows la un moment dat în viitor.

Windows Subsystem For Linux (WSL)

Subsistemul Windows pentru Linux, sau, „WSL” este ceea ce vă permite să rulați Linux pe Windows. Dar ce este mai exact această știință nebună?

SWL, în încarnarea sa actuală, este un strat de traducere care convertește apelurile de sistem Linux în apeluri de sistem Windows. Linux rulează deasupra WSL. Asta înseamnă că, pentru a obține Linux pe Windows, trebuie să faceți trei lucruri:

  1. Activați WSL,
  2. Instalați Linux,
  3. Includeți întotdeauna trei elemente într-o listă.

Așa cum se pare, acest strat de traducere este un pic cam lent – cam ca și cum eu aș încerca să-mi amintesc dacă am nevoie de splice sau slice. Acest lucru este valabil mai ales atunci când WSL citește și scrie în sistemul de fișiere. Aceasta este un fel de mare problemă pentru dezvoltatorii web, deoarece orice npm install adecvat va copia mii de fișiere pe mașina dumneavoastră. Adică, nu știu ce părere aveți voi, dar eu nu am de gând să-mi scriu la stânga propriile șiruri de caractere.

Versiunea 2 a WSL este o poveste diferită. Este considerabil mai rapidă decât versiunea actuală, deoarece valorifică un nucleu de virtualizare din Windows în loc să folosească stratul de traducere. Când spun că este „considerabil mai rapidă”, mă refer la mult, mult mai rapidă. Adică la fel de rapid ca mine care caut pe Google „splice vs slice”.

Din acest motiv, voi arăta cum se instalează WSL 2. La momentul scrierii acestui articol, acest lucru va necesita să fiți pe versiunea „Insider” a Windows.

Primul lucru: urmați acest scurt ghid pentru a activa WSL pe Windows 10 și verificați numărul versiunii Windows.

După ce l-ați instalat, apăsați tasta Windows și tastați „windows insider”. Apoi alegeți „Windows Insider Program Settings”.

(Previzualizare mare)

Voi avea câteva opțiuni diferite în ceea ce privește „ringul” pe care doriți să fiți. O mulțime de oameni pe care îi cunosc sunt pe inelul rapid. Totuși, eu sunt un tip precaut. Când eram copil, coboram pe toboganul de la locul de joacă pe burtă, ținându-mă de părțile laterale. Acesta este motivul pentru care stau pe ringul lent. Sunt pe el de câteva luni și nu mi se pare mai deranjant sau mai instabil decât Windows-ul obișnuit.

Este o opțiune bună dacă vrei WSL 2, dar nu vrei să mori pe tobogan.

(Previzualizare mare)

Nota: După ce am publicat acest articol, am aflat că WSL 2 nu se află, de fapt, pe inelul lent. Va trebui să fiți pe ringul rapid pentru a-l obține. Probabil că am fost pe ringul rapid la un moment dat în procesul de scriere a acestui articol. Așa că inel rapid să fie. Succes pe slide!

În continuare, trebuie să activați caracteristica „Virtual Machine Platform” în Windows, care este necesară pentru versiunea 2 a WSL. Pentru a ajunge la acest ecran, apăsați tasta Windows și tastați „windows features”. Apoi selectați „Turn Windows Features on or off” (Activează sau dezactivează funcțiile Windows). Selectați „Virtual Machine Platform”. Opțiunea „Windows Subsystem for Linux” (Subsistem Windows pentru Linux) ar trebui să fie deja activată.

(Previzualizare mare)

Acum că WSL este activat, puteți instala Linux. Acest lucru se face, în mod ironic, direct din Windows Store. Abia în 2019 v-aș sugera să „instalați Linux din magazinul Windows”.

Există mai multe distribuții diferite din care puteți alege, dar Ubuntu va fi cel mai susținut de toate instrumentele pe care le vom configura mai târziu – inclusiv VS Code. Toate instrucțiunile care vor urma de aici încolo cu presupun o instalare Ubuntu. Dacă instalați o altă distribuție, toate pariurile sunt anulate.

Cercetați „Ubuntu” din Windows Store. Vor fi trei din care puteți alege: Ubuntu, Ubuntu 18.04 și Ubuntu 16.04. Lui Ubuntu îi place foarte mult acel număr de versiune minoră 04, nu-i așa?

(Previzualizare mare)

Distro „Ubuntu” (prima din această captură de ecran) este „meta-versiunea”, sau mai degrabă un placeholder care indică doar cea mai recentă versiune. Deocamdată, aceasta este 18.04.

Am optat pentru versiunea meta deoarece mai târziu vă voi arăta cum să navigați în sistemul de fișiere Linux cu Windows Explorer și este cam dezordonat să aveți „Ubuntu 18.04” ca nume de unitate față de doar „Ubuntu”.

Această instalare este destul de rapidă, în funcție de conexiunea dvs. la internet. Este doar de aproximativ 215 megabytes, dar eu sunt pe o conexiune gigabit aici și de unde știi dacă cineva are o conexiune gigabit? Nu vă faceți griji, vă vor spune.

După instalare, veți avea acum o aplicație „Ubuntu” în meniul de start.

(Previzualizare mare)

Dacă dați click pe ea, veți obține un terminal Bash!

(Previzualizare mare)

Luați-vă un moment pentru a vă bucura de miracolul tehnologiei.

În mod implicit, veți rula în versiunea 1 a WSL. Pentru a face upgrade la versiunea 2, va trebui să deschideți un terminal PowerShell și să executați o comandă.

Apăsați tasta „Windows” și tastați „Powershell”.

(Previzualizare mare)

Din terminalul PowerShell, puteți vedea ce versiune de WSL aveți executând wsl --list --verbose.

(Previzualizare mare)

Dacă vi se afișează versiunea 1, va trebui să executați comanda --set-version și să specificați numele instanței (Ubuntu) și versiunea pe care o doriți (2).

wsl --set-version Ubuntu 2
(Previzualizare mare)

Acest lucru va dura un pic, în funcție de cât de multă carne are mașina dvs. A mea a durat „câteva minute” mai mult sau mai puțin. Când va fi gata, veți fi pe cea mai recentă și cea mai bună versiune a WSL.

Este creierul tău pe Linux… pe Windows.

Linux nu este Windows. WSL nu este un prompt bash deasupra unui sistem de operare Windows. Este un sistem de operare complet de sine stătător, cu propria sa structură de dosare și aplicații instalate. Dacă instalați Node cu programul de instalare Windows, tastarea node în Linux va eșua, deoarece Node nu este instalat în Linux. Este instalat în Windows.

Dar adevărata magie a WSL-ului constă în modul în care conectează fără probleme Windows și Linux, astfel încât acestea să apară ca un singur sistem de fișiere pe mașina dumneavoastră.

File And Folder Navigation

Din mod implicit, terminalul Ubuntu vă duce în directorul dvs. personal Linux (sau /home/your-user-name). Puteți trece pe partea de Windows mergând la /mnt/c.

(Previzualizare mare)

Atenție, observați că unele permisiuni sunt refuzate aici. Ar trebui să fac clic dreapta pe pictograma Ubuntu și să fac clic pe „Run as Administrator” pentru a avea acces la aceste fișiere. Acesta este modul în care Windows face permisiunile ridicate. Nu există sudo pe Windows.

Lansarea aplicațiilor

Puteți lansa orice aplicație Windows din terminalul Ubuntu. De exemplu, pot deschide Windows Explorer din terminalul Unbuntu.

(Previzualizare mare)

Acest lucru funcționează și în sens invers. Puteți executa orice aplicație instalată pe partea de Linux. Aici execut „fortune” instalat în Linux din linia de comandă Windows. (Pentru că nu este o instalare corectă de Linux fără fortune aleatoare și fără sens.)

(Previzualizare mare)

Două sisteme de operare diferite. Două sisteme de fișiere diferite. Două seturi diferite de aplicații instalate. Vedeți cum ar putea deveni confuz?

Pentru a păstra totul în ordine, vă recomand să vă păstrați toate fișierele și instrumentele de dezvoltare JavaScript instalate pe partea de Linux. Acestea fiind spuse, abilitatea de a trece de la Windows la Linux și de a accesa fișiere din ambele sisteme este magia de bază a WSL. Nu o uitați, pentru că este ceea ce face ca toată această configurație să fie mai bună decât o simplă cutie Linux standard.

Setting Up Your Development Environment

De aici încolo, vă voi oferi o listă de elemente de opinie pentru ceea ce cred eu că face o configurație Linux pe Windows mortală. Țineți minte: opiniile mele sunt doar atât. Opinii. Se întâmplă ca, la fel ca toate opiniile mele, să fie 100% corecte.

Obținerea unui terminal mai bun

Da, ați primit un terminal atunci când ați instalat Ubuntu. Este, de fapt, consola Windows conectată la distro Linux. Nu este o consolă rea. Puteți să o redimensionați, să activați copy/paste (în setări). Dar nu poți face lucruri precum tab-uri sau deschiderea de ferestre noi. La fel cum mulți oameni folosesc programe terminale de înlocuire pe Mac (eu folosesc Hyper), există și alte opțiuni pentru Windows. Lista Awesome WSL de pe Github conține o listă destul de exhaustivă.

Toate acestea sunt emulatoare bune, dar există o nouă opțiune care este construită de oameni care cunosc destul de bine Windows.

Microsoft a lucrat la o nouă aplicație numită „Windows Terminal”.

(Previzualizare mare)

Windows Terminal poate fi instalat din Windows Store și este în prezent în modul de previzualizare. Îl folosesc de ceva vreme și are suficiente caracteristici și este suficient de stabil pentru ca eu să-i dau o susținere fără rezerve.

Noul Windows Terminal dispune de o interfață cu tab-uri complete, copy/paste, profiluri multiple, fundaluri transparente, imagini de fundal – chiar și imagini de fundal transparente. Este o zi de teren dacă vă place să vă personalizați terminalul, iar eu am ajuns să câștig această cursă cu sacul.

Iată terminalul meu actual. Vom face o plimbare prin câteva dintre modificările importante de aici.

(Previzualizare mare)

Terminalul Windows este destul de personalizabil. Dacă faceți clic pe săgeata „⌄” din stânga sus (lângă semnul „+”), veți avea acces la „Settings” (Setări). Aceasta va deschide un fișier JSON.

Bind Copy/Paste

În partea de sus a fișierului se află toate legăturile de taste. Primul lucru pe care l-am făcut a fost să mapez „copy” la Ctrl + C și paste la Ctrl + V. Cum altfel aș putea să copiez și să lipesc comenzi de pe Stack Overflow pe care nu le înțeleg?

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

Problema este că Ctrl + C este deja mapat la SIGINT, sau comanda Interrupt/kill pe Linux. Există o mulțime de terminale pentru Windows care se ocupă de acest lucru prin maparea Copy/Paste la Ctrl + Shift + C și, respectiv, Ctrl + Shift + V. Problema este că copy/paste este Ctrl + C / Ctrl + V în orice alt loc din Windows. Pur și simplu am tot apăsat Ctrl + C în terminal la nesfârșit încercând să copiez lucruri. Nu mă puteam opri din a o face.

Terminalul Windows gestionează acest lucru în mod diferit. Dacă aveți un text evidențiat și apăsați Ctrl + C, acesta va copia textul. Dacă există un proces în desfășurare, tot trimite comanda SIGINT în jos și îl întrerupe. Înseamnă că puteți mapa în siguranță Ctrl + C / Ctrl + V pentru Copy/Paste în terminalul Windows și nu va interfera cu capacitatea dvs. de a întrerupe procesele.

Cine ar fi crezut că Copy/Paste ar putea cauza atâtea dureri de cap?

Change The Default Profile

Profilul implicit este cel care apare atunci când se deschide o filă nouă. În mod implicit, acesta este Powershell. Veți dori să derulați în jos și să găsiți profilul Linux. Acesta este cel care se deschide wsl.exe -d Ubuntu. Copiați GUID-ul său și lipiți-l în setarea defaultProfile.

Am mutat aceste două setări astfel încât să fie chiar una lângă cealaltă pentru a fi mai ușor de văzut:

(Previzualizare mare)

Set The Background

Îmi place ca fundalul meu să fie o culoare solidă închisă cu un logo plat în colțul din dreapta. Fac acest lucru pentru că vreau ca logo-ul să fie luminos și vizibil, dar să nu stea în calea textului. Aceasta am făcut-o eu însumi, dar există o colecție grozavă de imagini plate din care puteți alege la Simple Desktops.

Fundalul este setat cu proprietatea backgroundImage:

"backgroundImage": "c:/Users/YourUserName/Pictures/earth.png"
(Previzualizare mare)

Vă veți observa, de asemenea, o setare numită „acrylic”. Aceasta este cea care vă permite să reglați opacitatea fundalului. Dacă aveți o culoare de fundal solidă, acest lucru este destul de simplu.

"background": "#336699","useAcrylic": true,"acrylicOpacity": 0.5
(Previzualizare mare)

Puteți realiza acest lucru și cu o imagine de fundal, combinând setarea arcylicOpacity cu backgroundImageOpacity:

"backgroundImage": "c:/Users/username/Pictures/earth-and-stars.png","useAcrylic": true,"acrylicOpacity": 0.5
(Previzualizare mare)

Pentru tema mea, transparența face ca totul să arate în surdină, așa că păstrez useAcrylic setat la false.

Schimbă fontul

Echipa care construiește Windows Terminal lucrează, de asemenea, la un nou font numit „Cascadia Code”. Acesta nu este disponibil la momentul scrierii acestui articol, așa că în schimb veți primi fontul implicit al Windows.

Fontul implicit din Terminalul Windows este „Consolas”. Acesta este același font pe care îl folosește linia de comandă Windows. Dacă doriți acea senzație adevărată de Ubuntu, Chris Hoffman indică modul în care puteți instala fontul oficial Ubuntu Mono.

Iată un înainte și un după, astfel încât să puteți vedea diferența:

"fontFace": "Ubuntu Mono"
(Previzualizare mare)

Acestea arată destul de asemănător; principala diferență constă în spațierea din Ubuntu Mono, care face ca terminalul să fie puțin mai strâns și mai curat.

Schemele de culori

Schemele de culori sunt toate situate în partea de jos a fișierului de setări. Am copiat schema de culori „Campbell” ca bază de referință. Încerc să potrivesc culorile cu numele lor, dar nu mi-e teamă nici să mă dau în vileag. Voi cartografia „#ffffff” în „albastru” – nici măcar nu-mi pasă.

(Previzualizare mare)

Dacă vă place această schemă particulară pe care am numit-o „Pământ”, am pus laolaltă acest gist pentru a nu fi nevoit să copiați manual toată această mizerie dintr-o captură de ecran.

Nota: Previzualizările de culoare vin în virtutea extensiei „Color Highlight” pentru VS Code.

Change The Default Starting Directory

În mod implicit, profilul WSL vă plasează în directorul dvs. de acasă pe partea de Windows. Bazându-mă pe configurația pe care o recomand în acest articol, ar fi de preferat să fie aruncat, în schimb, în directorul dvs. Linux home. Pentru a face acest lucru, modificați setarea startingDirectory din profilul dvs. „Ubuntu”:

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

Rețineți calea de acolo. Puteți folosi această cale (fără barierele de scăpare suplimentare) pentru a accesa WSL din linia de comandă Windows.

(Previzualizare mare)

Instalați Zsh/Oh-My-Zsh

Dacă nu ați folosit niciodată Zsh și Oh-My-Zsh până acum, vă așteaptă o adevărată plăcere. Zsh (sau „Z Shell”) este un shell de înlocuire pentru Linux. Acesta extinde capacitățile de bază ale lui Bash, incluzând comutarea implicită a directoarelor (nu mai este nevoie să tastați cd), un suport mai bun pentru teme, prompts mai bune și multe altele.

Pentru a instala Zsh, luați-l cu managerul de pachete apt, care vine la pachet cu instalarea Linux:

sudo apt install zsh

Instalați oh-my-zsh folosind curl. Oh-my-zsh este un set de configurații pentru zsh care îmbunătățesc și mai mult experiența shell-ului cu plugin-uri, teme și o multitudine de comenzi rapide de la tastatură.

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

Apoi vă va întreba dacă doriți să schimbați shell-ul implicit în Zsh. Vreți, așa că răspundeți afirmativ și sunteți acum în funcțiune cu Zsh și Oh-My-Zsh.

(Previzualizare mare)

Vă veți da seama că promptul este mult mai curat acum. Puteți schimba aspectul acelui prompt schimbând tema din fișierul ~/.zshrc.

Deschideți-l cu nano, care este un fel de VIM, dar puteți edita lucruri și ieși când aveți nevoie.

nano ~/.zshrc

Schimbați linia care stabilește tema. Există un URL deasupra ei cu o listă întreagă de teme. Cred că cea cu „cloud” este drăguță. Și drăguță.

(Previzualizare mare)

Pentru ca modificările aduse la .zshrc să fie preluate, va trebui să le luați ca sursă:

source ~/.zshrc
(Previzualizare mare)

Note: Dacă alegeți o temă precum „agnoster”, care necesită glife, veți avea nevoie de o versiune infuzată de linii de putere a Ubuntu Mono care are… glife. În caz contrar, terminalul dvs. va fi doar plin de caractere ciudate, de parcă v-ați fi strivit fața pe tastatură. Nerd Fonts oferă unul care pare să funcționeze destul de bine.

Acum puteți face lucruri precum schimbarea directoarelor doar prin introducerea numelui directorului. Nu este nevoie de cd. Vrei să te întorci înapoi într-un director? Doar faceți un ... Nici măcar nu trebuie să introduceți întregul nume al directorului, doar să introduceți primele câteva litere și să apăsați tab. Zsh vă va oferi o listă cu toate fișierele/directoarele care corespund căutării dvs. și puteți trece prin ele.

(Previzualizare mare)

Instalarea Node

În calitate de dezvoltator web, probabil că veți dori să instalați Node. Presupun că nu trebuie să instalați Node pentru a face dezvoltare web, dar cu siguranță așa se simte în 2019!

Primul instinct ar putea fi să instalați Node cu apt, ceea ce puteți face, dar veți regreta din două motive:

  1. Versiunea de Node de pe apt este dureros de depășită;
  2. Ar trebui să instalați Node cu un manager de versiuni, astfel încât să nu întâmpinați probleme cu permisiunile.

Cel mai bun mod de a rezolva aceste două probleme este să instalați nvm (Node Version Manager). Din moment ce ați instalat zsh, puteți adăuga pur și simplu plugin-ul nvm în fișierul zshrc și zsh se ocupă de restul.

În primul rând, instalați plugin-ul prin clonarea în repo-ul zsh-nvm. (Nu vă faceți griji, Git vine standard în instalarea Ubuntu.)

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

Apoi adăugați-l ca plugin în fișierul ~/.zshrc.

`nano ~/.zshrc`plugins (zsh-nvm git)
(Previzualizare mare)

Amintiți-vă să creați din nou sursa fișierului zshrc cu source ~/.zshrc și veți vedea că nvm este instalat.

(Previzualizare mare)

Acum puteți instala node cu nvm. Acesta facilitează instalarea mai multor versiuni de node, una lângă alta, și trecerea de la una la alta fără efort. De asemenea, nu mai există erori de permisiuni atunci când faceți instalări npm globale!

nvm install --lts

Recomand acest lucru în locul instalării nvm standard, deoarece pluginul vă oferă posibilitatea de a actualiza cu ușurință nvm. Acest lucru este un fel de durere cu instalarea standard „curl”. Este o singură comandă cu plugin-ul.

nvm upgrade

Utilizați sugestiile automate

Unul dintre plugin-urile mele foarte preferate pentru zsh este zsh-autosuggestions. Își amintește lucrurile pe care le-ați tastat în terminal înainte și apoi le recunoaște atunci când începeți să le tastați din nou, precum și „auto-sugestii” linia de care ați putea avea nevoie. Acest plugin a fost util de mai multe ori decât îmi amintesc – în special atunci când este vorba de comenzi CLI lungi pe care le-am folosit în trecut, dar pe care nu mi le pot aminti niciodată.

Clonați repo-ul în folderul de extensii zsh:

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

Apoi adăugați-l la plugin-urile dvs. zsh și luați ca sursă fișierul zshrc:

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

Principiul vă citește istoricul zsh, așa că începeți să tastați o comandă pe care ați mai scris-o înainte și urmăriți magia. Încercați să tastați prima parte a acelei comenzi clone lungi de mai sus.

(Previzualizare mare)

Dacă apăsați ↹, va completa automat comanda. Dacă continuați să apăsați ↹, va trece prin toate comenzile din istoricul dvs. care ar putea fi o potrivire.

Importante comenzi rapide de la tastatură

Există câteva comenzi rapide de terminal pe care le folosesc tot timpul. Le regăsesc la toate instrumentele mele – inclusiv la VS Code. Încercarea de a învăța toate scurtăturile este o pierdere de timp, deoarece nu le veți folosi suficient de mult pentru a le reține.

Iată câteva pe care le folosesc cu regularitate:

Terminal Shortcut Ce face?
Ctrl + L Aceasta șterge terminalul și vă pune înapoi în partea de sus. Este echivalentul tastaturii „clear”.
Ctrl + U Aceasta șterge doar linia curentă.
Ctrl + A Întoarce cursorul la începutul liniei de comandă.
Ctrl + E Se deplasează la sfârșitul liniei.
Ctrl + K Șterge toate caracterele de după cursor.

Așa este! Orice altceva probabil că am învățat și apoi am uitat pentru că nu este folosit niciodată.

Configurarea Git(Hub/Lab/Whatevs)

Git vine pe Ubuntu, deci nu este necesară nicio instalare. Puteți urma instrucțiunile de la hosterul de control al sursei alese pentru a vă crea cheile ssh și a le pune în funcțiune.

Rețineți că în instrucțiunile Github, vi se spune să folosiți utilitarul „copy” pentru a vă copia cheia ssh. Ubuntu are comanda „xcopy”, dar nu va funcționa aici, deoarece nu există o interfață între Linux și Windows în ceea ce privește un clipboard.

În schimb, puteți folosi pur și simplu executabilul Windows Clipboard și îl puteți apela direct din terminal. Trebuie să obțineți mai întâi textul cu cat, iar apoi să îl direcționați către clipboard-ul Windows.

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

Documentația Github vă spune să vă asigurați că ssh-agent rulează. Nu este. Veți vedea acest lucru atunci când veți încerca să adăugați cheia dvs. la agent:

(Previzualizare mare)

Puteți porni agentul, dar data viitoare când reporniți Windows sau când WSL este oprit, va trebui să îl porniți din nou. Acest lucru se datorează faptului că nu există un sistem de inițializare în WSL. Nu există un systemd sau un alt proces care să pornească toate serviciile dvs. atunci când WSL pornește. WSL este încă în previzualizare, iar echipa lucrează la o soluție pentru acest lucru.

Între timp, credeți sau nu, există un plugin zsh și pentru acest lucru. Se numește ssh-agent și vine instalat cu oh-my-zsh, așa că tot ce trebuie să faceți este să faceți referire la el în fișierul .zshrc.

zsh-nvm zsh-autosuggestions ssh-agent git

Acesta va porni automat ssh-agent dacă nu rulează prima dată când porniți WSL-ul. Dezavantajul este că vă va cere fraza de trecere de fiecare dată când WSL este pornit din nou. Asta înseamnă, în esență, de fiecare dată când vă reporniți calculatorul.

(Previzualizare mare)

VS Code și WSL

SWL nu are o interfață grafică, așa că nu puteți instala un instrument vizual precum VS Code. Acesta trebuie să fie instalat pe partea de Windows. Acest lucru prezintă o problemă, deoarece aveți un program care rulează pe partea de Windows și care accesează fișiere pe partea de Linux, iar acest lucru poate duce la tot felul de ciudățenii și probleme de „permisiune refuzată”. Ca regulă generală, Microsoft recomandă să nu modificați fișierele din partea WSL cu programe Windows.

Pentru a rezolva acest lucru, există o extensie pentru VS Code numită „Remote WSL”. Această extensie este realizată de Microsoft și vă permite să dezvoltați în cadrul WSL, dar din interiorul lui VS Code.

După ce extensia este instalată, puteți atașa VS Code direct la partea Ubuntu deschizând paleta de comenzi (Ctrl + Shift + P) și selectând „Remote-WSL: New Window”.

(Previzualizare mare)

Aceasta deschide o nouă instanță a VS Code care vă permite să lucrați ca și cum ați fi în totalitate pe partea de Linux. Făcând „File/Open” navighează în sistemul de fișiere Ubuntu în loc de cel Windows.

(Previzualizare mare)

Terminalul integrat în VS Code vă deschide configurația zsh frumos personalizată. Totul „funcționează” așa cum ar trebui atunci când aveți extensia Remote WSL instalată.

Dacă deschideți codul din terminal cu code ., VS Code va detecta automat că acesta a fost deschis din WSL și va atașa automat extensia Remote WSL.

VS Code Extensions With Remote WSL

Extensia Remote WSL pentru VS Code funcționează prin configurarea unui mic server pe partea de Linux și apoi conectarea la acesta din VS Code pe partea de Windows. Așa stând lucrurile, extensiile pe care le-ați instalat în VS Code nu se vor afișa automat atunci când deschideți un proiect din WSL.

De exemplu, am un proiect Vue deschis în VS Code. Chiar dacă am toate extensiile Vue corecte instalate pentru evidențierea sintaxei, formatare și altele asemenea, VS Code se comportă ca și cum nu ar fi văzut niciodată un fișier .vue.

(Previzualizare mare)

Toate extensiile pe care le-ați instalat pot fi activate în WSL. Trebuie doar să găsiți extensia pe care o doriți în WSL și să faceți clic pe butonul „Install in WSL” (Instalare în WSL).

(Previzualizare mare)

Toate extensiile instalate în WSL vor apărea în propria lor secțiune în vizualizarea Extensions Explorer. Dacă aveți o mulțime de extensii, ar putea fi ușor enervant să le instalați pe fiecare în parte. Dacă doriți să instalați doar fiecare extensie pe care o aveți în WSL, faceți clic pe mica pictogramă de descărcare în cloud din partea de sus a secțiunii „Local – Installed”.

(Previzualizare mare)

Cum să vă configurați directoarele de dezvoltare

Acesta este deja un articol de opinie, așa că iată unul pe care nu l-ați cerut cu privire la modul în care cred eu că ar trebui să vă structurați proiectele pe sistemul de fișiere.

Îmi păstrez toate proiectele pe partea de Linux. Nu îmi pun proiectele în „My Documents” și apoi încerc să lucrez cu ele din WSL. Creierul meu nu se poate descurca cu asta.

Creez un folder numit /dev pe care îl pun în rădăcina folderului meu /home din Linux. În interiorul acelui folder, creez un altul care are același nume ca și repo-ul meu Github: /burkeholland. Acel dosar este locul unde merg toate proiectele mele – chiar și cele care nu sunt împinse pe Github.

Dacă clonez un repo de pe un alt cont Github (de exemplu, „microsoft”), voi crea un nou dosar în „dev” numit /microsoft. Apoi clonez repo-ul într-un folder în interiorul acestuia.

În principiu, imit aceeași structură ca și controlul sursei pe mașina mea locală. Mi se pare mult mai ușor să raționalizez unde se află proiectele și la ce repo-uri sunt atașate doar în virtutea locației lor. Este simplu, dar este foarte eficient pentru a mă ajuta să țin totul organizat. Și am nevoie de tot ajutorul pe care îl pot primi.

(Previzualizare mare)

Browsing Files From Windows Explorer

Există momente în care trebuie să ajungeți la un fișier în Linux din partea Windows. Lucrul frumos la WSL este că puteți face în continuare acest lucru.

Un mod este să accesați WSL la fel ca o unitate mapată. Accesați-l cu un \wsl$> direct din bara de explorare:

\wsl$
(Previzualizare mare)

Ați putea face acest lucru din mai multe motive diferite. De exemplu, chiar astăzi am avut nevoie de o extensie Chrome care nu se află în magazinul web. Așa că am clonat repo-ul în WSL, apoi am navigat către el ca „Unpacked Extension” și l-am încărcat în Edge.

Un lucru pe care îl fac cu o anumită frecvență în Linux este să deschid directorul care conține un fișier direct din terminal. Puteți face acest lucru și în WSL, apelând direct explorer.exe. De exemplu, această comandă deschide directorul curent în Windows Explorer.

$ explorer.exe .

Această comandă este totuși un pic greoaie. Pe Linux, este doar open .. Putem face aceeași magie prin crearea unui alias în ~/.zshrc.

alias open="explorer.exe"

Docker

Când am spus că toate instrumentele ar trebui să fie pe partea de Linux, am vorbit serios. Asta include Docker.

Acesta este locul în care cauciucul începe cu adevărat să întâlnească drumul. Ceea ce avem nevoie aici este Docker, care rulează în interiorul Linux-ului care rulează în interiorul Windows-ului. Este un pic ca o păpușă rusească Nesting Doll atunci când o scrieți într-o postare pe blog. În realitate, este destul de simplu.

Voi avea nevoie de versiunea corectă de Docker pentru Windows. La momentul scrierii acestui articol, aceasta este WSL 2 Tech Preview.

Când rulați programul de instalare, acesta vă va întreba dacă doriți să utilizați containere Windows în loc de containere Linux. Cu siguranță că da. În caz contrar, nu veți primi opțiunea de a rula Docker în WSL.

(Previzualizare mare)

Acum puteți activa Docker în WSL făcând clic pe elementul din tava de sistem și selectând „WSL 2 Tech Preview”:

(Previzualizare mare)

După ce ați pornit serviciul, puteți utiliza Docker în cadrul WSL așa cum v-ați aștepta să puteți. Rularea Docker în WSL oferă o creștere destul de mare a performanțelor, precum și o creștere a timpului de pornire la rece a containerelor.

Aș putea, de asemenea, să vă recomand să instalați extensia Docker pentru VS Code? Aceasta pune o interfață vizuală pe configurația Docker și, în general, doar face mai ușor să lucrați cu Docker, deoarece nu trebuie să vă amintiți toate acele stegulețe și opțiuni din linia de comandă.

Obțineți mai mult Bash pe Windows

În acest moment, ar trebui să vă faceți o idee despre cum să puneți Bash pe Windows și despre cum funcționează odată ce îl aveți acolo. Vă puteți personaliza terminalul la nesfârșit și există tot felul de programe radicale pe care le puteți adăuga pentru a face lucruri precum setarea automată a variabilelor PATH, crearea de alias-uri, obținerea unei vaci ASCII în terminal și multe altele.

Executarea Bash pe Windows mi-a deschis un univers cu totul nou. Sunt capabil să combin Windows, pe care îl iubesc pentru partea de productivitate, și Linux, de care depind în calitate de dezvoltator. Cel mai bun lucru este că acum pot construi aplicații pentru ambele platforme cu o singură mașină.

Lecturi suplimentare

Puteți citi mai multe despre Bash pe Windows aici:

  • „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

Mulțumiri speciale lui Brian Ketelsen, Matt Hernandez, Rich Turner și Craig Loewen pentru răbdarea, ajutorul și îndrumarea lor cu privire la acest articol.

(rb, dm, il)

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.