Linux下不同Windows下有很多能够查看硬件详情的配置及软件,不过通过linux提供的shell命令就能查看到我们所需的信息。
下面主要介绍常用查看硬件信息的命令。
1. 查看CPU各种信息
最常用的查看CPU信息的方法,是通过 /proc/cpuinfo文件查看

[root@CentOS-5U4-64 ~]# cat /proc/cpuinfo

/proc/cpuinfo文件提供了有关系统CPU的多种信息。如果需要查看某一详细信息可使用grep将其过滤出来

1.1. 查看CPU的型号

如果想查看CPU的型号,使用下述命令:

[root@CentOS-5U4-64 ~]# cat /proc/cpuinfo|grep "model name"
model name : Intel(R) Xeon(R) CPU E5506 @ 2.13GHz

查看CPU个数

[root@HOST41 ~]# cat /proc/cpuinfo |grep "physical id"
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 1
physical id : 1
physical id : 1
physical id : 1

如果physical id 后面的编号是从0 开始的,如果1 则代表2颗CPU。
注:如果是安装了虚拟化的CentOS 及RedHat系统physical id 显示的信息不准确,其physical id 代表的时CPU的核数

1.2. 查看机器上CPU的核数

[root@HOST41 ~]# cat /proc/cpuinfo |grep "processor"
processor : 0
processor : 1
processor : 2
processor : 3
processor : 4
processor : 5
processor : 6
processor : 7

processor 编号也是从0开始的,上面所示现在是最终以7结尾,则说明机器共有8核,但是该机器有两颗CPU,所以每颗CPU都是4核的。
使用dmidecode也是能够查看到CPU信息的。

[root@HOST41 ~]# dmidecode |grep CPU
Socket Designation: CPU Node 1
Version: Intel(R) Xeon(R) CPU E5506 @ 2.13GHz
Socket Designation: CPU Node 0
Version: Intel(R) Xeon(R) CPU E5506 @ 2.13GHz
Internal Reference Designator: FAN7 - FAN7/CPU1
Internal Reference Designator: FAN8 - FAN8/CPU2

从这里能够看到CPU的型号(Version)及其插槽(Socket Designation)个数,这里共两个CPU插槽,每个上面都插着一颗Intel Xeon E5506@ 2.13GHz的CPU。
上面通过查看/proc/cpuinfo文件内容,得到CPU的个数,命令如下:

cat /proc/cpuinfo |grep "physical id"

如果有些机器得到的CPU的个数信息不正确,那么就可以在这里查看到CPU的个数了。
2. 查看内存信息

2.1. 使用free查看内存大小

最简单查看内存大小的命令就是free了,通过free 可以查看。

[root@HOST41 ~]# free
total used free shared buffers cached
Mem: 32950784 15305440 17645344 0 1316824 13347500
-/+ buffers/cache: 641116 32309668
Swap: 34996216 0 34996216

上表中free输出的内容解释:
第二行(mem)
n total:总计物理内存的大小。
n used:已使用多大。
n free:可用有多少。
n Shared:多个进程共享的内存总额。
n Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached)
n used:已使用多大。
n free:可用有多少。
第四行Swap
n 不过多解释了,就是Swap分区的大小。
第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别
这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是8908KB,已用内存是377116KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached。
第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别
这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是8908KB,已用内存是377116KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
下面是buffers与cached的区别。
Buffer:是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages。
Cache:是用来给文件做缓冲。
那就是说,buffers是用来存储,目录里面有什么内容,权限等等。而cached直接用来记忆我们打开的文件,如果你想知道他是不是真的生效,你可以试一下,先后执行两次命令#man XXX ,你就可以明显的感觉到第二次的开打的速度快很多。
Linux将你暂时不使用的内存作为文件和数据缓存,以提高系统性能,当你需要这些内存时,系统会自动释放使用free命令将used的值减去 buffer和cache的值就是你当前真实内存使用。

2.2. 使用dmidecode命令查看内存信息

其实使用free查到的信息仅仅是当前系统识别出的,能够使用的内存容量(可使用内存容量可以自己定义),并不能代表插入的内存的容量大小。
所以最准确还是使用dmidecode命令查看。

2.2.1. 查看内存大小及插槽个数

[root@HOST41 ~]# dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range
Size: 4096 MB
Size: 4096 MB
Size: 4096 MB
Size: No Module Installed
Size: 4096 MB
Size: No Module Installed
Size: 4096 MB
Size: 4096 MB
Size: 4096 MB
Size: No Module Installed
Size: 4096 MB
Size: No Module Installed
Size: 4096 kB

从这里能够查看出内存插槽的个数及插槽上面的内存容量大小。
上面”Size:”后面就是插槽内的内存大小。显示为No Module Installed则是没有内存条的插槽。
注:曙光机器通过此命令查询时,最后会多处一个4M大小的插槽,不知道怎么回事,主板本身只有12个插槽,统计出来却有13个,最后一个可能是虚拟出来的,不过还不太确定。DeLL C2100机器统计数据很正常。

