位置: 编程技术 - 正文

解析Linux系统中的/proc虚拟文件系统(linux 解析)

编辑:rootadmin

推荐整理分享解析Linux系统中的/proc虚拟文件系统(linux 解析),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux常见的命令解析器调用包括,linux理解,linux命令解析,linux解释器有哪些,linux理解,linux配置解析,linux怎么解析配置文件,linux配置解析,内容如对您有帮助,希望把文章链接给更多的朋友!

Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、 改变内核设置的机制。尽管在各种硬件平台上的 Linux 系统的 /proc 文件系统的 基本概念都是相同的,但本文只讨论基于 intel x 架构的 Linux /proc 文件系 统。

/proc --- 一个虚拟文件系统/proc 文件系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上。如果你察看文件 /proc/mounts (和 mount 命令一样列出所有已经加载的文件系统),你会看到其中 一行是这样的:

复制代码代码如下: grep proc /proc/mounts/proc /proc proc rw 0 0/proc 由内核控制,没有承载 /proc 的设备。因为 /proc 主要存放由内核控制 的状态信息,所以大部分这些信息的逻辑位置位于内核控制的内存。对 /proc 进行 一次 'ls -l' 可以看到大部分文件都是 0 字节大的;不过察看这些文件的时候,确 实可以看到一些信息。这怎么可能?这是因为 /proc 文件系统和其他常规的文件系 统一样把自己注册到虚拟文件系统层 (VFS) 了。然而,直到当 VFS 调用它,请求 文件、目录的 i-node 的时候,/proc 文件系统才根据内核中的信息建立相应的文件 和目录。

加载 proc 文件系统如果系统中还没有加载 proc 文件系统,可以通过如下命令加载 proc 文件系统: 复制代码代码如下:mount -t proc proc /proc上述命令将成功加载你的 proc 文件系统。更多细节请阅读 mount 命令的 man page。

察看 /proc 的文件/proc 的文件可以用于访问有关内核的状态、计算机的属性、正在运行的进程的 状态等信息。大部分 /proc 中的文件和目录提供系统物理环境最新的信息。尽管 /proc 中的文件是虚拟的,但它们仍可以使用任何文件编辑器或像'more', 'less'或 'cat'这样的程序来查看。当编辑程序试图打开一个虚拟文件时,这个文件就通过内核 中的信息被凭空地 (on the fly) 创建了。这是一些我从我的系统中得到的一些有趣 结果:复制代码代码如下:$ ls -l /proc/cpuinfo-r--r--r-- 1 root root 0 Dec : /proc/cpuinfo$ file /proc/cpuinfo/proc/cpuinfo: empty$ cat /proc/cpuinfoprocessor : 0vendor_id : GenuineIntelcpu family : 6model : 8model name : Pentium III (Coppermine)stepping : 6cpu MHz : .cache size : KBfdiv_bug : nohlt_bug : nosep_bug : noff_bug : nocoma_bug : nofpu : yesfpu_exception : yescpuid level : 2wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mcacmov pat pse mmx fxsr xmmbogomips : .processor : 3vendor_id : GenuineIntelcpu family : 6model : 8model name : Pentium III (Coppermine)stepping : 6cpu MHz : .cache size : KBfdiv_bug : nohlt_bug : nosep_bug : noff_bug : nocoma_bug : nofpu : yesfpu_exception : yescpuid level : 2wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mcacmov pat pse mmx fxsr xmmbogomips : .

这是一个从双 CPU 的系统中得到的结果,上述大部分的信息十分清楚地给出了这个系 统的有用的硬件信息。有些 /proc 的文件是经过编码的,不同的工具可以被用来解释 这些编码过的信息并输出成可读的形式。这样的工具包括:'top', 'ps', 'apm' 等。

得到有用的系统/内核信息

proc 文件系统可以被用于收集有用的关于系统和运行中的内核的信息。下面是一些重要 的文件:

解析Linux系统中的/proc虚拟文件系统(linux 解析)

/proc/cpuinfo - CPU 的信息 (型号, 家族, 缓存大小等)/proc/meminfo - 物理内存、交换空间等的信息/proc/mounts - 已加载的文件系统的列表/proc/devices - 可用设备的列表/proc/filesystems - 被支持的文件系统/proc/modules - 已加载的模块/proc/version - 内核版本/proc/cmdline - 系统启动时输入的内核命令行参数proc 中的文件远不止上面列出的这么多。想要进一步了解的读者可以对 /proc 的每一个 文件都'more'一下或读参考文献[1]获取更多的有关 /proc 目录中的文件的信息。我建议 使用'more'而不是'cat',除非你知道这个文件很小,因为有些文件 (比如 kcore) 可能 会非常长。

