首页 > 系统相关 >Linux基础 - 文件系统 /proc

Linux基础 - 文件系统 /proc

时间:2023-02-19 12:12:09浏览次数:36  
标签:proc 文件系统 sys 内核 Linux net root

 

 

一、 /proc文件系统

1.1 /proc: 一个虚拟文件系统
/proc 文件系统是一种内核和内核模块用来向进程(process) 发送信息的机制(所以叫做/proc)。

最初的设计目的是允许更方便的对进程信息进行访问, 现在它被内核使用, 如/proc/modules是模块的列表, /proc/meminfo 是内存使用的统计表。

Linux内核提供了一种通过 /proc文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。 以文件系统的方式为访问系统内核数据的操作提供接口。

由于系统的信息, 如进程是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。

 

1.2 加载/proc
/proc 存在于内存之中而不是硬盘上。/proc 由内核控制,没有承载/proc的设备。

查看文件/proc/mounts(和mount命令一样列出所有已经加载的文件系统):

[root@centos78 ~]# grep proc /proc/mounts
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=36,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=14038 0 0

如果系统中没有加载 proc文件系统,可以通过如下命令加载proc文件系统:

[root@centos78 ~]# mount -t proc proc /proc

/proc 文件系统和其他常规的文件系统一样把自己注册到虚拟文件系统层(VFS)了。
然而直到当VFS调用它,请求文件、目录的i-node的时候,/proc文件系统才会根据内核中的信息建立相应的文件和目录。
当编辑程序试图打开一个虚拟文件时,这个文件就通过内核中的信息被凭空地(on the fly) 创建了。

[root@centos78 1021]# ls -i -l
total 0
23827 dr-xr-xr-x. 2 root root 0 Feb 20 07:16 attr
23813 -rw-r--r--. 1 root root 0 Feb 20 07:16 autogroup
23809 -r--------. 1 root root 0 Feb 20 07:16 auxv

  

二、 /proc 内核信息

2.1 常用文件

self目录则是读取进程本身(shell)的信息接口,是一个link。

/proc/cmdline:        系统启动时输入的内核命令行参数
/proc/cpuinfo:        CPU的信息(型号, 家族, 缓存大小等)
/proc/devices:        可用设备的列表(块设备/字符设备)
/proc/filesystems:   被支持的文件系统
/proc/loadavg:       系统的负载
/proc/meminfo:       物理内存、交换空间等的信息
/proc/modules:       已加载的模块,lsmod 查看
/proc/version:       内核版本
/proc/mounts -> self/mounts:   已加载的文件系统的列表

 

2.2 文件的写权限  

大部分/proc 的文件是只读的。而实际上/proc 文件系统通过/proc 中可读写的文件提供了对内核的交互机制。

写这些文件可以改变内核的状态,/proc/sys 目录存放所有可读写的文件的目录,可以被用于改变内核行为。

/proc/sys/kernel: 目录包含非通用内核行为的信息。

/proc/sys/net:    目录中的文件用于修改机器/网络的网络属性。

[root@centos78 ~]# cat /proc/sys/kernel/domainname
(none)
[root@centos78 ~]# echo "kunking.com" > /proc/sys/kernel/domainname
[root@centos78 ~]# cat /proc/sys/kernel/domainname
kunking.com

[root@centos78 ~]# cat /proc/sys/net/ipv4/ip_forward
0
[root@centos78 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@centos78 ~]# cat /proc/sys/net/ipv4/ip_forward
1

  

2.3 运行中的进程的信息

在/proc中数字编号的子目录, 每个编号的目录对应一个进程id (PID)。子目录包含了进程的状态和环境信息的文件。

cmdline:   命令行参数
cwd:       当前工作目录的链接
environ:   环境变量值
exe:       指向该进程的执行命令文件
fd:        包含进程所有文件描述符的目录
maps:      内存映像
mem:       进程的内存使用情况
stat:      进程状态
status:    进程当前状态, 以可读方式显示
statm:     进程内存状态信息
root:      链接到进程的root目录

 

2.4 不常用文件

/proc/acpi
/proc/buddyinfo
/proc/bus
/proc/cgroups
/proc/consoles
/proc/crypto
/proc/diskstats
/proc/dma:                 驱动程序使用的DMA通道和驱动程序名称
/proc/driver
/proc/execdomains
/proc/fb:                  
/proc/fs
/proc/interrupts:          中断的使用信息
/proc/iomem
/proc/ioports:             磁盘驱动器、网卡、声卡等设备驱动程序I/O端口信息
/proc/irq
/proc/kallsyms
/proc/kcore:               物理内存以core文件格式保存的文件。gdb查看内核数据结构。二进制格式。
/proc/keys
/proc/key-users
/proc/kmsg:                内核消息, 使用dmesg检索这些信息。
/proc/kpagecount
/proc/kpageflags
/proc/locks:               内核锁, 在打开的文件上的加锁信息
/proc/mdstat:              由md设备驱动程序控制的RAID设备信息。
/proc/misc:                内核函数misc_register 登记的设备驱动程序
/proc/mpt
/proc/mtrr
/proc/net -> self/net
/proc/pagetypeinfo
/proc/partitions:          系统识别的分区表
/proc/sched_debug
/proc/schedstat
/proc/scsi:                包含所有检测到的SCSI设备的文件, 每种控制器驱动程序一个目录
/proc/self -> 1546
/proc/slabinfo:            Slab池信息
/proc/softirqs
/proc/stat:                全面统计状态表,CPU利用率、磁盘、内存页、内存交换、中断等信息
/proc/swaps:               交换空间的使用情况
/proc/sys:                 调整系统的性能, 包括abi/crypto/debu/dev/fs/kernel/net/user/vm
/proc/sysrq-trigger
/proc/sysvipc
/proc/timer_list
/proc/timer_stats
/proc/tty
/proc/uptime:              系统正常运行时间
/proc/vmallocinfo
/proc/vmstat
/proc/zoneinfo

  

