Verschieben Sie Ihre JavaScript-Entwicklung auf Bash unter Windows

Veröffentlicht: 2022-03-10
Kurze Zusammenfassung ↬ Lieben Sie Ihr Bash-Terminal, aber auch Ihren PC? Vielleicht haben Sie ein Auge auf die neue Surface-Hardware geworfen, können aber ohne Ihr Terminal nicht umsteigen. Jetzt können Sie Windows und Bash haben. In diesem Artikel werfen wir einen ausführlichen Blick darauf, wie Sie eine Windows/Linux-Entwicklungsbox für die JavaScript-Entwicklung einrichten.

Ich gehöre zu den Leuten, die ohne ihr Bash-Terminal nicht leben können. Allein dieser Umstand hat es mir schwer gemacht Frontend-Arbeiten unter Windows zu machen. Ich arbeite bei Microsoft und habe einen Mac. Erst als vor ein paar Jahren die neue Surface-Hardwarelinie herauskam, wurde mir klar: So eine muss ich haben .

Also habe ich eine bekommen. Ein Surface Book 2 mit Windows 10, um genau zu sein. Ich schreibe gerade diesen Artikel dazu. Und was ist mit meiner süßen, süßen Bash-Eingabeaufforderung? Nun, ich habe es natürlich mitgebracht.

In diesem Artikel werde ich einen eingehenden Blick darauf werfen, wie die neue Technologie in Windows 10 es Ihnen ermöglicht, ein vollständiges Linux-Terminal unter Windows auszuführen. Ich zeige Ihnen auch mein erstaunliches Terminal-Setup (das von „mir“ als „best ever“ bezeichnet wurde) und wie auch Sie Ihren eigenen Windows/Linux-Entwicklungscomputer einrichten können.

Wenn Sie sich nach dieser Surface-Hardware sehnen, aber ohne ein Linux-Terminal nicht leben können, sind Sie hier genau richtig.

Hinweis : Zum Zeitpunkt des Verfassens dieses Artikels erfordern viele Elemente in diesem Artikel die Verwendung oder den Wechsel zu „Vorschau“- oder „Insider“-Builds verschiedener Elemente, einschließlich Windows. Die meisten dieser Dinge werden irgendwann in der Zukunft im Haupt-Windows-Build enthalten sein.

Mehr nach dem Sprung! Lesen Sie unten weiter ↓

Windows-Subsystem für Linux (WSL)

Das Windows-Subsystem für Linux oder „WSL“ ermöglicht es Ihnen, Linux unter Windows auszuführen. Aber was genau ist diese verrückte Wissenschaft?

Die WSL ist in ihrer aktuellen Form eine Übersetzungsschicht, die Linux-Systemaufrufe in Windows-Systemaufrufe umwandelt. Linux läuft auf der WSL. Das bedeutet, dass Sie drei Dinge tun müssen, um Linux unter Windows zu bekommen:

  1. Aktivieren Sie die WSL,
  2. Linux installieren,
  3. Nehmen Sie immer drei Elemente in eine Liste auf.

Wie sich herausstellt, ist diese Übersetzungsebene etwas langsam – ähnlich wie ich mich daran erinnern möchte, ob ich splice oder slice brauche. Dies gilt insbesondere, wenn die WSL im Dateisystem liest und schreibt. Das ist ein großes Problem für Webentwickler, da jede ordnungsgemäße npm install Tausende von Dateien auf Ihren Computer kopiert. Ich meine, ich weiß nicht, wie es euch geht, aber ich werde meine eigenen Saiten nicht mit der linken Hand füllen.

Version 2 der WSL ist eine andere Geschichte. Es ist erheblich schneller als die aktuelle Version, da es einen Virtualisierungskern in Windows nutzt, anstatt die Übersetzungsschicht zu verwenden. Wenn ich sage, dass es „deutlich schneller“ ist, meine ich viel, viel schneller. So schnell wie ich googeln „Splice vs Slice“.

Aus diesem Grund werde ich zeigen, wie WSL 2 installiert wird. Zum Zeitpunkt der Erstellung dieses Artikels müssen Sie sich auf dem „Insider“-Build von Windows befinden.

Das Wichtigste zuerst: Befolgen Sie diese kurze Anleitung, um die WSL unter Windows 10 zu aktivieren und Ihre Windows-Versionsnummer zu überprüfen.

Sobald Sie es installiert haben, drücken Sie die Windows-Taste und geben Sie „Windows Insider“ ein. Wählen Sie dann „Windows-Insider-Programmeinstellungen“.

Menüoption Windows-Insider-Programmeinstellungen
(Große Vorschau)

Sie haben ein paar verschiedene Optionen, auf welchem ​​„Ring“ Sie sein möchten. Viele Leute, die ich kenne, sind auf dem Fast Ring. Ich bin allerdings ein vorsichtiger Typ. Als Kind bin ich auf dem Spielplatz bäuchlings die Rutsche hinuntergerutscht, wobei ich mich an den Seiten festhielt. Deshalb bleibe ich auf dem langsamen Ring. Ich benutze es jetzt seit mehreren Monaten und finde es nicht störender oder instabiler als normales Windows.

Es ist eine gute Option, wenn Sie die WSL 2 wollen, aber nicht auf der Folie sterben möchten.

Der Windows-Insider-Einstellungsbildschirm zeigt „Langsam“ an
(Große Vorschau)

