当前位置: 首页 > news >正文

Linux /proc目录总结

1、概念

在Linux系统中,/proc目录是一个特殊的文件系统,通常被称为"proc文件系统"或"procfs"。这个文件系统以文件系统的方式为内核与进程之间的通信提供了一个接口。/proc目录中的文件大多数都提供了关于系统状态的信息,如运行的进程、内存使用、设备驱动等。

2、常用目录文件

2.1 /proc/cpuinfo

提供关于CPU的信息,如型号、缓存大小、频率等,可以直接通过cat命令查看:

  • processor: 表示 CPU 的编号,从 0 开始计数。
  • BogoMIPS: 这是一个用于粗略衡量 CPU 性能的指标,称为 "Bogomips"。它表示每秒百万条指令(MIPS),但是这个值与真实的性能并不直接对应,主要用于比较不同 CPU 的相对性能。
  • Features: 表示 CPU 支持的功能,包括:
    • fp: 浮点运算
    • asimd: ARM SIMD 指令集
    • aes: AES 加密指令集
    • pmull: 乘法指令集
    • sha1: SHA-1 哈希算法
    • sha2: SHA-2 哈希算法
    • crc32: CRC32 校验算法
  • CPU implementer: 表示 CPU 的制造商,0x41 表示 ARM 公司。
  • CPU architecture: 表示 CPU 的架构,8 表示 ARMv8 架构。
  • CPU variant: 表示 CPU 的变种,0x0 表示标准 ARMv8 架构。
  • CPU part: 表示 CPU 的型号,0xd03 表示 ARM Cortex-A53 处理器。
  • CPU revision: 表示 CPU 的修订版本,4 表示特定的修订版本。

2.2 /proc/meminfo

提供关于系统内存使用情况的统计信息,可以直接通过cat命令查看:

  • MemTotal: 系统的总物理内存,单位为 kB。
  • MemFree: 系统当前空闲的物理内存,单位为 kB。
  • MemAvailable: 系统当前可用的物理内存,单位为 kB。这个值比 MemFree 大,因为其还考虑了缓冲区和缓存的可用空间。
  • Buffers: 用于存储磁盘块的缓冲区大小,单位为 kB。
  • Cached: 缓存了磁盘数据的内存大小,单位为 kB。
  • Active: 最近被访问过的内存页,单位为 kB。
  • Inactive: 一段时间没有被访问的内存页,单位为 kB。
  • Active(anon): 匿名内存页,即不映射到任何文件,如进程堆栈、堆内存等。
  • Inactive(anon): 匿名内存页中长时间未被访问的页面。
  • Active(file): 文件映射到内存的页,如文件的内容、库函数等。
  • Inactive(file): 文件映射到内存中长时间未被访问的页面。

2.3 /proc/mounts

显示当前系统上已挂载的文件系统,可以直接通过cat命令查看:

其大致按以下格式:

<设备节点> <挂载点> <文件系统类型> <挂载选项> <挂载次数> <文件系统检查顺序>
  • 设备节点 (Device node): 表示文件系统的设备节点或者分区的路径,比如 /dev/mmcblk0p1
  • 挂载点 (Mount point): 文件系统被挂载到的目录路径,比如 / 表示根目录。
  • 文件系统类型 (Filesystem type): 表示文件系统的类型,比如 ext4。
  • 挂载选项 (Mount options): 表示文件系统被挂载时指定的选项,比如 rw 表示可读写,ro 表示只读。
  • 挂载次数 (Mount count): 表示文件系统被挂载的次数。
  • 文件系统检查顺序 (File system check order): 如果文件系统需要进行检查,该字段指示了文件系统检查的顺序。

2.4 /proc/partitions

列出所有已识别的磁盘分区,可以直接通过cat命令查看:

  • major: 主设备号,用于标识设备类型,例如 1 表示 RAM 设备。
  • minor: 次设备号,用于区分同类型设备的不同分区,例如 0 和 1 表示 RAM 设备的两个不同分区。
  • #blocks: 分区的大小,以块为单位。
  • name: 分区的名称,例如 ram0 和 ram1

