Hostwinds Tutorials
Zoekresultaten voor:
Inhoudsopgave
Trefwoorden: Cloud Servers, Dedicated Server
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).
Open om uw geïnstalleerde Linux -distributie als volgt te starten:
1. Selecteer de Begin menu dan Ubuntu of welke Linux -verdeling u ook hebt geïnstalleerd.Bijvoorbeeld:
2. 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 -proces (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 15289 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.
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:
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:
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.
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