【linux】Ubuntu 查询CPU、GPU、硬盘、内存等硬件信息

打印 上一主题 下一主题

主题 582|帖子 582|积分 1746

环境

硬件:通用PC /Jetson Xavier NX 套件
系统:Ubuntu 20.04
软件 :
获取CPU信息

在Ubuntu系统中,可以通过在终端执行以下下令来获取CPU的名称:
  1. lscpu
复制代码
如果需要精准查找CPU名称 、焦点数、厂商可以使用
查看CPU名称

  1. lscpu
  2. | grep "Model name"
复制代码
查看CPU焦点数

  1. lscpu
  2. | grep "CPU(s)"
复制代码
查看CPU厂商

  1. lscpu
  2. | grep "Vendor ID"
复制代码
查看CPU总使用率

如果需要获取CPU使用率,使用mpstat下令,它是sysstat包的一部门。首先,确保安装了sysstat包。如果没有安装,可以通过以下下令安装:
  1. sudo apt-get update
  2. sudo apt-get install sysstat
复制代码
然后,运行mpstat来查看CPU使用率:
  1. mpstat  1
复制代码
这个下令会每1秒更新一次CPU使用率的信息。可以看到每个CPU的使用详情,包括用户模式(%usr)、系统模式(%sys)等的使用率。
mpstat 返回值 每列表示什么
mpstat下令是sysstat包的一部门,用于显示各个可用CPU的统计信息。当运行mpstat时,它会显示一系列的列,每列都有特定的含义。下面是mpstat输出的一些常见列及其含义:
表头说明%usr在用户级别(应用步伐)运行时占用的CPU百分比,不包括优先级调解的时间。%nice在用户级别运行且优先级为nice时占用的CPU百分比。%sys在系统(内核)级别运行时占用的CPU百分比。%iowaitCPU等候输入输出完成时间的百分比。%irq处置惩罚硬件中断请求时占用的CPU百分比。%soft处置惩罚软件中断请求时占用的CPU百分比。%steal在捏造化环境中,其他操纵系统占用的CPU时间百分比。%guest运行捏造处置惩罚器时占用的CPU时间百分比。%gnice运行niced guest时占用的CPU时间百分比。%idleCPU空闲时间的百分比。 默认情况下,mpstat显示全部CPU的均匀使用情况。如果想看到每个CPU焦点的统计信息,可以使用mpstat -P ALL下令。
可以通过,运行mpstat下令并通过awk提取总CPU使用率:
  1. mpstat | awk '/all/ {print 100 - $NF"%"}'
复制代码
这个下令的解释如下:
mpstat:运行mpstat下令,它会输出CPU的使用情况。
awk ‘/all/ {print 100 - $NF"%"}’:使用awk搜索包罗“all”的行,这行包罗了全部CPU的均匀使用情况。$NF表示末了一个字段(在默认输出中,这是空闲时间的百分比),100 - $NF计算出总的CPU使用率,然后打印出来。
这个下令会输出类似12.34%的CPU总使用率。
请注意,这个方法提供的是一个瞬时快照的CPU使用率,而CPU使用率是随时间动态变革的。如果需要监控CPU使用率的变革趋势,可能需要定期运行这个下令,大概使用更高级的监控工具。
查看每个CPU焦点的使用率

可以使用mpstat下令共同-P ALL选项。这会显示系统中每个CPU焦点的详细统计信息,包括每个焦点的使用率。
  1. mpstat -P ALL 1
复制代码
获取GPU信息

在Ubuntu系统中,查看GPU信息可以通过多种方式,以下是一些常用的方法:

  • 使用lspci下令:
    这个下令会列出全部的PCI设备,包括GPU。可以通过grep过滤出GPU相关的信息。
  1. lspci | grep VGA
复制代码

  • 使用nvidia-smi
    下令 (对于NVIDIA GPU):
    如果系统装有NVIDIA的GPU,可以使用nvidia-smi
    工具来查看GPU的详细信息
  1. nvidia-smi
复制代码

  • 使用glxinfo下令:
    这个下令需要系统安装了mesa-utils包。
  1. sudo apt-get install mesa-utils
  2. glxinfo | grep "OpenGL renderer"
复制代码
获取硬盘信息

在Ubuntu系统中,要获取系统挂载的硬盘信息,可以使用df下令或mount下令。这些下令可以或许显示当前挂载的文件系统的详细信息,包括设备名、挂载点、使用情况等。
  1. df -h
复制代码
获取挂载到根目录的硬盘的设备名

要获取挂载到根目录(/)的硬盘的设备名,可以使用df下令,并通过文本处置惩罚下令如awk来提取设备名。在终端中执行以下下令:
  1. df / | awk 'NR==2{print $1}'