2.5  /proc/net 信息

 

/proc/net/anycast6
/proc/net/arp:            转储每个网络接口的arp表中dev 包的统计
/proc/net/connector
/proc/net/dev:            来自网络设备的统计
/proc/net/dev_mcast:      列出二层(数据链路层)多播组
/proc/net/dev_snmp6
/proc/net/fib_trie
/proc/net/fib_triestat
/proc/net/hci
/proc/net/icmp
/proc/net/if_inet6
/proc/net/igmp:           加入的IGMP多播组
/proc/net/igmp6
/proc/net/ip6_flowlabel
/proc/net/ip6_mr_cache
/proc/net/ip6_mr_vif
/proc/net/ip6_tables_matches
/proc/net/ip6_tables_names
/proc/net/ip6_tables_targets
/proc/net/ip_mr_cache
/proc/net/ip_mr_vif
/proc/net/ip_tables_matches
/proc/net/ip_tables_names
/proc/net/ip_tables_targets
/proc/net/ipv6_route
/proc/net/l2cap
/proc/net/mcfilter
/proc/net/mcfilter6
/proc/net/netfilter
/proc/net/netlink:           netlink 套接口的信息
/proc/net/netstat:           网络流量的多种统计。
/proc/net/nf_conntrack
/proc/net/nf_conntrack_expect
/proc/net/packet
/proc/net/protocols
/proc/net/psched
/proc/net/ptype
/proc/net/raw:               原始套接字的套接字列表
/proc/net/raw6
/proc/net/route:             静态路由表
/proc/net/rt6_stats
/proc/net/rt_acct
/proc/net/rt_cache
/proc/net/sco
/proc/net/snmp:             snmp agent的ip/icmp/tcp/udp协议统计
/proc/net/snmp6
/proc/net/sockstat:         列出使用的tcp/udp/raw/pac/syc_cookies的数量
/proc/net/sockstat6
/proc/net/softnet_stat
/proc/net/stat
/proc/net/tcp:              TCP 连接的套接字
/proc/net/tcp6
/proc/net/udp:              UDP 连接的套接字
/proc/net/udp6
/proc/net/udplite
/proc/net/udplite6
/proc/net/unix:             UNIX 域套接字列表
/proc/net/wireless
/proc/net/xfrm_stat

 

 

标签:proc,文件系统,sys,内核,Linux,net,root
From: https://www.cnblogs.com/kingdomer/p/9452236.html

相关文章

  • 5.windows安装linux系统
    本章意图将windows系统安装为Linux系统 1.安装的准备:U盘(不小于20G)windows电脑安装软件连接链接:https://pan.baidu.com/s/1QHYv3tif2cX3V6dDQ9nV4w提取码:o1......
  • github 私有仓库linux下免输入账号密码 ||php shell_exec webhook自动化部署||如何使w
    github私有仓库linux下免输入账号密码cd~/touch.git-credentialsvim.git-credentials内容为:https://{username}:{password}@github.com比如https://account:password......
  • Linux 安装jdk并配置环境
    1、官网下载安装包注:笔者所用的远程连接工具为WindTerm官网:Oracle官网网盘:网盘下载下拉,找到Java8点击jdk-8u351-linux-x64.tar.gz即可,如果需要登录那就登录一......
  • An attempt to set a process's DebugPort or ExceptionPort was made
    Howtoresolve"Cannotdebugpid,NTSTATUS0xC0000048"-"Anattempttosetaprocess'sDebugPortorExceptionPortwasmade..."2011/10/21 OnceIfou......
  • linux文件保护命令chattr
    chattr命令用来设置文件属性的一个工具,与chmod和chown不同,chattr命令主要是用来提高系统文件的安全性,对相应的文件进行锁定,可以很有效的防止误删除误操作,与chattr对应的命......
  • linux centOs7 安装docker
    一.设置安装源yum-config-manager--add-repohttp://download.docker.com/linux/centos/docker-ce.repo(中央仓库)或yum-config-manager--add-repohttp://mirrors.aliyu......
  • linux系统安装谷歌浏览器设置开机自动启动并打开指定页面
     要在Linux系统上安装GoogleChrome浏览器,可以按照以下步骤:下载GoogleChrome浏览器的安装包,你可以从Google的官方网站或者第三方下载站点上获取。解压......
  • Linux基础 - 文件系统 mount挂载
     一、挂载硬盘(不超2T)1.1 虚拟机新加一块硬盘  1.2 查看新增的硬盘[root@centos78~]#fdisk-lDisk/dev/sda:42.9GB,42949672960bytes,83886080se......
  • Linux安装
    更详细的可参考基于VirtualBox搭建Linux(CentOS7)虚拟机环境(学习必备技能)-码霸霸(lupf.cn)1.软件VirtualBox官网下载最新的VirtualBox,地址:https://www.virtualbox.o......
  • linux018之安装mysql
    linux上安装mysql:第一步:查看是否已经安装mariadb,mariadb是mysql数据库的分支,mariadb和mysql一起安装会有冲突,所以需要卸载掉。yumlistinstalled|grepmariadb:查看是......