Hostwinds Blog
Cerca risultati per:
Quando si confrontano i comandi della tradizionale interfaccia della linea di comando di Windows (CLI) con quelli di una CLI Linux, non c'è davvero alcun confronto.Non c'è nulla nella tradizionale CLI di Windows (CD, Dir, Copy, Del, ecc.) Potente come Awk, Sed, Head, Tail, Tsort, Uniq, Split, ecc. Detto questo, uno dei problemi comuni con LinuxLa CLI è che l'elaborazione del flusso di testo è spesso richiesta per ottenere il risultato desiderato.Ad esempio, supponiamo che ti piacerebbe l'indirizzo IPv6 della tua macchina Linux.Un approccio potrebbe essere:
ifconfig | grep inet6 | head -1 | awk '{print $2}'
Il comando GREP afferra più righe contenenti "Inet6", il comando della testa afferra il primo di questi e AWK stampa il secondo campo (cioè la seconda stringa) nella riga, producendo il valore IPv6 desiderato.Abbastanza slick davvero ma stiamo elaborando flussi di testo, che possono rapidamente diventare piuttosto complicati.Ad esempio, dì che ti piacerebbe fare quanto segue:
Il PowerShell per farlo è abbastanza semplice:
Get-Process | Sort-Object -Property HandleCount, CPU | Format-Table -Property Name, HandleCount, CPU, Path
Ed ecco uno snippet dell'output.Come si può vedere, la tabella viene ordinata per conteggio delle maniglie, quindi per tempo della CPU (nota i tempi della CPU discendente per i tre processi usando 18 maniglie):
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
Ora dirlo oltre a quanto sopra, vorresti raggruppare per gestire il conteggio?Non potrebbe essere molto più facile, basta aggiungere l'argomento Handlecount -Groupby al CMDLET del tavolo da formato (sì, è quello che sono chiamati):
Get-Process | Sort-Object -Property HandleCount, CPU | Format-Table -Property Name, HandleCount, CPU, Path -GroupBy HandleCount
Ecco uno snippet di quell'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
Si noti che non esiste un pizzico di elaborazione del flusso di testo in nessuno di questi esempi di PowerShell.Questo perché PowerShell passa oggetti (con varie proprietà) tra cmdlet e non flussi di dati.Se lo volevi davvero, puoi comunque manipolare i flussi di testo con il cmdlet selezionato, ma raramente c'è bisogno di farlo.A proposito, nell'ultimo esempio, è possibile raggruppare per qualsiasi proprietà Object Get-Process e puoi usare GET-Process |Get-Member per vedere rapidamente quali proprietà sono disponibili.
Sembra intrigante?Ti chiedi come iniziare?Quindi vedi Usando PowerShell con Linux.
Scritto da Karlito Bonnevie / aprile 29, 2022