复制代码
这个下令的解释如下:
df /:显示根目录(/)的文件系统磁盘空间使用情况。
awk ‘NR==2{print $1}’:使用awk下令处置惩罚df的输出。NR==2选择第二行(由于df下令的输出的第一行是标题行),print $1则打印这一行的第一个字段,即设备名。
执行这个下令后,将得到挂载到根目录的硬盘的设备名,例如/dev/sda1或类似的名称
按GB为单元显示

要让df下令的输出以GB为单元显示,可以使用-BG选项。这会使得全部的容量数值以GB为单元展示。如果想要查看全部文件系统的使用情况,并且结果以GB为单元,可以如许做:
  1. df -BG
复制代码
获取系统所在盘的总空间

  1. df / -BG | awk 'NR==2{print $2}'
复制代码
获取系统所在盘的剩余空间

  1. df / -BG | awk 'NR==2{print $4}'
复制代码
获取系统所在盘的使用率

  1. df / -BG | awk 'NR==2{print $5}'
复制代码
获取系统所在盘的设备节点

  1. lsblk -o MOUNTPOINT,PKNAME | grep ' /$' | awk '{print $2}'
复制代码
这个下令的解释如下:
lsblk -o MOUNTPOINT,PKNAME:lsblk下令列出全部设备,-o选项指定输出特定的列,这里选择了MOUNTPOINT(挂载点)和PKNAME(父设备名称,即整个硬盘的设备节点)。
grep ’ /$':使用grep下令过滤出挂载点为根目录(/)的行。/$确保匹配的是根目录,而不是包罗/的其他目录。
awk ‘{print $2}’:使用awk下令打印每行的第二个字段,即父设备名称,它代表的是挂载到根目录的硬盘的整个设备节点。
执行这个下令后,将得到挂载到根目录的硬盘的设备节点名称,如/dev/sda,而不是分区节点(如/dev/sda1)。如许,就可以直接获取到根目录所在硬盘的整个设备节点。
获取系统所在盘详细描述

  1. sudo fdisk -l $(lsblk -o MOUNTPOINT,PKNAME | grep ' /$' | awk '{print "/dev/"$2}')
复制代码
这个下令的解释如下:
$(lsblk -o MOUNTPOINT,PKNAME | grep ’ /$’ | awk ‘{print “/dev/”$2}’):这部门下令找出挂载到根目录(/)的硬盘的父设备节点(即整个硬盘的设备节点),并在其前面加上/dev/来形成完备的设备文件路径。例如,如果lsblk下令的输出是sda,那么这部门下令的结果将是/dev/sda。
sudo fdisk -l:fdisk下令用于查看和修改磁盘分区表,-l选项告诉fdisk列出分区表信息。这需要超级用户权限,因此使用了sudo。通过这种方式,可以直接查看挂载到根目录的硬盘的分区表信息,而无需手动输入设备节点。
获取硬盘disk model信息

如果需要继承输出disk model信息,可以使用
  1. sudo fdisk -l $(lsblk -o MOUNTPOINT,PKNAME | grep ' /$' | awk '{print "/dev/"$2}')
  2. | grep 'Disk model' | awk -F': ' '{print $2}'
复制代码
这个下令的解释如下:

  • sudo fdisk -l $(…):这部门下令找出挂载到根目录的硬盘的设备节点,并使用fdisk -l列出该硬盘的详细信息。
  • grep ‘Disk model’:使用grep下令过滤出包罗“Disk model”的行。这假设硬盘模型信息在fdisk的输出中以“Disk model”作为前缀。根据fdisk的版本和输出,这个关键字可能有所不同,可能需要相应地调解。
  • awk -F’: ’ ‘{print $2}’:使用awk下令并设置字段分隔符为“: ”(冒号加空格),然后打印第二个字段,即硬盘模型的值。
    请注意,这个方法的有效性取决于fdisk下令输出的详细格式,这可能会因不同的系统和fdisk版本而异。如果“Disk model”不是精确的关键字,可能需要根据现实fdisk输出调解grep过滤的关键字。
获取内存信息

要获取系统内存信息,可以使用free下令。这个下令提供了关于系统内存使用情况的信息,包括物理内存、交换空间等。
  1. free -h
复制代码
这个下令的输出大致如下:
表头说明total显示总计的物理内存或交换空间大小。used显示已使用的内存或交换空间大小。free显示未被使用的内存或交换空间大小。shared显示多个进程共享的内存总量(仅适用于某些系统)。buff/cache显示被缓冲或缓存的内存大小。available估算可用于启动新应用步伐的内存大小,而不需要交换。 这提供了一个快速的系统内存使用概览,包括的物理内存和交换空间的使用情况
将输出信息前面的空格去掉

可以使用
  1. sed 's/^ *//'
复制代码
这里的sed 's/^ *//'
下令查找每行开头的一个或多个空格(^ *)并将它们替换为无(即删除它们)
例如:
  1. lsblk -o MOUNTPOINT,PKNAME | grep ' /$' | awk '{print $2}'
  2. | sed 's/^ *//'
复制代码
OK!
至此,题目解决。欢迎留言交流

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

北冰洋以北

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表