2.5 /proc/version

显示当前运行的内核版本信息,可以直接通过cat命令查看:

  • Linux version: 指明了当前运行的 Linux 内核版本号,这里是 4.9.170-sun50iw9
  • (root@Katarina): 表示内核是在名为 "Katarina" 的机器上编译的。
  • (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))): 说明了编译内核所使用的 GCC 编译器的版本信息,包括版本号、编译日期和目标平台信息。
  • #34: 表示内核的补丁版本号,即在最初的版本基础上进行了 34 次修改。
  • SMP: 表示内核支持对称多处理器(Symmetric Multi-Processing),即系统可以同时运行在多个 CPU 上。
  • PREEMPT: 表示内核支持抢占式内核,即进程可以被其他更高优先级的进程抢占,提高系统响应速度。

2.6 /proc/net

包含网络相关的统计和配置信息

其中:

  • route: 这个文件显示了系统的路由表,包含了系统中各个网络的路由信息。可以通过查看这个文件来查看当前系统路由的配置情况。

  • tcp, udp: 这两个文件分别显示了系统当前的 TCP 和 UDP 连接情况,列出了系统中所有的 TCP 和 UDP 连接的详细信息。

2.7 /proc/sys

/proc/sys 目录下存储着 Linux 内核运行时的系统参数,通过读取和写入这些文件,可以控制和配置系统的许多功能。这些参数通常用于调整内核的行为,优化系统性能或修改网络设置等。

  • /proc/sys/kernel/

    • hostname: 可以通过读取和写入这个文件来获取和更改系统的主机名。
    • osrelease: 包含正在运行的内核版本信息。
    • panic: 设置系统在遇到致命错误后自动关闭之前的延迟时间。
  • /proc/sys/net/

    • ipv4/
      • ip_forward: 控制系统是否允许 IP 转发功能。
      • ipv4/tcp_keepalive_time: 设置 TCP 连接的保活时间。
    • core/
      • rmem_default, rmem_max: 指定 TCP 接收缓冲区的默认和最大大小。
      • wmem_default, wmem_max: 指定 TCP 发送缓冲区的默认和最大大小。
  • /proc/sys/vm/

    • swappiness: 控制系统在内存不足时使用 swap 分区的程度。
    • overcommit_memory: 控制内存过量分配的行为。

2.8 /proc/interrupts

 这个文件显示了系统中各个硬件设备正在使用的中断请求(IRQ)的情况,可以帮助用户查看系统中断的分配情况,以及了解每个设备所占用的中断资源。

  • 每行对应一个硬件设备,在每一行中列出了设备名称、中断请求号(IRQ)以及该设备触发的中断次数。
  • 可以通过查看这个文件来检查系统中是否存在中断冲突(IRQ conflict),了解系统中硬件设备的使用情况,以及定位可能的硬件问题。

2.9 /proc/uptime

显示系统自上次启动以来的运行时间,以及空闲时间。

  • 第一个值(25221.66)表示系统自上次启动以来运行的时间(单位为秒)。
  • 第二个值(100623.29)表示系统空闲时间的总计(单位为秒)。

2.10 /proc/loadavg

显示系统的负载平均值

  • 前三个数值(1.00 1.00 1.00)表示系统在过去 1 分钟、5 分钟和 15 分钟内的平均负载。这些数字是指任务队列中平均活跃的进程数。
  • 第四个值(1/167)表示正在运行/总进程数。
  • 第五个值(3608)是最近运行的进程的进程 ID。

2.11 /proc/stat

提供关于CPU活动的统计信息

