Is there any built-in software or terminal method allowing me to view the hardware profiles on my system? Windows equivalent of such a feature would be Device Manager.
There are a few options:
lspciwill show you most of your hardware in a nice quick way. It has varying levels of verbosity so you can get more information out of it with
-vvflags if you want it. The
-kargument is a good way to find out which kernel driver a piece of hardware is using.
-nnwill let you simply know the hardware ID which is great for searching.
But it is only a very simple, quick way of getting a list of hardware. I often ask people to post the output of it here when trying to identify their wireless hardware. It's great for things like that.
It doesn't show USB hardware other than the USB busses.
Here are three real world examples:
$ lspci -nnk | grep VGA -A1 03:00.0 VGA compatible controller : NVIDIA Corporation GF110 [GeForce GTX 580] [10de:1080] (rev a1) Kernel driver in use: nvidia
$lspci -v | grep -A7 -i "audio" 00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Kabini HDMI/DP Audio Subsystem: Acer Incorporated [ALI] Device 080d Flags: bus master, fast devsel, latency 0, IRQ 34 Memory at f0940000 (64-bit, non-prefetchable) [size=16K] Capabilities: <access denied> Kernel driver in use: snd_hda_intel Kernel modules: snd_hda_intel -- 00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 02) Subsystem: Acer Incorporated [ALI] Device 080d Flags: bus master, slow devsel, latency 32, IRQ 35 Memory at f0944000 (64-bit, non-prefetchable) [size=16K] Capabilities: <access denied> Kernel driver in use: snd_hda_intel Kernel modules: snd_hda_intel
$ lspci -nnk | grep net -A2 00:0a.0 Ethernet controller : NVIDIA Corporation MCP79 Ethernet [10de:0ab0] (rev b1) Subsystem: Acer Incorporated [ALI] Device [1025:0222] Kernel driver in use: forcedeth -- 05:00.0 Ethernet controller : Atheros Communications Inc. AR242x / AR542x Wireless Network Adapter (PCI-Express) [168c:001c] (rev 01) Subsystem: AMBIT Microsystem Corp. AR5BXB63 802.11bg NIC [1468:0428] Kernel driver in use: ath5k
lspcibut for USB devices. Similar functionality with similar verbosity options. Good if you want to know what's plugged in.
sudo lshwwill give you a very comprehensive list of hardware and settings.
It gives you so much information, I suggest you pipe it through
lessor output it to a file and open that in something you can move around in:
sudo lshw | less
Of course this is usually a lot of information. You often only need info on a small subset of your hardware and
lshwwill let you select a category. If you just wanted to see your network devices, for example, run this:
sudo lshw -c network
If you want something graphical, I suggest you look at
hardinfo. You'll need to install it first:
sudo apt-get install hardinfo
You then just run it from the same terminal with
hardinfo. I don't know that it has a menu location by default.
But it can give you slightly more information (boots, available kernels, etc) than the other options, as well as giving you similar lists of PCI and USB hardware like the first two commands.
It also provides some simple benchmarking. I think the developers aim to make it a replacement for Sandra (a popular Windows hardware information gathering tool).
It even has options to output a nice report that you can send to somebody (though it can easily be too much information).
You can use lshw which is CLI tool:
as the man page says:
lshw is a small tool to extract detailed information on the hardware configuration of the machine. It can report exact memory configuration, firmware version, mainboard configuration, CPU version and speed, cache configuration, bus speed, etc. on DMI-capable x86 or IA-64 systems and on some PowerPC machines (PowerMac G4 is known to work).
You can also use HardInfo:
HardInfo can gather information about your system's hardware and operating system, perform benchmarks, and generate printable reports either in HTML or in plain text formats.
It can also be easily extended, for developer documentation and full source code (released under GNU GPL version 2) is available.
Install it by running this command:
sudo apt-get install hardinfo
or look for hardinfo in Synaptic or Software Center.
There are several ways to gather hardware information. I will post all the possibilities I know. For further information on any of the programs please consult their man pages.
Option one -
lshw which should be installed by default. You'll have to run it as super user (sudo).
It will present a very detailed list of pretty much every component. To get a shorter list representation you can use the
You can make it output the information in several ways.
Option two -
hwinfo (needs install)
hwinfo which you'd have to install. It is in the repositories.
It does also present the components in a very detailed fashion. Here the
--short flag will give you a nice hardware category sorted list.
--[hwtype] option you can get detailed information about a selected hardware type only, which is quite handy sometimes.
I don't know of any one-in-all solution to dis/enable hardware or drivers. Drivers generally are kernel modules which you can enable (add) and disable (remove) using the
lsmod you can find out which modules are currently loaded.
lshw is a very good command that tells you a very detailed information of your hardware. If you don't want to install something else like hardinfo then it will be very good command. But use lshw (you can say list hardware to remember this command) with -html or -xml options to get the information in more interactive way.
Here it illustrates
$ sudo lshw | less (or more) $ sudo lshw -html > myhardware.html $ sudo lshw -xml > myhardware.xml
Now just open .html or .xml files created in your current directory to get a complete description of your hardware.
NeoFetch is a nice command line solution for high level information (if running Ubuntu 14.04 or higher).
To install you need to add the PPA first:
sudo add-apt-repository ppa:dawidd0811/neofetch
sudo apt update && sudo apt install neofetch
neofetch is available in the Universe repository since 18.04.
A convenient way to present neofetch data is to use
neofetch --stdout. This command produces output in plain text that can be copy/pasted into a question or answer here without needing to upload an image.
$ neofetch --stdout dkb@kububb ------------ OS: Ubuntu 18.04.2 LTS x86_64 Host: Inspiron 15-3567 Kernel: 4.15.0-48-generic Uptime: 3 hours, 12 mins Packages: 2352 Shell: bash 4.4.19 Resolution: 1366x768 DE: KDE WM: KWin WM Theme: Breeze Theme: Breeze Dark [KDE], MyBreeze-Dark [GTK2/3] Icons: Breeze-dark [KDE], Breeze [GTK2/3] Terminal: konsole Terminal Font: Hack 11 CPU: Intel i3-6006U (2) @ 2.000GHz GPU: Intel HD Graphics 520 Memory: 1435MiB / 7846MiB $
20.04 and later
In Ubuntu 20.04 and later install System Profiler (
sudo apt install hardinfo).
HardInfo is a small application that displays information about your hardware and operating system. Currently it knows about PCI, ISA PnP, USB, IDE, SCSI, Serial and parallel port devices.
18.04 and earlier
Install Sysinfo (
sudo apt install sysinfo) from the default Ubuntu repositories in Ubuntu 18.04 and earlier. Sysinfo is a graphical tool that is able to display some hardware and software information about the computer it is run on.
It is able to recognize information about:
- System (Linux distribution release, versions of GNOME, kernel, gcc and Xorg and hostname)
- CPU (vendor identification, model name, frequency, level2 cache, bogomips, model numbers and flags)
- Memory (total system RAM, free memory, swap space total and free, cached, active, inactive memory)
- Storage (IDE interface, all IDE devices, SCSI devices)
- Hardware (motherboard, graphic card, sound card, network devices)
- NVIDIA graphic card: only with NVIDIA display driver installed
HardwareLiSter is a useful tool that can show you detailed info on all the hardware on your system in a nice GUI interface.
If you prefer to use a terminal try
sudo dmidecode which will give you a very detailed list of all the hardware too.
Other great tools for Ubuntu are
I-Nex is free system info tool which is used to gather information on the main system components (devices) such as CPU, motherboard, memory, video memory, sound, USB devices and so on. The application allows through a tabbed clear interface to display information about the system hardware, this utility displays significant amount of system details. I-Nex utility continues to add new functionality, this time I-Nex included GPU information tab, and other various fixes. Besides being able to display hardware information, I-Nex can also generate an advanced report for which you can select what to include and optionally send the report to a service such as Pastebin (and others). It also features an option to take a screenshot of the I-Nex window directly from the application. The difference between I-Nex and the other hardware information GUI tools available for Linux is that the information is better organized and is displayed faster (than lshw-gtk for instance). Also, the hardware information is presented in a way that's easier to understand than other such tools.
CPU-G is useful utility to show hardware information. It detects hardware and display details about everything, it shows information about CPU(Processor), RAM(Active/Inactive, Free, Used and cached), Motherboard and Chipset, Bios Details, Graphic card details, and details of installed Linux.
I wrote a shell script to gather all possible hardware details on Linux systems, including Ubuntu, using native commands. Anyone interested can view and download the script from: A simple shell script to get hardware info from a Linux box.
This script fetches the following details:
- Operating system (Linux) release version, kernel version, uptime details, etc.
- System (server) vendor, serial number, etc.
- Server mainboard details
- Server BIOS at a glance
- Server processor details
- Server physical memory (RAM) details
- PCI devices/controllers at a glance
- Hard disk drive details
- Network hardware info
**** Update as of 1/12/2019 *****
This script is available as an RPM now, which can be downloaded from this blog site page: https://www.simplylinuxfaq.com/p/how-to-find-hardware-details-in-linux.html
Is there a single utility to monitor most hardware's working status? Just like some software in Windows?
If you search for "system testing" in dash you will see a program that will check an insane amount of features. The 2nd image shows it will check suspend, power management, audio, usb, graphics, mediacards, dvd drives and much more.
If something is wrong related to a device it will inform you of it. A simple search on AU or posting a question specific to a problem shown at the results page should help investigate the related problem.
hw-probe tool: https://github.com/linuxhw/hw-probe
The tool creates a probe of the computer including outputs of hardware listers (hwinfo, dmidecode, biosdecode, etc.), several Linux diagnostics tools (smartctl, memtester, etc.) and system logs (dmesg, Xorg.log, etc.).
Probe example: https://linux-hardware.org/?probe=0b29192f95
I'm the author of this project, so feel free to ask any questions in comments!
neofetch has already been mentioned but there is also
screenfetch which provides even more information when you open your terminal after you put the command in your
My terminal splash screen contains four components:
- Time (when terminal was opened)
screenfetchthe system information utility
You can find details for doing this yourself in this answer:
For my Acer Travelmate-P243-M, the following works well:
$ lspci -vv
However, there are many other options beautifully presented here: https://www.binarytides.com/linux-commands-hardware-info/