Im Grunde genommen ist schon alles gesagt, aber ich will die Chance nutzen, das auch noch etwas weiter für alle Anfänger zu erklären.
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
sind mehrere Befehle, nicht nur einer. Immer, wenn ein | steht, wird die Ausgabe des vorhergehenden Befehls an den danach stehenden weitergeleitet. Das kann man ganz leicht verstehen lernen, wenn man mal einen der zahlreichen im Netz vorhandenen Artikel über shell-scripts liest, etwa den von Kamikaze im Wiki.
Immer, wenn man solch ein Konstrukt einsetzen will, sollte man sich zunächst mal sicher sein, was man möchte und welche Informationsquelle man zum Filtern denn eigentlich hat. Wenn man einen derartig zusammengesetzten Befehl fertig übernehmen will, dann muss man natürlich auch sicher sein, dass alle Einzelteile überhaupt auf dem eignen System installiert sind und wie gewünscht funktionieren.
Da die hier verwendeten Befehle wohl alle zum Grundsystem gehören, sollten die bei einer FreeBSD Installation auch immer dabei sein. Im Zweifel prüft man das aber lieber noch mal nach und zwar würde ich empfehlen, einfach die man page zu dem kommando aufzurufen. Denn, wenn die nicht existiert, existiert mit hoher Wahrscheinlichkeit das Kommando auch nicht.
Die Man-Page wird nun eh gebraucht, um nachzusehen, welche Optionen denn mein Befehl benutzt und ob die überhaupt da sind.
Nun muss man sich orientieren, was denn der erste Befehl überhaupt ausgibt. Das kann man sich ansehen und zusammen mit den möglichen Optionen schon mal günstig vor-filtern. Der Rest ist nur noch herantasten an das gewünschte Ergebnis.
Wieso ist das nicht einheitlich?
Weil FreeBSD nicht GNU ist und weil Solaris auch wieder ein anderes ist und was ich bisher bei Mac-OS-X sehe, ist das zwar viel GNU, aber durchaus nicht nur.
Diese Systeme unterscheiden sich nicht nur durch den Aufbau und die Funktion, sie unterscheiden sich hauptsächlich durch unterschiedliche Lizenz-Modelle, die ihnen zu Grunde liegen und wenn, nur um ein Beispiel zu generieren, ein gutes Tool in Mac-OS-X existiert, aber durch die Firma Apple geschützt ist, dann darf das nicht einfach in ein FreeBSD eingebaut werden und wenn es ein solches Tool in Solaris gibt und es die passende Lizenz hat, dann darf das vielleicht in FreeBSD genommen werden, aber nicht in GNU, weil die Solaris (OpenSolaris)-Lizenz nicht kompatibel zu der GPL(V3) ist, aber kompatibel zur FreeBSD Lizenz, die aber wiederum selbst auch kompatibel ist zur GPL (der klassischen Lizenz für GNU).
Natürlich ist verständlich, dass die Hauptsysteme möglichst Tools im Grundsystem haben möchten, die der eigenen Lizenz entsprechen, das bedeutet, FreeBSD möchte unter Umständen nicht ein Tool einfach aus GNU übernehmen, sondern kluge Menschen schreiben das neu, damit es unter der eignen Lizenz stehen kann. Haben die klugen Leute mal keine Zeit, wird gerade in FreeBSD gerne mal ein Auge zugedrückt und einfach ein Toll übernommen, die Lizenz gibt das nämlich her.
Und deshalb kann etwa netstat in FreeBSD ein durchaus anderes Tool sein, als in einem GNU oder sonstwo.
Das will ich nur kurz andeuten und zeige mal Auszüge aus:
FreeBSD man-page
Code:
netstat [-AaLnSTWx] [-f protocol_family | -p protocol] [-M core]
[-N system]
busybox/Linux --help Aufruf
Code:
BusyBox v1.2.1 (2006.10.11-21:54+0000) multi-call binary
Usage: netstat [-laenrtuwx]
GNU/Linux man-page
Code:
SYNOPSIS
netstat [-venaoc] [--tcp|-t] [--udp|-u] [--raw|-w] [--groups|-g] [--unix|-x] [--inet|--ip] [--ax25] [--ipx] [--netrom]
netstat [-veenc] [--inet] [--ipx] [--netrom] [--ddp] [--ax25] {--route|-r}
netstat [-veenpac] {--interfaces|-i}
netstat [-enc] {--masquerade|-M}
netstat [-cn] {--netlink|-N}
netstat {-V|--version} {-h|--help}
Und das ist auch ein schönes Beispiel dafür, warum ich nicht Linux zu GNU sage. Doch das ist dann schon OT.