Hostwinds Блог
Результаты поиска для:
При сравнении команд традиционного интерфейса командной строки Windows (CLI) с командами Linux CLI, на самом деле нет сравнения.В традиционном CLI Windows нет ничего (CD, DIR, Copy, Del и т. Д.), Такое мощное, как AWK, SED, голова, хвост, TSORT, Uniq, Split и т. Д.CLI заключается в том, что обработка потока текста часто требуется для получения желаемого результата.Например, скажем, вам нужен адрес IPv6 вашей машины Linux.Один подход может быть:
ifconfig | grep inet6 | head -1 | awk '{print $2}'
Команда GREP захватывает несколько строк, содержащих «inet6», команда Head захватывает первое из них, а AWK печатает второе поле (то есть вторую строку) в строке, создавая желаемое значение IPv6.Довольно гладко, но мы обрабатываем текстовые потоки, что может быстро стать довольно сложным.Например, скажем, вы хотите сделать следующее:
PowerShell для этого довольно просто:
Get-Process | Sort-Object -Property HandleCount, CPU | Format-Table -Property Name, HandleCount, CPU, Path
А вот фрагмент вывода.Как видно, таблица сортируется по счету ручек, затем по времени ЦП (обратите внимание на время нисходящего процессора для трех процессов с использованием 18 ручек):
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 в командлет формата -стола (да, это то, что они называют):
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 передает объекты (с различными свойствами) между командниками, а не потоками данных.Если вы действительно хотите, вы все равно можете манипулировать потоками текста с помощью командлета Select String, но это редко бывает.Кстати, в последнем примере вы можете группировать любые свойства объекта Get-Process, и вы можете использовать Get-Process |Получите быстро увидеть, какие свойства доступны.
Звуко интригующе?Хотите знать, как начать?Тогда посмотрите Использование PowerShell с Linux.
Написано Karlito Bonnevie / апреля 29, 2022