Hinweis : Nach der Veröffentlichung dieses Artikels habe ich erfahren, dass WSL 2 tatsächlich nicht im langsamen Ring ist. Sie müssen auf dem schnellen Ring sein, um es zu bekommen. Irgendwann beim Schreiben dieses Artikels muss ich auf dem schnellen Ring gewesen sein. So schnell klingeln ist es. Viel Glück auf der Rutsche!

Als nächstes müssen Sie die „Virtual Machine Platform“-Funktion in Windows aktivieren, die für die WSL-Version 2 erforderlich ist. Um zu diesem Bildschirm zu gelangen, drücken Sie die Windows-Taste und geben Sie „Windows-Funktionen“ ein. Wählen Sie dann „Windows-Funktionen ein- oder ausschalten“. Wählen Sie „Plattform für virtuelle Maschinen“. Die Option „Windows-Subsystem für Linux“ sollte bereits aktiviert sein.

Der Bildschirm „Windows Features“ mit „Virtual Machine Platform“ und „Windows Subsystem for Linux“ ist hervorgehoben
(Große Vorschau)

Nachdem die WSL aktiviert ist, können Sie Linux installieren. Sie tun dies ironischerweise direkt aus dem Windows Store. Nur 2019 würde ich vorschlagen, dass Sie „Linux aus dem Windows Store installieren“.

Es stehen mehrere verschiedene Distributionen zur Auswahl, aber Ubuntu wird von allen Tools, die wir später konfigurieren werden, am meisten unterstützt – einschließlich VS Code. Alle Anweisungen, die von hier aus kommen, gehen von einer Ubuntu-Installation aus. Wenn Sie eine andere Distribution installieren, sind alle Wetten ungültig.

Suchen Sie im Windows Store nach „Ubuntu“. Es stehen drei zur Auswahl: Ubuntu, Ubuntu 18.04 und Ubuntu 16.04. Ubuntu mag diese 04-Minor-Versionsnummer wirklich, nicht wahr?

Der Artikel „Ubuntu“ im Windows Store
(Große Vorschau)

Die „Ubuntu“-Distribution (die erste in diesem Screenshot) ist die „Meta-Version“, oder besser gesagt ein Platzhalter, der nur auf die neueste Version verweist. Aktuell ist das der 18.04.

Ich habe mich für die Meta-Version entschieden, weil ich Ihnen später zeigen werde, wie Sie das Linux-Dateisystem mit dem Windows Explorer durchsuchen, und es ist ziemlich chaotisch, „Ubuntu 18.04“ als Laufwerksnamen zu haben, anstatt nur „Ubuntu“.

Diese Installation ist ziemlich schnell, abhängig von Ihrer Internetverbindung. Es sind nur etwa 215 Megabyte, aber ich habe hier drüben eine Gigabit-Verbindung, und woher wissen Sie, ob jemand eine Gigabit-Verbindung hat? Keine Sorge, sie werden es dir sagen.

Nach der Installation haben Sie nun eine „Ubuntu“-App in Ihrem Startmenü.

Ubuntu ist installiert und wird im Windows-Startmenü angezeigt
(Große Vorschau)

Wenn Sie darauf klicken, erhalten Sie ein Bash-Terminal!

Das Ubuntu-Terminal, das unter Windows ausgeführt wird
(Große Vorschau)

Nehmen Sie sich einen Moment Zeit, um sich im Wunder der Technologie zu sonnen.

Standardmäßig werden Sie in der WSL-Version 1 ausgeführt. Um auf Version 2 zu aktualisieren, müssen Sie ein PowerShell-Terminal öffnen und einen Befehl ausführen.

Drücken Sie die „Windows“-Taste und geben Sie „Powershell“ ein.

Der Punkt „Powershell“ im Startmenü
(Große Vorschau)

Über das PowerShell-Terminal können Sie sehen, welche Version der WSL Sie haben, indem wsl --list --verbose .

Erstellen einer ausführlichen Liste aller WSL-Instanzen, die in Powershell ausgeführt werden
(Große Vorschau)

Wenn Sie Version 1 anzeigen, müssen Sie den Befehl --set-version ausführen und den Namen der Instanz (Ubuntu) und die gewünschte Version (2) angeben.

 wsl --set-version Ubuntu 2 
Festlegen der WSL-Version auf Version 2 mit Powershell
(Große Vorschau)

Dies wird ein wenig dauern, je nachdem, wie viel Fleisch Ihre Maschine hat. Mine dauerte "einige Minuten" Geben oder Nehmen. Wenn es fertig ist, sind Sie auf der neuesten und besten Version der WSL.

Das ist Ihr Gehirn unter Linux… unter Windows.

Linux ist nicht Windows. WSL ist keine Bash-Eingabeaufforderung auf einem Windows-Betriebssystem. Es ist ein eigenständiges Betriebssystem mit eigener Ordnerstruktur und installierten Anwendungen. Wenn Sie Node mit dem Windows-Installationsprogramm installieren, schlägt die Eingabe von node in Linux fehl, da Node nicht in Linux installiert ist. Es ist unter Windows installiert.

Die wahre Magie der WSL liegt jedoch in der Art und Weise, wie sie Windows und Linux nahtlos verbindet, sodass sie auf Ihrem Computer als ein Dateisystem erscheinen.

Datei- und Ordnernavigation

Standardmäßig legt Sie das Ubuntu-Terminal in Ihrem Linux-Home-Verzeichnis (oder /home/your-user-name ) ab. Sie können auf die Windows-Seite wechseln, indem Sie zu /mnt/c gehen.

