Linux hardinfo命令

hardinfo命令 - 一个图形化的硬件信息查看工具,可以详细显示Linux系统的硬件配置和规格信息。
注意:hardinfo是一个GUI(图形用户界面)应用程序,需要在桌面环境中运行。对于没有GUI的服务器系统,可以使用其他命令行工具如lshwdmidecode等。

命令简介

hardinfo(Hardware Information)是一个开源的系统信息查看工具,使用GTK+编写,提供了一个直观的图形界面来查看计算机的硬件和系统信息。它可以生成详细的硬件报告,支持导出为HTML或纯文本格式。

安装方法

# Ubuntu/Debian
sudo apt-get install hardinfo

# RHEL/CentOS 7(需要EPEL仓库)
sudo yum install epel-release
sudo yum install hardinfo

# RHEL/CentOS 8/Fedora
sudo dnf install hardinfo

# Arch Linux
sudo pacman -S hardinfo

# 从源码编译安装
git clone https://github.com/lpereira/hardinfo
cd hardinfo
mkdir build && cd build
cmake ..
make
sudo make install

# 验证安装
hardinfo --version

基本语法

# 启动图形界面
hardinfo

# 命令行选项
hardinfo [选项]

# 生成报告
hardinfo -r [格式] > 报告文件

常用选项

选项 说明
--version 显示版本信息
--help 显示帮助信息
-r, --report 生成系统报告
-f, --format=格式 指定报告格式(html, text)
-b, --benchmark 运行基准测试
-a, --all 生成所有信息的报告
-m, --module=模块 只生成指定模块的报告
-t, --tab=标签 启动时直接打开指定标签页
--list-modules 列出所有可用模块
--list-tabs 列出所有可用标签页

图形界面功能

处理器信息
  • CPU型号和频率
  • 核心数量和线程
  • 缓存大小
  • 指令集支持
  • 温度和频率监控
内存信息
  • 总内存容量
  • 内存类型和速度
  • 内存插槽信息
  • 内存使用情况
  • 交换空间信息
存储信息
  • 硬盘型号和容量
  • 分区信息
  • 文件系统类型
  • RAID配置
  • SMART状态
显示信息
  • 显卡型号
  • 显存容量
  • 显示器信息
  • OpenGL支持
  • 分辨率设置
网络信息
  • 网卡型号
  • MAC地址
  • IP地址配置
  • 网络连接状态
  • 蓝牙设备
系统信息
  • 操作系统版本
  • 内核版本
  • 启动时间
  • 已安装软件包
  • 环境变量

使用示例

示例1:启动图形界面

# 启动hardinfo图形界面
hardinfo

# 启动时直接打开"计算机"标签页
hardinfo -t computer

# 启动时直接打开"设备"标签页
hardinfo -t devices

示例2:生成HTML格式报告

# 生成HTML格式的系统报告
hardinfo -r html > system_report.html

# 生成简化版的HTML报告(不包含基准测试)
hardinfo -r html -m computer,memory,storage > hardware_report.html

# 在浏览器中查看报告
firefox system_report.html

示例3:生成纯文本格式报告

# 生成纯文本格式的系统报告
hardinfo -r text > system_info.txt

# 查看CPU信息
hardinfo -r text -m computer | grep -A 20 "Processor"

# 查看内存信息
hardinfo -r text -m memory > memory_info.txt

示例4:列出所有可用模块

# 查看hardinfo支持的所有信息模块
hardinfo --list-modules

# 常见模块包括:
# computer     - 计算机和处理器信息
# memory       - 内存信息
# storage      - 存储设备信息
# display      - 显示和显卡信息
# network      - 网络设备信息
# pci          - PCI设备信息
# usb          - USB设备信息
# benchmarks   - 基准测试结果

示例5:生成特定模块的报告

# 只生成CPU和内存信息的报告
hardinfo -r html -m computer,memory > cpu_memory.html

# 只生成存储设备报告
hardinfo -r text -m storage > storage_devices.txt

# 生成网络设备报告
hardinfo -r html -m network > network_info.html

示例6:运行基准测试

# 运行CPU基准测试
hardinfo -b -m cpu

# 运行所有基准测试并生成报告
hardinfo -r html -a > benchmark_report.html

# 在图形界面中查看基准测试结果
hardinfo -t benchmarks

示例7:自动化硬件信息收集脚本

#!/bin/bash
# 自动化硬件信息收集脚本
REPORT_DIR="/var/log/hardware_reports"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
HTML_REPORT="$REPORT_DIR/hardware_report_$TIMESTAMP.html"
TEXT_REPORT="$REPORT_DIR/hardware_info_$TIMESTAMP.txt"

