日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux小工具(3)之/proc目录详细介绍(上)

發布時間:2025/3/21 linux 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux小工具(3)之/proc目录详细介绍(上) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

前言

一、平臺說明

二、/proc目錄概述

三、準備使用

(1)進程描述文件夾

(2)/proc目錄下常見的文件夾


前言

Linux系統的使用有別于Windows系統,無論是系統信息還是應用軟件信息都沒有Windows下那么方便查看。因此,在這里陸續總結一些Linux下的小工具,以便自己能夠在Linux下進行高效的使用和開發。

文檔借鑒了以下文章:Linux /proc目錄詳解?


一、平臺說明

本人使用的的linux開發環境:

vmWAre 14下安裝的Ubuntu 16.04.2

(本來是想使用Fedora,但是xilinx開發工具Petalinux的安裝環境要求使用Ubuntu 16.04.2)


二、/proc目錄概述

Linux系統上的/proc目錄是一種文件系統,即proc文件系統。

proc文件系統與其他常見的文件系統不同的是,proc是一種偽文件系統(即虛擬文件系統,這個概念可下去再深入理解),存儲

的是當前內核運行狀態的一系列特殊文件。用戶可以通過這些文件,查看有關系統硬件信息和內核當前運行進程的信息,甚至可

以通過更改其中某些文件來改變內核的運行狀態。這些在實際的項目開發中都非常有用。它有如下特點:

(1)proc文件系統是一種內核和內核模塊向進程發送消息的機制,因此成為/proc。

用戶通過/proc偽文件系統,可以和內核內部數據結構進行交互,獲取有關進程的消息,也可以在運行中(on the fly)

改變設置(通過改變內核參數)。

(2)與其他文件系統不同,/proc存在內存之中,而不是在硬盤上。通過查看/proc/mounts(和mount命令效果相同),可以查看到當前系統上已經掛載了哪些文件系統,其中有一項:

yehaiyang@ubuntu:/proc$ cat /proc/mounts sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 udev /dev devtmpfs rw,nosuid,relatime,size=1250996k,nr_inodes=312749,mode=755 0 0 devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0 tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=254472k,mode=755 0 0 /dev/sda1 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0 securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0 tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0 tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0 tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0 cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd 0 0 pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0 cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0 cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0 cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0 cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0 cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0 cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0 cgroup /sys/fs/cgroup/pids cgroup rw,nosuid,nodev,noexec,relatime,pids 0 0 cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0 cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0 cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0 systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=14053 0 0 debugfs /sys/kernel/debug debugfs rw,relatime 0 0 mqueue /dev/mqueue mqueue rw,relatime 0 0 hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0 fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0 vmware-vmblock /run/vmblock-fuse fuse.vmware-vmblock rw,relatime,user_id=0,group_id=0,default_permissions,allow_other 0 0 tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=254472k,mode=700,uid=1000,gid=1000 0 0 gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0

格式解釋:

# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0

前三行依次是:文件系統、掛載點、文件類型。

(3)/proc由內核控制,沒有承載/proc的設備。因為/proc主要存放由內核控制的狀態信息,所以大部分這些消息的邏輯位置位于內核控制的內存。對/proc進行一次ls -l命令,可以看到大部分文件都是0字節,但是又可以通過cat來查看這些文件的內容。

yehaiyang@ubuntu:/proc$ ls -l total 0 ... ... -r--r--r-- 1 root root 0 Dec 3 09:50 timer_list -rw-r--r-- 1 root root 0 Dec 3 09:50 timer_stats dr-xr-xr-x 4 root root 0 Dec 3 09:50 tty -r--r--r-- 1 root root 0 Dec 3 09:50 uptime -r--r--r-- 1 root root 0 Dec 3 09:50 version -r--r--r-- 1 root root 0 Dec 3 09:50 version_signature -r-------- 1 root root 0 Dec 3 09:50 vmallocinfo -r--r--r-- 1 root root 0 Dec 3 09:50 vmstat -r--r--r-- 1 root root 0 Dec 3 09:50 zoneinfoyehaiyang@ubuntu:/proc$ cat version Linux version 4.8.0-36-generic (buildd@lgw01-18) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #36~16.04.1-Ubuntu SMP Sun Feb 5 09:39:57 UTC 2017

