全面了解Linux下Proc文件系统
Proc
是一个虚拟文件系统,在
Linux
系统中它被挂载于
/proc
目录之上。
Proc
有多个功能
,这其中包括用户可以通过它访问内核信息或用于排错,这其中一个非常有
用的功能,也是
Linux
变得更加特别的功能就是以文本流的形式来访问进程信息。很
Linux
命令
(
比如
ps
、
toPpstree
等
)
都需要使用这个文件系统的信息。
本文就是向用户介绍一些访问这些信息的方法
。需要说明的是,本文所述的内容并不
一定适用所有内核版本,有部分操作只适用于
2.6
内核。
一、进程信息
在
/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
个属性
)
提供了有关进程的很多
“个人”信
息。这个信
息可以对每一个
进程标识进行。
0x00000002 Process being created
0x00000004 Exiting
0x00000008 Dead
0x00000040 Process using
superuser privflage
0x00000200
P rocess dumping core
0x00000400 Prooess received some signal
0x00000800
Process allocating memory
0x00001000 Killed due to out-of--memory condition
笔者从
/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
号,使用以下命令:
#grep PPid/proc/pid/status
二、普通的系统信息
Proc
包含了很多系统信息,这其中包括
CPU
负载、文件系统和网络配置
。下面是一些通过
Proc
查看和更改系统的例子:
◆
获取可用系统内存的空间
:
# grep
Free /proc/meminfo
◆
自从系统最后一次启动后的系统统计可以从
/proc/stat
文件中获取
:
#grep processes /proc/stat
◆
获知第
1
、
5
和
15
分钟系统负载的平均值
:
#awk `{print “1 min:\t” $1 “\n5 min:\t” $2 “\n15 min:\t” $3` /proc/loadavg
◆
/proc/partitions
可用于获取系统的分区信息
。
◆
/proc/net
和
/proc/sys/net
可用于查看和更改重要的网络信息。比如,禁用
ping
命令,可以以
root
身份运行以下命令
:
#echo 1>/proc/sys/net/ipv4/icmp_echo_ignore_all
如果要启用
IP
转发
/IP
伪装,使用以下命令
:
#echo 1> /proc/sys/net/ipv4/ip_forward
◆
已经挂载的文件系统信息可以从
/proc/mounts
中检索。
◆
要改变正在使用的主机名
,使用以下命令:
# echo www.abc.corn >/proc/sys/kernel/hostname
◆
要获取
CPU
信息,使用以下命令
:
# cat /proc/cpuinfo
◆
要获知
swap
空间的使用情况
,使用以下命令:
# cat /proc/swaps
◆
获取系统的正常运行时间:
#cat /proc/uptime
◆
列出由
NFS
共享的文件系统:
# cat /proc/fs/nfsd/exports
三、相关内核的信息
这是一个非常宽泛的主题,这里只介绍其中一小部分内容:
◆
从正在运行的内核中获知内核的版本:
#cat /proc/version
◆
/proc/kmsg
文件被作为内核日志信息源,它可以被作为一个系统信息调用的接口使用。
◆
/proc/kcore
文件提供了以内核文件格式形式访问系统物理内存,并且可以被
gdb
用于检查任意内核数据结构的当前状态。如果装了源码,那么可以通过查看
/usr/src/linux/Documentation/filesystems/proc.txt
文件来获取更多的信息
。
从中可以看出来,
Proc
是一个非常不错的获取系统信息渠道。如果利用得好,则它对
Linux
系统的维护和管理能提供非常大的帮助。
分享到:
相关推荐
Linux下的Proc文件系统是Linux内核提供的一种特殊文件系统,它并不存储在硬盘上,而是一种内存映射的虚拟文件系统,主要用于提供内核状态和进程信息。Proc被挂载在根目录`/proc`下,它使得用户可以通过读取和写入...
### 使用proc系统访问Linux内核 #### 一、引言 在Linux系统中,`/proc` 文件系统是一个特殊的虚拟文件系统,...此外,了解其他虚拟文件系统如 `sysfs` 和 `devtmpfs` 也有助于更全面地理解Linux系统的内部工作机制。
通过深入学习和实践,学生可以更全面地理解Linux内核的工作原理,以及如何利用proc文件系统来监控和调整系统状态,这对于操作系统的学习和系统管理员的工作都是非常有价值的。在进行课程设计时,建议仔细研究`/proc`...
Linux支持多种文件系统类型,可以通过查看 `/proc/filesystems` 来查看当前内核支持的文件系统。 4. **文件系统选项(fs mntops)**:指定挂载文件系统时使用的参数,如 `defaults`, `rw`, `noatime` 等。不同的...
`proc`文件系统是Linux操作系统中的一个...总的来说,`proc`文件系统是Linux系统管理和监控的重要工具,它为用户和开发人员提供了丰富的信息源,使得他们能够深入了解系统的运行状态,进行故障排查、性能优化等工作。
在描述中提到的“shell之awk proc文件系统,if_inet6 文件打包”,我们可以深入探讨这三个关键概念。 首先,让我们了解`proc`文件系统。在Linux中,`proc`是一个虚拟文件系统,它并不存储实际的数据,而是提供了一个...
通过读取`/proc`目录下的文件,用户空间的应用程序可以获取到诸如CPU信息、内核版本和系统启动时间等关键数据,而无需进入内核模式,这极大地提高了系统的安全性与效率。 在实验中,学生需要编写一个程序,实现的...
### Linux文件系统制作详解 #### 一、根文件系统的重要性及构成 ...通过对根文件系统、关键目录结构、设备文件、动态链接库以及应用程序的深入了解和合理规划,才能构建出既高效又稳定的Linux操作系统环境。
在Linux操作系统中,proc文件系统是一个非常特殊的虚拟文件系统,它并不直接存储磁盘上的数据,而是作为一个接口,提供了对系统内核状态的实时访问。proc目录下包含了大量的文件和目录,它们是进程信息、系统状态、...
深入全面掌握Linux文件系统是学习Linux的基础和难点。 文件系统是操作系统的重要组成部分,是操作系统稳定运行的基础保障。Linux的文件系统是其高效运行的关键,综合了许多先进的操作系统的概念,并在广泛的应用...
通过深入学习这些文档,可以全面了解Linux调度器的工作原理,如何在多核环境中优化负载,以及如何实现能源效率。这对于系统管理员、内核开发者或任何希望深入了解Linux性能的人来说都是宝贵的知识资源。
ARM 嵌入式系统中的根文件系统是Linux在这些平台上运行的基础,它包含了操作系统启动后所需的最基本组件。本文将详细介绍如何为ARM嵌入式系统构建Linux根文件系统。 首先,根文件系统的构成主要包括以下几个部分: ...
【Linux 操作系统之文件系统 实验报告】 本实验报告主要关注Linux操作系统的文件系统,特别是文件命令行操作和...通过这个实验,学生能够全面理解Linux文件系统的操作和内部机制,增强对文件系统管理的实际操作能力。
操作系统课程设计报告主要针对Linux操作系统进行,...这份课程设计报告全面地展示了学生在Linux操作系统课程中的学习成果,通过实际操作和分析,深化了对操作系统原理的理解,同时也锻炼了实际操作和问题解决的能力。
linux编程资深专家michael kerrisk在书中详细描述了linux/unix系统编程所涉及的系统调用和库函数,并辅之以全面而清晰的代码示例。《linux/unix系统编程手册(上、下册)》涵盖了逾500个系统调用及库函数,并给出逾200...
Linux系统中的/proc文件系统是一种特殊的文件系统,它并不存在于硬盘上,而是存在于内存之中。/proc文件系统的主要作用在于提供了一种机制,使得内核和内核模块能够与用户空间的应用程序进行通信。这使得系统管理员...
2. **proc文件系统.rar**:proc文件系统是Linux内核提供的一种虚拟文件系统,它反映了系统运行时的内核状态。在这里,可能包含的是对proc文件系统的操作和分析,例如读取系统信息、监控进程状态、查看网络统计等。...
/Linux/proc/文件系统是一个特殊的虚拟文件系统,它提供了一个窗口,使得管理员可以直接与内核交互,获取实时的系统信息,而无需重启系统。/proc/目录下的文件和目录反映了系统的各种状态,包括硬件、进程、内存、...