# 创建报告目录
mkdir -p $REPORT_DIR

echo "开始收集硬件信息..." | tee $TEXT_REPORT
echo "收集时间: $(date)" | tee -a $TEXT_REPORT
echo "主机名: $(hostname)" | tee -a $TEXT_REPORT
echo "" | tee -a $TEXT_REPORT

# 使用hardinfo收集信息
echo "=== hardinfo硬件报告 ===" | tee -a $TEXT_REPORT
hardinfo --version | tee -a $TEXT_REPORT
echo "" | tee -a $TEXT_REPORT

# 生成HTML报告
echo "生成HTML报告: $HTML_REPORT"
hardinfo -r html > $HTML_REPORT

# 提取关键信息到文本报告
echo "1. 处理器信息:" | tee -a $TEXT_REPORT
hardinfo -r text -m computer | grep -A 5 "Processor" | tee -a $TEXT_REPORT

echo "" | tee -a $TEXT_REPORT
echo "2. 内存信息:" | tee -a $TEXT_REPORT
hardinfo -r text -m memory | grep -A 5 "Memory" | tee -a $TEXT_REPORT

echo "" | tee -a $TEXT_REPORT
echo "3. 存储设备信息:" | tee -a $TEXT_REPORT
hardinfo -r text -m storage | grep -A 10 "Storage" | tee -a $TEXT_REPORT

echo "" | tee -a $TEXT_REPORT
echo "4. 操作系统信息:" | tee -a $TEXT_REPORT
hardinfo -r text -m computer | grep -A 3 "Operating System" | tee -a $TEXT_REPORT

echo "" | tee -a $TEXT_REPORT
echo "报告生成完成!" | tee -a $TEXT_REPORT
echo "HTML报告: $HTML_REPORT" | tee -a $TEXT_REPORT
echo "文本摘要: $TEXT_REPORT" | tee -a $TEXT_REPORT

模块详细信息

模块名称 包含信息 命令行示例
computer 计算机名称、操作系统、内核版本、CPU信息、主板信息 hardinfo -r text -m computer
memory 物理内存、交换空间、内存插槽、内存速度 hardinfo -r text -m memory
storage 硬盘、SSD、分区、文件系统、RAID hardinfo -r text -m storage
display 显卡、显示器、分辨率、OpenGL信息 hardinfo -r text -m display
network 网卡、IP地址、网络连接、蓝牙 hardinfo -r text -m network
pci 所有PCI设备详细信息 hardinfo -r text -m pci
usb 所有USB设备详细信息 hardinfo -r text -m usb
benchmarks CPU、内存、磁盘基准测试结果 hardinfo -r text -m benchmarks
bios BIOS/UEFI信息、启动设置 hardinfo -r text -m bios
devices 所有设备摘要信息 hardinfo -r text -m devices

基准测试功能

hardinfo内置基准测试
测试项目 说明 测试内容
CPU Blowfish CPU加密性能测试 测试CPU进行Blowfish加密的速度
CPU CryptoHash CPU哈希计算性能 测试多种哈希算法(MD5、SHA1、SHA256等)的计算速度
CPU Fibonacci CPU整数计算性能 测试计算斐波那契数列的速度
CPU N-Queens CPU逻辑运算性能 测试解决N皇后问题的速度
FPU FFT 浮点运算性能 测试快速傅里叶变换的计算速度
FPU Raytracing 浮点运算性能 测试光线追踪的计算速度

常见问题与解决方案

解决方案:使用命令行生成报告或使用其他命令行工具

# 1. 使用hardinfo命令行生成报告
hardinfo -r text > system_info.txt

# 2. 使用其他命令行工具组合
# CPU信息
cat /proc/cpuinfo
lscpu

# 内存信息
free -h
cat /proc/meminfo

# 磁盘信息
lsblk
df -h
fdisk -l

# PCI设备
lspci
lspci -v

# USB设备
lsusb
lsusb -v

# 完整硬件信息(需要root)
sudo lshw
sudo lshw -html > hardware.html
sudo dmidecode

可能原因和解决方案:

# 1. 权限问题(某些信息需要root权限)
sudo hardinfo

# 2. 使用root权限生成报告
sudo hardinfo -r html > full_report.html

# 3. 更新hardinfo到最新版本
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install --only-upgrade hardinfo

# 4. 检查依赖库
ldd $(which hardinfo)

# 5. 使用详细模式查看错误
hardinfo --debug 2>&1 | grep -i error

# 6. 结合其他工具验证
# 验证CPU信息
lscpu
cat /proc/cpuinfo | grep "model name"

