Hostwinds Blog
Résultats de recherche pour:
Lorsque vous comparez les commandes de l'interface de ligne de commande Windows traditionnelle (CLI) avec celles d'une CLI Linux, il n'y a vraiment aucune comparaison.Il n'y a rien dans le CLI Windows traditionnel (CD, Dir, Copy, Del, etc.) aussi puissant que awk, sed, tête, queue, Tsort, Uniq, Split, etc. Cela dit, l'un des problèmes courants avec le LinuxLa CLI est que le traitement du flux de texte est souvent nécessaire pour obtenir le résultat souhaité.Par exemple, disons que vous souhaitez l'adresse IPv6 de votre machine Linux.Une approche pourrait être:
ifconfig | grep inet6 | head -1 | awk '{print $2}'
La commande grep saisit plusieurs lignes contenant "INET6", la commande Head en saisit le premier, et AWK imprime le deuxième champ (c'est-à-dire la deuxième chaîne) dans la ligne, produisant la valeur IPv6 souhaitée.Assez lisse vraiment, mais nous traitons des flux de texte, ce qui peut rapidement devenir assez compliqué.Par exemple, disons que vous aimeriez faire ce qui suit:
Le PowerShell pour le faire est assez simple:
Get-Process | Sort-Object -Property HandleCount, CPU | Format-Table -Property Name, HandleCount, CPU, Path
Et voici un extrait de la sortie.Comme on peut le voir, le tableau est trié par le nombre de poignées, puis par le temps du processeur (notez les temps de processeurs descendants pour les trois processus en utilisant 18 poignées):
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
Maintenant, dites qu'en plus de ce qui précède, vous aimeriez vous regrouper par le nombre de poignées?Cela ne pouvait pas être beaucoup plus facile, il suffit d'ajouter l'argument de HandleCount-GroupeBy à la commande de format-table (oui, c'est comme ça qu'ils appellent):
Get-Process | Sort-Object -Property HandleCount, CPU | Format-Table -Property Name, HandleCount, CPU, Path -GroupBy HandleCount
Voici un extrait de cette sortie:
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
Notez qu'il n'y a pas de soupçon de traitement de flux de texte dans aucun de ces exemples PowerShell.En effetSi vous le vouliez vraiment, vous pouvez toujours manipuler des flux de texte avec l'attaque de sélection de sélection, mais il y a rarement un besoin de le faire.Soit dit en passant, dans le dernier exemple, vous pouvez vous regrouper par n'importe quelle propriété d'objet Get-Process et vous pouvez utiliser Get-Process |Get Member pour voir rapidement quelles propriétés sont disponibles.
Cela est intrigant?Vous vous demandez comment commencer?Puis voir Utilisation de PowerShell avec Linux.
Écrit par Karlito Bonnevie / avril 29, 2022