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

环境

硬件:通用PC /Jetson Xavier NX 套件
系统:Ubuntu 20.04
软件 :

获取CPU信息

在Ubuntu系统中,可以通过在终端执行以下命令来获取CPU的名称:

lscpu

如果需要精准查找CPU名称 、核心数、厂商可以使用

查看CPU名称

lscpu | grep "Model name" 

查看CPU核心数

lscpu | grep "CPU(s)"

查看CPU厂商

lscpu | grep "Vendor ID" 

查看CPU总使用率

如果需要获取CPU使用率,使用mpstat命令,它是sysstat包的一部分。首先,确保安装了sysstat包。如果没有安装,可以通过以下命令安装:

sudo apt-get update
sudo apt-get install sysstat

然后,运行mpstat来查看CPU使用率:

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使用率:

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核心的详细统计信息,包括每个核心的使用率。

mpstat -P ALL 1

获取GPU信息

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

  1. 使用lspci命令:
    这个命令会列出所有的PCI设备,包括GPU。可以通过grep过滤出GPU相关的信息。
lspci | grep VGA
  1. 使用nvidia-smi命令 (对于NVIDIA GPU):
    如果系统装有NVIDIA的GPU,可以使用nvidia-smi工具来查看GPU的详细信息
nvidia-smi
  1. 使用glxinfo命令:
    这个命令需要系统安装了mesa-utils包。
sudo apt-get install mesa-utils
glxinfo | grep "OpenGL renderer"

获取硬盘信息

在Ubuntu系统中,要获取系统挂载的硬盘信息,可以使用df命令或mount命令。这些命令能够显示当前挂载的文件系统的详细信息,包括设备名、挂载点、使用情况等。

df -h

获取挂载到根目录的硬盘的设备名

要获取挂载到根目录(/)的硬盘的设备名,可以使用df命令,并通过文本处理命令如awk来提取设备名。在终端中执行以下命令:

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为单位,可以这样做:

df -BG

获取系统所在盘的总空间

df / -BG | awk 'NR==2{print $2}'

获取系统所在盘的剩余空间

df / -BG | awk 'NR==2{print $4}'

获取系统所在盘的使用率

df / -BG | awk 'NR==2{print $5}'

获取系统所在盘的设备节点

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)。这样,就可以直接获取到根目录所在硬盘的整个设备节点。

获取系统所在盘详细描述

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信息,可以使用

sudo fdisk -l $(lsblk -o MOUNTPOINT,PKNAME | grep ' /$' | awk '{print "/dev/"$2}') | grep 'Disk model' | awk -F': ' '{print $2}'

这个命令的解释如下:

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

获取内存信息

要获取系统内存信息,可以使用free命令。这个命令提供了关于系统内存使用情况的信息,包括物理内存、交换空间等。

free -h

这个命令的输出大致如下:

表头说明
total显示总计的物理内存或交换空间大小。
used显示已使用的内存或交换空间大小。
free显示未被使用的内存或交换空间大小。
shared显示多个进程共享的内存总量(仅适用于某些系统)。
buff/cache显示被缓冲或缓存的内存大小。
available估算可用于启动新应用程序的内存大小,而不需要交换。

这提供了一个快速的系统内存使用概览,包括的物理内存和交换空间的使用情况

将输出信息前面的空格去掉

可以使用

sed 's/^ *//'

这里的sed 's/^ *//'命令查找每行开头的一个或多个空格(^ *)并将它们替换为无(即删除它们)
例如:

lsblk -o MOUNTPOINT,PKNAME | grep ' /$' | awk '{print $2}' | sed 's/^ *//'

OK!
至此,问题解决。欢迎留言交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/792194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前视声呐目标识别定位(二)-目标识别定位模块

前视声呐目标识别定位(一)-基础知识 前视声呐目标识别定位(二)-目标识别定位模块 前视声呐目标识别定位(三)-部署至机器人 前视声呐目标识别定位(四)-代码解析之启动识别模块 …

[xboard]real6410-6.1 移植rootfs之busybox

文章目录 busybox下载 https://busybox.net/downloads/ [图片] wget https://busybox.net/downloads/busybox-x.yy.z.tar.bz2 tar xvf busybox-x.yy.z.tar.bz2 busybox配置编译 busybox-1.35.0$ export CROSS_COMPILE=/home/gjw/2024/compile/arm-2014.05/bin/arm-none-linux-g…

