I'm trying to drum up a hack that will output the name of active network devices on one's computer via bash. I'm making it for work. How do I go about doing this? I don't want to just plainly use "wlan0" or "eth0" or any of that generic crap because some OSes use different names (Like pfSense for example).


It depends what you mean by 'active' - if you just want to see the names of all the network devices on the system, you can look at the contents of the /sys/class/net directory e.g.

$ ls /sys/class/net
eth0  lo  wlan0

To see the status, you could use the ip command on any link objects - you can parse the output to get the particular fields you want e.g. to see just the device name and state

$ ip -o link show | awk '{print $2,$9}'
eth0: DOWN
wlan0: UP

If you are running a modern desktop version of Ubuntu (with interfaces managed by the network-manager service), then you should be able to get a similar device status list using nmcli

$ nmcli dev status
DEVICE     TYPE              STATE
wlan0      802-11-wireless   connected
eth0       802-3-ethernet    unavailable

or, to limit the output to particular fields in a way that's more easily used in a script

$ nmcli --terse --fields DEVICE,STATE dev status

If you are using network-manager, you could also access device and connection properties via DBUS - see for example Dbus Tutorial - Fun with Network Manager

| improve this answer | |

You can use ifconfig to detect the active network devices, for a little smaller output use ifconfig -s. ifconfig prints the active interfaces, with -a you can print all interfaces that are recognized by the system as network interfaces.

Or use ip addr.

| improve this answer | |

I may not know the answer directly but I'll give you a list of network commands and maybe from there you can try connecting it with what you need to do.

To view networks, and to output the name of active network devices on a single computer, you can try the following commands:


This command allows us to detect the active network devices. You can also use the ifconfig -s command for smaller output use. You can use this command to configure a particular interface

ip addr

This command allows us to view network network information.


This command is a network sniffer. What it does is it captures packets off a network interface and interprets them for you.

If you ever get a permission denied message, simply: **gksu yourcommand** for it to get root permissions and force the command.


You can use this command to list info about machines that respond to SMB name queries.

Source: http://www.gymforgeeks.com/topic/358445-/

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.