Wie bearbeite ich die .bashrc
Datei im Windows-Subsystem für Linux sicher?
Dieser Artikelwarnt davor, im WSL- AppData
Ordner gespeicherte Dateien niemals mit Windows-Tools zu bearbeiten.
Aber wie bearbeitet man dann Dateien .bashrc
auf sichere Weise?
Antwort1
Verwenden Sie den integrierten nano
Editor als:
nano ~/.bashrc
Die wichtigsten Tastenkombinationen hierfür nano
sind Ctrl+ Ozum Speichern der Datei und Ctrl+ Xzum Schließen des Editors.
Eine einfache Anleitung zur Verwendung nano
finden 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
. bash
Geben Sie ein cd
und 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 gedit
nur 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 ~/.bashrc
ebenfalls 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, ~/.bashrc
wann 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 bash
ohne 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 wsl
Befehlsargumente zum Starten der Instanz.
Antwort4
Wenn Sie einen GUI-Editor bevorzugen, installieren Sie ihn VcXsrv
wie hier beschrieben:
Dann benutzegedit ~/.bashrc