Seperti Linux / netstat / etc. pada Mac OS X?

24

Utilitas Unix pada Mac OS X cukup menyakitkan untuk digunakan. port install coreutils +with_default_namesdan beberapa penggantian seperti itu memperbaiki sebagian besar dari mereka, tetapi itu membuat beberapa default Mac OS X rusak - yang paling mengganggu topdan netstat, tapi saya yakin saya bisa memikirkan beberapa lagi.

Saya menduga perintah itu seperti topdan netstatcukup OS spesifik, jadi hanya mengambil sumber setara Linux mereka dan kompilasi ulang tidak akan berhasil.

Apa yang setara dengan ini dan perintah lain yang bekerja pada Mac OS X?

taw
sumber
3
Menyebutnya "penggantian" mungkin secara historis tidak akurat. Mereka berasal dari varian BSD, dan secara historis banyak dari mereka mendahului alat linux yang biasa Anda gunakan. Pertanyaan bagus, dan ada masalah serupa bagi kita yang menggunakan fink alih-alih port.
dmckee
3
Pertanyaan Anda akan lebih baik jika isinya kurang editorial. Berpindah dari satu OS mirip Unix ke yang lain selalu membawa kejutan dengan cara berbagai perintah Unix yang sama mengikuti jalur evolusi yang berbeda pada platform yang berbeda. Saya telah menggunakan Solaris, DEC Ultrix, AT&T SysV, HP-UX, GNU / Linux (banyak distro), NEXTSTEP, OpenStep, BSDI, Xenix / SCO, FreeBSD, NetBSD, Mac OS X, dan CygWin. Jika Anda membiarkan diri Anda terbiasa dengan fitur unik dari alat satu rasa, itu menyakitkan ketika Anda pergi ke nikmat lain. Itu tidak membuat mereka "rusak".
Spiff
2
Benar, dan jangan lupa Hurd. Selain Linux dan OSX, sisa daftar Anda hanya menarik sejarah.
taw
@taw: Solaris masih digunakan di banyak tempat, terutama untuk zfs.
Dan

Jawaban:

24

Banyak fitur netstat dapat diganti dengan perintah lsof . Saya sering menggunakan

netstat -lnp | grep 1234

untuk mengetahui siapa yang mendengarkan pada port 1234. Dengan lsof (yang tersedia di kedua sistem), saya dapat melakukan:

lsof -i :1234

Perintah teratas pada OSX juga tidak buruk, hanya saja berbeda. Dan saya cukup yakin beberapa metrik hanya masuk akal di Mac.

Catatan yang lsof -Pi :1234seharusnya membuatnya sedikit lebih cepat dengan tidak mencoba menyelesaikan nama layanan (port).

Eric Darchis
sumber
6
OSX lsoflebih baik netstatdari OSX netstat, terima kasih.
taw
tambahkan -Puntuk mencegah resolusi nama dan membuatnya lebih cepat. Jadi linux netstat -ntlpagak suka lsof -Pi | grep -i listen. Masih tidak tahu bagaimana beberapa PID dapat mendengarkan pada port yang sama, bukan sesuatu yang saya lihat di linux: /
Ray Foss
@RayFoss Di Mac dan beberapa OS lainnya, sebuah proses dapat mendengarkan . : 1234 dan satu lagi di 127.0.0.1:1234. Yang terakhir memiliki prioritas. Itu terlarang di Linux.
Eric Darchis
4

Oh keren, htopada di Homebrew! Saya kira itu bukan tiruan dari Linux toptetapi jika Anda memutuskan untuk menggunakan htopLinux maka saya kira htoppada OS X tidak akan terlalu jauh.

crazysim
sumber
1
itu bukan pengganti langsung karena Anda tidak bisa mendapatkan daftar server mendengarkan yang cepat
Ray Foss