【ZZULIOJ】1033: 五级制成绩(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy code 题目描述 给定一个百分制成绩, 请根据百分制成绩输出其对应的等级。转换关系如下: 90分及以上为’A’,80~89为’B’, 70~79为’C’, 60~69为’D’,6…

高斯消元详解

算法概述 高斯消元法是一个用来求解线性方程组的算法 那么什么是线性方程组呢? 线性:每个未知数次数都为1次方程组:多个方程,多个未知数。 (a1x1a2x2..anxnbn)x为一次的 当x是平方的时候就不是线性 简而言之就是有多个未知数&#xff…

0基础学习Mybatis系列数据库操作框架——多环境配置

大纲 配置代码参考资料 在实际开发中,我们往往会将开发环境分成:开发、测试、线上等环境。这些环境的数据源不一样,比如开发环境就不能访问线上环境,否则极容易出现线上数据污染等问题。Mybatis通过多环境配置分开定义来解决这个问…

Shell脚本之基本语法

目录 一、变量定义 变量命名规则: 变量的赋值: 只读变量: 删除变量: 二、变量的类型 自定义变量: 环境变量: 位置参数: 预定义变量: 三、键盘输入 四、数值运算 为什么…

数据结构—堆

什么是堆 堆是一种特殊的树形结构,其中每个节点都有一个值。堆可以分为两种类型:最大堆和最小堆。在最大堆中,每个节点的值都大于等于其子节点的值;而在最小堆中,每个节点的值都小于等于其子节点的值。这种特性使得堆…

RPA自动化小红书自动化写文以及发文!

1、视频演示 RPA自动化小红书自动写作发文 2、核心功能点 采集笔记:采集小红书上点赞量大于1000的爆款笔记 下载素材:下载爆款笔记的主图 爆款改写:根据爆款笔记的标题仿写新的标题以及新的文案 自动发布:将爆款笔记发布到小红…

希尔排序算法(Java实现)

1.希尔排序(Shell Sort) (1)算法思想 先追求表中元素部分有序,再逐渐逼近全局有序。先将待排序表分割成若干形如 L [ i , i d , i 2 d , . . . , i k d ] L[i,id,i2d,...,ikd] L[i,id,i2d,...,ikd]的子表&#xff…

【docker】基础背景 Windows安装docker(WSL2)

docker解释 docker作用: 使用具体例子解释,在没有docker之前,整体项目由程序员在本地编写完成之后,再把执行文件丢给运维人员。但是有问题:因为运维同学的具体环境与编码人员的环境可能不一致,所以可能在环…

Three.js——scene场景、几何体位置旋转缩放、正射投影相机、透视投影相机

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

第N6周:使用Word2vec实现文本分类

import torch import torch.nn as nn import torchvision from torchvision import transforms,datasets import os,PIL,pathlib,warnings #忽略警告信息 warnings.filterwarnings("ignore") # win10系统 device torch.device("cuda"if torch.cuda.is_ava…

DD3L内存芯片介绍

在数字科技迅猛发展的今天,内存芯片作为硬件的核心组件之一,扮演着至关重要的角色。而DD3L内存芯片以其卓越的性能和独特的设计,成为众多高端电子设备的不二选择。那么,DD3L内存芯片究竟如何应用,又是如何释放数字世界…

导入预览以及解决导入量大引发超时等问题

1、首选解决预览问题 由于使用的是vue3,页面与数据都是交互响应式的,所以可以通过组件或者原生的文件上传,获取到excel的sheet,从而来计算条数,页码,页数,手动实现分页逻辑,也就是把…

flex:1的作用是什么?

占满剩余的高度 <div classfather><div classson1></div><div classson2></div> </div>当给father添加display:flex之后&#xff0c;假设给son2添加flex:1&#xff0c;那么son2将会占满除son1之外的高度

【DevOps工具篇】Keycloak中设置LDAP认证

【DevOps工具篇】Keycloak中设置LDAP认证 目录 【DevOps工具篇】Keycloak中设置LDAP认证本次使用的环境服务器配置LDAP目录结构使用存储在LDAP中的用户进行登录Keycloak配置步骤功能测试从LDAP向Keycloak批量添加用户Keycloak配置步骤功能测试推荐超级课程: Docker快速入门到精…

基于springboot+vue+Mysql的招生管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

震惊!!原来阻塞队列消息队列这样理解会更简单!!!

震惊!!原来阻塞队列&&消息队列这样理解会更简单!!! 一:阻塞队列二:消息队列2.1:生产者消费者模型2.1.1:解耦合:2.1.2:削峰填谷: 三:消息队列代码3.1.13.1.2:3.1.3:生产慢,消费快,消费阻塞3.1.3:生产快,消费慢,生产阻塞 二级目录二级目录 一:阻塞队列 阻塞队列:先进先出…

gitcode 配置 SSH 公钥

在 gitcode 上配置SSH公钥后&#xff0c;可以通过SSH协议安全地访问远程仓库&#xff0c;无需每次都输入用户名和密码。以下是配置SSH公钥的步骤&#xff1a; 5分钟解决方案 用 OpenSSH公钥生成器 生成 公钥和私钥&#xff0c;私钥文件&#xff08;id_rsa&#xff09;下载&am…

解决Maven Clean过程因内存溢出导致的“Process terminated”问题

正文&#xff1a; 在今天的开发过程中&#xff0c;我遇到了一个意料之外的问题&#xff0c;当我尝试使用 Maven 进行项目清理&#xff08;maven clean&#xff09;时&#xff0c;命令行反馈了一个错误信息&#xff1a;“Process terminated”。经过一番排查&#xff0c;发现问…