Linux-like 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 (distros จำนวนมาก), NEXTSTEP, OpenStep, BSDI, Xenix / SCO, FreeBSD, NetBSD, Mac OS X และ CygWin หากคุณปล่อยให้ตัวเองคุ้นเคยกับคุณสมบัติที่เป็นเอกลักษณ์ของเครื่องมือของรสชาติหนึ่งมันเจ็บปวดเมื่อคุณได้รับความโปรดปรานอื่น นั่นไม่ได้ทำให้พวกเขา "เสีย"
Spiff

2
ถูกต้องและอย่าลืม Hurd นอกเหนือจาก Linux และ OSX รายการอื่น ๆ ของคุณมีความสนใจในอดีตเท่านั้น
taw

@taw: Solaris ยังคงใช้งานได้ในหลายสถานที่โดยเฉพาะอย่างยิ่งสำหรับ zfs
Dan

คำตอบ:


24

คุณลักษณะ netstat จำนวนมากสามารถถูกแทนที่ด้วยคำสั่งlsof ฉันมักจะใช้

netstat -lnp | grep 1234

เพื่อค้นหาผู้ที่กำลังฟังพอร์ต 1234 ด้วย lsof (ที่มีอยู่ในทั้งสองระบบ) ฉันสามารถทำได้:

lsof -i :1234

คำสั่งด้านบนของ OSX นั้นก็ไม่ได้เลวร้ายเหมือนกัน และฉันค่อนข้างแน่ใจว่าตัวชี้วัดบางตัวใช้กับ Mac ได้ดีเท่านั้น

โปรดทราบว่าlsof -Pi :1234ควรทำให้เร็วขึ้นเล็กน้อยโดยไม่พยายามแก้ไขชื่อบริการ (ของพอร์ต)


6
OSX lsofดีnetstatกว่า OSX netstatขอบคุณ
taw

เพิ่ม-Pเพื่อป้องกันการจำแนกชื่อและทำให้เร็วขึ้น ดังนั้นลินุกซ์netstat -ntlpก็เหมือนlsof -Pi | grep -i listenกัน ยังไม่ทราบว่า PID หลายตัวสามารถฟังบนพอร์ตเดียวกันไม่ใช่สิ่งที่ฉันเห็นใน linux: /
Ray Foss

@RayFoss บน Mac และระบบปฏิบัติการอื่น ๆ กระบวนการสามารถฟังได้ : 1234 และอีกอันหนึ่งใน 127.0.0.1:1234 หลังมีความสำคัญ นั่นเป็นข้อห้ามบน Linux
Eric Darchis

4

โอ้ยอดเยี่ยมhtopอยู่ใน Homebrew! ฉันเดาว่ามันไม่ใช่โคลนของ Linux topแต่ถ้าคุณตัดสินใจที่จะใช้htopบน Linux ฉันเดาว่าhtopOS X จะไม่ไกลเกินไป


1
ไม่ใช่การแทนที่โดยตรงในขณะที่คุณไม่สามารถรับฟังรายการเซิร์ฟเวอร์ที่รวดเร็ว
Ray Foss
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.