linux系统特别是命令行模式下没有一个工具可能去集中的查看当前机器的硬件信息,但是linux把这些信息大都放在了/proc这个路径下,可以很方便的使用vi/less等文本查看工具去读出系统的相关信息。
以下是常用到的硬件信息的查看方式:
首先介绍下/proc下的一些重要信息:
/proc/cpuinfo cpu信息-包括频率,内核数等cpu的所有的信息
/proc/Dma DMA通道信息
/proc/pci pci信息
/proc/meminfo 内存
/proc/usb/devices usb设备信息
/proc/bus/input/devices 输入设备
一些查看系统信息的一些命令
查看所有硬件 lshal -s(--short)
查看pci信息 lspci -v
查看硬件信息 (bios/cpu/mem等) dmidecode
显示系统缓冲区信息 dmesg
查看简略cpu信息 lscpu
uname -a 查看系统体系结构
下面是一个查看综合信息的一个脚本,已在centos5 centos6系列上试过可以运行,需要在root下运行,其他用户也可以,不过可能部分信息无法显示。
其他版本linux可能需要做一些小的改动,没有具体试过,但在ubuntu上是可以用的。
#!/bin/bash
#
#gzk _ 20121210
#
echo "Host Name : `hostname`"
echo "System Version: `cat /etc/redhat-release`"
echo "Kernel Version: `uname -r`"
echo "CPU Type :`cat /proc/cpuinfo | grep 'model name' | cut -d : -f2 |uniq`"
echo "Memory Size : `free -m | grep Mem | awk '{print $2}'`M"
echo "Disk Size : `fdisk -l | grep Disk | head -n 1 | awk '{print $3$4}' | sed 's/,//g'`"
echo "Mainborad Ver : `dmidecode |grep -A16 "System Information$" |grep "Manufacturer:" |grep -v 'System'|awk '{print $2}'| head -n 1`"
echo "Network Card :`lspci | grep Ethernet | cut -d : -f3 | head -n 1`"
echo "Net-Card eth0 : ` ifconfig eth0 | grep "inet addr" | awk '{print $2}' |sed 's/^addr://g'` `ifconfig eth0 |grep 'HWaddr'|awk '{print $5}'`"
echo "Net-Card eth1 : ` ifconfig eth1 | grep "inet addr" | awk '{print $2}' |sed 's/^addr://g'` `ifconfig eth1 |grep 'HWaddr'|awk '{print $5}'`"
echo "Date Time : `date`"