Lspci

lspci is a command on Unix-like operating systems that prints ("lists") detailed information about all PCI buses and devices in the system. It is based on a common portable library "libpci" which offers access to the PCI configuration space on a variety of operating systems.
Example usage.
Example output on a Linux system: 
00:00.0 Host bridge: Intel Corporation 82815 815 Chipset Host Bridge and Memory Controller Hub (rev 11)
00:02.0 VGA compatible controller: Intel Corporation 82815 Chipset Graphics Controller (CGC) (rev 11)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 03)
00:1f.0 ISA bridge: Intel Corporation 82801BAM ISA Bridge (LPC) (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801BAM IDE U100 Controller (rev 03)
00:1f.2 USB Controller: Intel Corporation 82801BA/BAM USB Controller #1 (rev 03)
00:1f.3 SMBus: Intel Corporation 82801BA/BAM SMBus Controller (rev 03)
00:1f.4 USB Controller: Intel Corporation 82801BA/BAM USB Controller #2 (rev 03)
00:1f.5 Multimedia audio controller: Intel Corporation 82801BA/BAM AC'97 Audio Controller (rev 03)
01:03.0 CardBus bridge: O2 Micro, Inc. OZ6933/711E1 CardBus/SmartCardBus Controller (rev 01)
01:03.1 CardBus bridge: O2 Micro, Inc. OZ6933/711E1 CardBus/SmartCardBus Controller (rev 01)
01:0b.0 PCI bridge: Actiontec Electronics Inc Mini-PCI bridge (rev 11)
02:04.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 08)
02:08.0 Communication controller: Agere Systems WinModem 56k (rev 01)
Using codice_1, codice_2, or codice_3 will display increasingly verbose details for all devices. codice_4 option specifies the vendor and device ID of the devices to display. Note that ":" can not be omitted, while the omitted codice_5 or codice_6 indicates "any value".
If many devices are shown as unknown (e.g. "Unknown device 2830 (rev 02)"), issuing the command codice_7 will usually correct this.
lsusb.
codice_8 is a similar command for USB buses and devices. To make use of all the features of this program, you need to have a Linux kernel which supports the /proc/bus/usb interface (e.g., Linux kernel 2.3.15 or newer).
hwinfo.
codice_9 is for all the hardware. Hwinfo output reports for various computer models are collected in a public GitHub repository.
lshw.
codice_10 is a subset of what hwinfo presents.
Other platforms.
The equivalent command for FreeBSD is codice_11. codice_12 can also perform other functions such as reading and writing PCI registers. For more information, see the man page.
The HWiNFO tool, which is not related to the codice_9 tool mentioned above, can be downloaded in binary form at no cost. It is claimed to be a "system information and diagnostics comprehensive hardware analysis, monitoring and reporting for Windows and DOS".