Hostwinds Tutorials

Zoekresultaten voor:


Inhoudsopgave


Aan de slag met WSL
WSL- en Windows -bestandssystemen
WSL en Windows DU -opdracht
Linux- en Windows -opdrachten mixen

Hoe Windows Subsystem te gebruiken voor Linux (WSL)

Trefwoorden: Cloud Servers,  Dedicated Server 

Aan de slag met WSL
WSL- en Windows -bestandssystemen
WSL en Windows DU -opdracht
Linux- en Windows -opdrachten mixen

Het Windows -subsysteem voor Linux (WSL) maakt het mogelijk om Linux binaire uitvoerbare bestanden native op Windows 10 en hoger, evenals Windows Server 2019 en hoger te gebruiken.WSL gebruikt een echte Linux-kernel via een subset van hyper-V-functies.Zie om WSL te installeren voor Windows, zie Hoe je linux op Windows 10 en hoger kunt uitvoeren.

In deze zelfstudie beginnen we met een aantal eenvoudige voorbeelden en culmineren met het gebruik van Linux-, PowerShell- en DOS -opdrachten (cmd.exe).

Aan de slag met WSL

Open om uw geïnstalleerde Linux -distributie als volgt te starten:

Stap 1: Selecteer de Begin Menu en selecteer vervolgens de Linux -distributie die u hebt geïnstalleerd - voor dit voorbeeld hebben we Ubuntu geïnstalleerd.

U moet nu bij de Linux -opdrachtprompt zijn voor uw distributie:

Een ding om onmiddellijk op te merken is het aantal loopprocessen - 12 in dit geval.Dit benadrukt het feit dat, wat Linux betreft, het op zijn eigen "machine" draait.Windows heeft in dit geval eigenlijk 236 processen (inclusief WSL):

Dit voorbeeld benadrukt het feit dat u PowerShell -opdrachten uit de WSL Linux -omgeving kunt uitvoeren.Let in het bovenstaande op de citaten rond het PowerShell -opdracht (niet alle WSL PowerShell -opdrachten vereisen citaten, zoals in PowerShell.exe Get-Process).Dit virtuele machinegedrag kan ook worden gezien door de Linux uit te voeren top opdracht:

Op regel vier van het bovenstaande zien we dat er 11911,9 MIB (of Legacy MB) van "fysiek" geheugen is.Om het feitelijke fysieke geheugen van het systeem te bepalen, kunt u de volgende Windows -opdrachten uitvoeren vanuit WSL:

systeminfo.exe | finstr.exe

Dit laat zien dat er eigenlijk 15.289 MB fysiek geheugen is:

Met andere woorden, een deel van het fysieke geheugen van Windows is toegewezen aan de Linux -virtuele machine.

Vervolgens zullen we de WSL Linux- en Windows -bestanden -systemen onderzoeken en hoe ze aan elkaar worden blootgesteld.

WSL- en Windows -bestandssystemen

Voer vanuit de WSL de volgende opdrachten uit:

cd /
ls -lah

Bijvoorbeeld:

Dit is een typische Linux -hoofdmaplijst.Als we echter binnen de mnt Directory, we kunnen zien hoe het Windows -bestandssysteem wordt blootgesteld via WSL (Note Commands):

In het bovenstaande zien we standaard Windows -mappen zoals programmabestanden, gebruikers, Windows, enz.

Nu, aan de Windows -kant van dingen, hebben we als volgt toegang tot het WSL -bestandssysteem:

1. Open Windows Explorer en typ in de adresbalk het netwerkaandrijving \\ wsl $, zoals getoond:

Merk op dat de bovenstaande afbeelding impliceert dat u meerdere Linux -distributies tegelijkertijd kunt installeren, wat inderdaad het geval is.

2. Dubbelklik op de Linux-distributie die u hebt geïnstalleerd (ubuntu in dit voorbeeld).Dit biedt toegang tot het WSL -bestandssysteem:

WSL en Windows DU -opdracht

Laten we vervolgens een Linux -opdracht onderzoeken die Windows echt zou moeten hebben - de DU -opdracht.In Windows kan het een uitdaging zijn om zowel bestanden als mappen op grootte te sorteren.Voor Linux is deze taak relatief eenvoudig:

du -aSh 2>&1 | sort -n -r | head -n 5

Een voorbeeld volgt:

Voor het bovenstaande:

  • Du -ASH 2> & 1 Retourneert informatie/directory -formaatinformatie, negeer eventuele toestemmingsfouten.
  • sort -n -r Sorteert de bestand/directory -lijst op grootte, van het kleinst naar de grootste.
  • Hoofd -n 5 Retourneert de top 5 grootste bestanden/mappen.

Zou het nu niet leuk zijn als Windows dit zou kunnen doen?Nou, dankzij WSL kan het nu.Voer vanuit een verhoogde Windows -opdrachtprompt (cmd.exe) het volgende uit:

wsl du -aSh 2>&1 | wsl sort -n -r | wsl head -n 5

Dit resulteert in output vergelijkbaar met:

Merk op WSL Voorafgaand aan elke Linux -opdracht.Dit is vereist om Windows te laten weten dat we een Linux -opdracht uitvoeren (vanuit uw geïnstalleerde distributie) en geen misvormde Windows -opdracht.

Laten we vervolgens iets dieper ingaan op het combineren van Linux-, PowerShell- en DOS (CMD.EXE) -opdrachten.

Linux- en Windows -opdrachten mixen

Hier is een voorbeeld van het mixen van opdrachten bij de WSL Linux -opdrachtprompt.Dit combineert Linux, PowerShell en Dos:

powershell.exe Get-ChildItem -Recurse -ErrorAction SilentlyContinue | findstr.exe "karlito" | awk '{print $2}'

We runnen eerst de Get-ChildItem PowerShell -commando en leid dat vervolgens in de DOS Findstr commando, en uiteindelijk in de linux awk opdracht.Om de opdrachtstroom beter te begrijpen, beginnen we met vertegenwoordiger Get-ChildItem Uitvoer:

We gebruiken vervolgens de Findstr DOS -opdracht om de uitvoer met "Karlito" te selecteren:


Ten slotte selecteren we de tweede kolom met behulp van de Linux awk opdracht:

Vervolgens voeren we een soortgelijk opdracht uit van de PowerShell -opdrachtprompt, zoals getoond:

Get-ChildItem -Recurse -ErrorAction SilentlyContinue | findstr.exe "karlito" | wsl awk '{ print \$6 }'

Nogmaals, we zullen deze stap voor stap bekijken, beginnend met representatieve uitvoer van Get-ChildItem:

Vervolgens vinden we de bestanden/mappen met "Karlito:

Let op de zes bovenstaande kolommen (de PM/AM -gegevens worden beschouwd als een kolom).Daarom moeten we de awk commando als volgt:

Observeer de \ karakter voor de $6 in de awk opdracht.Omdat de $ karakter heeft een speciale betekenis in PowerShell, dus we moeten ontsnappen \, zoals getoond.

Het laatste voorbeeld voert dezelfde opdracht uit, maar van de Windows -opdrachtprompt (cmd.exe):

Let op het gebruik van powershell.exe om het PowerShell -opdracht uit te voeren en WSL om de opdracht Linux uit te voeren.

Concluderend, door WSL te gebruiken om een Linux -verdeling aan Windows te koppelen, breidt u de stroom en mogelijkheden van Windows uit en heeft u een handige Linux -shell binnen handbereik.En hopelijk zal de informatie die in deze zelfstudie wordt gepresenteerd uw command Savvy en efficiëntie verbeteren.

Geschreven door Karlito Bonnevie  /  juni- 17, 2022