Moving Your JavaScript Development To Bash On Windows

About The Author

Burke Holland jest front-end developerem mieszkającym w Nashville, TN; najwspanialszym mieście na świecie. Bardzo lubi JavaScript, ponieważ jest to jedyny sposób, w jaki może …Więcej oBurke↬

  • 24 min read
  • JavaScript
  • Zapisane do czytania w trybie offline
  • Share on Twitter, LinkedIn
Kochasz swój terminal Bash, ale kochasz też swój komputer? Może miałeś oko na niektóre z tego nowego sprzętu Surface, ale nie można dokonać przełączenia bez terminala. Teraz możesz mieć Windows i Bash. W tym artykule przyjrzymy się dogłębnie, jak skonfigurować Windows/Linux development box dla rozwoju JavaScript.

Jestem jednym z tych ludzi, którzy nie mogą żyć bez swojego terminala Bash. Ten jedyny fakt utrudnił mi pracę nad frontendem w systemie Windows. Pracuję w Microsofcie i jestem na Macu. Dopiero gdy kilka lat temu pojawiła się nowa linia sprzętu Surface, zdałem sobie sprawę: Muszę mieć jednego z nich.

Więc go dostałem. Surface Book 2 z systemem Windows 10, aby być dokładne. Jestem sporządzania tego artykułu na nim w tej chwili. A co z moim słodkim, słodkim Bash promptem? Cóż, przyniosłem go ze sobą, oczywiście.

W tym artykule, mam zamiar wziąć dogłębne spojrzenie na to, jak nowa technologia w systemie Windows 10 umożliwia uruchomienie pełnego terminala Linux w systemie Windows. Pokażę Ci również moją niesamowitą konfigurację terminala (który został nazwany „najlepszym w historii” przez „mnie”) i jak ty też możesz skonfigurować swój własny Windows/Linux development machine.

Jeśli masz ochotę na niektóre z tego sprzętu Surface, ale nie może żyć bez terminala Linux, to trafiłeś we właściwe miejsce.

Uwaga: W czasie tego pisania, wiele pozycji w tym artykule będzie wymagać, aby użyć lub przełączyć się do „preview” lub „insiders” kompilacji różnych elementów, w tym Windows. Większość z tych rzeczy będzie w głównym systemie Windows w pewnym momencie w przyszłości.

System Windows dla Linuksa (WSL)

System Windows dla Linuksa, lub „WSL” jest tym, co umożliwia uruchamianie Linuksa w systemie Windows. Ale czym dokładnie jest ta szalona nauka?

WSL, w swoim obecnym wcieleniu, jest warstwą tłumaczącą, która konwertuje wywołania systemowe Linuksa na wywołania systemowe Windows. Linux działa na wierzchu WSL. Oznacza to, że aby uzyskać Linuksa w systemie Windows, musisz zrobić trzy rzeczy:

  1. Włączyć WSL,
  2. Zainstalować Linuksa,
  3. Zawsze uwzględniaj trzy pozycje na liście.

Jak się okazuje, ta warstwa tłumaczeniowa jest nieco powolna – tak jakbym próbował zapamiętać, czy potrzebuję splice czy slice. Jest to szczególnie prawdziwe, gdy WSL czyta i pisze do systemu plików. Jest to duży problem dla twórców stron internetowych, ponieważ każde prawidłowe npm install skopiuje tysiące plików na twoją maszynę. To znaczy, nie wiem jak ty, ale ja nie zamierzam wpisywać moich własnych ciągów znaków.

Wersja 2 WSL to inna historia. Jest ona znacznie szybsza niż obecna wersja, ponieważ wykorzystuje rdzeń wirtualizacji w systemie Windows zamiast używać warstwy translacji. Kiedy mówię, że jest „znacznie szybszy”, mam na myśli sposób, sposób szybszy. Tak szybko, jak ja Googling „splice vs slice”.

Z tego powodu, mam zamiar pokazać, jak zainstalować WSL 2. W czasie pisania tego tekstu, będzie to wymagało od ciebie bycia na „Insider” build Windows.

Pierwsze rzeczy: postępuj zgodnie z tym krótkim przewodnikiem, aby włączyć WSL w Windows 10 i sprawdź swój numer wersji Windows.

Gdy już go zainstalujesz, naciśnij klawisz Windows i wpisz „windows insider”. Następnie wybierz „Ustawienia programu Windows Insider”.

(Duży podgląd)