Das Ubuntu-Terminal mit den Inhalten für das aufgelistete C-Laufwerk
(Große Vorschau)

Beachten Sie, dass hier einige Berechtigungen verweigert werden. Ich müsste mit der rechten Maustaste auf das Ubuntu-Symbol klicken und auf „Als Administrator ausführen“ klicken, um Zugriff auf diese Dateien zu erhalten. So macht Windows erhöhte Berechtigungen. Unter Windows gibt es kein sudo.

Starten von Anwendungen

Sie können jede Windows-Anwendung vom Ubuntu-Terminal aus starten. Zum Beispiel kann ich den Windows Explorer vom Unbuntu-Terminal aus öffnen.

Der Windows Explorer und das Ubuntu-Terminal
(Große Vorschau)

Dies funktioniert auch umgekehrt. Sie können jede auf der Linux-Seite installierte Anwendung ausführen. Hier führe ich das unter Linux installierte „Fortune“ über die Windows-Befehlszeile aus. (Weil es keine richtige Linux-Installation ohne zufällige, bedeutungslose Vermögen ist.)

Die Windows-Befehlszeile, die das Linux-Programm „Fortune“ ausführt
(Große Vorschau)

Zwei verschiedene Betriebssysteme. Zwei verschiedene Dateisysteme. Zwei verschiedene Sätze installierter Anwendungen. Sehen Sie, wie das verwirrend werden könnte?

Um alles in Ordnung zu halten, empfehle ich Ihnen, alle Ihre JavaScript-Entwicklungsdateien und -Tools auf der Linux-Seite der Dinge zu installieren. Allerdings ist die Fähigkeit, zwischen Windows und Linux zu wechseln und auf Dateien von beiden Systemen zuzugreifen, die Kernmagie der WSL. Vergiss es nicht, denn es macht dieses ganze Setup besser als nur eine Standard-Linux-Box.

Einrichten Ihrer Entwicklungsumgebung

Von hier an werde ich Ihnen eine Liste mit Meinungsäußerungen für das geben, was meiner Meinung nach ein Killer-Linux auf Windows-Setup ausmacht. Denken Sie daran: Meine Meinungen sind genau das. Meinungen . Es kommt einfach vor, dass sie, wie alle meine Meinungen, zu 100% richtig sind.

Ein besseres Terminal bekommen

Ja, Sie haben ein Terminal bekommen, als Sie Ubuntu installiert haben. Es ist eigentlich die Windows-Konsole, die mit Ihrer Linux-Distribution verbunden ist. Es ist keine schlechte Konsole. Sie können die Größe ändern, Kopieren/Einfügen aktivieren (in den Einstellungen). Aber Sie können keine Dinge wie Tabs tun oder neue Fenster öffnen. So wie viele Leute Terminal-Ersatzprogramme auf dem Mac verwenden (ich verwende Hyper), gibt es auch andere Optionen für Windows. Die Awesome WSL-Liste auf Github enthält eine ziemlich erschöpfende Liste.

Das sind alles gute Emulatoren, aber es gibt eine neue Option, die von Leuten entwickelt wurde, die Windows ziemlich gut kennen.

Microsoft hat an einer neuen Anwendung namens „Windows Terminal“ gearbeitet.

Das Windows Terminal-Element im Windows Store
(Große Vorschau)

Windows Terminal kann aus dem Windows Store installiert werden und befindet sich derzeit im Vorschaumodus. Ich benutze es jetzt schon eine ganze Weile, und es hat genug Funktionen und ist stabil genug, um es voll und ganz zu unterstützen.

Das neue Windows-Terminal bietet eine vollständige Registerkartenoberfläche, Kopieren/Einfügen, mehrere Profile, transparente Hintergründe, Hintergrundbilder – sogar transparente Hintergrundbilder. Es ist ein großer Tag, wenn Sie Ihr Terminal anpassen möchten, und ich bin gekommen, um dieses Sackhüpfen zu gewinnen.

Hier ist mein aktuelles Terminal. Wir werden hier einen Spaziergang durch einige der wichtigen Optimierungen machen.

Das aktuelle Terminal des Autors: Dunkelblauer Hintergrund mit einem Cartoon-Planeten in der unteren rechten Ecke. Grüner und weißer Text.
(Große Vorschau)

Windows Terminal ist ziemlich anpassbar. Durch Klicken auf den Pfeil „ “ oben links (neben dem „ + “-Zeichen) gelangen Sie zu den „Einstellungen“. Dadurch wird eine JSON-Datei geöffnet.

Kopieren/Einfügen binden

Am Anfang der Datei befinden sich alle Tastenbelegungen. Das erste, was ich getan habe, war, „Kopieren“ auf Strg + C und Einfügen auf Strg + V zuzuordnen. Wie sonst soll ich Befehle von Stack Overflow kopieren und einfügen, die ich nicht verstehe?

 { "command": "copy", "keys": ["ctrl+c"] }, { "command": "paste", "keys": ["ctrl+v"] },

Das Problem ist, dass Strg + C bereits SIGINT oder dem Befehl Interrupt/kill unter Linux zugeordnet ist. Es gibt viele Terminals für Windows, die dies handhaben, indem sie Kopieren/Einfügen auf Strg + Umschalt + C bzw. Strg + Umschalt + V abbilden. Das Problem ist, dass Kopieren / Einfügen an jeder anderen Stelle in Windows Strg + C / Strg + V ist. Ich habe im Terminal immer wieder Strg + C gedrückt und versucht, Dinge zu kopieren. Ich konnte nicht damit aufhören.