每一列的含义如下:

  • 用户态时间 (user): CPU 花在用户进程上的时间(以节拍计)。
  • 内核态时间 (nice): CPU 花在优先级较低的进程上的时间(以节拍计)。
  • 系统调用时间 (system): CPU 花在系统调用上的时间(以节拍计)。
  • 空闲时间 (idle): CPU 处于空闲状态的时间(以节拍计)。
  • 等待 I/O 时间 (iowait): CPU 等待 I/O 操作完成的时间(以节拍计)。
  • 硬件中断时间 (irq): CPU 处理硬件中断的时间(以节拍计)。
  • 软中断时间 (softirq): CPU 处理软件中断的时间(以节拍计)。
  • 窃取时间 (steal): CPU 被虚拟机窃取的时间(以节拍计)。
  • 虚拟化时间 (guest): CPU 花在运行虚拟机上的时间(以节拍计)。
  • 虚拟化时间 (guest_nice): CPU 花在运行虚拟机中优先级较低的进程上的时间(以节拍计)。

例如,第一行 cpu 7963 13 16873 9957357 409 0 460 0 0 0 代表了所有 CPU 核心的统计信息:

  • cpu: 表示所有 CPU 核心的总统计信息。
  • 7963: 所有 CPU 核心的用户态时间。
  • 13: 所有 CPU 核心的内核态时间。
  • 16873: 所有 CPU 核心的系统调用时间。
  • 9957357: 所有 CPU 核心的空闲时间。
  • 409: 所有 CPU 核心的等待 I/O 时间。
  • 0: 所有 CPU 核心的硬件中断时间。
  • 460: 所有 CPU 核心的软件中断时间。
  • 0: 所有 CPU 核心的窃取时间。
  • 0: 所有 CPU 核心的虚拟化时间。
  • 0: 所有 CPU 核心的虚拟化时间(优先级较低)。

2.12 /proc/bus

包含有关系统总线和连接到这些总线的设备的信息

  • /proc/bus/pci/ 目录包含有关 PCI 总线设备的信息,可以查看系统中的PCI设备列表。
  • /proc/bus/usb/ 目录包含有关 USB 设备的信息,可以查看 USB 设备的配置信息和状态。
  • 这些文件和目录可以帮助用户了解系统中连接的总线设备的情况,进行总线级别的故障排除和信息查询。

2.13 /proc/devices

列出当前内核所识别的设备驱动程序的主设备号:

2.14 /proc/fs

包含有关当前系统上支持的文件系统的信息。

  • /proc/fs/nfsd/exports:显示 NFS 服务器的导出列表。
  • /proc/fs/nfsd/version:显示 NFS 服务器模块的版本信息。
  • /proc/fs/nfs:包含 NFS 客户端和服务器相关的信息。

2.15 /proc/[pid]

对于每个正在运行的进程,都有一个以其进程ID(PID)命名的目录。这些目录包含了关于该进程的详细信息,如命令行、环境变量、内存映射、打开的文件描述符等。

  • attr:进程的访问控制列表(ACL)权限设置。
  • cmdline:进程启动时的命令行参数。
  • cwd:进程的当前工作目录。
  • environ:进程的环境变量列表。
  • exe:进程的可执行文件路径。
  • fd:进程打开的文件描述符列表。
  • status:包含有关进程当前状态的信息,如进程状态、内存使用情况等。
  • sched:显示进程的调度器相关信息。
  • maps:显示进程内存映射的详细信息。
  • limits:显示进程资源限制。
  • stat:显示进程状态信息。
  • io:显示进程的I/O统计信息。
  • oom_score:OOM(Out Of Memory)调度分数,决定进程在内存不足时被系统杀死的优先级。
  • smaps:显示进程的内存使用情况,包括详细的内存映射信息。
  • task:包含有关进程的线程信息。
  • syscall:显示进程的系统调用统计信息。

相关文章:

Linux /proc目录总结