這是因為:/proc文件系統和其他常規的文件系統一樣,把自己注冊在虛擬文件系統層(VFS),只有當VFS調用它,,請求文件、,目錄的inode的時候,/proc文件系統才會根據內核中的信息建立相應的文件和目錄。


三、準備使用

為了查看及使用上的方便,/proc目錄下的文件通常會按照相關性進行分類存儲于不同的目錄甚至子目錄中,如/proc/scsi目錄中存儲的就是當前系統上所有SCSI設備的相關信息,/proc/N中存儲的則是系統當前正在運行的進程的相關信息,其中N為正在運行的進程(可以想象得到,在某進程結束后其相關目錄則會消失)。

下面我們分別介紹個文件的作用:首先運行一個while(1)死循環的進程,進程號為11340;

root@ubuntu:/home/yehaiyang/Desktop/hello# ./while & [1] 11340

查看/proc,可以看到11340的進程文件夾

root@ubuntu:/proc# ls 1 104 10909 114 127 1923 2098 219 225 233 24 2490 258 271 2918 3438 41 7 97 diskstats kmsg partitions tty 10 1040 11 1147 13 1925 21 2192 2259 2336 240 25 259 272 2981 35 413 8 972 dma kpagecgroup sched_debug uptime 100 1042 110 115 14 2 2109 2194 226 2338 241 250 26 273 3 3560 417 9 977 driver kpagecount schedstat version 101 10429 111 116 1486 20 2110 2198 227 234 242 2507 260 274 30 357 42 91 98 execdomains kpageflags scsi version_signature 1014 105 1118 1169 149 2005 2114 2199 228 2346 2421 251 261 275 3003 359 43 93 99 fb loadavg self vmallocinfo 102 10513 112 117 15 2011 2123 22 229 235 243 252 262 276 3010 36 438 94 acpi filesystems locks slabinfo vmstat 10231 10521 11232 118 150 2023 2125 220 230 2359 244 253 263 277 31 360 44 941 asound fs mdstat softirqs zoneinfo 1027 10557 11262 1180 1567 2049 2132 2202 2307 236 245 254 264 278 313 3636 45 947 buddyinfo interrupts meminfo stat 1029 106 1127 119 1574 2051 2150 2205 2308 2364 2453 2547 265 279 314 3659 46 95 bus iomem misc swaps 103 107 11272 1199 1597 2057 2152 2207 231 2368 246 255 266 28 32 37 5 9581 cgroups ioports modules sys 1033 10702 11273 12 16 2061 2159 2209 2314 237 2463 2558 267 280 33 38 50 96 cmdline irq mounts sysrq-trigger 10337 10717 11300 120 18 2079 2167 223 2317 2377 247 256 268 281 331 389 51 9608 consoles kallsyms mpt sysvipc 10377 108 11305 121 19 2084 218 2238 232 238 248 2565 269 282 334 39 52 962 cpuinfo kcore mtrr thread-self 1038 10813 11340 122 1917 2092 2185 224 2321 2389 2487 257 27 283 336 391 576 964 crypto keys net timer_list 1039 109 11341 1252 1918 2094 2188 2240 2322 239 249 2572 270 284 34 40 604 969 devices key-users pagetypeinfo timer_stats

(1)進程描述文件夾

/proc/N中存儲的是系統當前正在運行的進程的相關信息,其中有些文件是每個進程都會具有的,下面對這些常見文件做出說明。

