Linux中"/proc"文件系统教程

时间:2020-02-23 14:40:16  来源:igfitidea点击:

"/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 –包含与终端驱动程序相关的文件的子目录。