Linux中"/proc"文件系统教程
"/proc",是" process"的缩写,是一个虚拟文件系统,每次系统启动时都会创建。
它包含与正在进行的进程,内存管理以及某些硬件配置有关的信息。
每个Linux都具有/proc
文件系统,无论类型或者版本如何。
作为虚拟文件系统,可以从Linux中的任何目录访问它。
为了进入文件系统,我们运行以下命令:
如何访问"/proc"文件系统?
我们将学习的第一件事是如何导航到/proc文件系统。
cd /proc
" cd"是指"更改目录",用于切换到Linux中的其他目录。
##/proc文件系统的内容
不用更改目录,我们可以使用以下命令在终端上列出/proc
文件系统的所有文件:
ls /proc
'ls'命令用于列出指定位置内存在的所有文件和目录。
在这里更多有关ls的信息。
'ls'命令使用颜色方案表示文件和目录。
配色方案
蓝色–输出的蓝色部分代表子目录。
白色–未着色的文件是包含数据的普通文件。
青色–青色文件是符号链接。
如我们所见,/proc
包含大量文件和目录。
我们将介绍一些重要的内容。
编号目录
每个编号的目录表示一个进程ID。
进程ID(PID)是给定在系统中正在运行或者休眠的特定进程的唯一ID。
每个进程目录都包含存储有关相应进程的信息的文件。
必须注意,每个过程对于系统的正常运行至关重要。
因此,为了完全访问进程目录中的每个文件,我们需要root用户访问权限。
它可以通过Linux中的''sudo -s''或者'sudo su'来实现。
让我们看一个PID = 15的过程示例。
内容列表
提取编号为15的目录的内容可以通过以下方法完成:
ls /proc/15
处理信息
要提取有关流程15的信息,我们运行:
cat /proc/15/status
有关进程" 15"的信息
" cat"是用于连接文件的Linux工具。
其中我们只是用它来提取存储在" 15"目录中的"状态"文件中的数据。
为了验证输出的真实性,我们始终可以使用ps命令通过以下方式检查进程状态:
ps -p 15
使用" ps"的处理状态为" 15"
上面的命令根据给定的PID过滤出过程状态。
其他详情
"/proc/15"中的每个文件都包含一些与进程" 15"相关的信息。
其中一些文件是:
-/proc/15/mem –进程已保存的内存。
-/proc/15/environ –在启动过程中设置的环境变量。
-/proc/15/cwd –指向进程的当前工作目录(CWD)的链接。
-/proc/15/limits –存储资源限制的值,例如CPU时间或者内存空间。
-/proc/15/fd –包含文件描述符的目录。
-/proc/15/cmdline –它包含该进程的整个命令行。
要了解有关进程相关目录中此类文件的更多信息,我们可以使用'man proc'来参考手册页。
内存统计
‘/proc/meminfo’包含有关系统内存使用情况的信息。
可以通过以下方式访问此文件:
cat /proc/meminfo
" meminfo"文件的内容
CPU信息
要访问与CPU相关项目有关的详细信息,例如CPU时钟速度,型号等,可以使用"/proc/cpuinfo":
cat /proc/cpuinfo
" cpuinfo"文件的内容
内核锁定的文件
在多线程环境中,锁定是解决文件同时编辑的关键。
'/proc/locks'包含内核当前正在实现的锁的列表。
cat /proc/locks
每行包含一个锁。
它可以解释为:
1:–锁文件中的序列号。
POSIX –锁实现的类型。
咨询–防止再次尝试锁定文件。
WRITE –基于访问的锁定类型,即READ或者WRITE。
2056 –持有锁的进程的PID。
08:07:5899560 –文件的标识。
0 EOF –文件的锁定区域的起点和终点。
密码模块
'/proc/crypto'包含内核加密API支持的密码列表。
其内容如下所示:
cat /proc/crypto
支持的文件系统
"/proc/filesystems"包含Linux内核当前支持或者安装的其他文件系统的列表。
cat /proc/filesystems
输出的第二列包含支持的文件系统的名称,而第一列指定当前是否已安装该文件系统。
“nodev”的使用意味着没有挂载文件系统。
"/proc"中的其他文件
其他一些包含重要信息的文件是:
-/proc/interrupts –包含每个CPU的中断。
-/proc/ioports –存储正在使用的所有输入/输出端口的列表。
-/proc/diskstats –显示每个磁盘设备的统计信息。
-/proc/version –存储内核版本。
-/proc/tty –包含与终端驱动程序相关的文件的子目录。