Linux的/proc目录

news/2025/1/15 16:59:22/文章来源:https://www.cnblogs.com/hanease/p/18673421

1.Linux proc目录介绍

Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。
基于/proc文件系统如上所述的特殊性,其内的文件也常被称作虚拟文件,并具有一些独特的特点。例如,其中有些文件虽然使用查看命令查看时会返回大量信息,但文件本身的大小却会显示为0字节。此外,这些特殊文件中大多数文件的时间及日期属性通常为当前系统时间和日期,这跟它们随时会被刷新(存储于RAM中)有关。 
用户和应用程序可以通过proc得到系统的信息(大多数虚拟文件可以使用文件查看命令如cat、more或者less进行查看,有些文件信息表述的内容可以一目了然,但也有文件的信息却不怎么具有可读性。不过,这些可读性较差的文件在使用一些命令如apm、free、lspci或top查看时却可以有着不错的表现),并可以改变内核的某些参数。由于系统的信息,如进程是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。下面列出的这些文件或子文件夹,并不是都是在你的系统中存在,这取决于你的内核配置和装载的模块。另外,在/proc下还有三个很重要的目录:net、scsi和sys。 sys目录是可写的,可以通过它来访问或修改内核的参数,而 net和scsi 则依赖于内核配置。例如:如果系统不支持scsi,则scsi 目录不存在。
除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的 PID号为目录名,它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个链接。

2.Linux proc目录(子文件或子目录)功能详解

  • /proc/buddyinfo 每个内存区中的每个order有多少块可用,和内存碎片问题有关
  • /proc/cmdline 启动时传递给kernel的参数信息
  • /proc/cpuinfo cpu的信息
  • /proc/crypto 内核使用的所有已安装的加密密码及细节
  • /proc/devices 已经加载的设备并分类
  • /proc/dma 已注册使用的ISA DMA频道列表
  • /proc/execdomains Linux内核当前支持的execution domains
  • /proc/fb 帧缓冲设备列表,包括数量和控制它的驱动
  • /proc/filesystems 内核当前支持的文件系统类型
  • /proc/interrupts x86架构中的每个IRQ中断数
  • /proc/iomem 每个物理设备当前在系统内存中的映射
  • /proc/ioports 一个设备的输入输出所使用的注册端口范围
  • /proc/kcore 代表系统的物理内存,存储为核心文件格式,里边显示的是字节数,等于RAM大小加上4kb
  • /proc/kmsg 记录内核生成的信息,可以通过/sbin/klogd或/bin/dmesg来处理
  • /proc/loadavg 根据过去一段时间内CPU和IO的状态得出的负载状态,与uptime命令有关
  • /proc/locks 内核锁住的文件列表
  • /proc/mdstat 多硬盘,RAID配置信息(md=multiple disks)
  • /proc/meminfo RAM使用的相关信息
  • /proc/misc 其他的主要设备(设备号为10)上注册的驱动
  • /proc/modules 所有加载到内核的模块列表
  • /proc/mounts 系统中使用的所有挂载
  • /proc/mtrr 系统使用的Memory Type Range Registers (MTRRs)
  • /proc/partitions 分区中的块分配信息
  • /proc/pci 系统中的PCI设备列表
  • /proc/slabinfo 系统中所有活动的 slab 缓存信息
  • /proc/stat 所有的CPU活动信息
  • /proc/sysrq-trigger 使用echo命令来写这个文件的时候,远程root用户可以执行大多数的系统请求关键命令,就好像在本地终端执行一样。要写入这个文件,需要把/proc/sys/kernel/sysrq不能设置为0。这个文件对root也是不可读的
  • /proc/uptime 系统已经运行了多久
  • /proc/swaps 交换空间的使用情况
  • /proc/version Linux内核版本和gcc版本
  • /proc/bus 系统总线(Bus)信息,例如pci/usb等
  • /proc/driver 驱动信息
  • /proc/fs 文件系统信息
  • /proc/ide ide设备信息
  • /proc/irq 中断请求设备信息
  • /proc/net 网卡设备信息
  • /proc/scsi scsi设备信息
  • /proc/tty tty设备信息
  • /proc/net/dev 显示网络适配器及统计信息
  • /proc/vmstat 虚拟内存统计信息
  • /proc/vmcore 内核panic时的内存映像
  • /proc/diskstats 取得磁盘信息
  • /proc/schedstat kernel调度器的统计信息
  • /proc/zoneinfo 显示内存空间的统计信息,对分析虚拟内存行为很有用
以下是/proc目录中进程X的信息,也就是目录名称为数字的目录,这些数字表示系统当前正在运行进程的进程号,里面包含对应进程相关的多个信息文件:
  • /proc/X pid为X的进程信息
  • /proc/X/cmdline 进程启动命令,启动当前进程的完整命令,但僵尸进程目录中的此文件不包含任何信息
  • /proc/X/cwd 链接到进程当前工作目录,指向当前进程运行目录的一个符号链接
  • /proc/X/environ 进程环境变量列表,当前进程的环境变量列表,彼此间用空字符(NULL)隔开;变量用大写字母表示,其值用小写字母表示
  • /proc/X/exe 链接到进程的执行命令文件,指向启动当前进程的可执行文件(完整路径)的符号链接,通过/proc/N/exe可以启动当前进程的一个拷贝
  • /proc/X/fd 包含进程相关的所有的文件描述符,这是个目录,包含当前进程打开的每一个文件的文件描述符(file descriptor),这些文件描述符是指向实际文件的一个符号链接
  • /proc/X/maps 与进程相关的内存映射信息,当前进程关联到的每个可执行文件和库文件在内存中的映射区域及其访问权限所组成的列表
  • /proc/X/mem 指代进程持有的内存,不可读,当前进程所占用的内存空间,由open、read和lseek等系统调用使用,不能被用户读取
  • /proc/X/root 链接到进程的根目录,指向当前进程运行根目录的符号链接;在Unix和Linux系统上,通常采用chroot命令使每个进程运行于独立的根目录
  • /proc/X/stat 进程的状态,当前进程的状态信息,包含一系统格式化后的数据列,可读性差,通常由ps命令使用
  • /proc/X/statm 进程使用的内存的状态
  • /proc/X/status 进程状态信息,比stat/statm更具可读性
  • /proc/self 链接到当前正在运行的进程

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

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