Das Windows-Terminal handhabt dies anders. Wenn Sie Text hervorgehoben haben und Ctrl + C drücken, wird der Text kopiert. Wenn es einen laufenden Prozess gibt, sendet er trotzdem den SIGINT-Befehl nach unten und unterbricht ihn. Das bedeutet, dass Sie Strg + C / Strg + V sicher dem Kopieren/Einfügen im Windows-Terminal zuordnen können und Ihre Fähigkeit, Prozesse zu unterbrechen, nicht beeinträchtigt wird.

Wer hätte gedacht, dass Copy/Paste so viel Herzschmerz verursachen kann?

Ändern Sie das Standardprofil

Das Standardprofil wird angezeigt, wenn ein neuer Tab geöffnet wird. Standardmäßig ist das Powershell. Sie sollten nach unten scrollen und das Linux-Profil finden. Dies ist derjenige, der wsl.exe -d Ubuntu öffnet. Kopieren Sie die GUID und fügen Sie sie in die defaultProfile Einstellung ein.

Ich habe diese beiden Einstellungen so verschoben, dass sie direkt nebeneinander liegen, damit sie besser sichtbar sind:

Das standardmäßige Terminalprofil, das in der Datei settings.json hervorgehoben ist
(Große Vorschau)

Stell den Hintergrund ein

Ich mag meinen Hintergrund in einer dunklen Volltonfarbe mit einem flachen Logo in der rechten Ecke. Ich mache das, weil ich möchte, dass das Logo hell und sichtbar ist, aber nicht im Weg des Textes. Dieses habe ich selbst erstellt, aber es gibt eine großartige Sammlung von flachen Bildern, aus denen Sie bei Simple Desktops auswählen können.

Der Hintergrund wird mit der Eigenschaft backgroundImage festgelegt:

 "backgroundImage": "c:/Users/YourUserName/Pictures/earth.png" 
Ein blaues quadratisches Bild mit einem Zeichentrickplaneten in der unteren rechten Ecke
(Große Vorschau)

Sie werden auch eine Einstellung namens „Acryl“ bemerken. Dadurch können Sie die Deckkraft des Hintergrunds anpassen. Wenn Sie eine einfarbige Hintergrundfarbe haben, ist dies ziemlich einfach.

 "background": "#336699", "useAcrylic": true, "acrylicOpacity": 0.5 
Das Terminal mit leicht transparentem Hintergrund
(Große Vorschau)

Sie können dies auch mit einem Hintergrundbild erreichen, indem Sie die Einstellung arcylicOpacity mit der Einstellung backgroundImageOpacity kombinieren:

 "backgroundImage": "c:/Users/username/Pictures/earth-and-stars.png", "useAcrylic": true, "acrylicOpacity": 0.5 
Das Terminal mit transparentem Bild und transparentem Hintergrund
(Große Vorschau)

Für mein Design lässt Transparenz alles stumm aussehen, also lasse ich useAcrylic auf false gesetzt.

Ändern Sie die Schriftart

Das Team, das das Windows Terminal erstellt, arbeitet auch an einer neuen Schriftart namens „Cascadia Code“. Es ist zum Zeitpunkt des Schreibens dieses Artikels nicht verfügbar, daher erhalten Sie stattdessen die Standard-Windows-Schriftart.

Die Standardschriftart im Windows Terminal ist „Consolas“. Dies ist die gleiche Schriftart, die die Windows-Befehlszeile verwendet. Wenn Sie das echte Ubuntu-Feeling möchten, weist Chris Hoffman darauf hin, wie Sie die offizielle Ubuntu Mono-Schriftart installieren können.

Hier ist ein Vorher-Nachher-Bild, damit Sie den Unterschied sehen können:

 "fontFace": "Ubuntu Mono" 
Ein direkter Vergleich von Consolas- und Unbuntu Mono-Schriftarten im Terminal
(Große Vorschau)

Sie sehen ziemlich ähnlich aus; Der Hauptunterschied liegt im Abstand von Ubuntu Mono, wodurch das Terminal etwas enger und sauberer wird.

Farbschemata

Die Farbschemata befinden sich alle am Ende der Einstellungsdatei. Ich habe das Farbschema „Campbell“ als Grundlage kopiert. Ich versuche, Farben mit ihren Namen abzugleichen, aber ich habe auch keine Angst, abtrünnig zu werden. Ich werde „#ffffff“ auf „blau“ abbilden – das ist mir egal.

Die Farbschemaeinstellungen aus der Datei settings.json
(Große Vorschau)

Wenn Ihnen dieses besondere Schema gefällt, das ich „Erde“ genannt habe, habe ich dieses Wesentliche zusammengestellt, damit Sie nicht all dieses Chaos manuell aus einem Screenshot herauskopieren müssen.

Hinweis : Die Farbvorschau wird durch die Erweiterung „Color Highlight“ für VS Code bereitgestellt.

Ändern Sie das Standard-Startverzeichnis

Standardmäßig legt Sie das WSL-Profil in Ihrem Home-Verzeichnis auf der Windows-Seite ab. Basierend auf dem Setup, das ich in diesem Artikel empfehle, wäre es vorzuziehen, stattdessen in Ihrem Linux home Ordner abgelegt zu werden. Ändern Sie dazu die Einstellung „ startingDirectory “ in Ihrem „Ubuntu“-Profil:

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

