alphasec
PowerShell protip 003e
in 𝕏

for(){$p=(gps|Sort-Object -D CPU|Select -First ($Host.UI.RawUI.WindowSize.Height-4)|Out-String).trim();cls;""+(date);$p;sleep 1} - *nixowy top w Powershellu

tty1 · powershell
PS> for(){$p=(gps|Sort-Object -D CPU|Select -First ($Host.UI.RawUI.WindowSize.Height-4)|Out-String).trim();cls;""+(date);$p;sleep 1}
#Powershell#BlueTeam#Administration

Powyższy oneliner uruchomi coś, co może przypominać znaną z systemów Unix/Linux komendę top, wyświetlającą listę procesów w trybie tekstowym.

Przyglądając się mu bliżej:

Dla wygody moglibyśmy sobie to zamknąć w funkcji np. o nazwie pstop:

function pstop() { for(){$p=(gps|Sort-Object -D CPU|Select -First ($Host.UI.RawUI.WindowSize.Height-4)|Out-String).trim();cls;""+(date);$p;sleep 1}  }

By następnie ją wywołać po prostu pisząc pstop.

Żeby było to dostepne zawsze pod ręką, możemy tę funkcję wkleić do pliku profilowego, np. tworząc go lub edytując za pomocą notepad $PROFILE (tutaj w przypadku Wiindowsa musimy jednak pamiętać o polityce uruchamiania skryptów, możliwe, że przyda się wykonać Set-ExecutionPolicy -Scope CurrentUser RemoteSigned).

Jak to działa — krok po kroku

Rozłóżmy onelinera na czynniki pierwsze:

for() { ... }

nieskończona pętla,

$p=gps

pobierz listę procesów wykorzystując gps będący aliasem na Get-Process, wynik zapisz do zmiennej $p,

Sort-Object -D CPU

sortuj procesy po użyciu procesora (CPU) malejąco (-Descending, w skrócie -D); pod Windowsem można by było wykorzystać alias, pisząc sort -D,

Select -First ($Host.UI.RawUI.WindowSize.Height-4)

wybierz tyle pierwszych wyników, ile ma wysokość terminala bez 4 linii,

.trim()

usuń białe znaki na końcach wierszy,

cls

wyczyść cały ekran,

""+(date);$p

wyświetl aktualną datę a następnie listę procesów,

sleep 1

zaśnij na sekundę.

for(){$p=(gps|Sort-Object -D CPU|Select -First ($Host.UI.RawUI.WindowSize.Height-4)|Out-String).trim();cls;""+(date);$p;sleep 1} - *nixowy top w Powershellu
← poprzedni protip 003d ••• Wszystkie protipy następny → protip 003f
// subskrybuj

Nowe protipy prosto na maila.

Mięsiste jednolinijkowce i triki z prawdziwych zleceń. Zero spamu, zero teorii. Wypisujesz się jednym kliknięciem.

wersja newslettera: