Hostwinds Blog
Resultados da busca por:
Ao comparar os comandos da interface da linha de comando do Windows (CLI) tradicional com os de uma CLI do Linux, realmente não há comparação.Não há nada na CLI tradicional do Windows (CD, dir, cópia, del, etc.) tão poderosa quanto awk, sed, cabeça, cauda, tsort, uniq, divisão etc. que dizem, um dos problemas comuns com o LinuxCLI é que o processamento de fluxo de texto geralmente é necessário para obter o resultado desejado.Por exemplo, digamos que você gostaria do endereço IPv6 da sua máquina Linux.Uma abordagem pode ser:
ifconfig | grep inet6 | head -1 | awk '{print $2}'
O comando Grep pega várias linhas contendo "Inet6", o comando Head agarra a primeira delas e a AWK imprime o segundo campo (ou seja, a segunda sequência) na linha, produzindo o valor IPv6 desejado.Bastante muito liso, mas estamos processando fluxos de texto, o que pode rapidamente se tornar bastante complicado.Por exemplo, digamos que você gostaria de fazer o seguinte:
O PowerShell para fazer isso é bastante direto:
Get-Process | Sort-Object -Property HandleCount, CPU | Format-Table -Property Name, HandleCount, CPU, Path
E aqui está um trecho da saída.Como pode ser visto, a tabela é classificada pela contagem de alças e, em seguida, pelo tempo da CPU (observe os tempos descendentes da CPU para os três processos usando 18 alças):
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
Agora diga que, além do exposto, você gostaria de agrupar a contagem de manipulação?Não poderia ficar muito mais fácil, basta adicionar o argumento -Groupby HandleCount ao cmdlet da mesa de formato (sim, é assim que eles são chamados):
Get-Process | Sort-Object -Property HandleCount, CPU | Format-Table -Property Name, HandleCount, CPU, Path -GroupBy HandleCount
Aqui está um trecho dessa saída:
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
Observe que não há uma pitada de processamento de fluxo de texto em nenhum desses exemplos do PowerShell.Isso ocorre porque o PowerShell passa objetos (com várias propriedades) entre cmdlets e não fluxos de dados.Se você realmente quis, ainda pode manipular fluxos de texto com o cmdlet de seleção, mas raramente há uma necessidade.A propósito, no último exemplo, você pode agrupar-se por qualquer propriedade de objeto de processamento e pode usar o Process |Get-membro para ver rapidamente, veja rapidamente quais propriedades estão disponíveis.
Parece intrigante?Quer saber como começar?Então veja Usando PowerShell com Linux.
Escrito por Karlito Bonnevie / abril 29, 2022