ethtool is the primary means in Linux kernel-based operating systems (primarily Linux and Android) for displaying and modifying the parameters of network interface controllers (NICs) and their associated device driver software from application programs running in userspace.
ethtool consists of two components, an API within the Linux kernel through which NICs can send and receive parameters through their device driver software, and a userspace API based on the Linux SIOCETHTOOL ioctl mechanism through which application programs can communicate with the kernel to send and receive NIC and NIC driver parameters.
The macOS and FreeBSD operating systems provide utility programs that have a user interface similar to the Linux ethtool utility, but that use fundamentally different APIs to communicate with their operating system kernels and NIC's.
The command is useful for: To display the current parameters of the first network port (eth0): [2] To configure it with the 1000 Mb/s speed and duplex, in 1000BASE-T: To let the link light of the device eth0 flash for two minutes: To print the driver info of the interface eth0:mii-tool is an older program performing a similar function to ethtool.
To display the current parameters: To force the network speed to 1 Gbit/s, and the duplex in full on the port 1 (eth0):