Knowing how to display system details and hardware information on Linux is guaranteed to come in handy when troubleshooting all kinds of problems, from hardware devices not showing up to software applications not installing or running correctly.
As is usually the case, Linux gives you multiple ways to display system details and hardware information, some requiring more technical knowledge than others.
Method 1: CPU-X
CPU-X runs on Linux and FreeBSD, and it has a graphical user interface designed after the application that inspired it. There’s also a text-based user interface created using the ncurses library, plus a special dump mode that’s useful for outputting all collected information into a text file.
You can download CPU-X from the official repositories of most major Linux distributions, including Ubuntu, Fedora, and Solos, or you can build it yourself following the step-by-step guide on the Wiki.
Method 2: Hardware Lister (lshw)
Hardware Lister is a tool for gathering detailed hardware information. The tool comes with an optional graphical user interface that displays the gathered information in a more user-friendly manner, but most users rely only on the lshw command.
If you’re using a major Linux distribution like Ubuntu, the lshw command (but not the GUI, called lshw-gui) will likely already be installed on your system. To use it, all you need to do is enter the following command in the terminal:
Hardware Lister will then display a long list of information about your Linux machine, including its name, CPU, connected USB devices, memory, and more.
Method 3: Neofetch
In fact, this command-line system information tool written in bash is loved by aesthetically-oriented Linux users for its ability to display basic OS, software, and hardware information in a visually pleasing manner.
To use Neofetch with its default settings, simply install the tool and invoke it in your favorite terminal emulator:
By default, Neofetch will display your operating system’s logo on the left (more than 150 operating systems are supported) and system information on the right. You can also configure Neofetch to use an image, a custom ASCII file, the current wallpaper, or nothing at all.
Method 4: inxi
inxi (never capitalized) is a command line system information tool that started as infobash, developed by locsmif.
“That was a buggy, impossible to update or maintain piece of software, so the fork fixed those core issues, and made it flexible enough to expand the utility of the original ideas,” explains the project’s GitHub page.
So, what can inxi tell you about your system and the hardware it runs on? Just about anything you could possibly need for basic troubleshooting and more.
To tell inxi to display full output with extra details, use the following command:
If you want to share the collected information with strangers on the internet, you can also include the -z flag, which masks out personally identifying information like your MAC and IP address.
Method #5: ls* Commands
To display system details and hardware information on Linux, you actually don’t need to download any third-party software. Instead, you can take advantage of the so-called ls* commands to display information gathered from places like /proc.
Here are the ls* commands you should know about:
- lscpu: used to display information about the CPU.
- lsusb: used to display information about USB buses in the system and the devices connected to them.
- lspci: used to display information about PCI buses and devices in the system.
- lssci: used to display information about scsi/sata devices.
Each of these commands supports a variety of flags, so we recommend you study their man pages to for more information about them.
In this article, we’ve described five ways to display system details and hardware information on Linux to help you quickly collect the information you need to troubleshoot any problem. Now, it’s up to you to pick the method you like the most and put it to good use.