Sicheres Bearbeiten von .bashrc in WSL

Sicheres Bearbeiten von .bashrc in WSL

Wie bearbeite ich die .bashrcDatei im Windows-Subsystem für Linux sicher?

Dieser Artikelwarnt davor, im WSL- AppDataOrdner gespeicherte Dateien niemals mit Windows-Tools zu bearbeiten.

Aber wie bearbeitet man dann Dateien .bashrcauf sichere Weise?

Antwort1

Verwenden Sie den integrierten nanoEditor als:

nano ~/.bashrc

Die wichtigsten Tastenkombinationen hierfür nanosind Ctrl+ Ozum Speichern der Datei und Ctrl+ Xzum Schließen des Editors.

Eine einfache Anleitung zur Verwendung nanofinden Sie imGentoo Linux Wiki.

Antwort2

Ich findeVisual Studio Codefunktioniert einwandfrei. Installieren Sie einfach dieFernbedienung - WSLVerlängerung.

Um es zu verwenden, öffnen Sie einfach cmd und geben Sie ein bash. bashGeben Sie ein cdund verwenden Sie dann code .bashrc.

Voila! VS Code wird in WSL geöffnet und Sie können die gewünschten Dateien bearbeiten.

Antwort3

Es tut mir leid, hier noch eine weitere Antwort hinzuzufügen, aber die Frage selbst (zusammen mit allen anderen Antworten hier) mussKontextdas fehlt jedem, der kommt und versucht, es zu verstehen.

Die in der ursprünglichen Frage verlinkte Microsoft-Warnung bezieht sich auf das Bearbeiten von WSL1-Dateienüber Windowsunter Verwendung des Windows- %AppData%Pfads. In WSL Version 1 (aber nicht Version 2) speicherte WSL das gesamte Dateisystem für die Linux-Instanz in einem Windows-Ordner. Diese Dateien sind zwar für den Benutzer in Windows sichtbar, sollten in Windows jedoch nicht bearbeitet werden. Wie in der Warnung angegeben, ist eine Beschädigung der WSL-Instanz wahrscheinlich, wenn diese nicht beachtet wird.

Dies ist bei WSL Version 2 kein Problem. Da das Dateisystem auf einer virtuellen Festplatte gespeichert ist, ist es ohnehin nicht möglich, das Dateisystem direkt zu bearbeiten.

In beiden Versionen ist es jedochIstSicheres Bearbeiten der Dateien (einschließlich ~/.bashrc)innendie WSL-Instanz. Dort ist es nur eine normale Datei im WSL-Dateisystem. Die beiden Antworten von 2019 (BeastOfCaerbannogsUndWinEunuuchs2Unix's) verwenden diesen Ansatz. Daran ist nichts auszusetzen – beides sind richtige Antworten. Allerdings würde ich sagen, dass die Installation eines Windows X-Servers und geditnur das Bearbeiten einer WSL-Datei wahrscheinlich übertrieben ist. Es hätte auch fast jeder andere Editor zitiert werden können (möchte jemand der Vollständigkeit halber eine Emacs-Antwort einwerfen? ;-)).

Der2020 Antwort von Brixton Mavu, das die Verwendung von VSCode erwähnt, ist ebenfalls eine Variante derselben Idee. Obwohl es ein Windows-Tool verwendet, startet VSCode einen Server innerhalb der WSL-Instanz, mit dem es kommuniziert, um das Bearbeiten, Durchsuchen und sogar Debuggen der WSL-Instanz zu ermöglichen.

Dann gibt es@Jons letzte Antwort(was diese Frage nach oben trieb und der Grund ist, warum ich sie gesehen habe). Dies ist (meistens) die richtige Antwort darauf, wie man WSL-Dateien sicher innerhalb von Windows und nicht innerhalb der WSL-Instanz bearbeiten kann. Es wird jedoch tatsächlich bereits im Microsoft-Blogeintrag erwähnt, der in der ursprünglichen Frage verlinkt war.

Ich sage „meistens“, weil Sie im Allgemeinen die Verwendung von Windows-Tools zum Bearbeiten von Linux-Dateien vermeiden sollten, da viele Windows-Editoren standardmäßig DOS/Windows-Zeilenenden verwenden, was ~/.bashrcebenfalls zu Fehlern führt. Einige Tools sind intelligent genug, um zu erkennen, dass es sich bei der vorhandenen Datei um eine Linux-Datei handelt, andere nicht, aber die meisten Tools verwenden standardmäßig CRLF (DOS/Windows), wenn kein anderes Format vorhanden ist.

Wenn die WSL-Instanz aufgrund eines Fehlers im nicht startet ~/.bashrc, dannkönnteVerwenden Sie zum Bearbeiten den Vorschlag von @Jon \\wsl$\, aber es gibt (meiner Meinung nach) auch andere, sicherere Alternativen.

Um zu bearbeiten, ~/.bashrcwann diese Datei Ihren Start verhindert, führen Sie Folgendes aus:

wsl -e bash --norc -c "vi ~/.bashrc"

oder

wsl ~ -e bash --norc
vi .bashrc

Dies wird bashohne die Bereitstellung des vorhandenen gestartet ~/.bashrc.

Zu den weiteren Alternativen gehört das Starten der Sitzung als Root:

wsl -u root

Und nehmen Sie dann alle erforderlichen Änderungen vor.

WSL verfügt im Allgemeinen über einige erstaunliche Wiederherstellungsmechanismen durch die Verwendung der wslBefehlsargumente zum Starten der Instanz.

Antwort4

Wenn Sie einen GUI-Editor bevorzugen, installieren Sie ihn VcXsrvwie hier beschrieben:

Dann benutzegedit ~/.bashrc

verwandte Informationen