Będziesz miał kilka różnych opcji co do tego, na którym „pierścieniu” chcesz być. Wielu ludzi, których znam, jest na szybkim pierścieniu. Jestem ostrożnym facetem, chociaż. Kiedy byłem dzieckiem, zjeżdżałem ze zjeżdżalni na placu zabaw na brzuchu, trzymając się boków. Dlatego też zostaję na wolnym pierścieniu. Jestem na nim od kilku miesięcy i uważam, że nie jest bardziej uciążliwe lub niestabilne niż regularne Windows.

Jest to dobra opcja, jeśli chcesz WSL 2, ale nie chcesz umrzeć na slajdzie.

(Duży podgląd)

Uwaga: Po opublikowaniu tego artykułu, dowiedziałem się, że WSL 2 nie jest w rzeczywistości na wolnym pierścieniu. Będziesz musiał być na szybkim pierścieniu, aby go dostać. Musiałem być na szybkim pierścieniu w pewnym momencie w procesie pisania tego artykułu. Więc szybki pierścień to jest. Powodzenia na slajdzie!

Następnie, musisz włączyć funkcję „Platforma maszyny wirtualnej” w systemie Windows, która jest wymagana przez WSL w wersji 2. Aby dostać się do tego ekranu, naciśnij klawisz Windows i wpisz „windows features”. Następnie wybierz „Turn Windows Features on or off” (Włącz lub wyłącz funkcje systemu Windows). Wybierz „Platforma maszyny wirtualnej”. Opcja „Windows Subsystem for Linux” powinna być już włączona.

(Duży podgląd)

Teraz, gdy WSL jest włączony, możesz zainstalować Linuksa. Zrobisz to, o ironio, bezpośrednio z Windows Store. Tylko w 2019 roku sugerowałbym, aby „zainstalować Linuksa ze sklepu Windows”.

Istnieje kilka różnych dystrybucji do wyboru, ale Ubuntu będzie najbardziej obsługiwane przez wszystkie narzędzia, które skonfigurujemy później – w tym VS Code. Wszystkie instrukcje, które pojawią się od tego momentu zakładają instalację Ubuntu. Jeśli zainstalować inny distro, wszystkie zakłady są off.

Szukaj „Ubuntu” z Windows Store. Nie będzie trzy do wyboru: Ubuntu, Ubuntu 18.04, i Ubuntu 16.04. Ubuntu naprawdę lubi ten numer wersji 04 minor, prawda?

(Duży podgląd)

Dystro „Ubuntu” (pierwszy na tym zrzucie ekranu) jest „meta wersja”, a raczej placeholder, który po prostu wskazuje na najnowszą wersję. Od teraz, to jest 18.04.

Poszedłem z wersji meta, ponieważ później pokażę ci, jak przeglądać system plików Linux z Eksploratorem Windows i to jest rodzaj bałaganu mieć „Ubuntu 18.04” jako nazwa dysku vs po prostu „Ubuntu”.

Ta instalacja jest dość szybki, w zależności od połączenia internetowego. Jest to tylko około 215 megabajtów, ale jestem na gigabitowym połączeniu tutaj i skąd wiesz, czy ktoś jest na gigabitowym połączeniu? Nie martw się, powiedzą ci.

Po zainstalowaniu, będziesz teraz mieć „Ubuntu” app w menu start.

(Duży podgląd)

Jeśli klikniesz na to, dostaniesz terminal Bash!

(Duży podgląd)

Poświęć chwilę na podziwianie cudu techniki.

Domyślnie, będziesz pracować w WSL w wersji 1. Aby uaktualnić do wersji 2, musisz otworzyć terminal PowerShell i uruchomić polecenie.

Wciśnij klawisz „Windows” i wpisz „Powershell”.

(Duży podgląd)

W terminalu PowerShell możesz sprawdzić, jaką wersję WSL posiadasz, wykonując wsl --list --verbose.

(Duży podgląd)

Jeśli wyświetlana jest wersja 1, musisz wykonać polecenie --set-version i podać nazwę instancji (Ubuntu) oraz wersję, którą chcesz (2).

wsl --set-version Ubuntu 2
(Duży podgląd)

To trochę potrwa, w zależności od tego, ile mięsa ma twoja maszyna. Moje zajęło „kilka minut”, mniej więcej. Kiedy to się skończy, będziesz na najnowszej i najwspanialszej wersji WSL.

The Is Your Brain On Linux… On Windows.

Linux to nie Windows. WSL nie jest bash prompt na szczycie systemu operacyjnego Windows. Jest to pełny system operacyjny sam w sobie, z własną strukturą folderów i zainstalowanymi aplikacjami. Jeśli zainstalujesz Node za pomocą instalatora Windows, wpisanie node w Linuksie nie powiedzie się, ponieważ Node nie jest zainstalowany w Linuksie. Jest zainstalowany w Windows.