1、概念 在Linux系统中&#xff0c;/proc目录是一个特殊的文件系统&#xff0c;通常被称为"proc文件系统"或"procfs"。这个文件系统以文件系统的方式为内核与进程之间的通信提供了一个接口。/proc目录中的文件大多数都提供了关于系统状态的信息&#xff0…...

【JavaEE】浅谈线程(二)

线程 线程的常见属性 线程属性可以通过下面的表格查看。 •ID 是线程的唯⼀标识&#xff0c;不同线程不会重复 • 名称是各种调试⼯具⽤到&#xff08;如jconsoloe&#xff09; • 状态表示线程当前所处的⼀个情况&#xff0c;下⾯我们会进⼀步说明 • 优先级高的线程理论上来…...

爬虫:爬取知乎热榜一级评论及回答2024不包含翻页

一、先上结果&#xff08;注:本文仅为兴趣爱好探究&#xff0c;请勿进行商业利用或非法研究&#xff0c;负责后果自负&#xff0c;与作者无关&#xff09; 1、爬标题及其具体内容 2、抓标题下的对应回答 3、爬取对应一级评论 二、上流程 1、获取cookies&#xff08;相信哥哥姐姐…...

AI 编程探索- iOS动态标签控件

需求分析&#xff1a; 标签根据文字长度&#xff0c;自适应标签居中显示扩展 超过内容显示范围&#xff0c;需要换行显示&#xff0c;且保持居中显示 AI实现过程 提问&#xff1a; 回答&#xff1a; import UIKit import SnapKitclass DynamicLabelsContainerView: UIView…...

计算机网络——数据链路层(数据链路层概述及基本问题)

链路、数据链路和帧的概念 数据链路层在物理层提供服务的基础上向网络层提供服务&#xff0c;其主要作用是加强物理层传输原始比特流的功能&#xff0c;将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路&#xff0c;使之对网络层表现为一条无差错的链路。 链路(…...

【前端】前端权限管理的实现方式:基于Vue项目的详细指南

前端权限管理的实现方式&#xff1a;基于Vue项目的详细指南 在Web开发中&#xff0c;前端权限管理是一个确保应用安全性和优化用户体验的关键部分。本文将详细介绍前端权限管理的几种实现方式&#xff0c;并通过Vue项目中的代码示例来演示具体实现方法。 前端权限管理的基本实…...

MySQL数据库基础练习系列——教务管理系统

项目名称与项目简介 教务管理系统是一个旨在帮助学校或教育机构管理教务活动的软件系统。它涵盖了学生信息管理、教师信息管理、课程管理、成绩管理以及相关的报表生成等功能。通过该系统&#xff0c;学校可以更加高效地处理教务数据&#xff0c;提升教学质量和管理水平。 1.…...

windowns server2016服务器配置php调用powerpoint COM组件

解决问题&#xff1a;windowns server2016服务器配置php调用powerpoint COM组件 环境&#xff1a; windows server2016 宝塔&#xff08;nginxmysqlphp7.2&#xff09; IIS 搭建宝塔&#xff1a; 下载地址&#xff1a;https://www.bt.cn/download/windows.html ​ 安装使用&…...