# 验证内存信息
sudo dmidecode -t memory

# 验证磁盘信息
sudo smartctl -a /dev/sda

方法:生成完整报告并分享

#!/bin/bash
# 生成完整技术支持报告
REPORT_FILE="system_support_report_$(date +%Y%m%d).tar.gz"
REPORT_DIR="support_report_$(date +%Y%m%d)"

# 创建临时目录
mkdir -p $REPORT_DIR
cd $REPORT_DIR

# 1. 生成hardinfo完整报告
echo "生成hardinfo报告..."
hardinfo -r html > hardware_info.html
hardinfo -r text > hardware_info.txt

# 2. 收集系统日志
echo "收集系统日志..."
dmesg > dmesg.log 2>&1
journalctl --since="1 week ago" > systemd_journal.log 2>&1

# 3. 收集关键配置文件
echo "收集配置文件..."
cp /etc/fstab ./ 2>/dev/null
cp /etc/hosts ./ 2>/dev/null
cp /etc/resolv.conf ./ 2>/dev/null

# 4. 收集硬件信息(使用其他工具)
echo "收集额外硬件信息..."
lspci -vv > lspci_detailed.log 2>&1
lsusb -v > lsusb_detailed.log 2>&1 2>/dev/null
lscpu > lscpu_info.log 2>&1
free -h > memory_info.log 2>&1
df -h > disk_usage.log 2>&1

# 5. 创建说明文件
cat > README.txt << EOF
技术支持报告
生成时间: $(date)
主机名: $(hostname)
操作系统: $(lsb_release -d 2>/dev/null || cat /etc/os-release | grep PRETTY_NAME)
内核版本: $(uname -r)

包含的文件:
1. hardware_info.html - hardinfo完整HTML报告
2. hardware_info.txt - hardinfo文本报告
3. dmesg.log - 内核日志
4. systemd_journal.log - 系统日志(最近一周)
5. 各种硬件信息日志和配置文件

请将所有文件提供给技术支持人员。
EOF

# 打包所有文件
cd ..
tar -czf $REPORT_FILE $REPORT_DIR
rm -rf $REPORT_DIR

echo "技术支持报告已生成: $REPORT_FILE"
echo "文件大小: $(du -h $REPORT_FILE | cut -f1)"

相关命令对比

工具 类型 主要功能 优点 缺点
hardinfo GUI/CLI 完整的硬件信息查看和基准测试 界面友好,信息全面,支持导出 需要GUI,部分信息可能需要root
lshw CLI 详细硬件配置查看 信息非常详细,支持多种输出格式 需要root权限,输出可能冗长
dmidecode CLI 读取DMI(SMBIOS)信息 获取BIOS/主板等底层信息 需要root,信息依赖主板制造商
lscpu CLI CPU信息 简单快速,不需要root 只显示CPU信息
lsblk CLI 块设备信息 清晰的树状显示,不需要root 只显示块设备信息
inxi CLI 完整的系统信息工具 信息全面,输出格式友好 需要单独安装
neofetch CLI 系统信息显示(美化) 输出美观,适合截图分享 信息相对简略

实用脚本

硬件规格检查脚本
#!/bin/bash
# 硬件规格快速检查脚本
echo "=== 硬件规格快速检查 ==="
echo "检查时间: $(date)"
echo "主机名: $(hostname)"
echo ""

# 使用hardinfo获取关键信息(如果可用)
if command -v hardinfo &> /dev/null; then
    echo "1. 处理器信息:"
    hardinfo -r text -m computer | grep -E "(Processor|CPU|Cores|MHz)" | head -10

    echo ""
    echo "2. 内存信息:"
    hardinfo -r text -m memory | grep -E "(Memory|RAM|Swap)" | head -10

    echo ""
    echo "3. 存储信息:"
    hardinfo -r text -m storage | grep -E "(Storage|Disk|Size)" | head -10
else
    echo "hardinfo未安装,使用替代命令..."
    echo ""
    echo "1. 处理器信息:"
    lscpu | grep -E "(Model name|CPU\(s\)|MHz|Thread)" | head -10

    echo ""
    echo "2. 内存信息:"
    free -h

    echo ""
    echo "3. 存储信息:"
    lsblk -o NAME,SIZE,TYPE,MOUNTPOINT | grep -v loop
fi

echo ""
echo "4. 操作系统信息:"
if [ -f /etc/os-release ]; then
    grep PRETTY_NAME /etc/os-release | cut -d= -f2 | tr -d '"'
else
    cat /etc/issue | head -1
