dmidecode is a tool for dumping a computer's DMI table contents in a human-readable format. This contains a description of the system's hardware components and metadata (such as serial numbers).

Using DMI types, you can limit the amount of information you see to filter for just what you need. Any of the following values can be listed:

Type Information
0 BIOS
1 System
2 Base Board
3 Chassis
4 Processor
5 Memory Controller
6 Memory Module
7 Cache
8 Port Connector
9 System Slots
10 On Board Devices
11 OEM Strings
12 System Configuration Options
13 BIOS Language
14 Group Associations
15 System Event Log
16 Physical Memory Array
17 Memory Device
18 32-bit Memory Error
19 Memory Array Mapped Address
20 Memory Device Mapped Address
21 Built-in Pointing Device
22 Portable Battery
23 System Reset
24 Hardware Security
25 System Power Controls
26 Voltage Probe
27 Cooling Device
28 Temperature Probe
29 Electrical Current Probe
30 Out-of-band Remote Access
31 Boot Integrity Services
32 System Boot
33 64-bit Memory Error
34 Management Device
35 Management Device Component
36 Management Device Threshold Data
37 Memory Channel
38 IPMI Device
39 Power Supply

Let's see this in action! Have you ever wanted to know the maximum amount of RAM your system can handle, without checking specs on your motherboard? As a privileged user, we will access the Physical Memory Array (type 16) using dmidecode:

# dmidecode -t 16
dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x002B, DMI type 16, 23 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 32 GB
    Error Information Handle: Not Provided
    Number Of Devices: 4

The maximum capacity has been bolded here. It's that easy!

You can easily specify other DMI types (even coma-separated for multiple values), or you can just leave off the -t flag the see the entre table.