通用查询命令
hwinfo
- probe for hardware
链接:https://github.com/openSUSE/hwinfo
该命令利用一系列的technical specification(SMBIOS、PCI、USB、SCSI等)来实现hardware detection,并生成一份system log。探测的主要类别有cpu、disk、memory、network、pci等等。主要使用方法:
生成一份全面的、简略的报告
hwinfo --short
针对特定硬件的报告
hwinfo [--short] --<HARDWARE_ITEM>
lshw
- Hardware Lister
链接:https://ezix.org/project/wiki/HardwareLiSter
lshw 以树状组织所有设备,具有多种输出格式,包括表格、树形、xml、html、json,具有很强的结构性。默认打印所有硬件,可以使用-C
限制类别。
lshw [-short] -C <class>
dmidecode
- dumping a computer’s DMI (some say SMBIOS) table contents
内核版本、hostname、operation system-uname -a
子系统的特定查询命令
CPU
lscpu
lscpu
>>>
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 46 bits physical, 48 bits virtual
CPU(s): 96
On-line CPU(s) list: 0-95
Thread(s) per core: 2
Core(s) per socket: 24
Socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Gold 6240R CPU @ 2.40GHz
Stepping: 7
CPU MHz: 2400.000
CPU max MHz: 4000.0000
CPU min MHz: 1000.0000
BogoMIPS: 4800.00
Virtualization: VT-x
L1d cache: 1.5 MiB
L1i cache: 1.5 MiB
L2 cache: 48 MiB
L3 cache: 71.5 MiB
NUMA node0 CPU(s): 0-23,48-71
NUMA node1 CPU(s): 24-47,72-95
...
重要的信息包括,CPU型号x86_64
,可用线程数96
,CPU核心数,CPU数,Cache size。
CPU cacheline size
一般为32、64或128比特,可以使用getconf
getconf -a | grep -i CACHE
LEVEL1_ICACHE_SIZE 32768
LEVEL1_ICACHE_ASSOC 8
LEVEL1_ICACHE_LINESIZE 64
LEVEL1_DCACHE_SIZE 32768
LEVEL1_DCACHE_ASSOC 8
LEVEL1_DCACHE_LINESIZE 64
memory
内存使用情况 - free
free -h
total used free shared buff/cache available
Mem: 187Gi 181Gi 3.8Gi 546Mi 1.9Gi 3.8Gi
Swap: 8.0Gi 7.9Gi 133Mi
lspci
- list all PCI devices
lsusb
- list USB devices
内存设备信息
sudo dmidecode -t memory
Handle 0x0041, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Single-bit ECC
Maximum Capacity: 9 TB
Error Information Handle: Not Provided
Number Of Devices: 24
Handle 0x0042, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x0041
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 16384 MB
Form Factor: DIMM
Set: None
Locator: CPU0_C0D0
Bank Locator: NODE 1
Type: DDR4
Type Detail: Synchronous
Speed: 2933 MT/s
Manufacturer: Samsung
Serial Number: 44733D86
Asset Tag: CPU0_C0D0_AssetTag
Part Number: M393A2K43DB2-CVF
Rank: 2
Configured Memory Speed: 2933 MT/s
Minimum Voltage: 1.2 V
Maximum Voltage: 1.2 V
Configured Voltage: 1.2 V
...
包括了设备厂商、内存大小、内存速度等信息。
硬盘
查看硬盘分区和挂载情况(lsblk - list block devices)
默认打印
lsblk [device file]
----------------------
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 7.3T 0 disk
├─sda1 8:1 0 1M 0 part
└─sda2 8:2 0 1G 0 part
sdb 8:16 0 447.1G 0 disk
├─sdb1 8:17 0 1M 0 part
├─sdb2 8:18 0 1G 0 part /boot
└─sdb3 8:19 0 446.1G 0 part
└─ubuntu--vg--1-ubuntu--lv 253:0 0 200G 0 lvm /
sdc 8:32 0 447.1G 0 disk
├─sdc1 8:33 0 1M 0 part
├─sdc2 8:34 0 1G 0 part
└─sdc3 8:35 0 446.1G 0 part
└─ubuntu--vg--3-ubuntu--lv 253:1 0 200G 0 lvm
特殊打印格式
lsblk [--perms | -m] [--list | -l] [--fs | -f] [-o <commas>] [--sort <column>]
查看硬盘的读写速率
how-fast-is-linux-sata-hard-disk.html 里介绍了dd(1) - convert and copy a file 和 hdparm(8) - get/set SATA/IDE device parameters 两种方式,前者自己手动进行读写测试,后者看起来更加完备,片段如下
sudo hdparm -tT /dev/sdc
> /dev/sdc:
> Timing cached reads: 19000 MB in 2.00 seconds = 9511.74 MB/sec
> Timing buffered disk reads: 1540 MB in 3.00 seconds = 512.95 MB/sec
filesystem
查看挂载分区的文件系统状态 mount
# 使用mount即可, column -t 制表
mount | column -t
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,noexec,relatime,size=1967860k,nr_inodes=491965,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=402568k,mode=755)
/dev/vda1 on / type ext4 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
可以看到挂载的文件系统,还是有许多其他类型并非仅仅是硬盘内容。
查看文件分区的使用情况 df
- report file system disk space usage
df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 394M 1.1M 393M 1% /run
/dev/vda1 40G 5.8G 32G 16% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 394M 0 394M 0% /run/user/1000
判断一个磁盘是ssd还是hhd
how-to-find-if-the-disk-is-ssd-or-hdd-in-linux里面有两种直接的方法:
- 判断是否是“旋转的”,因为hhd是包括需要旋转磁盘的,对应的命令很直接
lsblk -d -o name,rota
> sda 1 # sda 是hhd
> sdb 0 #
- 查找硬盘型号 + 搜索
dmesg | grep -i -e scsi -e ata
> ...
> [ 18.381057] scsi 14:0:1:0: Direct-Access ATA HFS480G32FEH-741 7Q00 PQ: 0 ANSI: 6
> ...
其中类似 HFS480G32FEH-741 的可以用来检索型号
查看文件的占用空间 - ls
、du
对于单独的文件, 使用ls
ll -h db.json
-rw-r--r-- 1 zyh zyh 275K Oct 19 09:55 db.json
对于目录,使用 du(1)
- estimate file space usage
du -h -d 1 .
151M ./node_modules
8.0K ./.github
3.7M ./themes
240K ./source
16K ./scaffolds
156M .