fi
echo "内核版本: $(uname -r)"
echo "系统架构: $(uname -m)"

echo ""
echo "5. 显卡信息:"
if command -v lspci &> /dev/null; then
    lspci | grep -i vga
else
    echo "lspci不可用"
fi

echo ""
echo "检查完成!"
硬件报告生成器
#!/bin/bash
# 自动化硬件报告生成器
OUTPUT_DIR="$HOME/HardwareReports"
HTML_REPORT="$OUTPUT_DIR/硬件报告_$(date +%Y%m%d_%H%M%S).html"
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")

# 创建输出目录
mkdir -p "$OUTPUT_DIR"

# 生成HTML报告头
cat > "$HTML_REPORT" << EOF



    
    硬件系统报告
    


    

硬件系统报告

生成时间: $TIMESTAMP

主机名: $(hostname)

操作系统: $(lsb_release -d 2>/dev/null | cut -f2- || cat /etc/os-release | grep PRETTY_NAME | cut -d= -f2 | tr -d '"')

内核版本: $(uname -r)


EOF # 收集硬件信息并追加到HTML报告 echo "

1. 处理器信息

" >> "$HTML_REPORT" echo "
" >> "$HTML_REPORT"
lscpu >> "$HTML_REPORT" 2>/dev/null || echo "无法获取CPU信息" >> "$HTML_REPORT"
echo "
" >> "$HTML_REPORT" echo "

2. 内存信息

" >> "$HTML_REPORT" echo "
" >> "$HTML_REPORT"
free -h >> "$HTML_REPORT" 2>/dev/null || echo "无法获取内存信息" >> "$HTML_REPORT"
echo "
" >> "$HTML_REPORT" echo "

3. 存储设备信息

" >> "$HTML_REPORT" echo "
" >> "$HTML_REPORT"
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT >> "$HTML_REPORT" 2>/dev/null || echo "无法获取存储设备信息" >> "$HTML_REPORT"
echo "
" >> "$HTML_REPORT" echo "

4. 磁盘使用情况

" >> "$HTML_REPORT" echo "
" >> "$HTML_REPORT"
df -h >> "$HTML_REPORT" 2>/dev/null || echo "无法获取磁盘使用情况" >> "$HTML_REPORT"
echo "
" >> "$HTML_REPORT" # 如果有hardinfo,添加更详细的信息 if command -v hardinfo &> /dev/null; then echo "

5. Hardinfo详细报告(摘要)

" >> "$HTML_REPORT" echo "
" >> "$HTML_REPORT"
    hardinfo -r text -m computer,memory,storage 2>/dev/null | head -100 >> "$HTML_REPORT" || echo "无法获取hardinfo信息" >> "$HTML_REPORT"
    echo "
" >> "$HTML_REPORT" fi # 结束HTML报告 cat >> "$HTML_REPORT" << EOF

报告生成完成。此报告包含基本的硬件信息,如需更详细的信息请使用hardinfo工具。

EOF echo "硬件报告已生成: $HTML_REPORT" echo "请在浏览器中打开查看" # 尝试在默认浏览器中打开(如果支持) if command -v xdg-open &> /dev/null; then xdg-open "$HTML_REPORT" & elif command -v gnome-open &> /dev/null; then gnome-open "$HTML_REPORT" & fi

最佳实践

推荐做法
  • 在购买新硬件或升级系统后运行hardinfo记录基准配置
  • 定期生成硬件报告用于系统维护记录
  • 在进行系统优化前保存硬件基准测试结果
  • 使用HTML格式报告便于分享和存档
  • 结合其他工具(如lshw、dmidecode)验证硬件信息
  • 在服务器上使用命令行版本生成报告
  • 保存不同时间点的报告用于对比硬件状态变化
  • 在虚拟机中记录客户机硬件配置
避免的做法
  • 不要在生产服务器上安装不必要的GUI工具
  • 不要仅依赖hardinfo进行关键硬件诊断
  • 不要在性能测试中只使用hardinfo的基准测试
  • 不要忽略权限问题导致的信息不完整
  • 不要将包含敏感信息的报告公开发布
  • 不要在不了解的情况下修改硬件配置
  • 不要仅凭一次测试结果判断硬件性能
  • 不要在没有备份的情况下进行硬件测试

相关命令

lshw

列出硬件配置详细信息

sudo lshw
sudo lshw -html > hw.html
dmidecode

读取DMI/SMBIOS信息

sudo dmidecode
sudo dmidecode -t memory
inxi

完整的系统信息工具

inxi -F
inxi -Fxxxza
neofetch

系统信息显示工具(美化)

neofetch
neofetch --stdout