有关运行中的进程的信息/proc 文件系统可以用于获取运行中的进程的信息。在 /proc 中有一些编号的子目录。每个编号的目录对应一个进程 id (PID)。这样,每一个运行中的进程 /proc 中都有一个用它的 PID 命名的目录。这些子目录中包含可以提供有关进程的状态和环境的重要细节信息的文件。让我们试着查找一个运行中的进程。复制代码代码如下:$ ps -aef | grep mozillaroot 8 : pts/1 :: /usr/bin/mozilla上述命令显示有一个正在运行的 mozilla 进程的 PID 是 。相对应的,/proc 中应该有一个名叫 的目录复制代码代码如下: $ ls -l /proc/total 0-r--r--r-- 1 root root 0 Dec : cmdline-r--r--r-- 1 root root 0 Dec : cpulrwxrwxrwx 1 root root 0 Dec : cwd -> /proc/-r-------- 1 root root 0 Dec : environlrwxrwxrwx 1 root root 0 Dec : exe -> /usr/bin/mozilla*dr-x------ 2 root root 0 Dec : fd/-r--r--r-- 1 root root 0 Dec : maps-rw------- 1 root root 0 Dec : mem-r--r--r-- 1 root root 0 Dec : mountslrwxrwxrwx 1 root root 0 Dec : root -> //-r--r--r-- 1 root root 0 Dec : stat-r--r--r-- 1 root root 0 Dec : statm-r--r--r-- 1 root root 0 Dec : status文件 "cmdline" 包含启动进程时调用的命令行。"envir" 进程的环境变两。 "status" 是进程的状态信息,包括启动进程的用户的用户ID (UID) 和组ID(GID) , 父进程ID (PPID),还有进程当前的状态,比如"Sleelping"和"Running"。 每个进程的目录都有几个符号链接,"cwd"是指向进程当前工作目录的符号 链接,"exe"指向运行的进程的可执行程序,"root"指向被这个进程看作是 根目录的目录 (通常是"/")。目录"fd"包含指向进程使用的文件描述符的链接。 "cpu"仅在运行 SMP 内核时出现,里面是按 CPU 划分的进程时间。

/proc/self 是一个有趣的子目录,它使得程序可以方便地使用 /proc 查找本进程地信息。/proc/self 是一个链接到 /proc 中访问 /proc 的进程所对应的 PID 的目录的符号链接。

通过 /proc 与内核交互

上面讨论的大部分 /proc 的文件是只读的。而实际上 /proc 文件系统通过 /proc 中可读写的文件提供了对内核的交互机制。写这些文件可以改变内核 的状态,因而要慎重改动这些文件。/proc/sys 目录存放所有可读写的文件 的目录,可以被用于改变内核行为。

/proc/sys/kernel - 这个目录包含反通用内核行为的信息。 /proc/sys/kernel/{domainname, hostname} 存放着机器/网络的域名和主机名。 这些文件可以用于修改这些名字。

复制代码代码如下:$ hostnamemachinename.domainname.com$ cat /proc/sys/kernel/domainnamedomainname.com$ cat /proc/sys/kernel/hostnamemachinename$ echo "new-machinename" > /proc/sys/kernel/hostname$ hostnamenew-machinename.domainname.com

这样,通过修改 /proc 文件系统中的文件,我们可以修改主机名。很多其 他可配置的文件存在于 /proc/sys/kernel/。这里不可能列出所有这些文件, 读者可以自己去这个目录查看以得到更多细节信息。另一个可配置的目录是 /proc/sys/net。这个目录中的文件可以 用于修改机器/网络的网络属性。比如,简单修改一个文件,你可以在网络 上瘾藏匿的计算机。复制代码代码如下: $ echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all这将在网络上瘾藏你的机器,因为它不响应 icmp_echo。主机将不会响应其 他主机发出的 ping 查询。复制代码代码如下: $ ping machinename.domainname.comno answer from machinename.domainname.com要改回缺省设置,只要复制代码代码如下: $ echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all/proc/sys 下还有许多其它可以用于改变内核属性。读者可以通过参考文献 [1], [2] 获取更多信息。

