Linux-подобный top / netstat / etc. в Mac OS X?

24

Утилиты Unix в Mac OS X довольно болезненны в использовании. port install coreutils +with_default_namesи несколько других подобных замен исправить большинство из них, но оставляют некоторые пунктирный Mac OS X по умолчанию - наиболее раздражающе topи netstat, но я уверен , что я мог придумать несколько больше.

Я предполагаю, что такие команды, как topи netstatявляются весьма специфичными для ОС, поэтому просто поиск источников их эквивалентов в Linux и перекомпиляция не будут работать.

Каков наилучший эквивалент этих и других подобных команд, который работает в Mac OS X?

выделывать кожу без дубления
источник
3
Называть их «замены» может быть не исторически точным. Они получены из вариантов BSD, и исторически многие из них предшествуют инструментам Linux, к которым вы привыкли. Хорошие вопросы, хотя и подобные проблемы существуют для тех из нас, кто использует fink вместо портов.
dmckee
3
Ваш вопрос был бы лучше, если бы он содержал меньше редакционных статей. Переход от одной Unix-подобной ОС к другой всегда приносит сюрпризы в том, как различные общие команды Unix следовали разным эволюционным путям на разных платформах. Я использовал Solaris, DEC Ultrix, AT & T SysV, HP-UX, GNU / Linux (много дистрибутивов), NEXTSTEP, OpenStep, BSDI, Xenix / SCO, FreeBSD, NetBSD, Mac OS X и CygWin. Если вы слишком привыкли к уникальным свойствам инструментов одного аромата, вам будет больно, когда вы переходите на другую услугу. Это не делает их "сломанными".
Spiff
2
Точно, и не забудь Херд. Помимо Linux и OSX, остальная часть вашего списка представляет только исторический интерес.
TAW
@taw: Solaris все еще используется во многих местах, особенно для zfs.
Дан

Ответы:

24

Многие функции netstat можно заменить командой lsof . Я часто использовал

netstat -lnp | grep 1234

чтобы узнать, кто прослушивал порт 1234. С помощью lsof (который доступен в обеих системах) я могу сделать:

lsof -i :1234

Команда top в OSX тоже неплохая, она просто другая. И я вполне уверен, что некоторые показатели имеют смысл только на Mac.

Обратите внимание, что это lsof -Pi :1234должно сделать это немного быстрее, не пытаясь разрешить имена сервисов (портов).

Эрик Дарчис
источник
6
OSX lsofлучше, netstatчем OSX netstat, спасибо.
TAW
добавить, -Pчтобы предотвратить разрешение имен и сделать это быстрее. Так что Linux netstat -ntlpвроде как lsof -Pi | grep -i listen. До сих пор не знаю, как несколько PID могут прослушивать один и тот же порт, а не то, что я вижу в Linux: /
Рэй Фосс
@RayFoss На Mac и некоторых других ОС процесс может прослушиваться . : 1234 и еще один на 127.0.0.1:1234. Последний имеет приоритет. Это запрещено в Linux.
Эрик Дарчис
4

О, круто, htopэто по-домашнему! Я думаю, что это не клон Linux, topно если вы решите использовать htopв Linux, то я думаю, что htopв OS X не так уж и далеко.

crazysim
источник
1
это не прямая замена, так как вы не можете получить быстрый список прослушивающих серверов
Рэй Фосс