root@ubuntu:/# ll /proc/11340/ total 0 dr-xr-xr-x 9 root root 0 Dec 15 11:18 ./ dr-xr-xr-x 286 root root 0 Dec 14 19:51 ../ dr-xr-xr-x 2 root root 0 Dec 15 11:19 attr/ -rw-r--r-- 1 root root 0 Dec 15 11:19 autogroup -r-------- 1 root root 0 Dec 15 11:19 auxv -r--r--r-- 1 root root 0 Dec 15 11:19 cgroup --w------- 1 root root 0 Dec 15 11:19 clear_refs -r--r--r-- 1 root root 0 Dec 15 11:19 cmdline -rw-r--r-- 1 root root 0 Dec 15 11:19 comm -rw-r--r-- 1 root root 0 Dec 15 11:19 coredump_filter -r--r--r-- 1 root root 0 Dec 15 11:19 cpuset lrwxrwxrwx 1 root root 0 Dec 15 11:19 cwd -> /home/yehaiyang/Desktop/hello/ -r-------- 1 root root 0 Dec 15 11:19 environ lrwxrwxrwx 1 root root 0 Dec 15 11:19 exe -> /home/yehaiyang/Desktop/hello/while* dr-x------ 2 root root 0 Dec 15 11:19 fd/ dr-x------ 2 root root 0 Dec 15 11:19 fdinfo/ -rw-r--r-- 1 root root 0 Dec 15 11:19 gid_map -r-------- 1 root root 0 Dec 15 11:19 io -r--r--r-- 1 root root 0 Dec 15 11:19 limits -rw-r--r-- 1 root root 0 Dec 15 11:19 loginuid dr-x------ 2 root root 0 Dec 15 11:19 map_files/ -r--r--r-- 1 root root 0 Dec 15 11:19 maps -rw------- 1 root root 0 Dec 15 11:19 mem -r--r--r-- 1 root root 0 Dec 15 11:19 mountinfo -r--r--r-- 1 root root 0 Dec 15 11:19 mounts -r-------- 1 root root 0 Dec 15 11:19 mountstats dr-xr-xr-x 5 root root 0 Dec 15 11:19 net/ dr-x--x--x 2 root root 0 Dec 15 11:19 ns/ -r--r--r-- 1 root root 0 Dec 15 11:19 numa_maps -rw-r--r-- 1 root root 0 Dec 15 11:19 oom_adj -r--r--r-- 1 root root 0 Dec 15 11:19 oom_score -rw-r--r-- 1 root root 0 Dec 15 11:19 oom_score_adj -r-------- 1 root root 0 Dec 15 11:19 pagemap -r-------- 1 root root 0 Dec 15 11:19 personality -rw-r--r-- 1 root root 0 Dec 15 11:19 projid_map lrwxrwxrwx 1 root root 0 Dec 15 11:19 root -> // -rw-r--r-- 1 root root 0 Dec 15 11:19 sched -r--r--r-- 1 root root 0 Dec 15 11:19 schedstat -r--r--r-- 1 root root 0 Dec 15 11:19 sessionid -rw-r--r-- 1 root root 0 Dec 15 11:19 setgroups -r--r--r-- 1 root root 0 Dec 15 11:19 smaps -r-------- 1 root root 0 Dec 15 11:19 stack -r--r--r-- 1 root root 0 Dec 15 11:19 stat -r--r--r-- 1 root root 0 Dec 15 11:19 statm -r--r--r-- 1 root root 0 Dec 15 11:19 status -r-------- 1 root root 0 Dec 15 11:19 syscall dr-xr-xr-x 3 root root 0 Dec 15 11:19 task/ -r--r--r-- 1 root root 0 Dec 15 11:19 timers -rw-rw-rw- 1 root root 0 Dec 15 11:19 timerslack_ns -rw-r--r-- 1 root root 0 Dec 15 11:19 uid_map -r--r--r-- 1 root root 0 Dec 15 11:19 wchan

(1.1)cmdline

表示: 啟動當前進程的完整命令,但僵尸進程目錄中的此文件不包含任何信息;

root@ubuntu:/proc/11340# more cmdline ./while

(1.2)cwd?

表示:指向當前進程運行目錄的一個符號鏈接,表示當前進程在哪個目錄下運行;

cwd -> /home/yehaiyang/Desktop/hello/

(1.3)exe?

表示:指向啟動當前進程的可執行文件(完整路徑)的符號鏈接;直接執行:./exe,相當于啟動當前進程的一個拷貝;

exe -> /home/yehaiyang/Desktop/hello/while*

(1.4)environ (這個很重要)

當前進程的環境變量列表,彼此間用空字符(NULL)隔開;變量用大寫字母表示,其值用小寫字母表示;

root@ubuntu:/proc/11340# more environ XDG_VTNR=75ULES=gail:atk-bridge:unity-gtk-moduleg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01 ;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=0 1;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;3 5:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01; 35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01; 35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:* .ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*. spx=00;36:*.xspf=00;36:yring/ssh/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gameslloHASE=1=_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop0op

