Wie finde ich die Anzahl der in einem Linux-System verfügbaren Netzwerkschnittstellen heraus?

7

Ich muss die unter Linux verfügbaren Netzwerkschnittstellen durchlaufen. Ich interessiere mich für alle Arten von Schnittstellen (Loopback, Ethernet, VLAN, Bridge) - was auch immer in auftaucht ifconfig -a.

Gibt es eine Möglichkeit, die Schnittstellen unter Linux aufzulisten? Durch irgendeinen Befehl oder durch Lesen einer Datei?

user1762571
quelle
1
Nun, das funktioniert ...ifconfig -a | grep 'flags' | wc -l
Orion
@orion, ich würde empfehlen, ipstattdessen zu verwenden, da es ein Nachfolger von ifconfig- ist ip -o link show | wc -l. Siehe diese Frage
VL-80
Sie könnten sich ansehen netdevice(7)).
o11c
@Nikolay natürlich, das würde ich verwenden, und andere haben diese Antwort bereits gepostet (und entfernt). Ich wollte nur darauf hinweisen, dass von dem, was OP getan hat, bis zur Beantwortung seiner Frage nicht sehr weit ist.
Orion
Nur für den Fall, dass es jemandem hilft, wird durch Hinzufügen der Option "1" zum Befehl ls die Ausgabe eines Elements pro Zeile aufgelistet, z. B.: ls -A1 /sys/class/net eth0 lo usb0 wlan0Tatsächlich war ich überrascht, dass die Zählung mit "wc -l" immer noch in der einzeiligen Version funktioniert des Befehls (ls -A). Es gibt jedoch wahrscheinlich andere Situationen, in denen die Ausgabe von Elementen pro Zeile von ls vorzuziehen oder erforderlich ist.
Alex

Antworten:

8

Eine Liste dieser Schnittstellen auf den meisten Systemen erhalten Sie über Folgendes:

ls -A /sys/class/net

Aber hüte dich vor der Ausgabe von Parsenls in Ihrem Skript.

Bearbeiten

Um eine Gesamtzahl von Netzwerkschnittstellen zu erhalten, leiten Sie die Ausgabe dieses Befehls wcan die in Nikolays Kommentar empfohlenen Stellen weiter:

ls -A /sys/class/net | wc -l
111 ---
quelle
1
Linux erlaubt nicht das Erstellen von Netzwerkschnittstellen mit Newline im Namen, aber es erlaubt Netzwerkschnittstellen, deren Name mit beginnt ., also würden Sie ls -Ahier brauchen .
Stéphane Chazelas
Noted Sir, Ty :)
111 ---
Dies zeigt alle Schnittstellen. Aber ich interessiere mich für die Zählung (insgesamt Anzahl der Schnittstellen)
user1762571
2
@ user1762571, verwenden Sie diesen Befehl ls -A /sys/class/net | wc -loderip -o link show | wc -l
VL-80