进程都是在内存中,而内存当中的数据都写到/proc/*这个目录下,所以,当我们直接查看/proc/*这个目录下的文件,就有很多数字命名的目录和其它文件
一 查看/proc/目录下边的内容
[root@centos ~]# cd /proc/
[root@centos proc]# ls
1 1375 1935 2299 2560 2644 27 28 2980 328 354 368 381 395 41 510 544 688 795 871 914 997 fb locks slabinfo
10 1378 1995 23 2565 2650 2712 2803 3 33 355 369 382 396 410 511 545 7 796 874 915 acpi filesystems mdstat softirqs
1012 1382 2 2305 2567 2655 2713 2804 30 334 356 37 383 397 411 52 546 720 797 880 917 asound fs meminfo stat
1014 14 20 2307 2569 2669 2722 2807 3003 335 357 370 384 398 42 522 547 722 798 883 918 buddyinfo interrupts misc swaps
11 15 2070 2316 2581 2670 2723 2810 3007 336 358 371 385 399 43 523 55 723 799 886 919 bus iomem modules sys
12 16 2071 2317 2584 2671 2724 2829 3012 338 359 372 386 400 44 53 56 726 8 887 921 cgroups ioports mounts sysrq-trigger
123 160 21 2386 2592 2675 2725 2842 3018 339 36 373 387 401 440 536 57 728 80 889 928 cmdline irq mpt sysvipc
13 1680 2150 2390 2597 2680 2731 2849 3019 34 360 374 388 402 441 537 62 73 800 894 929 consoles kallsyms mtrr timer_list
130 1687 22 2395 26 2681 2732 2878 3033 340 361 375 389 403 45 538 620 75 81 895 94 cpuinfo kcore net timer_stats
131 1688 2220 24 2604 2682 2743 2894 3070 341 362 376 39 404 46 539 63 76 840 898 957 crypto keys pagetypeinfo tty
1341 17 2221 2487 2608 2683 2766 29 3071 344 363 377 390 405 48 54 636 77 842 899 966 devices key-users partitions uptime
1342 18 2222 2501 2620 2687 2779 2920 31 345 364 378 391 406 49 540 64 78 844 9 974 diskstats kmsg sched_debug version
1347 1866 2235 2506 2627 2689 2781 2939 32 35 365 379 392 407 5 541 644 79 846 902 993 dma kpagecount schedstat vmallocinfo
1348 1867 2284 2509 2633 2694 2782 2967 324 352 366 38 393 408 50 542 65 793 847 905 994 driver kpageflags scsi vmstat
1354 19 2288 2542 2639 2696 2793 2968 325 353 367 380 394 409 51 543 657 794 869 910 995 execdomains loadavg self zoneinfo
复制
解释:目前主机上边的各个进程的PID都已目录的形式存在于/proc当中。例如systemd的PID是1,顺便我们看看有什么东东?
[root@centos proc]# cd 1
[root@centos 1]# ll
total 0
dr-xr-xr-x. 2 root root 0 Aug 23 00:40 attr
-rw-r--r--. 1 root root 0 Aug 23 00:40 autogroup
-r--------. 1 root root 0 Aug 23 00:40 auxv
-r--r--r--. 1 root root 0 Aug 23 00:31 cgroup
--w-------. 1 root root 0 Aug 23 00:40 clear_refs
-r--r--r--. 1 root root 0 Aug 23 00:31 cmdline #命令串
-rw-r--r--. 1 root root 0 Aug 23 00:31 comm
-rw-r--r--. 1 root root 0 Aug 23 00:40 coredump_filter
-r--r--r--. 1 root root 0 Aug 23 00:40 cpuset
lrwxrwxrwx. 1 root root 0 Aug 23 00:40 cwd -> /
-r--------. 1 root root 0 Aug 23 00:31 environ #一些环境变量
lrwxrwxrwx. 1 root root 0 Aug 23 00:31 exe -> /usr/lib/systemd/systemd
......
复制
[root@centos 1]# cat cmdline
/usr/lib/systemd/systemd--switched-root--system--deserialize22
存放的是这个进程被启动的命令串。
二 介绍/proc/目录下除了进程之外重要的文件
/proc/cmdline 加载内核时所执行的相关命令与参数,前文已讲
/proc/cpuinfo 本机的CPU相关信息,包含频率、类型功能等
/proc/devices 记录主要设备的只要设备代号,与mknod有关
/proc/filesystems 当前系统已经加载的文件系统
/proc/interrupts 当前系统上IRQ分配状态
/proc/ioports 当前系统上各个设置所配置的I/O地址
/proc/kcore 内存大小,但不要读它
/proc/loadavg 命令top与 uptime,上边三个平均值就记录在此
/proc/meminfo 使用free列出的内存信息,这个文件中就可以看到
/proc/modules 当前Linux已经加载的模块,也可以成为驱动程序
/proc/mounts 系统已经挂载的数据,使用mount就可以掉出来
/proc/swaps 系统挂载的内存在哪里?使用的硬盘分区再此记录
/proc/partitions 命令fdisk -l查看当前硬盘分区
/proc/uptime 使用命令uptime时出现的信息
/proc/version 内核版本,命令uname -a显示的内容
/proc/bus/* 一些总线设备,还有USB设备也距离在此处
【结语】
感兴趣的同学们可以查看文件中的信息,但没有必要深入了解。如果以后有兴趣的同学想要编写某些工具软件,那么这个目录下边的相关文件可能会对您有帮助的。