(1.5)fd (一般用不上)

表示:這是個目錄,包含當前進程打開的每一個文件的文件描述符(file descriptor),這些文件描述符是指向實際文件的一個符號鏈接;

root@ubuntu:/proc/11340/fd# ll total 0 dr-x------ 2 root root 0 Dec 15 11:19 ./ dr-xr-xr-x 9 root root 0 Dec 15 11:18 ../ lrwx------ 1 root root 64 Dec 15 11:34 0 -> /dev/pts/1 lrwx------ 1 root root 64 Dec 15 11:34 1 -> /dev/pts/1 lrwx------ 1 root root 64 Dec 15 11:31 2 -> /dev/pts/1

(1.6)limits (一般用不上)

表示:當前進程所使用的每一個受限資源的軟限制、硬限制和管理單元;此文件僅可由實際啟動當前進程的UID用戶讀取;(2.6.24以后的內核版本支持此功能);

root@ubuntu:/proc/11340# cat limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 9773 9773 processes Max open files 1024 1048576 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 9773 9773 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us

(1.7)maps (這個也有用)

表示:當前進程關聯到的每個可執行文件和庫文件在內存中的映射區域及其訪問權限所組成的列表;

root@ubuntu:/proc/11340# more maps 00400000-00401000 r-xp 00000000 08:01 6852795 /home/yehaiyang/Desktop/hello/while 00600000-00601000 r--p 00000000 08:01 6852795 /home/yehaiyang/Desktop/hello/while 00601000-00602000 rw-p 00001000 08:01 6852795 /home/yehaiyang/Desktop/hello/while 7f8225a9b000-7f8225c5b000 r-xp 00000000 08:01 5242963 /lib/x86_64-linux-gnu/libc-2.23.so 7f8225c5b000-7f8225e5b000 ---p 001c0000 08:01 5242963 /lib/x86_64-linux-gnu/libc-2.23.so 7f8225e5b000-7f8225e5f000 r--p 001c0000 08:01 5242963 /lib/x86_64-linux-gnu/libc-2.23.so 7f8225e5f000-7f8225e61000 rw-p 001c4000 08:01 5242963 /lib/x86_64-linux-gnu/libc-2.23.so 7f8225e61000-7f8225e65000 rw-p 00000000 00:00 0 7f8225e65000-7f8225e8b000 r-xp 00000000 08:01 5242897 /lib/x86_64-linux-gnu/ld-2.23.so 7f822606d000-7f8226070000 rw-p 00000000 00:00 0 7f822608a000-7f822608b000 r--p 00025000 08:01 5242897 /lib/x86_64-linux-gnu/ld-2.23.so 7f822608b000-7f822608c000 rw-p 00026000 08:01 5242897 /lib/x86_64-linux-gnu/ld-2.23.so 7f822608c000-7f822608d000 rw-p 00000000 00:00 0 7ffd66c02000-7ffd66c23000 rw-p 00000000 00:00 0 [stack] 7ffd66d6c000-7ffd66d6e000 r--p 00000000 00:00 0 [vvar] 7ffd66d6e000-7ffd66d70000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]

(1.8)mem (有用)

表示:當前進程所占用的內存空間,由open、read和lseek等系統調用使用,不能被用戶讀取;

(1.9)root (很有用)

?表示:指向當前進程運行根目錄的符號鏈接,默認根目錄是:/;

注意:在Unix和Linux系統上,通常采用chroot命令使每個進程運行于獨立的根目錄;

root -> //

(1.10)stat (一般不用)

表示:當前進程的狀態信息,包含一系統格式化后的數據列,可讀性差,通常由ps命令使用;

root@ubuntu:/proc/11340# more stat 11340 (while) R 11273 11340 3010 34817 19440 4194304 89 0 0 0 1472515 12 0 0 20 0 1 0 774859 4321280 158 18446744073709551615 4194304 4195980 140726327445264 140726327445040 4195546 0 0 0 0 0 0 0 17 3 0 0 0 0 0 6295056 6295600 9744384 140726327452376 140726327452384 140726327452384 140726327455728 0

(1.11)statm (一般不用)

表示:當前進程占用內存的狀態信息,通常以“頁面”(page)表示;

