全面了解Linux下Proc文件系统.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:10 大小:51KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

全面了解Linux下Proc文件系统.doc

全面了解Linux下Proc文件系统.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

全面了解Linux下Proc文件系统Proc是一个虚拟文件系统,在Linux系统中它被挂载于/proc目录之上。Proc有多个功能,这其中包括用户可以通过它访问内核信息或用于排错,这其中一个非常有用的功能,也是Linux变得更加特别的功能就是以文本流的形式来访问进程信息。很Linux命令(比如ps、toPpstree等)都需要使用这个文件系统的信息。本文就是向用户介绍一些访问这些信息的方法。需要说明的是,本文所述的内容并不一定适用所有内核版本,有部分操作只适用于2.6内核。bus总线信息(只读)drivers驱动信息(只读)fs文件系统特别信息(只读)ideIDE接口信息(只读)irqIRQ信息(只读)net网络子系统信息(只读)scsiSCSI系统信息(只读)sysvipcIPC子系统信息(只读)ttytty子系统信息(只读)sys系统内核可调参数(可调)一、进程信息在/proc文件系统中,每一个进程都有一个相应的文件。下面是/proc目录下的一些重要文件:/proc/pid/cmdline包含了用于开始进程的命令;/proc/pid/cwd包含了当前进程工作目录的一个链接;/proc/pid/environ包含了可用进程环境变量的列表;/proc/pid/exe包含了正在进程中运行的程序链接;/proc/pid/fd/这个目录包含了进程打开的每一个文件的链接;/proc/pid/mem包含了进程在内存中的内容;/proc/pid/stat包含了进程的状态信息;/proc/pid/statm包含了进程的内存使用信息。下面是一些获取进程信息的例子:◆假设现在要查看是否所有的进程都会做存储器清除工作。在/proc/pid/stat文件中的每一个进程标识(第8个属性)提供了有关进程的很多“个人”信息。这个信息可以对每一个进程标识进行。0x00000002Processbeingcreated0x00000004Exiting0x00000008Dead0x00000040Processusingsuperuserprivflage0x00000200Processdumpingcore0x00000400Prooessreceivedsomesignal0x00000800Processallocatingmemory0x00001000Killedduetoout-of--memorycondition笔者从/usr/src/linux/include/linux/sched.h中提取了这些信息。◆/proc/pid/fd/目录提供了有关打开文件的信息。要查看被进程使用的输入文件,使用以下命令:#ls–l/proc/pid/fd/0◆查看被进程使用socket,使用以下命令:#ls–l/proc/pid/fd|sed–n`/socket/{s/.*\[//;s/\]//p}`有关这些socket的信息可以使用以下命令获取:#netstat--ae◆要将命令行参数传递给任意进程,使用以下命令:~~cat/proc/pid/cmdline◆要获取某一进程父进程的ID号,使用以下命令:#grepPPid/proc/pid/status二、普通的系统信息Proc包含了很多系统信息,这其中包括CPU负载、文件系统和网络配置。下面是一些通过Proc查看和更改系统的例子:◆获取可用系统内存的空间:#grepFree/proc/meminfo◆自从系统最后一次启动后的系统统计可以从/proc/stat文件中获取:#grepprocesses/proc/stat◆获知第1、5和15分钟系统负载的平均值:#awk`{print“1min:\t”$1“\n5min:\t”$2“\n15min:\t”$3}`/proc/loadavg◆/proc/partitions可用于获取系统的分区信息。◆/proc/net和/proc/sys/net可用于查看和更改重要的网络信息。比如,禁用ping命令,可以以root身份运行以下命令:#echo1>/proc/sys/net/ipv4/icmp_echo_ignore_all如果要启用IP转发/IP伪装,使用以下命令:#echo1>/proc/sys/net/ipv4/ip_forward◆已经挂载的文件系统信息可以从/proc/mounts中检索。◆要改变正在使用的主机名,使用以下命令:#echowww.abc.corn>/proc/sys/kernel/hostname◆要获取CPU信息,使用以下命令:#cat/proc/cpuinfo◆要获知swap空间的使用情况,使用以下命令:#cat/proc