- Über den Autor
- Windows Subsystem für Linux (WSL)
- Das ist dein Gehirn auf Linux… auf Windows.
- Datei- und Ordner-Navigation
- Starten von Anwendungen
- Einrichten der Entwicklungsumgebung
- Ein besseres Terminal
- Bind Copy/Paste
- Ändern Sie das Standardprofil
- Hintergrund einstellen
- Schriftart ändern
- Farbschemata
- Ändern des Standard-Startverzeichnisses
- Installieren Sie Zsh/Oh-My-Zsh
- Node installieren
- Auto-Vorschläge nutzen
- Wichtige Tastaturkürzel
- Git konfigurieren (Hub/Lab/Whatevs)
- VS Code und die WSL
- VS Code-Erweiterungen mit Remote WSL
- Wie Sie Ihre Entwicklungsverzeichnisse einrichten
- Dateien vom Windows Explorer aus durchsuchen
- Docker
- Get More Bash On Windows
- Weiter lesen
Über den Autor
Burke Holland ist ein Front-End-Entwickler und lebt in Nashville, TN; der großartigsten Stadt der Welt. Er hat viel Spaß an JavaScript, weil es die einzige Möglichkeit ist, …Mehr überBurke↬
- 24 min read
- JavaScript
- Save for offline reading
- Share on Twitter, LinkedIn
Ich gehöre zu den Menschen, die nicht ohne ihr Bash-Terminal leben können. Allein diese Tatsache hat es mir schwer gemacht, Frontend-Arbeiten unter Windows zu erledigen. Ich arbeite bei Microsoft und arbeite mit einem Mac. Erst als vor ein paar Jahren die neue Surface-Hardware-Linie herauskam, wurde mir klar: Ich muss so ein Gerät haben.
Also habe ich mir eins gekauft. Ein Surface Book 2 mit Windows 10, um genau zu sein. Ich schreibe gerade diesen Artikel darüber. Und was ist mit meinem süßen, süßen Bash Prompt? Nun, die habe ich natürlich mitgebracht.
In diesem Artikel werde ich einen ausführlichen Blick darauf werfen, wie die neue Technologie in Windows 10 es Ihnen ermöglicht, ein vollständiges Linux-Terminal unter Windows auszuführen. Außerdem zeige ich Ihnen mein fantastisches Terminal-Setup (das von „mir“ als „bestes aller Zeiten“ bezeichnet wurde) und wie auch Sie Ihre eigene Windows/Linux-Entwicklungsmaschine einrichten können.
Wenn Sie sich nach der Surface-Hardware sehnen, aber nicht ohne ein Linux-Terminal leben können, sind Sie hier richtig.
Hinweis: Zum Zeitpunkt des Verfassens dieses Artikels müssen Sie für viele Punkte in diesem Artikel „Preview“- oder „Insider“-Builds verschiedener Produkte, einschließlich Windows, verwenden oder zu diesen wechseln. Die meisten dieser Dinge werden irgendwann in der Zukunft im Haupt-Windows-Build enthalten sein.
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?
Das WSL in seiner derzeitigen Form ist eine Übersetzungsschicht, die Linux-Systemaufrufe in Windows-Systemaufrufe umwandelt. Linux läuft auf der WSL. Das bedeutet, dass man drei Dinge tun muss, um Linux unter Windows zu nutzen:
- WSL aktivieren,
- Linux installieren,
- Immer drei Elemente in eine Liste aufnehmen.
Wie sich herausstellt, ist diese Übersetzungsschicht ein bisschen langsam – so wie ich versuche, mich daran zu erinnern, ob ich splice
oder slice
brauche. Das gilt vor allem dann, wenn die WSL das Dateisystem liest und in dieses schreibt. Das ist ein großes Problem für Webentwickler, denn jedes richtige npm install
kopiert Tausende von Dateien auf Ihren Rechner. Ich meine, ich weiß nicht, wie es Ihnen geht, aber ich werde meine eigenen Strings nicht mit der linken Maustaste eingeben.
Version 2 der WSL ist eine andere Geschichte. Sie ist wesentlich schneller als die aktuelle Version, weil sie einen Virtualisierungskern in Windows nutzt, anstatt die Übersetzungsschicht zu verwenden. Wenn ich sage, dass sie „erheblich schneller“ ist, dann meine ich sehr, sehr schnell. Etwa so schnell, wie wenn ich „splice vs slice“ googeln würde.
Aus diesem Grund werde ich zeigen, wie man die WSL 2 installiert. Zum Zeitpunkt des Verfassens dieses Artikels müssen Sie auf dem „Insider“-Build von Windows sein.
Das Wichtigste zuerst: Folgen Sie dieser kurzen Anleitung, um die WSL unter Windows 10 zu aktivieren und Ihre Windows-Versionsnummer zu überprüfen.
Sobald Sie sie installiert haben, drücken Sie die Windows-Taste und geben Sie „Windows Insider“ ein. Wählen Sie dann „Windows Insider Program Settings“.
Sie haben verschiedene Optionen, in welchem „Ring“ Sie sein möchten. Eine Menge Leute, die ich kenne, sind auf dem schnellen Ring. Ich bin allerdings ein vorsichtiger Typ. Als Kind bin ich auf dem Spielplatz immer auf dem Bauch die Rutsche hinuntergerutscht und habe mich an den Seiten festgehalten. Deshalb bleibe ich auf dem langsamen Ring. Ich benutze ihn schon seit einigen Monaten und finde ihn nicht störender oder instabiler als das normale Windows.
Es ist eine gute Option, wenn man WSL 2 haben möchte, aber nicht auf der Rutsche sterben will.
Anmerkung: Nach der Veröffentlichung dieses Artikels habe ich erfahren, dass WSL 2 nicht auf dem langsamen Ring ist. Man muss sich auf dem schnellen Ring befinden, um sie zu bekommen. Während ich diesen Artikel geschrieben habe, muss ich mich auf dem schnellen Ring befunden haben. Also ist es der schnelle Ring. Viel Glück beim Rutschen!
Als nächstes müssen Sie die Funktion „Virtual Machine Platform“ 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 features“ 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.
Nun, da das WSL aktiviert ist, können Sie Linux installieren. Ironischerweise tun Sie dies direkt aus dem Windows Store. Erst im Jahr 2019 würde ich vorschlagen, dass Sie „Linux aus dem Windows Store installieren“.
Es gibt mehrere verschiedene Distributionen zur Auswahl, aber Ubuntu wird von allen Tools, die wir später konfigurieren werden – einschließlich VS Code – am meisten unterstützt. Alle Anweisungen, die ab jetzt folgen, 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 gibt drei zur Auswahl: Ubuntu, Ubuntu 18.04 und Ubuntu 16.04. Ubuntu mag die Versionsnummer 04 sehr, nicht wahr?
Die „Ubuntu“-Distribution (die erste in diesem Screenshot) ist die „Meta-Version“, oder vielmehr ein Platzhalter, der auf die neueste Version verweist. Im Moment ist das 18.04.
Ich habe mich für die Meta-Version entschieden, weil ich später zeigen werde, wie man das Linux-Dateisystem mit dem Windows Explorer durchsucht, und weil es etwas unübersichtlich ist, „Ubuntu 18.04“ als Laufwerksname zu haben, im Gegensatz zu „Ubuntu“.
Die Installation ist ziemlich schnell, je nach Internetverbindung. Sie ist nur 215 Megabyte groß, aber ich habe hier eine Gigabit-Verbindung, und woher weißt du, ob jemand eine Gigabit-Verbindung hat? Keine Sorge, sie werden es dir sagen.
Nach der Installation hast du jetzt eine „Ubuntu“-App in deinem Startmenü.
Wenn du darauf klickst, bekommst du ein Bash-Terminal!
Nehmen Sie sich einen Moment Zeit, um sich in dem Wunder der Technik zu sonnen.
Standardmäßig arbeiten Sie mit der WSL-Version 1. 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.
Aus dem PowerShell-Terminal können Sie sehen, welche Version der WSL Sie haben, indem Sie wsl --list --verbose
ausführen.
Wenn die Version 1 angezeigt wird, 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
Dies wird ein wenig dauern, je nachdem, wie viel Fleisch Ihr Rechner hat. Bei mir dauerte es „einige Minuten“, mehr oder weniger. Wenn es fertig ist, bist du auf der neuesten und besten Version der WSL.
Das ist dein Gehirn auf Linux… auf Windows.
Linux ist nicht Windows. WSL ist keine Bash-Eingabeaufforderung über einem Windows-Betriebssystem. Es ist ein eigenständiges Betriebssystem mit einer eigenen Ordnerstruktur und installierten Anwendungen. Wenn Sie Node mit dem Windows-Installer installieren, wird die Eingabe von node
in Linux fehlschlagen, weil 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, so dass sie als ein Dateisystem auf Ihrem Rechner erscheinen.
Datei- und Ordner-Navigation
Standardmäßig lässt Sie das Ubuntu-Terminal in Ihr Linux-Home-Verzeichnis (oder /home/your-user-name
) fallen. Sie können auf die Windows-Seite wechseln, indem Sie zu /mnt/c
.
Beachten Sie, dass hier einige Berechtigungen verweigert werden. Ich müsste mit der rechten Maustaste auf das Ubuntu-Symbol klicken und „Als Administrator ausführen“ wählen, um Zugriff auf diese Dateien zu erhalten. So geht Windows mit erweiterten Zugriffsrechten vor. Unter Windows gibt es kein sudo.
Starten von Anwendungen
Sie können jede Windows-Anwendung vom Ubuntu-Terminal aus starten. Ich kann zum Beispiel den Windows Explorer vom Unbuntu-Terminal aus öffnen.
Das funktioniert auch umgekehrt. Man kann jede Anwendung ausführen, die auf der Linux-Seite installiert ist. Hier führe ich das unter Linux installierte „fortune“ von der Windows-Befehlszeile aus. (Weil es keine richtige Linux-Installation ohne zufällige, bedeutungslose Glücksfälle ist.)
Zwei verschiedene Betriebssysteme. Zwei verschiedene Dateisysteme. Zwei verschiedene Sätze von installierten Anwendungen. Sehen Sie, wie verwirrend das werden kann?
Um die Übersicht zu behalten, empfehle ich Ihnen, alle Ihre JavaScript-Entwicklungsdateien und -Tools auf der Linux-Seite zu installieren. Die Möglichkeit, zwischen Windows und Linux hin und her zu wechseln und von beiden Systemen aus auf Dateien zuzugreifen, ist der eigentliche Zauber der WSL. Vergessen Sie das nicht, denn es ist das, was diese ganze Einrichtung besser macht als nur eine Standard-Linux-Box.
Einrichten der Entwicklungsumgebung
Von hier an werde ich Ihnen eine Liste mit Meinungen darüber geben, was meiner Meinung nach eine gute Linux/Windows-Einrichtung ausmacht. Aber denken Sie daran: Meine Meinungen sind nur das. Meinungen. Es ist nur so, dass sie, wie alle meine Meinungen, zu 100% richtig sind.
Ein besseres Terminal
Ja, du hast ein Terminal bekommen, als du Ubuntu installiert hast. Es ist eigentlich die Windows-Konsole, die mit deiner Linux-Distribution verbunden ist. Es ist keine schlechte Konsole. Du kannst die Größe ändern, Kopieren/Einfügen aktivieren (in den Einstellungen). Aber Sie können keine Dinge wie Tabs oder das Öffnen neuer Fenster tun. So wie viele Leute Ersatzterminalprogramme auf dem Mac benutzen (ich benutze Hyper), gibt es auch für Windows andere Optionen. Die Awesome WSL-Liste auf Github enthält eine ziemlich vollständige Liste.
Das sind alles gute Emulatoren, aber es gibt eine neue Option, die von Leuten entwickelt wurde, die sich mit Windows ziemlich gut auskennen.
Microsoft hat an einer neuen Anwendung namens „Windows Terminal“ gearbeitet.
Windows Terminal kann aus dem Windows Store installiert werden und befindet sich derzeit im Preview-Modus. Ich benutze es jetzt schon eine ganze Weile, und es hat genug Funktionen und ist stabil genug, um es aus vollem Herzen zu empfehlen.
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 derzeitiges Terminal. Wir gehen hier einige der wichtigsten Änderungen durch.
Das Windows-Terminal ist ziemlich anpassbar. Wenn Sie auf den Pfeil „⌄“ oben links (neben dem „+“-Zeichen) klicken, gelangen Sie zu den „Einstellungen“. Dadurch wird eine JSON-Datei geöffnet.
Bind Copy/Paste
Oben in der Datei befinden sich alle Tastenbelegungen. Als erstes habe ich „Kopieren“ auf Strg + C und „Einfügen“ auf Strg + V gelegt. Wie soll ich sonst Befehle aus Stack Overflow kopieren und einfügen, die ich nicht verstehe?
{ "command": "copy", "keys": },{ "command": "paste", "keys": },
Das Problem ist, dass Strg + C bereits auf SIGINT oder den Befehl „Unterbrechen/Kill“ unter Linux gelegt ist. Es gibt viele Terminals für Windows, die das so handhaben, indem sie Copy/Paste auf Ctrl + Shift + C bzw. Ctrl + Shift + V abbilden. Das Problem ist, dass Kopieren/Einfügen unter Windows an jeder anderen Stelle Strg + C / Strg + V ist. Ich drückte einfach immer wieder Strg + C im Terminal, um Dinge zu kopieren. Ich konnte nicht aufhören, das zu tun.
Das Windows-Terminal handhabt das anders. Wenn du Text markiert hast und Strg + C drückst, wird der Text kopiert. Wenn es einen laufenden Prozess gibt, sendet es immer noch den SIGINT-Befehl nach unten und unterbricht ihn. Das bedeutet, dass Sie Strg + C / Strg + V sicher auf Kopieren/Einfügen im Windows-Terminal zuordnen können und es wird Ihre Fähigkeit, Prozesse zu unterbrechen, nicht beeinträchtigen.
Wer hätte gedacht, dass Kopieren/Einfügen so viel Herzschmerz verursachen könnte?
Ändern Sie das Standardprofil
Das Standardprofil ist das, was beim Öffnen einer neuen Registerkarte angezeigt wird. Standardmäßig ist das die Powershell. Scrollen Sie nach unten, um das Linux-Profil zu finden. Dies ist das Profil, das geöffnet wird wsl.exe -d Ubuntu
. Kopieren Sie seine GUID und fügen Sie sie in die Einstellung defaultProfile
ein.
Ich habe diese beiden Einstellungen so verschoben, dass sie direkt nebeneinander liegen, damit sie leichter zu sehen sind:
Hintergrund einstellen
Ich möchte, dass mein Hintergrund eine dunkle Volltonfarbe mit einem flachen Logo in der rechten Ecke ist. Ich mache das, weil ich möchte, dass das Logo hell und sichtbar ist, aber nicht im Weg des Textes steht. Dieses habe ich selbst gemacht, aber es gibt eine großartige Sammlung von flachen Bildern, aus der man bei Simple Desktops auswählen kann.
Der Hintergrund wird mit der Eigenschaft backgroundImage
eingestellt:
"backgroundImage": "c:/Users/YourUserName/Pictures/earth.png"
Sie werden auch eine Einstellung namens „Acryl“ bemerken. Damit können Sie die Deckkraft des Hintergrunds einstellen. Wenn Sie eine einfarbige Hintergrundfarbe haben, ist dies ziemlich einfach.
"background": "#336699","useAcrylic": true,"acrylicOpacity": 0.5
Sie können dies auch mit einem Hintergrundbild erreichen, indem Sie die Einstellung arcylicOpacity
mit backgroundImageOpacity
kombinieren:
"backgroundImage": "c:/Users/username/Pictures/earth-and-stars.png","useAcrylic": true,"acrylicOpacity": 0.5
Für mein Thema lässt die Transparenz alles gedämpft aussehen, also lasse ich die useAcrylic
auf false
eingestellt.
Schriftart ändern
Das Team, das das Windows Terminal entwickelt, arbeitet auch an einer neuen Schriftart namens „Cascadia Code“. Zum Zeitpunkt der Erstellung dieses Artikels ist sie noch nicht verfügbar, so dass Sie stattdessen die Standardschriftart von Windows erhalten.
Die Standardschriftart im Windows Terminal ist „Consolas“. Dies ist die gleiche Schriftart, die auch in der Windows-Befehlszeile verwendet wird. Wenn Sie das echte Ubuntu-Gefühl haben wollen, zeigt Ihnen Chris Hoffman, 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"
Sie sehen ziemlich ähnlich aus; der Hauptunterschied liegt in den Abständen von Ubuntu Mono, was das Terminal ein wenig straffer und sauberer macht.
Farbschemata
Die Farbschemata befinden sich alle am Ende der Einstellungsdatei. Ich habe das Farbschema „Campbell“ als Grundlage kopiert. Ich versuche, die Farben mit ihren Namen abzugleichen, aber ich habe auch keine Angst, abtrünnig zu werden. Ich ordne „#ffffff“ „blau“ zu – es ist mir sogar egal.
Wenn Ihnen dieses spezielle Schema, das ich „Erde“ genannt habe, gefällt, habe ich diese Übersicht zusammengestellt, damit Sie dieses ganze Durcheinander nicht manuell aus einem Screenshot kopieren müssen.
Hinweis: Die Farbvorschau wird durch die „Color Highlight“-Erweiterung für VS Code ermöglicht.
Ändern des Standard-Startverzeichnisses
Standardmäßig legt das WSL-Profil Ihr Home-Verzeichnis auf der Windows-Seite an. Bei der Einrichtung, die ich in diesem Artikel empfehle, wäre es besser, wenn Sie stattdessen in Ihrem Linux-Ordner home
starten würden. Ändern Sie dazu die startingDirectory
-Einstellung in Ihrem „Ubuntu“-Profil:
"startingDirectory": "\\wsl$\Ubuntu\home\burkeholland"
Merken Sie sich den Pfad dort. Sie können diesen Pfad (ohne die zusätzlichen Escape-Schrägstriche) verwenden, um von der Windows-Befehlszeile aus auf die WSL zuzugreifen.
Installieren Sie Zsh/Oh-My-Zsh
Wenn Sie Zsh und Oh-My-Zsh noch nie benutzt haben, werden Sie sich freuen. Zsh (oder „Z Shell“) ist eine Ersatz-Shell für Linux. Sie erweitert die grundlegenden Fähigkeiten der Bash, einschließlich des impliziten Wechselns von Verzeichnissen (kein Tippen von cd
), bessere Unterstützung von Themen, bessere Eingabeaufforderungen und vieles 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, Themen und einer Vielzahl von Tastenkombinationen 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 wollen. Wenn Sie dies bejahen, können Sie mit Zsh und Oh-My-Zsh loslegen.
Sie werden feststellen, dass die Eingabeaufforderung jetzt viel sauberer ist. Sie können das Aussehen der Eingabeaufforderung ändern, indem Sie das Thema in der Datei ~/.zshrc
ändern.
Öffnen Sie die Datei 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 das „Cloud“-Thema schön. Und niedlich.
Um die Änderungen an der .zshrc
zu übernehmen, müssen Sie die Quelle angeben:
source ~/.zshrc
Hinweis: Wenn du ein Thema wie „agnoster“ wählst, das Glyphen benötigt, brauchst du eine mit Powerline infundierte Version von Ubuntu Mono, die… Glyphen hat. Andernfalls wird Ihr Terminal nur voller seltsamer Zeichen sein, als hätten Sie Ihr Gesicht auf der Tastatur zerquetscht. Nerd Fonts bietet eine an, die ziemlich gut zu funktionieren scheint.
Jetzt können Sie Dinge wie das Wechseln von Verzeichnissen einfach durch Eingabe des Verzeichnisnamens erledigen. Kein cd
erforderlich. Willst du ein Verzeichnis wiederherstellen? Machen Sie einfach ein ..
. Sie müssen nicht einmal den ganzen Verzeichnisnamen eingeben, sondern nur die ersten paar Buchstaben und dann die Tabulatortaste. Zsh wird Ihnen eine Liste aller Dateien/Verzeichnisse anzeigen, die Ihrer Suche entsprechen, und Sie können sie mit der Tabulatortaste durchgehen.
Node installieren
Als Webentwickler werden Sie wahrscheinlich Node installieren wollen. Ich nehme an, Sie müssen Node nicht installieren, um Webentwicklung zu betreiben, aber es fühlt sich im Jahr 2019 sicher so an!
Ihr erster Instinkt könnte sein, Node mit apt
zu installieren, was Sie auch tun können, aber Sie würden es aus zwei Gründen bereuen:
- Die Version von Node auf apt ist schmerzlich veraltet;
- Sie sollten Node mit einem Versionsmanager installieren, damit Sie keine Probleme mit Berechtigungen bekommen.
Der beste Weg, diese beiden Probleme zu lösen, ist die Installation von nvm (Node Version Manager). Da du zsh
installiert hast, kannst du einfach das nvm-Plugin in deine zshrc-Datei einfügen und zsh kümmert sich um den Rest.
Zuerst installierst du das Plugin, indem du in das zsh-nvm
-Repo klonst. (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
Dann fügen Sie es als Plugin in der Datei ~/.zshrc
hinzu.
`nano ~/.zshrc`plugins (zsh-nvm git)
Erinnern Sie sich daran, die zshrc-Datei erneut mit source ~/.zshrc
zu quellen und Sie werden sehen, dass nvm installiert wird.
Jetzt können Sie node mit nvm installieren. Es macht es einfach, mehrere Versionen von Node nebeneinander zu installieren und mühelos zwischen ihnen zu wechseln. Außerdem gibt es keine Berechtigungsfehler mehr, wenn man globale npm-Installationen durchführt!
nvm install --lts
Ich empfehle dies gegenüber der normalen nvm-Installation, weil das Plugin die Möglichkeit bietet, nvm einfach zu aktualisieren. Mit der Standardinstallation von „curl“ ist das ein ziemlicher Aufwand. Mit dem Plugin ist es ein einziger Befehl.
nvm upgrade
Auto-Vorschläge nutzen
Eines meiner Lieblings-Plugins für zsh ist zsh-autosuggestions. Es merkt sich Dinge, die man vorher in das Terminal eingegeben hat, und erkennt sie dann, wenn man sie wieder eintippt, und „schlägt“ die Zeile vor, die man vielleicht braucht. Dieses Plugin hat sich schon öfter als nützlich erwiesen, als ich mich erinnern kann – vor allem, wenn es um lange CLI-Befehle geht, die ich in der Vergangenheit verwendet habe, an die ich mich aber nicht mehr erinnern kann.
Klone das Repo in den zsh-Erweiterungsordner:
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
Füge es dann zu deinen zsh-Plugins hinzu und rufe die zshrc-Datei auf:
nano ~/.zshrc# In the .zshrc fileplugins(zsh-nvm zsh-autosuggestions git)source ~/.zshrc
Das Plugin liest deine zsh-Historie, also beginne mit der Eingabe eines Befehls, den du schon einmal getippt hast und beobachte die Magie. Versuchen Sie, den ersten Teil des langen Klon-Befehls oben einzugeben.
Wenn Sie ↹ drücken, wird der Befehl automatisch vervollständigt. Wenn Sie immer wieder ↹ drücken, werden alle Befehle in Ihrem Verlauf durchlaufen, die übereinstimmen könnten.
Wichtige Tastaturkürzel
Es gibt ein paar Terminal-Kürzel, die ich ständig benutze. Das ist bei allen meinen Tools so – auch bei VS Code. Der Versuch, alle Tastenkombinationen zu lernen, ist Zeitverschwendung, weil man sie nicht oft genug benutzt, um sie sich zu merken.
Hier sind einige, die ich regelmäßig benutze:
Terminal Shortcut | Was macht man damit? |
---|---|
Strg + L | Dies löscht das Terminal und bringt dich zurück an den Anfang. Das entspricht der Eingabe von „clear“. |
Ctrl + U | Damit wird nur die aktuelle Zeile gelöscht. |
Ctrl + A | Setzt den Cursor an den Anfang der Befehlszeile. |
Strg + E | Setzt den Cursor an das Ende der Zeile. |
Strg + K | Löscht alle Zeichen nach dem Cursor. |
Das ist es! Alles andere habe ich wahrscheinlich gelernt und dann vergessen, weil es nie benutzt wird.
Git konfigurieren (Hub/Lab/Whatevs)
Git wird mit Ubuntu ausgeliefert, es ist also keine Installation erforderlich. Sie können den Anweisungen des Quellcode-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 „copy“ zu verwenden, um Ihren ssh-Schlüssel zu kopieren. Ubuntu hat den Befehl „xcopy“, aber der funktioniert hier nicht, weil es keine Interoperabilität zwischen Linux und Windows in Bezug auf die Zwischenablage gibt.
Stattdessen können Sie einfach die ausführbare Windows-Zwischenablage verwenden und sie direkt vom Terminal aus aufrufen. Sie müssen den Text zuerst mit cat
abrufen und ihn dann in die Windows-Zwischenablage leiten.
cat ~/.ssh/id_rsa.pub | clip.exe
Die Github-Dokumente sagen Ihnen, dass Sie sicherstellen müssen, dass ssh-agent
ausgeführt wird. It’s not. Wenn Sie versuchen, dem Agenten Ihren Schlüssel hinzuzufügen, sehen Sie Folgendes:
Sie können den Agenten starten, aber wenn Sie Windows das nächste Mal neu starten oder die WSL angehalten wird, müssen Sie ihn erneut starten. Das liegt daran, dass die WSL kein Initialisierungssystem enthält. Es gibt keinen systemd
oder einen anderen Prozess, der alle Ihre Dienste startet, wenn die WSL startet. Die WSL befindet sich noch in der Vorschauphase, und das Team arbeitet an einer Lösung für dieses Problem.
In der Zwischenzeit gibt es, ob Sie es glauben oder nicht, auch dafür ein zsh-Plugin. Es heißt ssh-agent
und wird mit oh-my-zsh installiert, so dass man es nur noch in der .zshrc
-Datei referenzieren muss.
zsh-nvm zsh-autosuggestions ssh-agent git
Dies startet den ssh-agent automatisch, wenn er beim ersten Start der WSL nicht läuft. Der Nachteil ist, dass Sie bei jedem Neustart der WSL nach Ihrer Passphrase gefragt werden. Das bedeutet, dass Sie Ihren Computer praktisch jedes Mal neu starten müssen.
VS Code und die WSL
Die WSL hat keine grafische Benutzeroberfläche, 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 ein Programm, das auf der Windows-Seite läuft, auf Dateien auf der Linux-Seite zugreift, und dies kann zu allen möglichen Problemen und „verweigerten Berechtigungen“ führen. Als allgemeine Faustregel empfiehlt Microsoft, dass Sie mit Windows-Programmen keine Dateien auf der WSL-Seite ändern sollten.
Um dieses Problem zu lösen, gibt es eine Erweiterung für VS Code namens „Remote WSL“. Diese Erweiterung stammt von Microsoft und ermöglicht es, innerhalb der WSL zu entwickeln, aber aus VS Code heraus.
Ist die Erweiterung installiert, kann man VS Code direkt mit der Ubuntu-Seite verbinden, indem man die Befehlspalette öffnet (Strg + Umschalt + P) und „Remote-WSL: Neues Fenster“ auswählt.
Damit wird eine neue Instanz von VS Code geöffnet, die es Ihnen ermöglicht, so zu arbeiten, als wären Sie vollständig auf der Linux-Seite der Dinge. Mit „Datei/Öffnen“ können Sie das Ubuntu-Dateisystem anstelle des Windows-Dateisystems durchsuchen.
Das integrierte Terminal in VS Code öffnet Ihr schön angepasstes zsh-Setup. Alles „funktioniert“ so, wie es sollte, wenn Sie die Remote WSL-Erweiterung installiert haben.
Wenn Sie Code von Ihrem Terminal aus mit code .
öffnen, erkennt VS Code automatisch, dass er von der WSL aus geöffnet wurde, und fügt automatisch die Remote WSL-Erweiterung hinzu.
VS Code-Erweiterungen mit Remote WSL
Die Remote WSL-Erweiterung für VS Code funktioniert, indem sie einen kleinen Server auf der Linux-Seite einrichtet und sich dann von VS Code aus mit diesem auf der Windows-Seite verbindet. In diesem Fall werden die Erweiterungen, die Sie in VS Code installiert haben, nicht automatisch angezeigt, wenn Sie ein Projekt von der WSL aus öffnen.
Ich habe zum Beispiel 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.
Alle Erweiterungen, die Sie installiert haben, 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“.
Alle in der WSL installierten Erweiterungen werden in einem eigenen Abschnitt in der Ansicht „Erweiterungen“ angezeigt. Wenn Sie sehr viele Erweiterungen haben, kann es etwas lästig sein, jede einzelne zu installieren. Wenn Sie einfach alle Erweiterungen in der WSL installieren möchten, klicken Sie auf das kleine Cloud-Download-Symbol oben im Abschnitt „Lokal – Installiert“.
Wie Sie Ihre Entwicklungsverzeichnisse einrichten
Dies ist bereits ein Artikel mit vielen Meinungen, deshalb hier einer, nach dem Sie nicht gefragt haben, wie Sie Ihre Projekte in Ihrem Dateisystem strukturieren sollten.
Ich behalte alle meine Projekte auf der Linux-Seite. Ich lege meine Projekte nicht in „Eigene Dateien“ ab und versuche dann, von der WSL aus mit ihnen zu arbeiten.
Ich erstelle einen Ordner mit dem Namen /dev
, den ich im Stammverzeichnis meines /home
-Ordners in Linux ablege. Innerhalb dieses Ordners erstelle ich einen weiteren, der denselben Namen wie mein Github-Repo hat: /burkeholland
. In diesen Ordner kommen alle meine Projekte – auch die, die nicht auf Github veröffentlicht werden.
Wenn ich ein Repo von einem anderen Github-Konto klone (z. B. „microsoft“), erstelle ich in „dev“ einen neuen Ordner namens /microsoft
. Dann klone ich das Repo in einen Ordner innerhalb dieses Ordners.
Im Grunde genommen ahme ich die gleiche Struktur nach wie bei der Versionskontrolle auf meinem lokalen Rechner. Ich finde es sehr viel einfacher, anhand des Standorts der Projekte zu erkennen, wo sie sich befinden und mit welchen Repos sie verknüpft sind. Es ist einfach, aber es hilft mir sehr effektiv dabei, alles organisiert zu halten. Und ich kann jede Hilfe gebrauchen, die ich bekommen kann.
Dateien vom Windows Explorer aus durchsuchen
Es kommt vor, dass man auf eine Datei in Linux von der Windows-Seite aus zugreifen muss. Das Schöne an der WSL ist, dass man das trotzdem tun kann.
Eine Möglichkeit ist, auf die WSL wie auf ein zugeordnetes Laufwerk zuzugreifen. Greifen Sie mit einem \wsl$
direkt über die Explorerleiste darauf zu:
\wsl$
Das kann aus verschiedenen Gründen geschehen. Zum Beispiel brauchte ich gerade heute eine Chrome-Erweiterung, die nicht im Webstore zu finden ist. Also habe ich das Repo in WSL geklont, dann als „Entpackte Erweiterung“ dorthin navigiert und sie in Edge geladen.
Eine Sache, die ich unter Linux sehr häufig mache, ist das Öffnen des Verzeichnisses, das eine Datei enthält, direkt vom Terminal aus. Das kann man auch in der WSL machen, indem man explorer.exe
direkt aufruft. Dieser Befehl öffnet zum Beispiel das aktuelle Verzeichnis im Windows Explorer.
$ explorer.exe .
Dieser Befehl ist allerdings etwas umständlich. Unter Linux lautet er einfach open .
. Wir können die gleiche Magie erzeugen, indem wir einen Alias in der ~/.zshrc
.
alias open="explorer.exe"
Docker
Als ich sagte, dass alle Werkzeuge auf der Linux-Seite sein sollten, meinte ich das. Das schließt Docker mit ein.
Hier fängt das Problem erst richtig an. Was wir hier brauchen, ist Docker, das unter Linux läuft und unter Windows läuft. Es ist ein bisschen wie eine russische Schachtelpuppe, 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 das 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 müssen Sie auf jeden Fall tun. Andernfalls erhalten Sie nicht die Option, Docker in der WSL auszuführen.
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:
Nach dem Starten des Dienstes können Sie Docker in 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 Verbesserung der Kaltstartzeit von Containern.
Darf ich Ihnen auch empfehlen, die Docker-Erweiterung für VS Code zu installieren? Sie stellt eine visuelle Oberfläche für Ihr Docker-Setup zur Verfügung und macht es generell einfacher, mit Docker zu arbeiten, weil Sie sich nicht an all diese Befehlszeilenflags und -optionen erinnern müssen.
Get More Bash On Windows
An dieser Stelle sollten Sie eine Vorstellung davon bekommen, wie man Bash unter Windows einsetzt und wie es funktioniert, wenn Sie es einmal 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 Abrufen einer ASCII-Kuh in Ihrem Terminal und vieles mehr zu tun.
Die Ausführung der Bash unter Windows hat mir ein völlig neues Universum eröffnet. Ich kann Windows, das ich für die Produktivität liebe, und Linux, auf das ich als Entwickler angewiesen bin, miteinander kombinieren. Das Beste von allem ist, dass ich jetzt mit einer Maschine Anwendungen für beide Plattformen entwickeln kann.
Weiter lesen
Sie können hier mehr über Bash unter Windows lesen:
- „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
Spezieller Dank an Brian Ketelsen, Matt Hernandez, Rich Turner und Craig Loewen für ihre Geduld, Hilfe und Anleitung zu diesem Artikel.