相关文章

高效协作与工时优化的结合点在哪里

在信息化高速发展的今天,如何提升团队的协作效率、优化工时管理,已经成为每个企业面临的挑战。在线文档协作工具因其实时共享、多端同步、权限控制等功能,成为现代企业数字化办公的重要一环。本文将分析在线协作工具如何助力办公室团队优化工时管理,从而实现高效办公。一、…

easyexcel doRead bug

public class CarOilingRecordImportVO { /** * 油卡号 */ @ExcelProperty(value = "卡号/客户编号") @NotNull(message = "卡号/客户编号不能为空") private String cardCode; /** * 车牌号 */ @ExcelProperty(value =…

为什么人工智能会导致更大的社会不平等……至少在开始时如此

为什么人工智能会导致更大的社会不平等……至少在开始时如此 一次巨大变革的不对称性来源:作者使用GPT-4o撰写虽然每一次技术革命都创造了比毁掉的工作岗位更多的就业机会,人工智能也不会例外。然而,我们正迎来向那个世界转变的一个极其复杂的阶段。 简单来说,未来几年人工…

(二)C#同一个项目窗体应用程序复制粘贴窗体文件出现各种bug正确解决办法

事情是这样的,如上图所示,因为一个系统里面有好几个子系统,有些子系统之间的“增删查改”又是相通的,于是想通过复制相同的窗体到另外一个文件夹的时候,如果不正确引用“新项目”将会出现以上各种错误。在网上搜索了各种方式,尝试了各种办法,最后找到下面这种亲测有效的…

进度追踪与任务管理:提升团队效率的核心利器

一、高效协作管理工具的定义与重要性 高效协作管理工具是指能够支持团队成员之间顺畅沟通、任务高效分配、进度实时跟踪、工作流程协同的工具。这些工具通常具备任务管理、文件共享、日程安排、团队沟通、进度追踪等功能,旨在帮助团队更好地合作、提高效率。 在快速发展的商业…

3个开源Cron计划任务可视化应用

Cron是Linux、BSD等Unix类型操作系统中的自动任务调度程序。Cron用于按计划的时间间隔(每分钟、每小时、每天、每周或者每月)自动执行脚本或命令。可以自动在后台执行脚本任务,实现对系统必要的维护或者执行一些重复性的操作。 Cron Jobs可以用来做什么? Cron作业用途广泛,…

JS-37 函数

函数是一段可以反复调用的代码块 1、函数的声明 function命令:function命令声明的代码区块,就是一个函数。function命令后米娜是函数名,函数名后面是一对圆括号,里面是传入函数的参数。函数体放在大括号里面。 function print(s){ console.log(s); }2、函数名的提升 Java…

MySQL从库延迟 [Note] Multi-threaded slave statistics : seconds elapsed = 120; events assigned【转】

背景介绍 近来一套业务系统,从库一直处于延迟状态,无法追上主库,导致业务风险较大。从资源上看,从库的 CPU、IO、网络使用率较低,不存在服务器压力过高导致回放慢的情况;从库开启了并行回放;在从库上执行 show processlist 看到没有回放线程阻塞,回放一直在持续;解析 …

2024,语音 AI 元年;2025,Voice Agent 即将爆发丨年度报告发布

围绕 Voice Agent 产品的研发、商业化和增长的完整生命周期,报告构建出一份 Voice Agent 产业生态全景图。 2024 年,AI 与实时互动技术的结合 达到了前所未有的高度。5 月, OpenAI 发布了 GPT-4o ,并展示了其对话功能,仿佛电影《HER》中的智能助手走入了现实生活。10 月,…

基恩士SR710+N-L20系列扫码枪EIP通讯 ( 汇川AM401-基恩士N-L20 )

第一步: 扫码枪设置 1, 基恩士扫码枪IP地址设置 2, 扫码枪EIP设置第二步: PLC设置及编程 1,EDS文件导入 2, EIP配置

预告:钓鱼系统

用于钓鱼演练的钓鱼系统钓鱼系统 数据统计 首页有数据统计,统计了各个模块的数据网页钓鱼 内置了一个钓鱼登录框可以查看被钓中的目标已经钓鱼页面浏览量,密码需要在服务器日志查看exe钓鱼 分为两个,一个是下载一个是运行 模拟的木马无实际危害,仅仅获取用户信息回传,可以…

git工作流区域

一、主要区域工作目录作用:本地系统中的文件夹 文件状态未跟踪:文件刚添加到工作目录,还没有被Git管理(还没有git add) 已跟踪:Git已经对这个文件进行过管理,Git在本地仓库中有这个文件的历史记录。未修改:该文件没有再做任何修改。 已修改:修改过了,但是没有使用git a…