结论/proc 文件系统提供了一个基于文件的 Linux 内部接口。它可以用于确定系统 的各种不同设备和进程的状态。对他们进行配置。因而,理解和应用有关这个 文件系统的知识是理解你的 Linux 系统的关键。

详解Linux中输出文件内容的rev与tac命令使用 revrev显示最后一个字符显示到第一个字符。例:复制代码代码如下:[root@localhostwww]#cattestabcd[root@localhostwww]#revtestdcba[root@localhostwww]#tactestabcdtac用

发现Linux中IP地址冲突的方法 你们都知道什么是IP地址,是吧?它们被分配给网络上的设备来代表它们。它们通过DHCP服务器分配并且会经常改变。现在有两种IP地址。动态的一种会经

linux命令每天必学()之tail 命令 linuxtail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该

标签: linux 解析

本文链接地址:https://www.jiuchutong.com/biancheng/356821.html 转载请保留说明!

上一篇:Linux系统中使用cmp和comm命令来比较两个文件(linux使用cp)

下一篇:详解Linux中输出文件内容的rev与tac命令使用(linux输出结果)

  • 什么企业的纳税最多
  • 租赁负债的计税基础
  • 企业所得税视同销售的会计处理是?
  • 旅游公司的账务框架
  • 安防视频监控工程项目
  • 烟丝是消费税的征收范围
  • 建设工程劳务分包的规定
  • 查询不到已经上市的股票
  • 个体工商户定期定额核定
  • 开具运输发票应备注哪些内容
  • 偶然所得申报期限
  • 劳务公司怎样纳税
  • 软件开发的服务内容方式要求
  • 企业代开租金专票开什么项目好?
  • 金税盘抵减税款分录
  • 企业所得税核定征收怎么计算
  • 滴滴出行客运服务费 事业单位 报销
  • 7月1日起税务新规
  • 销售费用中的运输费属于什么科目
  • 季度利润
  • 进口货物账务处理外币
  • windows 11密钥
  • windows10如何开启夜间模式
  • 同一年可以先娶后嫁吗
  • 以前年度损益调整借贷方向
  • php ftp上传文件
  • 收到工程款怎么做账务处理
  • 外商投资企业有哪些出资方式
  • 华盛顿州帕卢斯心雕塑
  • 房地产消防工程入什么科目
  • 培训公司要交哪些税
  • 顺流交易的会计处理
  • 毕业设计基于web难还是JAVA
  • 人脸检测5种方式
  • 注册新公司怎么办理
  • 怎么冲暂估入账
  • 员工探亲证明怎么写
  • 职工福利费的范围有哪些
  • 科技项目经费预算取费细则
  • 小规模0申报要做账吗
  • 小规模纳税人0申报汇算清缴
  • mongodb起源
  • distinct用法及搭配
  • 累计盈余的借方
  • 企业转让无形资产的方式有
  • 去银行打对账单和回执单需要拿什么
  • 小规模纳税人和一般纳税人的界定标准
  • 营改增后建筑劳务分包开票一般几个点
  • 机械租赁公司需要什么证件
  • 企业出售产品
  • 固定资产清理如何计算
  • 实收资本的账务处理会影响什么
  • 预付卡的含义
  • 研发成功后的产品出售如何处理
  • 港口建设费收费标准
  • 什么是结构性存款基金
  • 总分机构和分总机构的区别
  • 会计出账入账怎么做
  • xp恢复回收站删除文件
  • for windows vista only
  • Win8.1 64位系统安装Office365出现30125-1011错误提示的故障原因及解决方法
  • ubuntu如何安装wps
  • win7笔记本触摸板怎么用滑轮
  • Win10预览版桌面图标和任务栏不翼而飞怎么办?
  • windows7看视频黑屏
  • node connect
  • [置顶]从lv2开始开挂的原勇者候悠闲的异世界生活
  • js存储
  • android list
  • 批处理提取文件夹中的文件
  • unity 游戏
  • android性能优化面试题
  • 如何搭建python项目架构
  • 一款简单的网络版多媒体课件制作软件是什么
  • python 网络应用
  • bootstrap快速入门
  • js简单网速测试方法
  • 贵州企业申报系统
  • 当前土地增值税优惠政策
  • 蓬莱市税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设