您可能出于多种原因需要查找计算机硬件的详细信息。 例如,如果您需要帮助解决问题并在在线论坛上发帖求助,人们会立即向您询问有关计算机的具体信息。 或者,如果您想升级计算机,您需要知道您拥有什么以及可以拥有什么。 您需要查询您的计算机以发现其规格。
最简单的方法是使用标准的 Linux GUI 程序
- i-nex 收集硬件信息,并以类似于 Windows 下流行的 CPU-Z 的方式显示。
- HardInfo 显示硬件规格,甚至包括一组八个流行的基准测试程序,您可以运行这些程序来衡量系统的性能。
- KInfoCenter 和 Lshw 也显示硬件详细信息,并且在许多软件存储库中可用。
或者,您可以打开机箱并读取磁盘、内存和其他设备上的标签。 或者,您可以进入启动时面板,即所谓的 UEFI 或 BIOS 面板。 只需在启动过程中点击适当的程序功能键即可访问它们。 这两种方法为您提供硬件详细信息,但省略了软件信息。
或者,您可以发出 Linux 命令行。 等等……这听起来很困难。 你为什么要这样做?
有时,通过有针对性的命令行很容易找到特定的信息。 也许您没有可用的 GUI 程序,或者不想安装一个。
使用命令行命令的主要原因可能是编写脚本。 无论您使用 Linux shell 还是另一种编程语言,脚本通常都需要编写命令行。
许多用于检测硬件的命令行命令必须在 root 权限下发出。 因此,切换到 root 用户 ID,或者以普通用户 ID 发出命令,并在前面加上 sudo
sudo <the_line_command>
并响应 root 密码的提示。
本文介绍了许多最有用的系统发现命令行命令。 文末的快速参考图表总结了这些命令。
硬件概述
有几个命令行命令可以为您提供计算机硬件的全面概述。
inxi 命令列出有关您的系统、CPU、图形、音频、网络、驱动器、分区、传感器等的详细信息。 当论坛参与者试图帮助他人解决问题时,他们经常要求提供其输出。 它是解决问题的标准诊断方法
inxi -Fxz
-F 标志表示您将获得完整输出,x 添加详细信息,z 掩盖个人身份信息,例如 MAC 和 IP 地址。
hwinfo 和 lshw 命令以不同的格式显示大部分相同的信息
hwinfo --short
或者
lshw -short
这两个命令的长形式会输出详尽但难以阅读的输出
hwinfo
或者
lshw
CPU 详细信息
您可以通过命令行了解有关 CPU 的所有信息。 通过发出 lscpu 命令或其近亲 lshw 来查看 CPU 详细信息
lscpu
或者
lshw -C cpu
在这两种情况下,输出的最后几行列出了 CPU 的所有功能。 在这里您可以查明您的处理器是否支持特定功能。
对于所有这些命令,您可以通过使用 grep 命令解析命令输出,来减少冗长并缩小任何答案到单个细节。 例如,要仅查看 CPU 制造商和型号
lshw -C cpu | grep -i product
要仅查看 CPU 的速度(以兆赫兹为单位)
lscpu | grep -i mhz
或者它的 BogoMips 功率等级
lscpu | grep -i bogo
grep 命令上的 -i 标志只是确保您的搜索忽略它搜索的输出是否为大写或小写。
内存
Linux 命令行使您能够收集有关计算机内存的所有可能详细信息。 您甚至可以确定是否可以在不打开机箱的情况下向计算机添加额外的内存。
要列出每个内存条及其容量,请发出 dmidecode 命令
dmidecode -t memory | grep -i size
有关系统内存的更多详细信息,包括每个 RAM 条的类型、大小、速度和电压,请尝试
lshw -short -C memory
您肯定想知道的一件事是您可以在计算机上安装的最大内存
dmidecode -t memory | grep -i max
现在找出是否有任何空闲插槽可以插入额外的内存条。 您可以通过发出以下命令来完成此操作,而无需打开计算机
lshw -short -C memory | grep -i empty
空响应表示所有内存插槽已在使用中。
确定您拥有的视频内存量需要一对命令。 首先,使用 lspci 命令列出所有设备,并将显示的输出限制为您感兴趣的视频设备
lspci | grep -i vga
标识视频控制器的输出行通常看起来像这样
00:02.0 VGA compatible controller: Intel Corporation 82Q35 Express Integrated Graphics Controller (rev 02)
现在重新发出 lspci 命令,将视频设备号作为选定设备引用
lspci -v -s 00:02.0
标识为prefetchable的输出行是系统上的视频 RAM 量
...
Memory at f0100000 (32-bit, non-prefetchable) [size=512K]
I/O ports at 1230 [size=8]
Memory at e0000000 (32-bit, prefetchable) [size=256M]
Memory at f0000000 (32-bit, non-prefetchable) [size=1M]
...
最后,要以兆字节显示当前内存使用情况,请发出
free -m
这告诉您有多少内存是空闲的,有多少内存正在使用,交换区的大小以及是否正在使用。 例如,输出可能如下所示
total used free shared buff/cache available
Mem: 11891 1326 8877 212 1687 10077
Swap: 1999 0 1999
top 命令为您提供有关内存使用的更多详细信息。 它显示当前的整体内存和 CPU 使用情况,还可以按进程 ID、用户 ID 和正在运行的命令对其进行细分。 它显示全屏文本输出
top
磁盘、文件系统和设备
您可以轻松确定您希望了解的有关磁盘、分区、文件系统和其他设备的任何信息。
要显示描述每个磁盘设备的单行
lshw -short -C disk
使用以下命令获取有关任何特定 SATA 磁盘的详细信息,例如其型号和序列号、支持的模式、扇区数等
hdparm -i /dev/sda
当然,如果需要,您应该将 sda 替换为 sdb 或其他设备助记符。
要列出所有具有所有已定义分区的磁盘,以及每个分区的大小,请发出
lsblk
有关更多详细信息,包括扇区数、大小、文件系统 ID 和类型,以及分区起始和结束扇区
fdisk -l
要启动 Linux,您需要识别可挂载的分区到 GRUB 引导加载程序。 您可以使用 blkid 命令找到此信息。 它列出了每个分区的唯一标识符 (UUID) 及其文件系统类型(例如,ext3 或 ext4)
blkid
要列出已挂载的文件系统、其挂载点以及每个文件系统已使用和可用的空间(以兆字节为单位)
df -m
最后,您可以使用以下命令列出所有 USB 和 PCI 总线和设备的详细信息
lsusb
或者
lspci
网络
Linux 提供了大量的网络命令行命令。 这里只是一些。
要查看有关网络卡的硬件详细信息,请发出
lshw -C network
传统上,显示网络接口的命令是 ifconfig
ifconfig -a
但现在很多人使用
ip link show
或者
netstat -i
在阅读输出时,了解常见的网络缩写很有帮助
缩写 | 含义 |
---|---|
lo | 环回接口 |
eth0 或 enp* | 以太网接口 |
wlan0 | 无线接口 |
ppp0 | 点对点协议接口(由拨号调制解调器、PPTP VPN 连接或 USB 调制解调器使用) |
vboxnet0 或 vmnet* | 虚拟机接口 |
此表中的星号是通配符,用作系统与系统之间出现的任何字符系列的占位符。
要显示您的默认网关和路由表,请发出以下任一命令
ip route | column -t
或者
netstat -r
软件
让我们以两个显示低级软件详细信息的命令结束。 例如,如果您想知道是否安装了最新的固件怎么办? 此命令显示 UEFI 或 BIOS 的日期和版本
dmidecode -t bios
内核版本是什么?它是 64 位的吗? 网络主机名是什么? 要找出答案,请发出
uname -a
快速参考图表
此图表总结了本文中介绍的所有命令
显示有关所有硬件的信息 | inxi -Fxz --或者-- hwinfo --short --或者-- lshw -short |
显示所有 CPU 信息 | lscpu --或者-- lshw -C cpu |
显示 CPU 功能(例如,PAE、SSE2) | lshw -C cpu | grep -i capabilities |
报告 CPU 是 32 位还是 64 位 | lshw -C cpu | grep -i width |
显示当前内存大小和配置 | dmidecode -t memory | grep -i size --或者-- lshw -short -C memory |
显示硬件的最大内存 | dmidecode -t memory | grep -i max |
确定内存插槽是否可用 | lshw -short -C memory | grep -i empty (空答案表示没有可用的插槽) |
确定视频内存量 | lspci | grep -i vga 然后使用设备号重新发出; 例如: lspci -v -s 00:02.0 VRAM 是prefetchable值。 |
显示当前内存使用情况 | free -m --或者-- top |
列出磁盘驱动器 | lshw -short -C disk |
显示有关特定磁盘驱动器的详细信息 | hdparm -i /dev/sda (如有必要,替换sda) |
列出有关磁盘和分区的信息 | lsblk (简单) --或者-- fdisk -l (详细) |
列出分区 ID (UUID) | blkid |
列出已挂载的文件系统、其挂载点、 以及每个文件系统已使用和可用的兆字节数 |
df -m |
列出 USB 设备 | lsusb |
列出 PCI 设备 | lspci |
显示网卡详细信息 | lshw -C network |
显示网络接口 | ifconfig -a --或者-- ip link show --或者-- netstat -i |
显示路由表 | ip route | column -t --或者--netstat -r |
显示 UEFI/BIOS 信息 | dmidecode -t bios |
显示内核版本、网络主机名等 | uname -a |
您是否有我遗漏的最喜欢的命令? 请添加评论并分享。
5 条评论