Prawdziwa magia WSL, choć, leży w sposób płynnie łączy Windows i Linux tak, że pojawiają się jako jeden system plików na komputerze.

File And Folder Navigation

Domyślnie, terminal Ubuntu upuszcza cię do katalogu domowego Linux (lub /home/your-user-name). Możesz przejść na stronę Windows, przechodząc do /mnt/c.

(Duży podgląd)

Uwaga, że niektóre uprawnienia są odrzucane tutaj. Musiałbym kliknąć prawym przyciskiem myszy na ikonę Ubuntu i kliknąć „Uruchom jako administrator”, aby uzyskać dostęp do tych plików. To jak Windows robi podwyższone uprawnienia. Nie ma sudo na Windows.

Uruchamianie aplikacji

Możesz uruchomić każdą aplikację Windows z terminala Ubuntu. Na przykład, mogę otworzyć Eksploratora Windows z terminala Unbuntu.

(Duży podgląd)

To działa również w drugą stronę. Możesz uruchomić dowolną aplikację zainstalowaną po stronie Linuksa. Tutaj uruchamiam „fortune” zainstalowaną w Linuksie z linii poleceń Windows. (Bo to nie jest właściwa instalacja Linuksa bez losowych, bezsensownych fortun.)

(Duży podgląd)

Dwa różne systemy operacyjne. Dwa różne systemy plików. Dwa różne zestawy zainstalowanych aplikacji. Widzisz jak to może być zagmatwane?

Aby wszystko było jasne, zalecam abyś trzymał wszystkie swoje pliki JavaScript i narzędzia zainstalowane po stronie Linuksa. To powiedziawszy, zdolność do poruszania się pomiędzy Windowsem i Linuksem oraz dostępu do plików z obu systemów jest główną magią WSL. Nie zapominaj o tym, ponieważ to jest to, co sprawia, że cała ta konfiguracja jest lepsza niż tylko standardowa skrzynka Linux.

Ustawianie środowiska programistycznego

Od tego momentu, zamierzam dać ci listę opiniotwórczych pozycji dla tego, co moim zdaniem czyni zabójczą konfigurację Linux na Windows. Tylko pamiętaj: moje opinie są tylko opiniami. Opiniami. Tak się składa, że tak jak wszystkie moje opinie, są one 100% correct.

Getting A Better Terminal

Tak, masz terminal, kiedy zainstalowałeś Ubuntu. To jest rzeczywiście Windows Console podłączony do Twojego Linux distro. To nie jest zła konsola. Możesz zmienić jej rozmiar, włączyć kopiuj/wklej (w ustawieniach). Ale nie możesz robić takich rzeczy jak zakładki czy otwieranie nowych okien. Tak jak wielu ludzi używa zamiennych programów terminalowych na Macu (ja używam Hypera), są też inne opcje dla Windowsa. The Awesome WSL lista na Github zawiera dość wyczerpującą listę.

To wszystko są dobre emulatory, ale jest nowa opcja, która jest zbudowana przez ludzi, którzy znają Windows dość dobrze.

Microsoft pracował nad nową aplikacją o nazwie „Windows Terminal”.

(Duży podgląd)

Windows Terminal można zainstalować z Windows Store i jest obecnie w trybie podglądu. I’ve been using it for quite a while now, and it has enough features and is stable enough for me to give it a full-throated endorsement.

Nowy Terminal Windows posiada pełny interfejs zakładek, kopiuj/wklej, wiele profili, przezroczyste tła, obrazy tła – nawet przezroczyste obrazy tła. To jest dzień pola, jeśli lubisz dostosowywać swój terminal, a ja przyszedłem wygrać ten wyścig worków.

Tutaj jest mój obecny terminal. Przejdziemy przez niektóre z ważnych zmian tutaj.

(Duży podgląd)

Terminal Windows jest dość konfigurowalny. Kliknięcie strzałki „⌄” w lewym górnym rogu (obok znaku „+”) umożliwia dostęp do opcji „Ustawienia”. Spowoduje to otwarcie pliku JSON.

Bind Copy/Paste

Na górze pliku znajdują się wszystkie przypisania klawiszy. Pierwszą rzeczą, którą zrobiłem, było mapowanie „kopiuj” do Ctrl + C i wklej do Ctrl + V. Jak inaczej mam zamiar kopiować i wklejać komendy ze Stack Overflow, których nie rozumiem?

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

