Linux como top / netstat / etc. en Mac OS X?

24

Las utilidades de Unix en Mac OS X son bastante dolorosas de usar. port install coreutils +with_default_namesy algunos otros tales sustituciones pueden solucionar la mayoría de ellos, pero deja algunos en rotos por defecto de Mac OS X - más molesto topy netstat, pero estoy seguro de lo que podía pensar un poco más.

Supongo que los comandos como topy netstatson bastante específicos del sistema operativo, por lo que simplemente tomar fuentes de sus equivalentes de Linux y recompilar no funcionará.

¿Cuál es el mejor equivalente de estos y otros comandos similares que funcionan en Mac OS X?

taw
fuente
3
Llamarlos "reemplazos" puede no ser históricamente exacto. Se derivan de las variantes BSD, e históricamente muchas de ellas son anteriores a las herramientas de Linux a las que está acostumbrado. Sin embargo, hay buenas preguntas, y existen problemas similares para aquellos de nosotros que usamos fink en lugar de puertos.
dmckee
3
Su pregunta sería mejor si contuviera menos editorialización. Cruzar de un SO similar a Unix a otro siempre trae sorpresas en la forma en que diferentes comandos comunes de Unix han seguido diferentes caminos evolutivos en diferentes plataformas. He usado Solaris, DEC Ultrix, AT&T SysV, HP-UX, GNU / Linux (muchas distribuciones), NEXTSTEP, OpenStep, BSDI, Xenix / SCO, FreeBSD, NetBSD, Mac OS X y CygWin. Si te acostumbras demasiado a las características únicas de las herramientas de un sabor, es doloroso cuando recurres a otro favor. Eso no los hace "rotos".
Spiff
2
Correcto, y no te olvides de Hurd. Aparte de Linux y OSX, el resto de su lista es solo de interés histórico.
taw
@taw: Solaris todavía está en uso en muchos lugares, particularmente para zfs.
Dan

Respuestas:

24

Muchas características de netstat se pueden reemplazar con un comando lsof . A menudo estaba usando

netstat -lnp | grep 1234

para averiguar quién estaba escuchando en el puerto 1234. Con lsof (que está disponible en ambos sistemas), puedo hacer:

lsof -i :1234

El comando superior en OSX tampoco es malo, es simplemente diferente. Y estoy bastante seguro de que algunas de las métricas solo tienen sentido en Mac.

Tenga en cuenta que lsof -Pi :1234debería hacerlo un poco más rápido al no intentar resolver los nombres de servicio (de los puertos).

Eric Darchis
fuente
66
OSX lsofes mejor netstatque OSX netstat, gracias.
taw
agregue -Ppara evitar la resolución de nombres y hacerlo más rápido. Así que Linux me netstat -ntlpgusta un poco lsof -Pi | grep -i listen. Todavía no sé cómo varios PID pueden escuchar en el mismo puerto, no es algo que veo en Linux: /
Ray Foss
@RayFoss En Mac y algún otro sistema operativo, un proceso puede escuchar . : 1234 y otro en 127.0.0.1:1234. El último tiene la precedencia. Eso está prohibido en Linux.
Eric Darchis
4

Oh genial, htopestá en Homebrew! Supongo que no es un clon de Linux, toppero si decides usarlo htopen Linux, supongo que htopen OS X no estará muy lejos.

crazysim
fuente
1
no es un reemplazo directo ya que no puede obtener una lista rápida de servidores de escucha
Ray Foss