2.2.2. 查看内存频率

如果你想知道当前机器上的内存的频率,而又苦于无法停机打开机箱查看时,可以用下述命令进行查看

[root@HOST42 ~]# dmidecode|grep -A16 "Memory Device"|grep 'Speed'
Speed: 1333 MHz (0.8 ns)
Speed: 1333 MHz (0.8 ns)
Speed: 1333 MHz (0.8 ns)
Speed: 1333 MHz (0.8 ns)
Speed: 1333 MHz (0.8 ns)
Speed: 1333 MHz (0.8 ns)
Speed: 1333 MHz (0.8 ns)
Speed: 1333 MHz (0.8 ns)
Speed: 1333 MHz (0.8 ns)
Speed: 1333 MHz (0.8 ns)
Speed: 1333 MHz (0.8 ns)
Speed: 1333 MHz (0.8 ns)
Speed: 33 MHz (30.3 ns)

2.2.3. 主板支持的最大内存容量

如果需要升级内存,那么我们需要了解主板能够支撑多大的内存,以便于我们的硬件升级规划。可以通过下述命令查看主板支持的最大的内存的容量。

[root@HOST42 ~]# dmidecode|grep -P 'Maximum\s+Capacity'
Maximum Capacity: 384 GB
Maximum Capacity: 384 GB
Maximum Capacity: 4 MB

3. 查看硬盘信息
查看硬盘当然要使用 fdisk –l 命令了 ,能够详细列出硬盘的信息,如总共的大小,几个分区,每个分区从哪个柱面到哪个柱面,块数量等等。

[root@HOST42 ~]# fdisk -l
Disk /dev/sda: 145.9 GB, 145999527936 bytes
255 heads, 63 sectors/track, 17750 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 17750 142472452+ 8e Linux LVM
Disk /dev/sdb: 145.9 GB, 145999527936 bytes
255 heads, 63 sectors/track, 17750 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 17750 142576843+ 83 Linux

一般硬盘的编号都是从a开始,按照字母排列顺序依此类推。一般IDE接口的硬盘显示出的为/dev/hda~/dev/hdz,如果是Sata口及SAS口的硬盘则是显示为/dev/sda~/dev/sdz(现在服务器大多数均为Sata盘或SAS盘)。
/dev/sda 或/dev/hda代表一块硬盘。
n /dev/sda1 ~ /dev/sda”n” ,代表的时sda盘上的第几个分区。
n “n”为数字从1开始依次排序。
4. 查看网卡信息
查看网卡型号,Linux操作系统,有时候会遇到无法找到网卡驱动,这个时候查看网卡型号的命令就能够帮助我们定位网卡型号。然后就可以根据网卡型号寻找对性的网卡去动了。
最常用的查看网卡型命令有lspci及kudzu。

4.1. 使用Lspci查看网卡型号

[root@HOST42 ~]# lspci |grep Ethernet
02:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)
07:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
07:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)

4.2. 使用Kudzu查看网卡型号

[root@HOST42 ~]# kudzu -p -c network
-
class: NETWORK
bus: PCI
detached: 0
device: eth0
driver: e1000e
desc: "Intel Corporation 82572EI Gigabit Ethernet Controller (Copper)"
network.hwaddr: 00:15:17:db:e3:99
vendorId: 8086
deviceId: 107d
subVendorId: 8086
subDeviceId: 1082
pciType: 1
pcidom: 0
pcibus: 2
pcidev: 0
pcifn: 0
-
class: NETWORK
bus: PCI
detached: 0
device: eth1
driver: igb
desc: "Intel Corporation 82576 Gigabit Network Connection"
network.hwaddr: 00:30:48:f2:66:dc
vendorId: 8086
deviceId: 10c9
subVendorId: 15d9
subDeviceId: 10c9
pciType: 1
pcidom: 0
pcibus: 7
pcidev: 0
pcifn: 0
-
class: NETWORK
bus: PCI
detached: 0
device: eth2
driver: igb
desc: "Intel Corporation 82576 Gigabit Network Connection"
network.hwaddr: 00:30:48:f2:66:dd
vendorId: 8086
deviceId: 10c9
subVendorId: 15d9
subDeviceId: 10c9
pciType: 1
pcidom: 0
pcibus: 7
pcidev: 0
pcifn: 1

4.3. 检查网卡现速率

有时候,命名网卡为千兆网卡,交换机为千兆交换机,但是速度却只有百兆速度。那么就需要查看是否为网线的问题,在linux系统下可先查看一下,网卡现在的状态。

[root@HOST42 ~]# ethtool eth1
Settings for eth1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: umbg
Wake-on: g
Current message level: 0x00000003 (3)
Link detected: yes