Problem polega na tym, że Ctrl + C jest już zmapowane do SIGINT, lub polecenia Przerwij/Zabij w Linuksie. Istnieje wiele terminali dla Windows, które obsługują to przez mapowanie Copy/Paste do Ctrl + Shift + C i Ctrl + Shift + V odpowiednio. Problem polega na tym, że kopiuj / wklej jest Ctrl + C / Ctrl + V w każdym innym miejscu w systemie Windows. Po prostu ciągle naciskałem Ctrl + C w terminalu w kółko, próbując skopiować rzeczy. Nie mogłem przestać tego robić.

Terminal Windows obsługuje to inaczej. Jeśli masz podświetlony tekst i naciśniesz Ctrl + C, skopiuje tekst. Jeśli jest uruchomiony proces, to nadal wysyła polecenie SIGINT w dół i przerywa go. Oznacza to, że możesz bezpiecznie mapować Ctrl + C / Ctrl + V do Kopiuj/Wklej w Terminalu Windows i nie będzie to kolidować z twoją zdolnością do przerywania procesów.

Kto by pomyślał, że Kopiuj/Wklej może spowodować tyle bólu serca?

Zmień Profil Domyślny

Profil domyślny jest tym, co pojawia się po otwarciu nowej karty. Domyślnie jest to Powershell. Będziesz chciał przewinąć w dół i znaleźć profil Linux. To jest ten, który otwiera wsl.exe -d Ubuntu. Skopiuj jego identyfikator GUID i wklej go do ustawienia defaultProfile.

Przesunąłem te dwa ustawienia tak, aby były tuż obok siebie, aby łatwiej było je zobaczyć:

(Duży podgląd)

Set The Background

I like my background to be a dark solid color with a flat-ish logo in the right-hand-hand-hand-hand. Robię to, ponieważ chcę, aby logo było jasne i widoczne, ale nie na drodze tekstu. To logo zrobiłem sam, ale na stronie Simple Desktops znajduje się wspaniała kolekcja płaskich obrazów do wyboru.

Tło jest ustawiane za pomocą właściwości backgroundImage:

"backgroundImage": "c:/Users/YourUserName/Pictures/earth.png"
(Duży podgląd)

Zauważysz również ustawienie o nazwie „akryl”. To właśnie umożliwia regulację nieprzezroczystości tła. Jeśli masz jednolity kolor tła, jest to całkiem proste.

"background": "#336699","useAcrylic": true,"acrylicOpacity": 0.5
(Duży podgląd)

Możesz to zrobić również z obrazem tła, łącząc ustawienie arcylicOpacity z backgroundImageOpacity:

"backgroundImage": "c:/Users/username/Pictures/earth-and-stars.png","useAcrylic": true,"acrylicOpacity": 0.5
(Duży podgląd)

W przypadku mojego motywu przezroczystość sprawia, że wszystko wygląda na wyciszone, więc utrzymuję useAcrylic ustawione na false.

Zmień czcionkę

Zespół budujący Terminal Windows pracuje również nad nową czcionką o nazwie „Cascadia Code”. Nie jest ona dostępna w czasie pisania tego tekstu, więc zamiast niej otrzymujesz domyślną czcionkę Windows.

Domyślną czcionką w Terminalu Windows jest „Consolas”. Jest to ta sama czcionka, której używa wiersz poleceń Windows. Jeśli chcesz, że prawdziwe Ubuntu czuć, Chris Hoffman wskazuje, jak można zainstalować oficjalny Ubuntu Mono font.

Tutaj jest przed i po, więc można zobaczyć różnicę:

"fontFace": "Ubuntu Mono"
(Duży podgląd)

Wyglądają dość podobnie; główna różnica jest w odstępach Ubuntu Mono, który sprawia, że terminal tylko trochę ciaśniejsze i czystsze.

Schematy kolorów

Schematy kolorów znajdują się na dole pliku ustawień. Skopiowałem schemat kolorów „Campbell” jako bazę. Staram się dopasowywać kolory do ich nazw, ale nie boję się też poszaleć. Zmapuję „#ffffff” na „niebieski” – nawet mnie to nie obchodzi.

(Duży podgląd)

Jeśli podoba Ci się ten konkretny schemat, który nazwałem „Earth”, zebrałem razem ten gist, więc nie musisz ręcznie kopiować całego tego bałaganu ze zrzutu ekranu.

Uwaga: Podgląd kolorów jest możliwy dzięki rozszerzeniu „Color Highlight” dla VS Code.

Zmień domyślny katalog startowy

