Hostwinds 博客
寻找结果为:
将传统Windows命令行(CLI)的命令与Linux CLI的命令进行比较时,实际上没有比较。传统的Windows CLI(CD,DIR,COPY,DEL等)中没有什么像Awk,Sed,Head,Tail,Tsort,Tsort,Uniq,Split等强大CLI是通常需要文本流处理以获得所需的结果。例如,说您需要Linux机器的IPv6地址。一种方法可能是:
ifconfig | grep inet6 | head -1 | awk '{print $2}'
GREP命令抓住了包含" Inet6"的多行,Head Command抓住了第一个线,AWK在行中绘制了第二个字段(即第二个字符串),从而产生所需的IPv6值。真的很光滑,但是我们正在处理文本流,这很快就会变得非常复杂。例如,说您想做以下操作:
执行此操作的Powershell非常简单:
Get-Process | Sort-Object -Property HandleCount, CPU | Format-Table -Property Name, HandleCount, CPU, Path
这是输出的片段。可以看出,该表是按句柄计数排序的,然后按CPU时间对(请注意使用18个手柄的三个过程的降序CPU时间):
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
现在说,除了上述内容外,您还想按句柄计数分组吗?它不会变得容易得多,只需将-groupby handlecount参数添加到格式表CMDLET(是的,这就是他们所谓的):
Get-Process | Sort-Object -Property HandleCount, CPU | Format-Table -Property Name, HandleCount, CPU, Path -GroupBy HandleCount
这是该输出的片段:
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
请注意,这些PowerShell示例中的任何一个都没有文本流处理的暗示。这是因为PowerShell在CMDLET和不是数据流之间传递对象(具有各种属性)。如果您真的愿意,您仍然可以使用Select-string cmdlet操纵文本流,但很少需要这样做。顺便说一句,在最后一个示例中,您可以通过任何get-process对象属性进行分组,并且可以使用get-process |开始成员,快速查看可用的属性。
听起来很有趣?想知道如何开始?然后看 将PowerShell与Linux一起使用.
撰写者 Karlito Bonnevie / 四月 29, 2022