Ausführen einfacher WSL-Befehle
Wir haben uns bereits einige einfache WSL-Verwaltungsbefehle angesehen, darunter wsl --install
und wsl --list --online
, sowie einige einfache Linux-Befehle, darunter mkdir
zum Erstellen eines Verzeichnisses und sudo apt install <package>
zum Installieren von Software. Aber lassen Sie uns noch ein paar weitere erkunden und versuchen, einige gängige Aufgaben zu erledigen.
Ausprobieren einiger einfacher WSL-Befehle
Die WSL-Befehle in dieser Schulung sind in einem Format aufgeführt, das von PowerShell oder der Windows-Eingabeaufforderung (Cmd.exe) unterstützt wird. Um diese Befehle an einer Bash-Befehlszeile in einer Linux-Distribution auszuführen, müssen Sie wsl
durch wsl.exe
ersetzen. Das liegt daran, dass WSL vom Windows-Dateisystem als ausführbare Datei verwaltet wird. Aber ausführbare Windows-Dateien können auch unter Linux ausgeführt werden, sofern Sie die Dateierweiterung einschließen.
Öffnen Sie eine PowerShell-Befehlszeile und lassen Sie uns einige einfache WSL-Verwaltungsaufgaben mithilfe der WSL-Verwaltungsbefehle ausführen:
Überprüfen Sie, welche WSL-Version installiert ist:
wsl --version
. Es wird eine Version für Folgendes aufgeführt:- WSL
- der vom WSL verwendeten Linux-Kernel
- die Version für WSLg, die Linux-Apps mit grafischer Benutzeroberfläche ausführt
- die Version für MSRDC, die den Microsoft-Remotedesktopclient darstellt, der WSL unterstützt
- die Versionen von Direct3D und DXCore, die für das Rendern von Grafiken verwendet werden
- die Version von Windows, die Sie nutzen
Verwenden Sie den Befehl
wsl --update
, um sicherzustellen, dass Sie über die neuesten WSL-Updates verfügen.Listen Sie die derzeit installierten Linux-Distributionen auf, indem Sie Folgendes eingeben:
wsl --list --verbose
.Prüfen Sie, welche Distributionen im Microsoft Store verfügbar sind. Verwenden Sie
wsl --list --online
, und versuchen Sie, eine neue Distribution zu installieren, indem Siewsl --install <Distribution Name>
eingeben. Bestätigen Sie, dass die Distribution installiert ist, indem Sie erneut den Befehlwsl --list
eingeben.Versuchen Sie, die Linux-Standarddistribution von Ubuntu (oder was auch immer Sie zuerst installiert haben, wenn es nicht die Standarddistribution ist) in die Distribution zu ändern, die Sie gerade installiert haben, indem Sie diesen Befehl verwenden:
wsl --set-default <Distribution Name>
. Sie können sie mit demselben Befehl wieder zurücksetzen.Öffnen Sie die Bash-Befehlszeile (Ihrer als Standard festgelegten Linux-Distribution) im Startverzeichnis Ihres WSL-Dateisystems, indem Sie den Befehl
wsl ~
aus PowerShell eingeben. Sie werden feststellen, dass Sie sich weiterhin in demselben Fenster der PowerShell-Befehlszeile befinden, aber Ihre Eingabeaufforderung wird in Bash geändert und sieht in etwa so aus:<user>@<CPU-name>:~$
. Geben Sie den Befehl einpwd
, um zu bestätigen, dass der Verzeichnispfad jetzt etwa/home/<username>
lautet. Geben Sie den Befehlexplorer.exe .
ein, um das Verzeichnis im Datei-Explorer von Windows zu öffnen (achten Sie auf den Punkt, der angibt, dass der aktuelle Verzeichnispfad geöffnet werden soll). Nach dem Öffnen können Sie bestätigen, dass der Dateipfad etwa wie folgt aussieht:\\wsl.localhost\Ubuntu\home\<username>
.
- Verlassen Sie die Bash-Befehlszeile, und kehren Sie mit
exit
zu PowerShell zurück. Rufen Sie den Befehlpwd
erneut auf, um den Pfad anzuzeigen, in dem Sie sich gerade befinden. Er sollte etwaC:\Users\<username>\...
lauten. Sie können also sehen, dass Sie zwischen dem Windows-Dateisystem (Laufwerk C:\) und dem Linux-Dateisystem (Netzwerklaufwerk\\wsl.localhost\<distro name>
) umgeschaltet haben. Als Nächstes versuchen wir, das aktuelle Windows-Dateisystemverzeichnis in Bash zu öffnen, indem wir den Befehlwsl
ohne~
ausführen (was angibt, dass Bash im Linux-Basisverzeichnis geöffnet werden soll). Sie werden feststellen, dass der Verzeichnispfad jetzt/mnt/c/Users/<username>/...
lautet, da Bash auf Ihren Windows-Dateisystempfad auf dem eingebundenen Laufwerk C verweist. Das Verzeichnis des Laufwerks C ist eingebunden, denn Sie sehen es jetzt innerhalb des Linux-Dateisystems. Weitere Informationen zum Arbeiten mit dem Windows- und Linux-Dateisystem in WSL werden in einer separaten Schulung behandelt, zu der Sie in der Zusammenfassung am Ende dieses Moduls einen Link finden.
Führen Sie wsl --help
aus, um eine vollständige Liste der Befehle anzuzeigen.
Einfache Bash- und PowerShell-Befehle
Bash ist die standardmäßige Befehlszeilenschnittstelle (CLI) für Linux. Am Ende dieses Moduls finden Sie in der Zusammenfassung einen Link zu einer ausführlichen Einführung in Bash. PowerShell ist die Standardbefehlszeile für Windows (und ersetzt die vorherige Windows-Eingabeaufforderung). Beide können im Windows-Terminal gehostet werden, das an Ihre bevorzugten Einstellungen angepasst werden kann.
Die Bash-Befehlszeile unterscheidet sich zwar von der PowerShell-Befehlszeile (und der älteren Windows-Eingabeaufforderung), aber die Unterschiede zwischen den Befehlszeilen sind minimal. Mit WSL funktionieren die meisten Befehle in beiden gleich. In der Vergangenheit lautete der Befehl zum Auflisten von Dateien in einem Verzeichnis beispielsweise in einer Bash-/Linux-Umgebung ls
und in einer PowerShell-/Windows-Umgebung dir
, aber mit WSL können Sie beide Befehle austauschbar verwenden. Die für die Installation und Verwendung verfügbaren Hilfsprogramme unterscheiden sich zwischen Bash und PowerShell, aber nach der Installation können auch diese Tools austauschbar zwischen den Befehlszeilen verwendet werden. Sowohl Bash als auch PowerShell eignen sich für die Erstellung von Skripts zur Automatisierung von Aufgaben. Bash ist jedoch besser für die Automatisierung von Aufgaben unter Linux-Betriebssystemen geeignet, während PowerShell besser für Aufgaben unter Windows-Betriebssystemen geeignet ist.
Wir probieren jetzt ein paar einfache Bash-Befehle aus, die sowohl in Bash als auch in PowerShell funktionieren. Öffnen Sie eine Ubuntu-Befehlszeile (oder Ihre bevorzugte Linux-Distribution), und geben Sie diese Befehle ein:
pwd
: Dieser Befehl zum Ausgeben des Arbeitsverzeichnisses zeigt den Pfad des aktuellen, in der Befehlszeile ausgewählten Verzeichnisses an.ls
oderdir
: Dieser Befehl listet den Inhalt des aktuellen Verzeichnisses auf. Einige Befehle enthalten Flags, die einen Vorgang ändern können. Geben Sie beispielsweisels -l
ein, um weitere Details zum Inhalt des Verzeichnisses aufzulisten, wie z. B. Größe, Besitzer und Datum der letzten Änderung. Geben Siels -a
ein, um ALLE Inhalte eines Verzeichnisses einzuschließen, einschließlich aller versteckten Dateien. Bash schließt versteckte Dateien des Typs.bash_history
,.bash_logout
,.bashrc
und.profile
ein, die für Bash-Verwaltungsaufgaben und benutzerdefinierte Anpassungen nützlich sein können.cd
: Der Befehl zum Ändern des Verzeichnisses muss von einer kleinen Information begleitet werden, die angibt, zu welchem Verzeichnis Sie wechseln möchten. Sie können einen Verzeichnisnamen angeben, z. B.cd project-folder
, mitcd ..
eine Verzeichnisebene höher gehen oder mitcd ~
zu Ihrem Basisverzeichnis wechseln.mkdir
: Legen Sie ein neues Verzeichnis an, indem Sie diesen Befehl sowie den Namen des neuen Verzeichnisses eingeben. Beispielsweisemkdir new-folder
.cp
: Dieser Befehl dient zum Kopieren einer Datei oder eines Verzeichnisses. Zum Beispiel:cp file.txt
odercp folder-1
. Wenn Sie eine Kopie erstellen, die denselben Namen wie eine vorhandene Datei hat, wird diese Datei automatisch ersetzt. Es wird daher empfohlen, das interaktive Flag-i
anzugeben, das Sie warnt, ehe Sie eine vorhandene Datei löschen/ersetzen. Beispielsweisecp -i file.txt
.rm
: Dieser Befehl dient zum Entfernen einer Datei oder eines Verzeichnisses. Beispielsweiserm file.txt
. Um in Bash ein Verzeichnis zu entfernen, müssen Sie das Flag-r
hinzufügen. Beispielsweiserm -r folder-1
. Wie beim Befehlcp
empfiehlt es sich, das Flag-i
zu verwenden, um zu bestätigen, was Sie löschen/entfernen möchten. Das Flag-f
erzwingt das Entfernen und unterdrückt alle Eingabeaufforderungen. Es wird im Allgemeinen empfohlen, das Flag-f
zu vermeiden, es sei denn, Sie wissen genau, was Sie tun.clear
: Dieser Befehl leert den Bildschirm des Terminals.
Es gibt einige Tastenkombinationen, die sowohl in PowerShell als auch in Bash funktionieren, z. B. die Verwendung der NACH-OBEN-TASTE, um die zuletzt eingegebenen Befehle abzurufen.
Lassen Sie uns nun ein paar einfache Bash-Befehle ausprobieren, die in PowerShell nicht funktionieren.
sudo
: Mit dem „superuser do“-Befehl in Bash können Sie Ihr aktuelles Benutzerkonto für die Befehlszeile vorübergehend höher stufen, sodass Sie über Root- bzw. Administratorberechtigungen verfügen. Sudo wird häufig für Aufgaben wie die Installation neuer Software benötigt und erfordert die Eingabe Ihres Linux-Kennworts. Sudo hat in PowerShell keine Entsprechung. Sie müssen stattdessen eine separate Instanz der PowerShell-Befehlszeile im Administratormodus öffnen, indem Sie mit der rechten Maustaste klicken und „Als Administrator ausführen“ wählen.touch
: Mit diesem Befehl wird eine leere Datei erstellt. Beispielsweisetouch file.txt
. Die Entsprechung in PowerShell istNew-Item file.txt
oderni file.txt
.cat
: Der Verkettungsbefehl dient zum Lesen des Inhalts einer oder mehrerer Dateien. Beispielsweise zeigtcat file.txt file2.txt
den Inhalt von „file“ und „file2“. Fügen Sie das Flag-n
hinzu, um Zeilennummern einzuschließen. Einige Befehle wie z. B.cat
verhalten sich in Bash und PowerShell etwas unterschiedlich. In Bash erstellt der Befehlcat > file.txt
eine neue Datei und ermöglicht Ihnen die Eingabe von Text in diese Datei, bis Sie STRG+D drücken, um zu beenden und die Datei zu schließen. In PowerShell ist der Befehlcat
nicht die herkömmliche Form, undcat > file.txt
funktioniert nicht,cat > newfile file.txt
dagegen erstellt eine neue Datei.
Wir haben hier einige einfache Befehle, die Sie in Ihren Workflow integrieren können, sowie einige der Gemeinsamkeiten und Unterschiede der Befehlszeilen behandelt. Es gibt oft mehrere Möglichkeiten, denselben Befehl auszuführen, wobei die Befehlszeilen von Bash und PowerShell jeweils ihre eigenen bevorzugten Vorgehensweisen für die Verwendung von Befehlen und Skripts aufweisen. Mit WSL können Sie Bash- und PowerShell-Befehle kombinieren, und es ist empfehlenswert, sich mit beiden als unterschiedliche Möglichkeiten zur Automatisierung von Aufgaben vertraut zu machen.