Beachten Sie den Pfad dort. Sie können diesen Pfad (abzüglich der zusätzlichen Escape-Schrägstriche) verwenden, um über die Windows-Befehlszeile auf die WSL zuzugreifen.

Ein „dir“-Befehl, der über die Windows-Befehlszeile für das Linux-Home-Verzeichnis ausgeführt wird
(Große Vorschau)

Installieren Sie Zsh/Oh-My-Zsh

Wenn Sie Zsh und Oh-My-Zsh noch nie zuvor verwendet haben, erwartet Sie ein echter Leckerbissen. Zsh (oder „Z Shell“) ist eine Ersatz-Shell für Linux. Es erweitert die grundlegenden Fähigkeiten von Bash, einschließlich impliziter Verzeichnisumschaltung (keine Notwendigkeit, cd ), besserer Designunterstützung, besserer Eingabeaufforderungen und vielem mehr.

Um Zsh zu installieren, holen Sie es sich mit dem apt-Paketmanager, der mit Ihrer Linux-Installation mitgeliefert wird:

 sudo apt install zsh

Installieren Sie oh-my-zsh mit curl. Oh-my-zsh ist eine Reihe von Konfigurationen für zsh, die das Shell-Erlebnis mit Plugins, Designs und unzähligen Tastaturkürzeln noch weiter verbessern.

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

Dann werden Sie gefragt, ob Sie Ihre Standard-Shell in Zsh ändern möchten. Das tun Sie, also bejahen Sie dies und Sie sind jetzt mit Zsh und Oh-My-Zsh einsatzbereit.

Das Terminal fragt, ob Sie die Standard-Shell ändern möchten
(Große Vorschau)

Sie werden feststellen, dass die Eingabeaufforderung jetzt viel sauberer ist. Sie können das Aussehen dieser Eingabeaufforderung ändern, indem Sie das Design in der Datei ~/.zshrc .

Öffnen Sie es mit nano , was eine Art VIM ist, aber Sie können Dinge bearbeiten und bei Bedarf beenden.

 nano ~/.zshrc

Ändern Sie die Zeile, die das Thema festlegt. Darüber befindet sich eine URL mit einer ganzen Liste von Themen. Ich finde die „Wolke“ schön. Und süß.

Das Thema „Cloud“, das in der zshrc-Datei festgelegt wird
(Große Vorschau)

Um Änderungen an der .zshrc zu übernehmen, müssen Sie sie beziehen:

 source ~/.zshrc 
Die Aufforderung zum Thema „Cloud“.
(Große Vorschau)

Hinweis : Wenn Sie ein Thema wie „Agnoster“ auswählen, das Glyphen erfordert, benötigen Sie eine Powerline-infundierte Version von Ubuntu Mono, die … Glyphen enthält. Andernfalls wird Ihr Terminal nur voller seltsamer Zeichen sein, als ob Sie Ihr Gesicht auf der Tastatur zerdrückt hätten. Nerd Fonts bietet eine an, die ziemlich gut zu funktionieren scheint.

Jetzt können Sie beispielsweise Verzeichnisse wechseln, indem Sie einfach den Verzeichnisnamen eingeben. Keine cd erforderlich. Möchten Sie ein Verzeichnis sichern? Mach einfach ein .. . Sie müssen nicht einmal den gesamten Verzeichnisnamen eingeben, geben Sie einfach die ersten paar Buchstaben ein und drücken Sie die Tabulatortaste. Zsh gibt Ihnen eine Liste aller Dateien/Verzeichnisse, die Ihrer Suche entsprechen, und Sie können sie durchblättern.

Das Terminal mit einem von vielen hervorgehobenen Pfaden
(Große Vorschau)

Knoten installieren

Als Webentwickler möchten Sie wahrscheinlich Node installieren. Ich nehme an, Sie müssen Node nicht installieren, um Webentwicklung zu betreiben , aber es fühlt sich 2019 sicher so an!

Ihr erster Instinkt könnte sein, node mit apt zu installieren, was Sie tun können, aber Sie würden es aus zwei Gründen bereuen:

  1. Die Version von Node auf apt ist leider veraltet;
  2. Sie sollten Node mit einem Versionsmanager installieren, damit Sie nicht auf Berechtigungsprobleme stoßen.

Der beste Weg, diese beiden Probleme zu lösen, ist die Installation von nvm (Node Version Manager). Da Sie zsh installiert haben, können Sie einfach das nvm-Plugin in Ihre zshrc-Datei einfügen und zsh kümmert sich um den Rest.

Installieren Sie zunächst das Plugin durch Klonen im zsh-nvm Repo. (Keine Sorge, Git ist standardmäßig in Ihrer Ubuntu-Installation enthalten.)

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

Fügen Sie es dann als Plugin in der Datei ~/.zshrc .

 `nano ~/.zshrc` plugins (zsh-nvm git) 
Die zshrc-Datei mit dem hinzugefügten zsh-vnm-plugin
(Große Vorschau)

Denken Sie daran, die zshrc-Datei erneut mit source ~/.zshrc zu beziehen, und Sie werden sehen, dass nvm installiert wird.

Das Terminal, das den Installationsfortschritt von nvm anzeigt
(Große Vorschau)

