Hostwinds Blog
Zoekresultaten voor:
Bij het vergelijken van de opdrachten van de traditionele Windows-opdrachtregelinterface (CLI) met die van een Linux CLI, is er echt geen vergelijking.Er is niets in de traditionele Windows CLI (CD, Dir, Copy, Del, enz.) Zo krachtig als Awk, SED, hoofd, staart, tsort, uniq, split, enz.CLI is dat tekststreamverwerking vaak nodig is om het gewenste resultaat te krijgen.Stel bijvoorbeeld dat u het IPv6 -adres van uw Linux -machine wilt.Eén aanpak kan zijn:
ifconfig | grep inet6 | head -1 | awk '{print $2}'
De GREP -opdracht grijpt meerdere lijnen met "INET6", de kopopdracht grijpt de eerste van deze en print het tweede veld (d.w.z. de tweede tekenreeks) in de regel, waardoor de gewenste IPv6 -waarde wordt geproduceerd.Behoorlijk glad, maar we verwerken tekststromen, die snel behoorlijk ingewikkeld kunnen worden.Stel bijvoorbeeld dat u het volgende wilt doen:
De PowerShell om dit te doen is vrij eenvoudig:
Get-Process | Sort-Object -Property HandleCount, CPU | Format-Table -Property Name, HandleCount, CPU, Path
En hier is een fragment van de output.Zoals te zien is, wordt de tabel gesorteerd op het aantal handvat en vervolgens op CPU -tijd (let op de dalende CPU -tijden voor de drie processen met behulp van 18 handgrepen):
Name HandleCount CPU Path
---- ----------- --- ----
chrome 165 375.13 /opt/google/chrome/chrome
pwsh 128 81.1 /opt/microsoft/powershell/7/pwsh
chrome 52 216.36 /opt/google/chrome/chrome
chrome 44 151.13 /opt/google/chrome/chrome
Xvnc 33 254.66 /usr/bin/Xvnc
dbus-daemon 31 0.23 /usr/bin/dbus-daemon
chrome 23 0.45 /opt/google/chrome/chrome
xfce4-terminal 18 16.39 /usr/bin/xfce4-terminal
xfce4-session 18 0.12 /usr/bin/xfce4-session
xrdp-chansrv 18 0.05 /usr/sbin/xrdp-chansrv
xfdesktop 15 4.39 /usr/bin/xfdesktop
xfce4-power-manager 15 0.39 /usr/bin/xfce4-power-manager
chrome 15 0.03 /opt/google/chrome/chrome
Zeg nu dat je naast het bovenstaande wilt groeperen door het aantal handels te geven?Het kan niet veel gemakkelijker worden, voeg gewoon het argument -groupby handleCount toe aan de cmdlet van de format -tafel (ja, dat is wat ze worden genoemd):
Get-Process | Sort-Object -Property HandleCount, CPU | Format-Table -Property Name, HandleCount, CPU, Path -GroupBy HandleCount
Hier is een fragment van die output:
HandleCount: 18
Name HandleCount CPU Path
---- ----------- --- ----
xfce4-terminal 18 16.68 /usr/bin/xfce4-terminal
xfce4-session 18 0.12 /usr/bin/xfce4-session
xrdp-chansrv 18 0.05 /usr/sbin/xrdp-chansrv
HandleCount: 15
Name HandleCount CPU Path
---- ----------- --- ----
xfdesktop 15 4.43 /usr/bin/xfdesktop
xfce4-power-manager 15 0.4 /usr/bin/xfce4-power-manager
chrome 15 0.03 /opt/google/chrome/chrome
Merk op dat er geen vleugje tekststreamverwerking is in een van deze PowerShell -voorbeelden.Dat komt omdat PowerShell objecten (met verschillende eigenschappen) tussen cmdlets en niet -gegevensstromen passeert.Als je het echt wilde, kun je nog steeds tekststromen manipuleren met de select-string cmdlet, maar er is zelden een behoefte om dit te doen.In het laatste voorbeeld kunt u in het laatste voorbeeld door elke eigenschap Get-Process Object groeperen en kunt u Get-Process |Get-lid om te zien snel kijken welke eigenschappen beschikbaar zijn.
Intrigerend klinkt?Vraagt u zich af hoe u aan de slag kunt?Zie dan Powershell met Linux gebruiken.
Geschreven door Karlito Bonnevie / april 29, 2022