root@ubuntu:/proc/11340# more statm 1055 158 141 1 0 46 0

(1.12)status?

表示:與stat所提供信息類似,但可讀性較好,如下所示,每行表示一個屬性信息;其詳細介紹請參見 proc的man手冊頁;

root@ubuntu:/proc/11340# more status Name: while Umask: 0022 State: R (running) Tgid: 11340 Ngid: 0 Pid: 11340 PPid: 11273 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 256 Groups: 0 NStgid: 11340 NSpid: 11340 NSpgid: 11340 NSsid: 3010 VmPeak: 4324 kB VmSize: 4220 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 632 kB VmRSS: 632 kB RssAnon: 68 kB RssFile: 564 kB RssShmem: 0 kB VmData: 48 kB VmStk: 136 kB VmExe: 4 kB VmLib: 1952 kB VmPTE: 28 kB VmPMD: 12 kB VmSwap: 0 kB HugetlbPages: 0 kB Threads: 1 SigQ: 0/9773 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000000000000 SigCgt: 0000000000000000 CapInh: 0000000000000000 CapPrm: 0000003fffffffff CapEff: 0000003fffffffff CapBnd: 0000003fffffffff CapAmb: 0000000000000000 Seccomp: 0 Cpus_allowed: ffffffff,ffffffff,ffffffff,ffffffff Cpus_allowed_list: 0-127 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 0 nonvoluntary_ctxt_switches: 5054

(1.13)task (很有用)

表示:目錄文件,包含由當前進程所運行的每一個線程的相關信息,每個線程的相關信息文件均保存在一個由線程號(tid)命名的目錄中,這類似于其內容類似于每個進程目錄中的內容;(內核2.6版本以后支持此功能)


(2)/proc目錄下常見的文件夾

(2.1)/proc/acpi(有用)

表示:ACPI(高級配置和電源接口)支持操作系統設置和控制各個硬件部件。 ACPI 可以取代 PnP 和 APM。 它提供有關電池、AC 適配器、溫度、風扇和系統事件(例如 “合上機蓋” 或 “電池電量低”)的信息。

詳細介紹間博客:ACPI詳細介紹

(2.2)/proc/asound

表示:關于系統音頻相關的文件。

詳細介紹見博客:/proc/asound詳細介紹

(2.3)/proc/bus

表示:系統總線(Bus)信息,例如pci/usb等。詳細介紹需要查看/proc的man手冊。

(2.4)/proc/driver(有用)

表示:此目錄包含內核使用的特定驅動程序的信息。此處的常見文件是rtc為系統的實時時鐘(RTC)提供驅動程序輸出,該系統可在系統關閉時保持時間。示例輸出/proc/driver/rtc如下所示:

具體說明:E.3.4. /PROC/DRIVER/

root@ubuntu:/proc/driver# ls rtc root@ubuntu:/proc/driver# more rtc rtc_time : 06:42:04 rtc_date : 2018-12-17 alrm_time : 00:00:00 alrm_date : 2018-12-15 alarm_IRQ : no alrm_pending : no update IRQ enabled : no periodic IRQ enabled : no periodic IRQ frequency : 1024 max user IRQ frequency : 64 24hr : yes periodic_IRQ : no update_IRQ : no HPET_emulated : yes BCD : yes DST_enable : no periodic_freq : 1024 batt_status : okay

(2.5)/proc/fs(暫時無用)

表示:此目錄顯示導出的文件系統。如果運行NFS服務器,則鍵入將cat /proc/fs/nfsd/exports顯示正在共享的文件系統以及為這些文件系統授予的權限。如下:

具體說明:E.3.5. /PROC/FS

root@ubuntu:/proc/fs# ls ext4 jbd2 jfs nfsd xfs

(2.6)/proc/irq(有用)

表示:目錄下面會為每個注冊的irq創建一個以irq編號為名字的子目錄,允許每個IRQ的單獨配置,用于將IRQ設置為CPU親和性,這允許系統將特定IRQ連接到僅一個CPU,?或者排除CPU處理任何IRQ。

default_smp_affinity文件是一個位掩碼,它包含IRQ目錄中smp_affinity文件的默認值。