Git之checkout/reset --hard/clean -f区别(四十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…...

MySQL数据库基础练习系列:科研项目管理系统

DDL CREATE TABLE Users (user_id INT AUTO_INCREMENT PRIMARY KEY COMMENT 用户ID,username VARCHAR(50) NOT NULL UNIQUE COMMENT 用户名,password VARCHAR(255) NOT NULL COMMENT 密码,gender ENUM(男, 女) NOT NULL COMMENT 性别,email VARCHAR(100) UNIQUE COMMENT 邮箱 …...

算法设计与分析--考试真题

分布式算法试题汇总选择题简答题算法题 2013级试题2019级试题2021年秋考卷 根据考试范围找相应题目做。 分布式算法试题汇总 选择题 下述说法错误的是___ A 异步系统中的消息延迟是不确定的 B 分布式算法的消息复杂性是指在所有合法的执行上发送消息总数的最大值 C 在一个异步…...

【鸿蒙学习笔记】页面和自定义组件生命周期

官方文档&#xff1a;页面和自定义组件生命周期 目录标题 [Q&A] 都谁有生命周期&#xff1f; [Q&A] 什么是组件生命周期&#xff1f; [Q&A] 什么是组件&#xff1f;组件生命周期 [Q&A] 什么是页面生命周期&#xff1f; [Q&A] 什么是页面&#xff1f;页面生…...

ASPICE与ISO 21434:汽车软件与网络安全标准的协同与互补

ASPICE&#xff08;Automotive SPICE&#xff09;与ISO 21434在汽车行业中存在显著的相关性&#xff0c;主要体现在以下几个方面&#xff1a; 共同目标&#xff1a; ASPICE和ISO 21434都旨在提高汽车系统和软件的质量、可靠性和安全性。ASPICE关注汽车软件开发过程的成熟度和…...

视频格式转换方法:如何使用视频转换器软件转换视频

众所周知&#xff0c;目前存在许多不同的视频和音频格式。但我们的媒体播放器、移动设备、PC 程序等仅兼容少数特定格式。例如&#xff0c;如果不先将其转换为 MP4、MOV 或 M4V 文件&#xff0c;AVI、WMV 或 MKV 文件就无法在 iPhone 上播放。 视频转换器允许您将一种视频格式…...

vim操作小诀窍:快速多行添加注释

在使用vim编译python代码的时候&#xff0c;经常碰到需要将一段代码注释的情况&#xff0c;每次都要按“向下” “向左”按钮&#xff0c;将光标移到句首&#xff0c;然后再键入#井号键。如果行数较多&#xff0c;则操作相当繁琐。 vim里面有将一段文字前面加#注释的方法&#…...

无线麦克风领夹哪个牌子好,2024年领夹麦克风品牌排行榜推荐

​随着短视频热潮的兴起&#xff0c;越来越多的人倾向于用vlog记录日常生活&#xff0c;同时借助短视频和直播平台开辟了副业。在这一过程中&#xff0c;麦克风在近两年内迅速发展&#xff0c;从最初的简单收音功能演变为拥有多样款式和功能&#xff0c;以满足视频创作的需求。…...

Mybatis入门——语法详解:基础使用、增删改查、起别名、解决问题、注释、动态查询,从入门到进阶

文章目录 1.基础使用1.添加依赖2.在resouces文件下新建xml文件db.properties3.在resouces文件下新建xml文件mybatis-config-xml4.创建一个MybatisUtils工具类5.创建xml文件XxxMapper.xml映射dao层接口6.添加日志5.测试 2.增删改查1.select2.delete3.update4.insert5.模糊查询6.…...

仓库选址问题【数学规划的应用(含代码)】阿里达院MindOpt

本文主要讲述使用MindOpt工具优化仓库选址的数学规划问题。 视频讲解&#x1f448;&#x1f448;&#x1f448;&#x1f448;&#x1f448;&#x1f448;&#x1f448;&#x1f448;&#x1f448; 一、案例场景 仓库选址问题在现代物流和供应链管理中具有重要的应用。因为仓库…...

Docker Compose 一键快速部署 RocketMQ

Apache RocketMQ是一个开源的分布式消息中间件系统&#xff0c;最初由阿里巴巴开发并贡献给Apache软件基金会。RocketMQ提供了高性能、高可靠性、高扩展性和低延迟的消息传递服务&#xff0c;适用于构建大规模分布式系统中的消息通信和数据同步。 RocketMQ支持多种消息模型&am…...

Vscode lanuch.json

Intro 使用launch.json 能够方便的运行需要传很多参数的代码文件 如下&#xff1a; import math import argparse # 1、导入argpase包def parse_args():parse argparse.ArgumentParser(descriptionCalculate cylinder volume) # 2、创建参数对象parse.add_argument(--rad…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...