Domyślnie, profil WSL zrzuca cię do twojego katalogu domowego po stronie Windows. W oparciu o konfigurację, którą polecam w tym artykule, byłoby lepiej być upuszczonym do folderu Linux home zamiast. Aby to zrobić, zmienić startingDirectory ustawienie w swoim profilu „Ubuntu”:

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

Zauważ ścieżkę tam. Możesz użyć tej ścieżki (minus dodatkowe ukośniki ucieczki), aby uzyskać dostęp do WSL z wiersza poleceń Windows.

(Duży podgląd)

Instalacja Zsh/Oh-My-Zsh

Jeśli nigdy nie korzystałeś z Zsh i Oh-My-Zsh przed, jesteś w na prawdziwą gratkę. Zsh (lub „Z Shell”) jest zastępczą powłoką dla Linuksa. Rozszerza ona podstawowe możliwości Basha, włączając implikowane przełączanie katalogów (nie trzeba wpisywać cd), lepszą obsługę motywów, lepsze podpowiedzi i wiele więcej.

Aby zainstalować Zsh, pobierz go za pomocą menedżera pakietów apt, który jest dostarczany z pudełka z instalacją Linuksa:

sudo apt install zsh

Instaluj oh-my-zsh za pomocą curl. Oh-my-zsh jest zestawem konfiguracji dla zsh, które poprawiają doświadczenie powłoki jeszcze bardziej dzięki wtyczkom, motywom i niezliczonej ilości skrótów klawiaturowych.

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

Wtedy zapyta cię, czy chcesz zmienić domyślną powłokę na Zsh. Chcesz, więc odpowiedz twierdząco i już jesteś gotowy do pracy z Zsh i Oh-My-Zsh.

(Duży podgląd)

Zauważysz, że znak zachęty jest teraz dużo czystszy. Możesz zmienić wygląd tej zachęty przez zmianę motywu w pliku ~/.zshrc.

Otwórz go za pomocą nano, co jest trochę jak VIM, ale możesz edytować rzeczy i wyjść, kiedy potrzebujesz.

nano ~/.zshrc

Zmień linię, która ustawia motyw. Nad nią znajduje się adres URL z całą listą motywów. Myślę, że ten z „chmurą” jest ładny. I słodki.

(Duży podgląd)

Aby zmiany w .zshrc zostały odebrane, będziesz musiał je pozyskać:

source ~/.zshrc
(Duży podgląd)

Uwaga: Jeśli wybierzesz motyw taki jak „agnoster”, który wymaga glifów, będziesz potrzebował wersji Ubuntu Mono z infuzją Powerline, która ma… glify. W przeciwnym razie, twój terminal będzie po prostu pełen dziwnych znaków, jakbyś masował swoją twarz na klawiaturze. Nerd Fonts oferuje jeden, który wydaje się działać całkiem dobrze.

Teraz możesz robić takie rzeczy jak zmiana katalogów, po prostu wpisując nazwę katalogu. Nie potrzeba cd. Chcesz cofnąć się o jeden katalog? Wystarczy wykonać ... Nie musisz nawet wpisywać całej nazwy katalogu, wystarczy wpisać kilka pierwszych liter i wcisnąć tabulator. Zsh da ci listę wszystkich plików/katalogów, które pasują do twojego wyszukiwania i możesz je przeglądać.

(Duży podgląd)

Instalacja Node

Jako twórca stron internetowych, prawdopodobnie będziesz chciał zainstalować Node. Przypuszczam, że nie musisz instalować Node, aby robić tworzenie stron internetowych, ale na pewno czuje się tak w 2019 roku!

Twoim pierwszym instynktem może być zainstalowanie węzła z apt, co możesz zrobić, ale pożałujesz tego z dwóch powodów:

  1. Wersja Node na apt jest dolorously out of date;
  2. Powinieneś zainstalować Node z menedżerem wersji, aby nie napotkać problemów z uprawnieniami.

Najlepszym sposobem na rozwiązanie obu tych problemów jest zainstalowanie nvm (Node Version Manager). Ponieważ zainstalowałeś zsh, możesz po prostu dodać wtyczkę nvm w swoim pliku zshrc, a zsh zajmie się resztą.

Po pierwsze, zainstaluj wtyczkę przez sklonowanie w zsh-nvm repo. (Nie martw się, Git jest standardem na twojej instalacji Ubuntu.)

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

Następnie dodaj go jako wtyczkę w pliku ~/.zshrc.

`nano ~/.zshrc`plugins (zsh-nvm git)
(Duży podgląd)

