≡ Menu

Ubuntu Linux Display List of Ethernet Adapter

How do I display a list of all installed Ethernet adapters on Ubuntu Linux server using bash command line option?

You can use the following commands to list Ethernet adapters under Ubuntu Linux:

  1. lspci command - List all PCI device including Ethernet cards (NICs).
  2. ip command - Display or manipulate routing, devices, policy routing and tunnels on Linux operating systems.
  3. ifconfig command - Display or configure a network interface on Linux or Unix like operating systems.


Open a command-line terminal (select Applications > Accessories > Terminal), and then type the following command to list total number of Ethernet devices on Linux:
$ lspci
$ lspci | less
$ lspci | grep -i eth

Sample outputs:

09:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5761e Gigabit Ethernet PCIe (rev 10)

Above output indicates that my system has one Gigabit Ethernet controller installed using PCIe interface. It also displayed name of the manufacture. To list actual ip address assigned to the interface, enter:
$ ifconfig
$ ifconfig eth0

$ /sbin/ifconfig
$ /sbin/ifconfig eth0

Sample outputs:

eth0      Link encap:Ethernet  HWaddr b8:ac:6f:65:31:e5
          inet addr:  Bcast:  Mask:
          inet6 addr: fe80::baac:6fff:fe65:31e5/64 Scope:Link
          RX packets:1938092 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2436052 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:771061372 (771.0 MB)  TX bytes:2118333235 (2.1 GB)

You can use ip command as follows to list all NICs:
$ ip link
$ ip link
Sample outputs:

Fig.01: Displaying ethernet devices

Fig.01: Displaying ethernet devices

Alternatively, you can pass the -a (all) and -s (stats) option to the ifconfig command to display Ethernet cards including network alias on Linux operating systems:
$ ifconfig -s -a
Sample outputs:
Fig.02: ifconfig command in action

Fig.02: ifconfig command in action

The last command "ifconfig -s -a" is equivalent to the "netstat -i" command:
$ netstat -i
Sample outputs:

Kernel Interface table
eth0       1500 0  46686747      0      0 0      23678718      0      0      0 BMRU
eth1       1500 0   5951068      0      0 0       2412620      0      0      0 BMRU
lo        16436 0         1      0      0 0             1      0      0      0 LRU

Display or change Ethernet card settings

You can use the ethtool command for querying settings of an ethernet device and changing them such as speed, duplex settings and much more:
$ ethtool eth0
Sample outputs:

Settings for eth0:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 1000baseT/Full
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 1000baseT/Full
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Link partner advertised link modes:  Not reported
	Link partner advertised pause frame use: No
	Link partner advertised auto-negotiation: No
	Speed: 100Mb/s
	Duplex: Full
	Port: Twisted Pair
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: Unknown
	Supports Wake-on: g
	Wake-on: g
	Current message level: 0x000000ff (255)
	Link detected: yes

See how to change duplex settings with the ethtool command under Linux operating systems.

See also

{ 4 comments… add one }

  • arandom September 17, 2012, 5:14 pm

    ifconfig -a -s

    • shgn October 20, 2013, 11:00 am

      Thank you. It was the exact solution of my problem.

    • nixCraft October 20, 2013, 1:58 pm

      The faq has been updated. I appreciate your feedback.

  • dawciobiel November 13, 2015, 12:06 am

    lshw -c network

Leave a Comment

   Tagged with: , , , , , , , ,