Linux中/proce/目录
/proc的作用
/proc是一个位于内存中的伪文件系统(in-memory pseudo-file system)。该目录下保存的不是真正的文件和目录,而是一些“运行时”信息,如系统内存、磁盘io、设备挂载信息和硬件配置信息等。proc目录是一个控制中心,用户可以通过更改其中某些文件来改变内核的运行状态。proc目录也是内核提供给我们的查询中心,我们可以通过这些文件查看有关系统硬件及当前正在运行进程的信息。在Linux系统中,许多工具的数据来源正是proc目录中的内容。例如,lsmod命令就是cat /proc/modules命令的别名,lspci命令是cat /proc/pci命令的别名。
/proc 中的文件和目录可用于监视系统性能、调试问题和配置系统设置。 但是,因为 /proc 的内容是由内核动态生成的,它们可能并不总是准确或最新的。 此外,修改 /proc 中的某些文件可能会产生意想不到的后果,应谨慎操作。
以下是 /proc 中的大部分文件和目录:
-
/proc/[pid]:包含有关特定进程的信息,其中 [pid] 是进程 ID 号。 该目录包括 cmdline(用于启动进程的命令行参数)、status(进程的当前状态)和 stat(有关进程的摘要信息)等文件。
-
以下是/proc目录中进程N的信息
/proc/N pid为N的进程信息
/proc/N/cmdline 进程启动命令
/proc/N/cwd 链接到进程当前工作目录
/proc/N/environ 进程环境变量列表
/proc/N/exe 链接到进程的执行命令文件
/proc/N/fd 包含进程相关的所有的文件描述符
/proc/N/maps 与进程相关的内存映射信息
/proc/N/mem 指代进程持有的内存,不可读
/proc/N/root 链接到进程的根目录
/proc/N/stat 进程的状态
/proc/N/statm 进程使用的内存的状态
/proc/N/status 进程状态信息,比stat/statm更具可读性
-
-
/proc/1:包含有关init进程的信息,它是系统启动时内核启动的第一个进程。
-
/proc/uptime:包含两个值,系统的正常运行时间和空闲模式下花费的时间。
-
/proc/net:包含有关网络协议和连接的信息。
-
/proc/net/dev 显示网络适配器及统计信息
-
/proc/cmdline 启动时传递给kernel的参数信息
-
/proc/crypto 内核使用的所有已安装的加密密码及细节
-
/proc/dma 已注册使用的ISA DMA频道列表
-
/proc/execdomains Linux内核当前支持的execution domains
-
/proc/fb 帧缓冲设备列表,包括数量和控制它的驱动
-
/proc/interrupts x86架构中的每个IRQ中断数
-
/proc/iomem 每个物理设备当前在系统内存中的映射
-
/proc/ioports 一个设备的输入输出所使用的注册端口范围
-
/proc/kcore 代表系统的物理内存,存储为核心文件格式,里边显示的是字节数,等于RAM大小加上4kb
-
/proc/kmsg 记录内核生成的信息,可以通过/sbin/klogd或/bin/dmesg来处理
-
/proc/sys/kernel:包含各种系统范围的配置和状态信息,例如主机名和时区设置。
-
/proc/sys/fs:包含文件系统相关的配置和状态信息,例如最大文件大小和块大小。
-
/proc/sys/vm:包含有关虚拟内存系统的信息,例如页面缓存的大小和内存不足杀手的行为。
-
/proc/bus:包含有关系统总线的信息,例如 PCI 和 USB 总线。
-
/proc/devices:包含当前向内核注册的设备驱动程序列表。
-
/proc/loadavg:包含有关系统平均负载的信息,这是衡量系统当前执行的处理工作量的指标。
-
/proc/stat:包含各种系统范围的统计信息,例如上下文切换的次数以及在系统和用户模式下花费的时间。
-
/proc/version:包含有关当前运行的内核版本的信息。
-
/proc/sysrq-trigger:可用于触发各种系统级操作,例如系统重启或内核崩溃。
-
/proc/locks 内核锁住的文件列表
-
/proc/mdstat 多硬盘,RAID配置信息(md=multiple disks)
-
/proc/misc 其他的主要设备(设备号为10)上注册的驱动
-
/proc/modules 所有加载到内核的模块列表
-
/proc/mounts 系统中使用的所有挂载
-
/proc/mtrr 系统使用的Memory Type Range Registers (MTRRs)
-
/proc/partitions 分区中的块分配信息
-
/proc/pci 系统中的PCI设备列表
-
/proc/meminfo:包含系统内存使用情况的信息,例如内存总量和当前使用的内存量。
-
/proc/buddyinfo 每个内存区中的每个order有多少块可用,和内存碎片问题有关。
-
/proc/vmstat 虚拟内存统计信息
-
/proc/vmcore 内核panic时的内存映像
-
/proc/diskstats 取得磁盘信息
-
/proc/schedstat kernel调度器的统计信息
-
/proc/zoneinfo 显示内存空间的统计信息,对分析虚拟内存行为很有用
-
/proc/self 链接到当前正在运行的进程
-
/proc/cpuinfo:包含有关系统处理器的信息,例如它们的类型、速度和特性。
-
/proc/filesystems:包含内核当前支持的文件系统列表。
-
/proc/slabinfo 系统中所有活动的 slab 缓存信息
-
/proc/swaps 交换空间的使用情况
-
/proc/driver 驱动信息
-
/proc/fs 文件系统信息
-
/proc/ide ide设备信息
-
/proc/irq 中断请求设备信息
-
/proc/scsi scsi设备信息
-
/proc/tty tty设备信息