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 Windows -subsysteem voor Linux: hoe u WSL installeert en configureren.
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:
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.
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