类似于Linux的top / netstat / etc。在Mac OS X上?


24

Mac OS X上的Unix实用程序很难使用。port install coreutils +with_default_names和其他一些这样的替换解决了大多数问题,但是却使Mac OS X的默认设置遭到破坏-最令人讨厌的是topnetstat,但是我敢肯定我还能想到更多。

我猜测诸如top和之netstat类的命令都是特定于操作系统的,因此仅获取其Linux等效项的源并重新编译将无法工作。

在Mac OS X上,这些命令和其他此类命令的最佳等效方式是什么?


3
称它们为“替换”在历史上可能并不准确。它们是从BSD变体派生而来的,并且从历史上讲,许多变体早于您习惯的linux工具。但是,这是一个好问题,对于使用芬克代替端口的我们这些人也存在类似的问题。
dmckee 2010年

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 2010年

2
是的,别忘了赫德。除Linux和OSX之外,列表的其余部分仅具有历史意义。
TAW

@taw:Solaris仍在许多地方使用,尤其是zfs。

Answers:


24

可以使用lsof命令替换许多netstat功能。我经常用

netstat -lnp | grep 1234

找出谁在监听端口1234。使用lsof(在两个系统上都可用),我可以执行以下操作:

lsof -i :1234

OSX上的top命令也不错,只是有所不同。而且我很确定某些指标仅在Mac上有意义。

请注意,lsof -Pi :1234应该通过不尝试解析(端口的)服务名称来使其速度更快。


6
谢谢,OSX 比OSX lsof更好。netstatnetstat
taw

添加-P以防止名称解析并使之更快。所以linux netstat -ntlp有点像lsof -Pi | grep -i listen。仍然不知道在同一个端口上有多个PID可以侦听,这在Linux上我看不到:/
Ray Foss

@RayFoss在Mac和其他某些操作系统上,进程可以在上侦听:1234,另一个是127.0.0.1:1234。后者优先。在Linux上禁止这样做。
埃里克·达奇斯

4

哦,htop太酷了,是在自制软件中!我猜它不是Linux的克隆,top但如果您决定htop在Linux 上使用,那么我想htop在OS X上也不会太遥远。


1
它不是直接的替代品,因为您无法快速获得监听服务器的列表
Ray Foss
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.