Linux最常用的几个查看硬件信息的命令
仅个人想法,会持续不间断更新和改进。
怎么忽然来硬的呢,因为在Linux的世界中,系统是灵活,但是骨架同样重要。
而跟踪确认硬件信息对于我们同样重要。
同时还增加了系统的关机。
查看块设备的lsblk
lsblk 命令可以查看系统中的块设备信息
$ lsblk
这个命令会列出系统中所有的块设备(比如硬盘、分区和挂载点)的信息。
默认情况下,它会显示每个设备的名称、大小、类型、挂载点等信息。
如果需要显示更详细的信息,可以使用 -a 或 –all 选项:
$ lsblk -a
这会显示完整的块设备信息,包括未挂载的设备。
当然,还可以根据需求,定制化输出,不过单单这个命令,足矣。
显示管理磁盘分区 fdisk
fdisk是用于检查一个磁盘上分区信息最通用的命令。
fdisk可以显示分区信息及一些细节信息,比如文件系统类型等。
设备的名称通常是/dev/sda、/dev/sdb 等。
对于以前的设备有可能还存在设备名为 /dev/hd* (IDE)的设备,这个设备逐步淘汰了。
fdisk也可以用于创建并操控分区表信息,支持主任GPU、MBR、Sun、SGI和BSD。
块设备可以划分为一个或多个称为分区的逻辑磁盘。这种划分的记录会保存在分区表,通常位于磁盘的第 0 扇区。
fdisk的官方解释为:
fdisk – manipulate disk partition table
语法格式为:
$ fdisk [options] device
$ fdisk -l [device…]
其中一些常用的参数为:
-l 列出指定的外围设备的分区表状况
-L, –color[=when] :将输出颜色化,其中when可以指定为auto, never or always. 默认为 auto.
显示当前系统的分区情况
这个也是我唯一推荐入门者使用的 命令,仅仅list显示出目前的系统分区。
万万不要输入fdisk执行其他操作,极易格式化硬盘,切记切记。
$ fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Disk /dev/sda: 256.1 GB, 256060514304 bytes, 500118192 sectors # 磁盘空间及扇区信息
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
Disk identifier: FAF37680-0ECE-4BE7-93FC-E87A8F2F6455
显示硬件信息的hwinfo
hwinfo 又一个用于显示硬件信息的命令。
可以获得 Linux 系统的各种硬件组件(如CPU、内存、显卡、硬盘等)的详细信息。
显示所有硬件信息:
sudo hwinfo
列出系统上几乎所有可用硬件的详细信息。
指定特定硬件信息:
sudo hwinfo –cpu
sudo hwinfo –memory
sudo hwinfo –gfxcard
sudo hwinfo –disk
通过在命令后添加 –cpu、–memory、–gfxcard、–disk 等参数,获取特定硬件的信息。
列出系统硬件信息的lshw
lshw是Hardware Lister的缩写,直面意思即列出系统硬件信息。
可以显示关于计算机硬件组件(如处理器、内存、硬盘、网卡等)的详细信息,对于系统管理员和用户来说是一个非常有用的工具。
显示所有硬件信息
任何参数都不加的话,可用,信息极多,但是可用信息不多。
sudo lshw
这将输出系统中所有可用硬件的详细信息,包括硬件组件的制造商、型号、驱动程序等。
查看摘要硬件信息
显示摘要信息:相对而言,这个反而好一些,简单的就是有用的
sudo lshw -short
这将显示硬件的摘要信息,包括设备名、类别、描述等。
查看特定硬件信息(如网络、内存、硬盘等设备)
显示指定类型的硬件信息:
sudo lshw -C network
上述示例将仅显示网络相关的硬件信息。
比如还可以查看memory、cpu、disk等信息。
lshw提供了全面的硬件信息,帮助用户了解系统配置和硬件组件的细节。在查看和诊断硬件问题或了解系统配置时,它是一个非常有用的工具。
放空一下自我 free
free这个命令在Linux系统监控的工具里面,算是使用的比较多的一个。
使用man查看可知,官方含义为:
Display amount of free and used memory in the system
也就是显示可用、易用的系统内存,它直接读取/proc/meminfo文件。
默认的效果
先看下不加任何参数的时候,free的效果:
$ free
total used free shared buff/cache available
Mem: 32664832 15667736 674136 464892 16322960 15803156
Swap: 16449532 3039756 13409776
看起来很多的样子,但是不直观,我比较喜欢加上-h参数。
使用易读的参数
-h参数,跟前面的df等命令类似,此处的h表示human being的含义方便人类阅读。 除了这个还有-b,-k,-m,-g,含义分别为按照字节、KB、MB、GB的格式来显示。
$ free -h
total used free shared buff/cache available
Mem: 31G 14G 655M 453M 15G 15G
Swap: 15G 2.9G 12G
Wow,此时的显示简直好简洁。
说下其中的含义:
total : 表示总的物理内存大小,比如上面的就表示31GB的内存
used :表示已经使用的内存大小,比如上面的就是使用了14GB
free :表示可用多少
shared:表示多个进程共享的内存大小
buff/cache:表示磁盘缓存的大小,这里有两个方面,buff和cache,两个的含义不同
buff :something that has yet to be ‘writeen’ to disk ,还没有写入磁盘
cache: something that had been ‘read’ from the disk and store for later user,从磁盘读取的方便下一次使用
这里就设计到Linux的设计哲学,比如读取一个100G的文件,第一次所使用的时间总归是后面再次读取的时间的好几倍,当然前提是没有释放掉caches
available:当然含义为可用的内存容量大小
间隔显示内存状态
还有一个比较常用的就是,如果你希望过一段时间就看下free的情况,OK,使用参数-s,后面跟的单位是秒,也就是每个几秒,统计一下使用的内存情况,比如我们每个2s,显示一下
$ free -s 2
total used free shared buff/cache available
Mem: 32664832 15668528 670964 464892 16325340 15802360
Swap: 16449532 3039756 13409776
total used free shared buff/cache available
Mem: 32664832 15669760 669724 464892 16325348 15801124
Swap: 16449532 3039756 13409776
total used free shared buff/cache available
Mem: 32664832 15670220 669248 464892 16325364 15800652
Swap: 16449532 3039756 13409776
total used free shared buff/cache available
Mem: 32664832 15669264 670204 464892 16325364 15801624
Swap: 16449532 3039756 13409776
查看meminfo文件
$ cat /proc/meminfo
其实free读取的就是这个文件的某些信息,可以通过同步监控这个文件来check free的状态。
显示CPU架构的有关信息 lscpu
Linux的CPU设备查看器。lscpu命令用来显示cpu的相关信息。lscpu从sysfs和/proc/cpuinfo收集cpu体系结构信息,命令的输出比较易读 。
命令输出的信息包含cpu数量,线程,核数,socket和Nom-Uniform Memeor Access(NUMA),缓存等等。
官方定义为:
lscpu – display information about the CPU architecture
参数基本用处不大,默认即可,部分参数可以查看offline和online的设备信息。
默认实例
$ lscpu
Architecture: x86_64 #架构信息
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 64 #逻辑cpu颗数
On-line CPU(s) list: 0-63
Thread(s) per core: 2 #每个核心线程
Core(s) per socket: 16 #每个cpu插槽核数/每颗物理cpu核数
Socket(s): 2 #cpu插槽数
NUMA node(s): 2
Vendor ID: GenuineIntel #cpu厂商ID
CPU family: 6 #cpu系列
Model: 63 #型号
Model name: Intel(R) Xeon(R) CPU E5-2698 v3 @ 2.30GHz
Stepping: 2 #步进
CPU MHz: 1290.335 #cpu主频
BogoMIPS: 4604.47
Virtualization: VT-x #cpu支持的虚拟化技术
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 40960K
NUMA node0 CPU(s): 0-15,32-47
NUMA node1 CPU(s): 16-31,48-63
其中几个概念需要理解清楚,基本比较重要的都有了备注。
其中第一个为CPU(s),这个值为Socket * Core * Thread得出,也就是逻辑的CPU个数。
CPU(s): 64 #逻辑CPU数
On-line CPU(s) list: 0-63
Thread(s) per core: 2
Core(s) per socket: 16
socket: 2
而其他几个概念为:
Socket : 物理上的CPU插槽的数量,也就是物理的实体概念
Core:即平常说的单核、多核、四核等,即每个CPU上的核数
Thread:每个core上的线程数,即超线程。
lspci 显示当前设备的PCI总线信息
lspci命令用于显示PCI总线的信息,以及所有已连接的PCI设备信息。
官方定义为:
lspci – list all PCI devices
默认情况下,lspci会显示一个简短的设备列表。 使用使用一些参数来显示更详细的输出或供其他程序解析的输出。
不过需要注意的是,在许多操作系统上,对 PCI 配置空间的某些部分的访问仅限于 root,因此普通用户可用的 lspci 功能受到限制。
使用方法为:
$ lspci [options]
其中常用的三个选项为:
-n 以数字方式显示PCI厂商和设备代码
-t 以树状结构显示PCI设备的层次关系
-v 显示更详细的输出信息
显示当前主机的所有PCI总线信息:
默认无参数的显示
$ lspci
00:00.0 Host bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMI2 (rev 02)
00:01.0 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 1 (rev 02)
00:02.0 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2 (rev 02)
00:03.0 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3 (rev 02)
00:03.2 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3 (rev 02)
00:04.0 System peripheral: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 0 (rev 02)
00:04.1 System peripheral: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 1 (rev 02)
00:04.2 System peripheral: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 2 (rev 02)
……
以数字方式显示PCI厂商和设备代码
以数字形式显示
$ lspci -n
00:00.0 0600: 8086:2f00 (rev 02)
00:01.0 0604: 8086:2f02 (rev 02)
00:02.0 0604: 8086:2f04 (rev 02)
00:03.0 0604: 8086:2f08 (rev 02)
00:03.2 0604: 8086:2f0a (rev 02)
00:04.0 0880: 8086:2f20 (rev 02)
00:04.1 0880: 8086:2f21 (rev 02)
00:04.2 0880: 8086:2f22 (rev 02)
……
同时显示数字方式还有设备代码信息
$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMI2 [8086:2f00] (rev 02)
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 1 [8086:2f02] (rev 02)
00:02.0 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2 [8086:2f04] (rev 02)
00:03.0 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3 [8086:2f08] (rev 02)
00:03.2 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3 [8086:2f0a] (rev 02)
00:04.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 0 [8086:2f20] (rev 02)
00:04.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 1 [8086:2f21] (rev 02)
00:04.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMA Channel 2 [8086:2f22] (rev 02)
……
以树状结构显示PCI设备的层次关系:
$ lspci -t
lspci -t
-+-[0000:ff]-+-08.0
| +-08.2
| +-1f.0
| -1f.2
+-[0000:80]-+-01.0-[81]—-00.0
| +-04.0
| +-05.1
| +-05.2
| -05.4
+-[0000:7f]-+-08.0
| +-08.2
| +-0c.1
+-0c.2
Linux reboot/poweroff/halt 命令
Linux halt, poweroff, reboot 用来挂起、关机或者重启机器,成功后返回0。
这不是一个命令,这是三个命令,只不过三个命令的参数都是一致的。
官方定义为:
halt, poweroff, reboot – Halt, power-off or reboot the machine
其实这三个命令都可以通过shutdown来执行,并且相对而言shutdown的参数还更多一些。
语法
使用方法如下:
$ halt [OPTIONS…]
$ poweroff [OPTIONS…]
$ reboot [OPTIONS…]
参数如下所示:
–halt 将机器挂起,三个命令均相同
-p, –poweroff 将机器关机,三个命令均相同
–reboot 将机器重启,三个命令均相同
-f, –force 立即执行挂起、关机和重启,一般对于force而言,除非万不得已,否则进来莫用
-n, –no-sync 在挂起、关机或重启前不对硬盘进行同步,这个很危险呀,进来不要用呀
–no-wall 在挂起、关机或重启前不发送警告信息,对于多用户不友好
立即关机
接下来的三个命令一致,都是将电脑关机,不过这个用法总归感觉怪怪的,所以还是分开各司其职比较好。比如关机还是poweroff,重启还是reboot吧。
$ halt –poweroff
$ poweroff –poweroff
$ reboot –poweroff
声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/416632.html