Linux / top / netstat / etc. na Mac OS X?

24

Narzędzia uniksowe w Mac OS X są dość bolesne w użyciu. port install coreutils +with_default_namesi kilka innych takich zamienników naprawia większość z nich, ale pozostawia to niektóre zepsutych ustawień domyślnych Mac OS X - najbardziej denerwujące topi netstat, ale jestem pewien, że mógłbym wymyślić jeszcze kilka.

Zgaduję, że polecenia takie jak topi netstatsą specyficzne dla systemu operacyjnego, więc po prostu pobieranie źródeł ich odpowiedników w systemie Linux i ponowna kompilacja nie będą działać.

Jaki jest najlepszy odpowiednik tych i innych takich poleceń, które działają w systemie Mac OS X?

wyprawiać
źródło
3
Nazywanie ich „zamiennikami” może nie być historycznie dokładne. Pochodzą one z wariantów BSD i historycznie wiele z nich poprzedza narzędzia linuksowe, do których jesteś przyzwyczajony. Dobre pytania i podobne problemy istnieją dla tych z nas, którzy używają Fink zamiast portów.
dmckee,
3
Twoje pytanie byłoby lepsze, gdyby zawierało mniej treści redakcyjnych. Przechodzenie z jednego systemu uniksopodobnego do drugiego zawsze przynosi niespodzianki, ponieważ różne popularne polecenia uniksowe podążają różnymi ścieżkami ewolucji na różnych platformach. Używałem Solaris, DEC Ultrix, AT&T SysV, HP-UX, GNU / Linux (wiele dystrybucji), NEXTSTEP, OpenStep, BSDI, Xenix / SCO, FreeBSD, NetBSD, Mac OS X i CygWin. Jeśli pozwolisz się zbytnio przyzwyczaić do unikalnych cech narzędzi jednego smaku, bolesne jest przejście do innej przysługi. To nie czyni ich „zepsutymi”.
Spiff
2
Racja i nie zapomnij Hurda. Poza Linuksem i OSX reszta twojej listy ma znaczenie historyczne.
taw
@taw: Solaris jest nadal używany w wielu miejscach, szczególnie dla ZFS.
Dan

Odpowiedzi:

24

Wiele funkcji netstat można zastąpić poleceniem lsof . Często używałem

netstat -lnp | grep 1234

aby dowiedzieć się, kto nasłuchuje na porcie 1234. Dzięki lsof (dostępnemu w obu systemach) mogę:

lsof -i :1234

Najważniejsze polecenie w OSX też nie jest złe, jest po prostu inne. I jestem pewien, że niektóre wskaźniki mają sens tylko na komputerach Mac.

Pamiętaj, że lsof -Pi :1234powinno to nieco przyspieszyć, nie próbując rozwiązać nazw usług (portów).

Eric Darchis
źródło
6
Dzięki OSX lsofjest lepszy netstatniż OSX netstat.
taw
dodaj, -Paby zapobiec rozpoznawaniu nazw i przyspieszyć. Tak linux netstat -ntlpkinda like lsof -Pi | grep -i listen. Nadal nie wiem, jak wiele PID może nasłuchiwać na tym samym porcie, a nie coś, co widzę w systemie Linux: /
Ray Foss
@RayFoss Na Macu i niektórych innych systemach operacyjnych proces może nasłuchiwać . : 1234 i jeszcze jeden na 127.0.0.1:1234. Te ostatnie mają pierwszeństwo. Jest to zabronione w systemie Linux.
Eric Darchis,
4

Och fajnie, htopjest w Homebrew! Chyba nie jest to klon Linuksa, topale jeśli zdecydujesz się htopna Linuksa, to chyba htopna OS X nie będzie zbyt daleko.

crazysim
źródło
1
nie jest to bezpośredni zamiennik, ponieważ nie można uzyskać szybkiej listy serwerów nasłuchujących
Ray Foss,