Jetzt können Sie den Knoten mit nvm installieren. Es macht es einfach, mehrere Node-by-Side-Versionen nebeneinander zu installieren und mühelos zwischen ihnen zu wechseln. Außerdem keine Berechtigungsfehler bei globalen npm-Installationen!

 nvm install --lts

Ich empfehle dies gegenüber der standardmäßigen nvm-Installation, da das Plugin Ihnen die Möglichkeit gibt, nvm einfach zu aktualisieren. Dies ist bei der Standardinstallation von „Curl“ ziemlich mühsam. Es ist ein Befehl mit dem Plugin.

 nvm upgrade

Verwenden Sie automatische Vorschläge

Eines meiner Lieblings-Plugins für zsh ist zsh-autosuggestions. Es erinnert sich an Dinge, die Sie zuvor in das Terminal eingegeben haben, und erkennt sie dann, wenn Sie mit der erneuten Eingabe beginnen, und schlägt automatisch die Zeile vor, die Sie möglicherweise benötigen. Dieses Plugin hat sich öfter als nützlich erwiesen, als ich mich erinnern kann – insbesondere wenn es um lange CLI-Befehle geht, die ich in der Vergangenheit verwendet habe, an die ich mich aber nie erinnern kann.

Klonen Sie das Repo in den zsh-Erweiterungsordner:

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

Fügen Sie es dann zu Ihren zsh-Plugins hinzu und beziehen Sie die zshrc-Datei:

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

Das Plugin liest Ihren zsh-Verlauf, also beginnen Sie mit der Eingabe eines Befehls, den Sie zuvor eingegeben haben, und beobachten Sie die Magie. Versuchen Sie, den ersten Teil des langen Klonbefehls oben einzugeben.

Das Terminal, das zsh-Autosuggestions anzeigt, vervollständigt automatisch einen Git-Clone-Befehl
(Große Vorschau)

Wenn Sie ↹ drücken , wird der Befehl automatisch vervollständigt. Wenn Sie weiterhin ↹ drücken , werden alle Befehle in Ihrem Verlauf durchlaufen, die übereinstimmen könnten.

Wichtige Tastaturkürzel

Es gibt ein paar Terminal-Shortcuts, die ich ständig verwende. Ich finde das bei all meinen Tools – einschließlich VS Code. Der Versuch, alle Abkürzungen zu lernen, ist Zeitverschwendung, da Sie sie nicht oft genug verwenden, um sich an sie zu erinnern.

Hier sind ein paar, die ich regelmäßig benutze:

Terminal-Verknüpfung Was tut es?
Strg + L Dies löscht das Terminal und bringt Sie zurück an die Spitze. Es ist das Äquivalent zur Eingabe von „clear“.
Strg + U Dadurch wird nur die aktuelle Zeile gelöscht.
Strg + A Verschiebt den Cursor an den Anfang der Befehlszeile.
Strg + E Gehen Sie zum Ende der Zeile.
Strg + K Löschen Sie alle Zeichen nach dem Cursor.

Das ist es! Alles andere habe ich wahrscheinlich gelernt und dann vergessen, weil es nie einen Nutzen hat.

Konfigurieren von Git (Hub/Lab/Whatevs)

Git kommt auf Ubuntu, daher ist keine Installation erforderlich. Sie können den Anweisungen Ihres Quellcodeverwaltungs-Hosters Ihrer Wahl folgen, um Ihre SSH-Schlüssel zu erstellen und zum Laufen zu bringen.

Beachten Sie, dass Sie in den Github-Anweisungen aufgefordert werden, das Dienstprogramm „Kopieren“ zu verwenden, um Ihren SSH-Schlüssel zu kopieren. Ubuntu hat den Befehl „xcopy“, aber er wird hier nicht funktionieren, da es keine Interop zwischen Linux und Windows in Bezug auf eine Zwischenablage gibt.

Stattdessen können Sie einfach die ausführbare Windows-Zwischenablage verwenden und direkt vom Terminal aus aufrufen. Sie müssen den Text zuerst mit cat und ihn dann in die Windows-Zwischenablage leiten.

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

Die Github-Dokumentation fordert Sie auf, sicherzustellen, dass der ssh-agent ausgeführt wird. Es ist nicht. Sie sehen dies, wenn Sie versuchen, Ihren Schlüssel zum Agent hinzuzufügen:

Das Terminal zeigt an, dass der SSH-Agent nicht ausgeführt wird
(Große Vorschau)

Sie können den Agent starten, aber wenn Sie Windows das nächste Mal neu starten oder die WSL beendet wird, müssen Sie ihn erneut starten. Dies liegt daran, dass es in der WSL kein Initialisierungssystem gibt. Es gibt kein systemd oder einen anderen Prozess, der alle Ihre Dienste startet, wenn die WSL startet. WSL befindet sich noch in der Vorschauphase, und das Team arbeitet an einer Lösung dafür.

In der Zwischenzeit, ob Sie es glauben oder nicht, gibt es dafür auch ein zsh-Plugin. Es heißt ssh-agent und wird mit oh-my-zsh installiert, sodass Sie es nur in der .zshrc -Datei referenzieren müssen.

 zsh-nvm zsh-autosuggestions ssh-agent git

Dadurch wird der ssh-agent automatisch gestartet, wenn er nicht ausgeführt wird, wenn Sie die WSL zum ersten Mal starten. Der Nachteil ist, dass Sie jedes Mal, wenn WSL neu gestartet wird, nach Ihrer Passphrase gefragt werden. Das bedeutet im Wesentlichen jedes Mal, wenn Sie Ihren Computer neu starten.

Das Terminal fordert zur Eingabe der Passphrase für den RSA-Schlüssel auf
(Große Vorschau)

VS-Code und die WSL

Die WSL hat keine GUI, daher können Sie kein visuelles Tool wie VS Code installieren. Das muss auf der Windows-Seite installiert werden. Dies stellt ein Problem dar, da auf der Windows-Seite ein Programm ausgeführt wird, das auf Dateien auf der Linux-Seite zugreift, und dies kann zu allen möglichen Macken und Problemen mit „Zugriff verweigert“ führen. Als allgemeine Faustregel empfiehlt Microsoft, Dateien auf der WSL-Seite nicht mit Windows-Programmen zu ändern.

Um dies zu beheben, gibt es eine Erweiterung für VS Code namens „Remote WSL“. Diese Erweiterung wird von Microsoft erstellt und ermöglicht Ihnen die Entwicklung innerhalb der WSL, aber innerhalb von VS Code.

Sobald die Erweiterung installiert ist, können Sie VS Code direkt an die Ubuntu-Seite anhängen, indem Sie die Befehlspalette öffnen ( Strg + Umschalt + P ) und wählen Sie „Remote-WSL: Neues Fenster“.

VS Code mit hervorgehobenem Befehl „Remote WSL: New Window“ in der Befehlspalette
(Große Vorschau)

Dadurch wird eine neue Instanz von VS Code geöffnet, mit der Sie so arbeiten können, als wären Sie vollständig auf der Linux-Seite der Dinge. Durch „Datei/Öffnen“ wird das Ubuntu-Dateisystem anstelle des Windows-Dateisystems durchsucht.

Die Ansicht „Datei öffnen“ von VS Code
(Große Vorschau)

Das integrierte Terminal in VS Code öffnet Ihr wunderschön angepasstes zsh-Setup. Alles „funktioniert“ einfach so, wie es sollte, wenn Sie die Remote WSL-Erweiterung installiert haben.

Wenn Sie Code von Ihrem Terminal mit code . , erkennt VS Code automatisch, dass es von der WSL aus geöffnet wurde, und fügt die Remote-WSL-Erweiterung automatisch an.

VS-Code-Erweiterungen mit Remote-WSL

Die Remote-WSL-Erweiterung für VS Code funktioniert, indem ein kleiner Server auf der Linux-Seite eingerichtet und dann von VS Code auf der Windows-Seite eine Verbindung zu diesem hergestellt wird. In diesem Fall werden die Erweiterungen, die Sie in VS Code installiert haben, nicht automatisch angezeigt, wenn Sie ein Projekt aus der WSL öffnen.

Zum Beispiel habe ich ein Vue-Projekt in VS Code geöffnet. Obwohl ich alle richtigen Vue-Erweiterungen für Syntaxhervorhebung, Formatierung und dergleichen installiert habe, verhält sich VS Code so, als hätte es noch nie eine .vue -Datei gesehen.

Eine in VS Code geöffnete .vue-Datei ohne Syntaxhervorhebung
(Große Vorschau)

Alle von Ihnen installierten Erweiterungen können in der WSL aktiviert werden. Suchen Sie einfach die gewünschte Erweiterung in der WSL und klicken Sie auf die Schaltfläche „In WSL installieren“.

Die Zielseite der Vetur VS Code-Erweiterung in VS Code
(Große Vorschau)

Alle in der WSL installierten Erweiterungen werden in einem eigenen Abschnitt in der Erweiterungs-Explorer-Ansicht angezeigt. Wenn Sie viele Erweiterungen haben, kann es etwas lästig sein, jede einzeln zu installieren. Wenn Sie einfach jede Erweiterung installieren möchten, die Sie in der WSL haben, klicken Sie auf das kleine Cloud-Download-Symbol oben im Abschnitt „Lokal – Installiert“.

Die Erweiterungsansicht in VS Code mit hervorgehobenem Symbol „Alle Erweiterungen in WSL installieren“.
(Große Vorschau)

So richten Sie Ihre Dev-Verzeichnisse ein

Dies ist bereits ein eigensinniger Artikel, also ist hier einer, nach dem Sie nicht gefragt haben, wie Sie Ihrer Meinung nach Ihre Projekte in Ihrem Dateisystem strukturieren sollten.

Ich halte alle meine Projekte auf der Linux-Seite. Ich lege meine Projekte nicht in „Eigene Dateien“ und versuche dann, von der WSL aus damit zu arbeiten. Damit kann mein Gehirn nicht umgehen.

Ich erstelle einen Ordner namens /dev , den ich in das Stammverzeichnis meines /home Ordners unter Linux lege. In diesem Ordner erstelle ich einen weiteren mit dem gleichen Namen wie mein Github-Repo: /burkeholland . In diesen Ordner gehen alle meine Projekte – auch die, die nicht auf Github gepusht werden.

Wenn ich ein Repo von einem anderen Github-Konto (z. B. „microsoft“) klonen, erstelle ich einen neuen Ordner in „dev“ mit dem Namen /microsoft . Ich klone dann das Repo in einen Ordner darin.

Grundsätzlich ahme ich die gleiche Struktur wie die Quellcodeverwaltung auf meinem lokalen Computer nach. Ich finde es viel einfacher, darüber nachzudenken, wo sich Projekte befinden und mit welchen Repos sie verbunden sind, nur aufgrund ihres Standorts. Es ist einfach, aber es hilft mir sehr effektiv, alles zu organisieren. Und ich brauche jede Hilfe, die ich bekommen kann.

