Top / netstat / etc de type Linux. sur Mac OS X?

24

Les utilitaires Unix sur Mac OS X sont assez pénibles à utiliser. port install coreutils +with_default_nameset quelques autres remplacements de ce type corrigent la plupart d'entre eux, mais il en reste certains dans les défauts de Mac OS X cassés - le plus ennuyeux topet netstat, mais je suis sûr que je pourrais penser à quelques autres.

Je suppose que les commandes aiment topet netstatsont assez spécifiques au système d'exploitation, donc il ne suffit pas de récupérer les sources de leurs équivalents Linux et de les recompiler.

Quel est le meilleur équivalent de ces commandes et d'autres qui fonctionnent sous Mac OS X?

taw
la source
3
Les appeler «remplacements» peut ne pas être historiquement exact. Ils sont dérivés des variantes BSD et, historiquement, bon nombre d'entre elles sont antérieures aux outils Linux auxquels vous êtes habitué. De bonnes questions cependant, et des problèmes similaires existent pour ceux d'entre nous qui utilisent fink au lieu des ports.
dmckee
3
Votre question serait meilleure si elle contenait moins d'éditorialisation. Passer d'un système d'exploitation semblable à Unix à un autre apporte toujours des surprises dans la façon dont les différentes commandes Unix communes ont suivi différents chemins évolutifs sur différentes plates-formes. J'ai utilisé Solaris, DEC Ultrix, AT&T SysV, HP-UX, GNU / Linux (de nombreuses distributions), NEXTSTEP, OpenStep, BSDI, Xenix / SCO, FreeBSD, NetBSD, Mac OS X et CygWin. Si vous vous laissez trop habituer aux caractéristiques uniques des outils d'une saveur, c'est douloureux lorsque vous passez à une autre faveur. Cela ne les rend pas "cassés".
Spiff
2
D'accord, et n'oubliez pas Hurd. À part Linux et OSX, le reste de votre liste n'a qu'un intérêt historique.
TAW
@taw: Solaris est toujours utilisé dans de nombreux endroits, en particulier pour zfs.
Dan

Réponses:

24

De nombreuses fonctionnalités de netstat peuvent être remplacées par une commande lsof . J'utilisais souvent

netstat -lnp | grep 1234

pour savoir qui écoutait sur le port 1234. Avec lsof (qui est disponible sur les deux systèmes), je peux faire:

lsof -i :1234

La commande supérieure sur OSX n'est pas mauvaise non plus, c'est juste différente. Et je suis sûr que certaines mesures n'ont de sens que sur Mac.

Notez que cela lsof -Pi :1234devrait le rendre un peu plus rapide en n'essayant pas de résoudre les noms de service (des ports).

Eric Darchis
la source
6
OSX lsofest mieux netstatque OSX netstat, merci.
TAW
ajouter -Ppour empêcher la résolution de noms et le rendre beaucoup plus rapide. Donc, Linux netstat -ntlpaime un peu lsof -Pi | grep -i listen. Je ne sais toujours pas comment plusieurs PID peuvent écouter sur le même port, pas quelque chose que je vois sous linux: /
Ray Foss
@RayFoss Sur Mac et certains autres OS, un processus peut écouter . : 1234 et un autre sur 127.0.0.1:1234. Ce dernier ayant la priorité. C'est interdit sous Linux.
Eric Darchis
4

Oh cool, htopc'est en Homebrew! Je suppose que ce n'est pas un clone de Linux topmais si vous décidez de l'utiliser htopsur Linux, je suppose que htopsur OS X ne sera pas trop loin.

crazysim
la source
1
ce n'est pas un remplacement direct car vous ne pouvez pas obtenir une liste rapide de serveurs d'écoute
Ray Foss