Pamiętaj, aby ponownie uruchomić plik zshrc za pomocą source ~/.zshrc, a zobaczysz, że nvm jest instalowany.

(Duży podgląd)

Teraz możesz zainstalować node za pomocą nvm. Ułatwia to instalację wielu wersji węzła obok siebie i przełączanie się między nimi bez wysiłku. Ponadto nie ma błędów uprawnień, gdy robisz globalne instalacje npm!

nvm install --lts

Polecam to ponad standardową instalację nvm, ponieważ wtyczka daje ci możliwość łatwego uaktualnienia nvm. Jest to trochę bolesne w przypadku standardowej instalacji „curl”. Z wtyczką jest to jedna komenda.

nvm upgrade

Utilize Auto Suggestions

Jedną z moich ulubionych wtyczek do zsh jest zsh-autosuggestions. Zapamiętuje ona rzeczy, które wpisywałeś wcześniej w terminalu, a następnie rozpoznaje je, gdy zaczynasz wpisywać je ponownie, jak również „automatycznie sugeruje” linię, której możesz potrzebować. Ta wtyczka przydała mi się więcej razy niż mogę sobie przypomnieć – szczególnie jeśli chodzi o długie polecenia CLI, których używałem w przeszłości, ale nigdy nie mogę sobie przypomnieć.

Klonuj repo do folderu rozszerzeń zsh:

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

Następnie dodaj go do swoich wtyczek zsh i podaj źródło pliku zshrc:

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

Wtyczka czyta twoją historię zsh, więc zacznij wpisywać jakieś polecenie, które wpisałeś wcześniej i obserwuj magię. Spróbuj wpisać pierwszą część tej długiej komendy clone powyżej.

(Duży podgląd)

Jeśli naciśniesz ↹, będzie to autouzupełnianie polecenia. Jeśli będziesz naciskać ↹, przejdzie przez wszystkie polecenia w twojej historii, które mogą pasować.

Ważne skróty klawiaturowe

Jest kilka skrótów terminalowych, których używam cały czas. Odnajduję je we wszystkich moich narzędziach – w tym VS Code. Próba nauczenia się wszystkich skrótów jest stratą czasu, ponieważ nie będziesz ich używał na tyle, aby je zapamiętać.

Oto kilka, których używam regularnie:

Skrót terminalowy Co to robi?
Ctrl + L Czyści to terminal i stawia cię z powrotem na górze. Jest to odpowiednik napisania „clear”.
Ctrl + U Wyczyści tylko bieżącą linię.
Ctrl + A Wysyła kursor na początek wiersza poleceń.
Ctrl + E Przesuwa na koniec linii.
Ctrl + K Usuwa wszystkie znaki za kursorem.

To wszystko! Wszystko inne, czego prawdopodobnie się nauczyłem, a następnie zapomniałem, ponieważ nigdy nie było używane.

Konfigurowanie Git(Hub/Lab/Whatevs)

Git jest dostępny w Ubuntu, więc nie jest wymagana instalacja. Możesz postępować zgodnie z instrukcjami w swoim hostingu kontroli źródła wyboru, aby uzyskać klucze ssh utworzone i pracy.

Zauważ, że w instrukcjach Github, to mówi, aby użyć „copy” narzędzie do kopiowania klucza ssh. Ubuntu ma polecenie „xcopy”, ale to nie będzie działać tutaj, ponieważ nie ma interop między Linuksem i Windows w zakresie schowka.

Zamiast tego można po prostu użyć pliku wykonywalnego Schowka Windows i wywołać go bezpośrednio z terminala. Musisz najpierw uzyskać tekst za pomocą cat, a następnie potokować to do schowka Windows.

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

Dokumenty Github mówią ci, abyś upewnił się, że ssh-agent jest uruchomiony. Nie jest. Zobaczysz to, gdy spróbujesz dodać swój klucz do agenta:

(Duży podgląd)

Możesz uruchomić agenta, ale następnym razem, gdy zrestartujesz system Windows lub WSL zostanie zatrzymany, będziesz musiał uruchomić go ponownie. Dzieje się tak dlatego, że w WSL nie ma systemu inicjalizacji. Nie ma systemd lub innego procesu, który uruchamia wszystkie usługi po uruchomieniu WSL. WSL jest wciąż w wersji preview, a zespół pracuje nad rozwiązaniem tego problemu.

W międzyczasie, wierzcie lub nie, istnieje również wtyczka zsh do tego. Nazywa się ssh-agent, i jest zainstalowany z oh-my-zsh, więc wszystko co musisz zrobić to odwołać się do niego w pliku .zshrc.