Die Ordnerstruktur des Autors ist im Terminal aufgeführt
(Große Vorschau)

Durchsuchen von Dateien im Windows Explorer

Es gibt Zeiten, in denen Sie von der Windows-Seite auf eine Datei in Linux zugreifen müssen. Das Schöne an der WSL ist, dass man das noch kann.

Eine Möglichkeit besteht darin, wie auf ein zugeordnetes Laufwerk auf die WSL zuzugreifen. Greifen Sie mit einem \\wsl$ direkt aus der Explorerleiste darauf zu:

 \\wsl$ 
Der Windows Explorer die Ubuntu-Installation als gemountetes Verzeichnis
(Große Vorschau)

Sie können dies aus verschiedenen Gründen tun. Gerade heute brauchte ich zum Beispiel eine Chrome-Erweiterung, die es nicht im Webstore gibt. Also habe ich das Repo in WSL geklont, dann als „Unpacked Extension“ dorthin navigiert und es in Edge geladen.

Eine Sache, die ich unter Linux mit einiger Häufigkeit mache, ist das Öffnen des Verzeichnisses, das eine Datei enthält, direkt vom Terminal aus. Sie können dies auch in der WSL tun, indem Sie direkt explorer.exe aufrufen. Dieser Befehl öffnet beispielsweise das aktuelle Verzeichnis im Windows Explorer.

 $ explorer.exe . 
Ein GIF, das das Öffnen des Windows-Explorers im aktuellen Verzeichnis vom Terminal aus demonstriert

Dieser Befehl ist allerdings etwas umständlich. Unter Linux ist es einfach open . . Wir können die gleiche Magie erzeugen, indem wir einen Alias ​​in ~/.zshrc .

 alias open="explorer.exe"

Docker

Als ich sagte, dass alle Werkzeuge auf der Linux-Seite sein sollten, meinte ich das. Dazu gehört Docker.

Hier kommt der Gummi wirklich auf die Straße. Was wir hier brauchen, ist Docker, das innerhalb von Linux läuft und innerhalb von Windows läuft. Es ist ein bisschen wie eine russische Nistpuppe, wenn man es in einem Blogbeitrag niederschreibt. In Wirklichkeit ist es ziemlich einfach.

Sie benötigen die richtige Version von Docker für Windows. Zum Zeitpunkt der Erstellung dieses Artikels ist dies die WSL 2 Tech Preview.

Wenn Sie das Installationsprogramm ausführen, werden Sie gefragt, ob Sie Windows-Container anstelle von Linux-Containern verwenden möchten. Das tust du auf jeden Fall. Andernfalls erhalten Sie nicht die Option, Docker in der WSL auszuführen.

Der Docker-Installationsbildschirm mit ausgewählter Option „Windows-Container verwenden“.
(Große Vorschau)

Sie können jetzt Docker in der WSL aktivieren, indem Sie auf das Element in der Taskleiste klicken und „WSL 2 Tech Preview“ auswählen:

Die WSL2 Tech Preview Option im Docker Daemon Kontextmenü
(Große Vorschau)

Nachdem Sie den Dienst gestartet haben, können Sie Docker innerhalb der WSL so verwenden, wie Sie es erwarten würden. Das Ausführen von Docker in der WSL bietet einen ziemlich großen Leistungsschub sowie eine Verlängerung der Kaltstartzeit von Containern.

Darf ich Ihnen auch empfehlen, die Docker-Erweiterung für VS Code zu installieren? Es fügt Ihrem Docker-Setup eine visuelle Schnittstelle hinzu und erleichtert im Allgemeinen nur die Arbeit mit Docker, da Sie sich nicht all diese Befehlszeilen-Flags und -Optionen merken müssen.

Holen Sie sich mehr Bash unter Windows

An dieser Stelle sollten Sie sich ein Bild davon machen, wie Sie Bash unter Windows installieren und wie es funktioniert, sobald Sie es dort haben. Sie können Ihr Terminal endlos anpassen und es gibt alle möglichen tollen Programme, die Sie hinzufügen können, um Dinge wie das automatische Setzen von PATH-Variablen, das Erstellen von Aliasen, das Einfügen einer ASCII-Kuh in Ihr Terminal und vieles mehr zu tun.

Das Ausführen von Bash unter Windows hat mir ein völlig neues Universum eröffnet. Ich kann Windows, das ich wegen der Produktivität liebe, und Linux kombinieren, auf das ich als Entwickler angewiesen bin. Das Beste ist, dass ich jetzt mit einer Maschine Apps für beide Plattformen erstellen kann.

Weiterführende Lektüre

Hier können Sie mehr über Bash unter Windows lesen:

  • „Installationshandbuch für das Windows-Subsystem für Linux für Windows 10“, Microsoft Docs
  • „So installieren und verwenden Sie die Bash-Shell unter Windows 10“, Chris Hoffman, How-To Geek
  • „SSH mit WSL teilen“, Drew Wilson
  • „Verrückt werden mit dem Windows-Subsystem für Linux“, Brian Ketelsen
  • „Alles, was Sie mit der neuen Bash-Shell von Windows 10 tun können“, Chris Hoffman, How-To Geek

Besonderer Dank geht an Brian Ketelsen, Matt Hernandez, Rich Turner und Craig Loewen für ihre Geduld, Hilfe und Anleitung bei diesem Artikel.