root@ubuntu:/proc/irq# ls 0 10 12 14 16 18 2 25 27 29 30 32 34 36 38 4 41 43 45 47 49 50 52 54 56 58 6 61 63 8 default_smp_affinity 1 11 13 15 17 19 24 26 28 3 31 33 35 37 39 40 42 44 46 48 5 51 53 55 57 59 60 62 7 9

詳細參看博客:/proc/irq和/proc/interrupts詳解

紅帽官網學習:E.3.6. /PROC/IRQ/

紅帽官網學習:4.3. 中斷和 IRQ 調節

(2.7)/proc/mpt(暫時不管)

(2.8)/proc/scsi

表示:目錄中存儲的是當前系統上所有SCSI設備的相關信息。其中,最主要的文件是/proc/scsi/scsi,它包含每個已識別的SCSI設備的列表,從此列表中,可以獲得設備類型,型號名稱,供應商,SCSI通道和ID數據。

root@ubuntu:/proc# cd scsi root@ubuntu:/proc/scsi# ls device_info mptspi scsi sg usb-storageroot@ubuntu:/proc/scsi# more scsi Attached devices: Host: scsi2 Channel: 00 Id: 00 Lun: 00Vendor: VMware, Model: VMware Virtual S Rev: 1.0 Type: Direct-Access ANSI SCSI revision: 02 Host: scsi4 Channel: 00 Id: 00 Lun: 00Vendor: NECVMWar Model: VMware SATA CD01 Rev: 1.00Type: CD-ROM ANSI SCSI revision: 05 Host: scsi33 Channel: 00 Id: 00 Lun: 00Vendor: Mass Model: Storage Device Rev: Type: Direct-Access ANSI SCSI revision: 00

詳細說明:

紅帽官網學習:E.3.8. /PROC/SCSI/

(2.9)/proc/sys(非常重要)

表示:/ proc / sys /目錄與與/proc下其它文件的“只讀”屬性不同的是,它不僅提供有關系統的信息,還允許管理員可對/proc/sys子目錄中的許多文件內容進行修改,以更改內核的運行特性。事先可以使用“ls -l”命令查看某文件是否“可寫入”。寫入操作通常使用類似于“echo??DATA > /path/to/your/filename”的格式進行。

需要注意的是,即使文件可寫,其一般也不可以使用編輯器進行編輯。

root@ubuntu:/proc/sys# ls abi debug dev fs kernel net vm

(2.10)/proc/sysvipc(重要)

表示:該目錄包含有關System V IPC資源的信息。 此目錄中的文件與消息(msg),信號量(sem)和共享內存(shm)的System V IPC調用相關。

root@ubuntu:/proc/sysvipc# ls msg sem shm

詳見博客:進程間通信(IPC)——信號量、共享內存、消息隊列

(2.11)/proc/tty

表示:此目錄包含有關系統上可用和當前使用的tty設備的信息。 最初稱為電傳打字設備,任何基于字符的數據終端都稱為tty設備。其中,drivers列出當前使用的tty設備,/proc/tty/driver/serial文件列出了每個串行tty行的使用情況統計信息和狀態。

為了將tty設備用作網絡設備,Linux內核在設備上強制執行線路規則。 這允許驅動程序將特定類型的頭部放置在通過設備傳輸的每個數據塊上,使得連接的遠程端可能只是數據塊流中的一個數據塊。 SLIP和PPP是常見的線路規則,每個規則通常用于通過串行鏈路將系統連接到另一個系統。
已注冊的行規則存儲在ldiscs文件中,更多詳細信息可在/proc/ttyldisc目錄中找到。

root@ubuntu:/proc/tty# more drivers /dev/tty /dev/tty 5 0 system:/dev/tty /dev/console /dev/console 5 1 system:console /dev/ptmx /dev/ptmx 5 2 system /dev/vc/0 /dev/vc/0 4 0 system:vtmaster ttyprintk /dev/ttyprintk 5 3 console max310x /dev/ttyMAX 204 209-224 serial serial /dev/ttyS 4 64-111 serial pty_slave /dev/pts 136 0-1048575 pty:slave pty_master /dev/ptm 128 0-1048575 pty:master unknown /dev/tty 4 1-63 console

?

總結

以上是生活随笔為你收集整理的Linux小工具(3)之/proc目录详细介绍(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。