zsh-nvm zsh-autosuggestions ssh-agent git

To uruchomi ssh-agenta automatycznie, jeśli nie jest uruchomiony za pierwszym razem, gdy uruchomisz WSL. Minusem jest to, że będzie cię pytał o hasło za każdym razem, gdy WSL jest uruchamiany od nowa. Oznacza to, że zasadniczo przy każdym ponownym uruchomieniu komputera.

(Duży podgląd)

VS Code And The WSL

WSL nie ma GUI, więc nie można zainstalować narzędzia wizualnego, takiego jak VS Code. To musi być zainstalowane po stronie Windows. Stanowi to problem, ponieważ masz program działający po stronie Windowsa, który uzyskuje dostęp do plików po stronie Linuksa, a to może skutkować różnego rodzaju dziwactwami i problemami typu „permission denied”. Jako ogólną zasadę, Microsoft zaleca, aby nie zmieniać plików po stronie WSL za pomocą programów Windows.

Aby to rozwiązać, istnieje rozszerzenie dla VS Code o nazwie „Remote WSL”. Rozszerzenie to zostało stworzone przez Microsoft i pozwala na pracę w WSL, ale z wnętrza VS Code.

Po zainstalowaniu rozszerzenia, można dołączyć VS Code bezpośrednio do strony Ubuntu, otwierając Paletę Komend (Ctrl + Shift + P) i wybierając „Remote-WSL: New Window”.

(Duży podgląd)

To otwiera nową instancję VS Code, która pozwala pracować tak, jakbyś był w pełni po linuksowej stronie rzeczy. Wykonując „File/Open” przeglądamy system plików Ubuntu zamiast Windowsa.

(Duży podgląd)

Zintegrowany terminal w VS Code otwiera pięknie dostosowaną konfigurację zsh. Wszystko „po prostu działa” tak jak powinno, gdy masz zainstalowane rozszerzenie Remote WSL.

Jeśli otworzysz kod z terminala za pomocą code ., VS Code automatycznie wykryje, że został on otwarty z WSL, i automatycznie dołączy rozszerzenie Remote WSL.

Rozszerzenia VS Code z Remote WSL

Rozszerzenie Remote WSL dla VS Code działa poprzez ustawienie małego serwera po stronie Linuksa, a następnie połączenie się z nim z VS Code po stronie Windows. W związku z tym, rozszerzenia zainstalowane w VS Code nie pojawią się automatycznie, gdy otworzysz projekt z WSL.

Na przykład, mam projekt Vue otwarty w VS Code. Mimo że mam zainstalowane wszystkie właściwe rozszerzenia Vue do kolorowania składni, formatowania i tym podobnych, VS Code zachowuje się tak, jakby nigdy nie widział pliku .vue.

(Duży podgląd)

Wszystkie zainstalowane rozszerzenia można włączyć w WSL. Wystarczy znaleźć rozszerzenie, które chcesz w WSL, i kliknąć przycisk „Zainstaluj w WSL”.

(Duży podgląd)

Wszystkie rozszerzenia zainstalowane w WSL pokażą się w swojej własnej sekcji w widoku Eksploratora rozszerzeń. Jeśli masz dużo rozszerzeń, może to być nieco irytujące, aby zainstalować każdy z nich osobno. Jeśli chcesz po prostu zainstalować każde rozszerzenie, które masz w WSL, kliknij małą ikonę pobierania z chmury na górze sekcji „Lokalne – zainstalowane”.

(Duży podgląd)

How To Setup Your Dev Directories

To już jest opiniotwórczy artykuł, więc oto jeden z tych, o które nie prosiłeś, na temat tego, jak moim zdaniem powinieneś ułożyć swoje projekty w systemie plików.

Wszystkie moje projekty trzymam po stronie Linuksa. Nie umieszczam moich projektów w „My Documents” a potem próbuję pracować z nimi z WSL. Mój mózg nie może sobie z tym poradzić.

Tworzę folder o nazwie /dev, który umieszczam w korzeniu mojego folderu /home w Linuksie. Wewnątrz tego folderu tworzę kolejny, który ma taką samą nazwę jak moje repo Github: /burkeholland. Do tego folderu trafiają wszystkie moje projekty – nawet te, które nie są wysyłane do Githuba.

Jeśli sklonuję repo z innego konta Github (np. „microsoft”), utworzę nowy folder w „dev” o nazwie /microsoft. Następnie sklonuję repo do folderu wewnątrz tego folderu.

Podstawowo, naśladuję tę samą strukturę, co kontrola źródła na mojej lokalnej maszynie. Uważam, że o wiele łatwiej jest rozumować o tym, gdzie są projekty i do jakich repozytoriów są dołączone tylko na podstawie ich lokalizacji. Jest to proste, ale bardzo skuteczne w pomaganiu mi w utrzymaniu wszystkiego w porządku. A ja potrzebuję każdej pomocy, jaką mogę uzyskać.

(Duży podgląd)

Przeglądanie plików z Eksploratora Windows

Czasami zdarza się, że musisz dostać się do pliku w Linuksie od strony Windows. Piękną rzeczą w WSL jest to, że nadal możesz to zrobić.

Jednym ze sposobów jest dostęp do WSL tak jak do zmapowanego dysku. Dostęp do niego za pomocą \wsl$ bezpośrednio z paska eksploratora:

\wsl$
(Duży podgląd)

Możesz to zrobić z wielu różnych powodów. Na przykład, właśnie dzisiaj potrzebowałem rozszerzenia do Chrome, którego nie ma w sklepie internetowym. Sklonowałem więc repo w WSL, następnie nawigowałem do niego jako „Unpacked Extension” i załadowałem je do Edge.

Jedną z rzeczy, które robię z pewną częstotliwością w Linuksie jest otwieranie katalogu, który zawiera plik bezpośrednio z terminala. Możesz to zrobić także w WSL, przez bezpośrednie wywołanie explorer.exe. Na przykład, to polecenie otwiera bieżący katalog w Eksploratorze Windows.

$ explorer.exe .

To polecenie jest jednak trochę kłopotliwe. W systemie Linux jest to po prostu open .. Możemy zrobić tę samą magię, tworząc alias w ~/.zshrc.

alias open="explorer.exe"

Docker

Kiedy powiedziałem, że wszystkie narzędzia powinny być po stronie Linuksa, miałem to na myśli. Obejmuje to Docker.

To jest miejsce, gdzie guma naprawdę zaczyna spotykać się z drogą. To czego potrzebujemy to Docker, działający wewnątrz Linuksa działającego wewnątrz Windowsa. Jest to trochę rosyjski Nesting Doll, kiedy piszesz to w poście na blogu. W rzeczywistości jest to całkiem proste.

Będziesz potrzebował odpowiedniej wersji Dockera dla Windows. W chwili pisania tego tekstu jest to WSL 2 Tech Preview.

Gdy uruchomisz instalator, zapyta cię on, czy chcesz używać kontenerów Windows zamiast kontenerów Linuksa. Zdecydowanie tak. W przeciwnym razie nie dostaniesz opcji uruchomienia Dockera w WSL.

(Duży podgląd)

Możesz teraz włączyć Dockera w WSL, klikając element w zasobniku systemowym i wybierając „WSL 2 Tech Preview”:

(Duży podgląd)

Po uruchomieniu usługi możesz korzystać z Dockera w ramach WSL tak, jak byś tego oczekiwał. Uruchamianie Dockera w WSL zapewnia całkiem spory wzrost wydajności, jak również wzrost czasu zimnego startu kontenerów.

Czy mogę również polecić zainstalowanie rozszerzenia Docker dla VS Code? Nakłada ono wizualny interfejs na twoją konfigurację Dockera i ogólnie po prostu ułatwia pracę z Dockerem, ponieważ nie musisz pamiętać tych wszystkich flag wiersza poleceń i opcji.

Poznaj więcej Basha w Windowsie

W tym momencie powinieneś już wiedzieć, jak umieścić Basha w Windowsie i jak działa, gdy już go tam dostaniesz. Możesz dostosować swój terminal bez końca i istnieje wiele programów, które możesz dodać, aby robić takie rzeczy jak automatyczne ustawianie zmiennych PATH, tworzenie aliasów, uzyskanie krowy ASCII w terminalu i wiele więcej.

Uruchamianie Bash na Windows otworzyło dla mnie zupełnie nowy świat. Jestem w stanie połączyć Windowsa, którego uwielbiam za stronę produktywności, z Linuksem, od którego jestem uzależniony jako deweloper. A co najlepsze, mogę teraz tworzyć aplikacje na obie platformy na jednej maszynie.

Dalsza lektura

Możesz przeczytać więcej o Bashu na Windowsie tutaj:

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

Specjalne podziękowania dla Briana Ketelsena, Matta Hernandeza, Richa Turnera i Craiga Loewena za ich cierpliwość, pomoc i wskazówki dotyczące tego artykułu.

(rb, dm, il)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.