Linux文件系统下proc目录详解
- 格式:doc
- 大小:107.00 KB
- 文档页数:17
linux操作系统目录结构详解linux操作系统目录结构详解为了帮助广大考试新手们更加顺利地复习备考,店铺整理了关于Linux目录结构的备考资料,希望能够对大家有所帮助。
linux 目录结构/: 根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中/bin:/usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
/boot: 放置linux系统启动时用到的一些文件。
/boot/vmlinuz为linux的内核文件,以及/boot/gurb.建议单独分区,分区大小100M 即可/dev: 存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt./etc: 系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。
注:/etc/X11存放与x windows有关的设置。
/home: 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。
建议单独分区,并设置较大的磁盘空间,方便用户存放数据/lib:/usr/lib:/usr/local/lib: 系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules./lost+fount: 系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。
如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found/mnt:/media: 光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。
linux常见文件路径
Linux中的常见文件路径包括以下几种:
1. / :根目录,Linux文件系统的起点。
2. /bin :存放用户二进制文件(可执行文件)的目录。
3. /boot :存放Linux系统引导所需的文件,包括内核文件和引导加载程序。
4. /dev :存放设备文件,包括磁盘、键盘、鼠标等外部设备所对应的文件。
5. /etc :存放系统配置文件,包括系统服务的配置文件和用户账户的配置文件等。
6. /home :存放用户的主目录,每个用户都有一个独立的主目录。
7. /lib :存放系统库文件,包括Linux系统所需的共享库文件。
8. /media :存放可移动媒体设备(如U盘、光盘等)的挂载点。
9. /mnt :存放临时文件系统的挂载点。
10. /opt :存放可选的应用程序软件包的目录。
11. /proc :存放Linux内核的虚拟文件系统,包括系统内核的运行状态信息和进程信息等。
12. /root :超级用户的主目录。
13. /sbin :存放超级用户二进制文件的目录,包括系统管理工具等。
14. /tmp :存放临时文件的目录,保存着Linux系统运行过程中产生的临时文件。
15. /usr :存放用户安装的应用程序、库文件、文档等,是一个较大的目录。
16. /var :存放系统运行过程中产生的变化文件,包括日志文件、临时文件等。
以上是Linux中的常见文件路径,了解这些路径对于日常使用和系统管理都非常有帮助。
linux pid 路径Linux操作系统中,每个进程都有一个唯一的进程标识符(PID)。
PID是一个数字,用于标识进程在操作系统中的身份。
在Linux系统中,PID路径是指一个进程在文件系统中的路径,可以通过该路径找到对应进程的相关信息。
在Linux系统中,每个进程都有一个对应的进程目录,该目录的路径为/proc/PID。
其中,PID是进程的标识符。
进入该目录后,可以通过查看相应的文件来获取进程的详细信息。
在/proc/PID目录下,有一些重要的文件和目录,如下所示:1. cmdline:该文件保存了进程的启动命令行参数。
通过查看该文件,可以了解进程是如何启动的。
2. environ:该文件保存了进程的环境变量。
通过查看该文件,可以了解进程的运行环境。
3. exe:该文件是进程的可执行文件的链接。
通过查看该文件,可以了解进程的可执行文件路径。
4. fd:该目录保存了进程打开的文件描述符的信息。
通过查看该目录下的文件,可以了解进程打开了哪些文件。
5. status:该文件保存了进程的状态信息,如进程的PID、父进程的PID、进程的运行状态等。
除了以上这些文件外,还有许多其他的文件和目录,保存了进程的其他信息。
通过读取这些文件,可以了解进程的详细信息。
通过PID路径,我们可以对进程进行监控和管理。
比如,我们可以通过读取/proc/PID/status文件获取进程的状态信息,判断进程是否在运行;通过读取/proc/PID/cmdline文件获取进程的启动命令行参数,了解进程是如何启动的;通过读取/proc/PID/fd目录下的文件,了解进程打开了哪些文件。
PID路径在Linux系统中扮演着重要的角色。
通过PID路径,我们可以方便地获取进程的相关信息,进行进程管理和监控。
同时,PID 路径也是Linux系统中进程管理的基础,通过PID路径,操作系统可以对进程进行唯一标识和管理。
PID路径是Linux系统中进程在文件系统中的路径,通过该路径可以找到进程的相关信息。
linux中proc详解Linux-procproc ⽂件系统在Linux中有额外的机制可以为内核和内核模块将信息发送给进程-- /proc ⽂件系统。
最初设计的⽬的是允许更⽅便的对进程信息进⾏访问(因此得名),现在它被每⼀个有有趣的东西报告的内核使⽤,例如/proc/modules 有模块的列表/proc/meminfo 有内存使⽤的统计表。
使⽤proc ⽂件系统的⽅法和使⽤设备驱动程序⾮常相似--创建⼀个/proc ⽂件需要的所有信息的结构,包括任何处理函数的指针(在我们的例⼦中只有⼀个,当某⼈试图从/proc ⽂件读时调⽤的那⼀个)。
然后,init_module 在内核中登记该结构⽽cleanup_module 注销它。
我们使⽤proc_register_dynamic(这是在2.0 版中的情况,在2.2 版中如果我们将节点设置为0系统将⾃动为我们做到) 的原因是我们不想预先决定我们的⽂件的节点数字,⽽是为防⽌冲突⽽由内核决定它。
通常的⽂件系统存在于磁盘上⽽不是内存中(/proc 在内存中),在这中情况下,节点数是是指向⽂件的索引节点所在的磁盘位置的指针。
节点包含⽂件的信息(例如⽂件的存取权限)和指向磁盘位置或⽂件数据可以被找到的⼏个位置的指针。
因为当⽂件被打开或关闭的时候不能得到调⽤,所以在这个模块中没有地⽅放置MOD_INC_USE_COUNT 和MOD_DEC_USE_COUNT,并且,如果⽂件被打开随后模块被移除,我们没有办法避免后果。
在下⼀章我们会看到⼀个艰难的但更灵活的可以处理/proc⽂件的实现⽅式,它也可以让我们防⽌那个问题。
/os/201202/119552.htmlLinux 内核提供了⼀种通过/proc ⽂件系统,在运⾏时访问内核内部数据结构、改变内核设置的机制。
尽管在各种硬件平台上的Linux 系统的/proc ⽂件系统的基本概念都是相同的,但本⽂只讨论基于intel x86 架构的Linux /proc ⽂件系统。
你不知道的Linux内核中的proc文件系统简介procfs文件系统是内核中的一个特殊文件系统。
它是一个虚拟文件系统: 它不是实际的存储设备中的文件,而是存在于内存中。
procfs中的文件是用来允许用户空间的程序访问内核中的某些信息(比如进程信息在 /proc/[0-9]+/中),或者用来做调试用途(/proc/ksyms,这个文件列出了已经登记的内核符号,这些符号给出了变量或函数的地址。
每行给出一个符号的地址,符号名称以及登记这个符号的模块。
程序ksyms、insmod和kmod使用这个文件。
它还列出了正在运行的任务数,总任务数和最后分配的PID。
)这个文档描述了内核中procfs文件系统的使用。
它以介绍所有和管理文件系统相关的函数开始。
在函数介绍后,它还展示了怎么和用户空间通信,和一些小技巧。
在文档的最后,还给出了一个完整的例子。
注意/proc/sys中的文件属于sysctl文件,它们不属于procfs文件系统,被另外一套完全不同的api管理。
seq_fileprocfs在处理大文件时有点笨拙。
为了清理procfs文件系统并且使内核编程简单些,引入了seq_file机制。
seq_file机制提供了大量简单的接口去实现大内核虚拟文件。
seq_file机制适用于你利用结构序列去创建一个返回给用户空间的虚拟文件。
要使用seq_file机制,你必须创建一个”iterator”对象,这个对象指向这个序列,并且能逐个指向这个序列中的对象,此外还要能输出这个序列中的任一个对象。
它听起来复杂,实际上,操作过程相当简单。
接下来将用实际的例子展示到底怎么做。
首先,你必须包含头文件。
接下来,你必须创建迭代器方法:start, next, stop, and show。
start方法通常被首先调用。
这个方法的函数原型是:void *start(struct seq_file *sfile, loff_t *pos);sfile没什么作用,通常被忽略。
Linux中的⽂件和⽬录结构详解 对于每⼀个Linux学习者来说,了解Linux⽂件系统的⽬录结构,是学好Linux的⾄关重要的⼀步.,深⼊了解linux⽂件⽬录结构的标准和每个⽬录的详细功能,对于我们⽤好linux系统只管重要,下⾯我们就开始了解⼀下linux⽬录结构的相关知识。
当在使⽤Linux的时候,如果您通过ls –l / 就会发现,在/下包涵很多的⽬录,⽐如etc、usr、var、bin ... ... 等⽬录,⽽在这些⽬录中,我们进去看看,发现也有很多的⽬录或⽂件。
⽂件系统在Linux下看上去就象树形结构,所以我们可以把⽂件系统的结构形象的称为树形结构。
⽂件系统的是⽤来组织和排列⽂件存取的,所以它是可见的,在Linux中,我们可以通过ls等⼯具来查看其结构,在Linux系统中,我们见到的都是树形结构;⽐如操作系统安装在⼀个⽂件系统中,它表现为由/ 起始的树形结构。
linux⽂件系统的最顶端是/,我们称/为Linux的root,也就是 Linux操作系统的⽂件系统。
Linux的⽂件系统的⼊⼝就是/,所有的⽬录、⽂件、设备都在/之下,/就是Linux⽂件系统的组织者,也是最上级的领导者。
由于linux是开放源代码,各⼤公司和团体根据linux的核⼼代码做各⾃的操作,编程。
这样就造成在根下的⽬录的不同。
这样就造成个⼈不能使⽤他⼈的linux系统的PC。
因为你根本不知道⼀些基本的配置,⽂件在哪⾥。
这就造成了混乱。
这就是FHS(Filesystem Hierarchy Standard )机构诞⽣的原因。
该机构是linux爱好者⾃发的组成的⼀个团体,主要是是对linux做⼀些基本的要求,不⾄于是操作者换⼀台主机就成了linux的‘⽂盲’。
事实上,FHS是根据过去的经验⼀直再持续的改版的,FHS依据⽂件系统使⽤的频繁与否与是否允许使⽤者随意更动,⽽将⽬录定义成为四种交互作⽤的形态,⽤表格来说有点像底下这样:可分享的(shareable)不可分享的(unshareable)不变的(static)/usr (软件放置处)/etc (配置⽂件)/opt (第三⽅协⼒软件)/boot (开机与核⼼档)可变动的(variable)/var/mail (使⽤者邮件信箱)/var/run (程序相关) /var/spool/news (新闻组)/var/lock (程序相关)四中类型:1.可分享的: 可以分享给其他系统挂载使⽤的⽬录,所以包括执⾏⽂件与⽤户的邮件等数据,是能够分享给⽹络上其他主机挂载⽤的⽬录;2.不可分享的: ⾃⼰机器上⾯运作的装置⽂件或者是与程序有关的socket⽂件等,由于仅与⾃⾝机器有关,所以当然就不适合分享给其他主机了。
随着Linux的不断发展,越来越多的人开始使用Linux,对于那些刚刚接触的人来说,恐怕最先感到困惑的就是那些“不明不白”的目录了。
如果想熟练使用Linux,让Linux听命于自己,就必须掌握这些目录,下面就以Xteam公司的最新产品——XteamLinux 4.0为例,介绍一下在该系统下的目录。
/bin bin是Binary的缩写。
这个目录存放着最经常使用的命令。
/boot这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。
/dev dev是Device(设备)的缩写。
该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。
几乎所有的应用程序都需要用到这些共享库。
/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/mnt在这里面中有四个目录,系统提供这些目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/cdrom上,然后进入该目录就可以查看光驱里的内容了。
/proc这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 >; /proc/sys/net/ipv4/icmp_echo_ignore_all。
/root该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
Linux中/proc目录下文件详解(2008-7-20 15:54)Linux中/proc目录下文件详解(一)--------------------------------------------------------------------------------/proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。
可以使用的文件随系统配置的变化而变化。
命令procinfo能够显示基于其中某些文件的多种系统信息。
以下详细描述/proc下的文件。
--------------------------------------------------------------------------------/proc/cmdline文件这个文件给出了内核启动的命令行。
它和用于进程的cmdline项非常相似。
示例:[root@localhost proc]# cat cmdlinero root=LABEL=/ rhgb quiet--------------------------------------------------------------------------------/proc/cpuinfo文件这个文件提供了有关系统CPU的多种信息。
这些信息是从内核里对CPU的测试代码中得到的。
文件列出了CPU的普通型号(386,486,586,686等),以及能得到的更多特定信息(制造商,型号和版本)。
文件还包含了以bogomips表示的处理器速度,而且如果检测到CPU的多种特性或者bug,文件还会包含相应的标志。
这个文件的格式为:文件由多行构成,每行包括一个域名称,一个冒号和一个值。
示例:[root@localhost proc]# cat cpuinfoprocessor : 0vendor_id : AuthenticAMDcpu family : 6model : 8model name : AMD Athlon(tm) XP 1800+stepping : 1cpu MHz : 1530.165cache size : 256 KBfdiv_bug : nohlt_bug : nof00f_bug : nocoma_bug : nofpu : yesfpu_exception : yescpuid level : 1wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnowbogomips : 2998.27--------------------------------------------------------------------------------/proc/devices文件这个文件列出字符和块设备的主设备号,以及分配到这些设备号的设备名称。
示例:[root@localhost /]# cat /proc/devicesCharacter devices:1 mem4 /dev/vc/04 tty4 ttyS5 /dev/tty5 /dev/console5 /dev/ptmx6 lp7 vcs10 misc13 input14 sound29 fb36 netlink116 alsa128 ptm136 pts180 usbBlock devices:1 ramdisk2 fd3 ide09 md22 ide1253 device-mapper254 mdp--------------------------------------------------------------------------------/proc/dma文件这个文件列出由驱动程序保留的DMA通道和保留它们的驱动程序名称。
casade项供用于把次DMA控制器从主控制器分出的DMA行所使用;这一行不能用于其它用途。
示例:[root@localhost ~]# cat /proc/dma4: cascade--------------------------------------------------------------------------------/proc/filesystems文件[/color]这个文件列出可供使用的文件系统类型,一种类型一行。
虽然它们通常是编入内核的文件系统类型,但该文件还可以包含可加载的内核模块加入的其它文件系统类型。
示例:[root@localhost proc]# cat /proc/filesystemsnodev sysfsnodev rootfsnodev bdevnodev procnodev sockfsnodev binfmt_miscnodev usbfsnodev usbdevfsnodev futexfsnodev tmpfsnodev pipefsnodev eventpollfsnodev devptsext2nodev ramfsnodev hugetlbfsiso9660nodev mqueuenodev selinuxfsext3nodev rpc_pipefsnodev autofs--------------------------------------------------------------------------------/proc/interrupts文件这个文件的每一行都有一个保留的中断。
每行中的域有:中断号,本行中断的发生次数,可能带有一个加号的域(SA_INTERRUPT标志设置),以及登记这个中断的驱动程序的名字。
可以在安装新硬件前,像查看/proc/dma和/proc/ioports一样用cat命令手工查看手头的这个文件。
这几个文件列出了当前投入使用的资源(但是不包括那些没有加载驱动程序的硬件所使用的资源)。
示例:[root@localhost SPECS]# cat /proc/interruptsCPU00: 7039406 XT-PIC timer1: 6533 XT-PIC i80422: 0 XT-PIC cascade3: 0 XT-PIC uhci_hcd5: 108 XT-PIC VIA8233, uhci_hcd8: 1 XT-PIC rtc9: 0 XT-PIC acpi10: 0 XT-PIC ehci_hcd11: 17412 XT-PIC uhci_hcd, eth012: 140314 XT-PIC i804214: 37897 XT-PIC ide015: 60813 XT-PIC ide1NMI: 0ERR: 1--------------------------------------------------------------------------------/proc/ioports文件这个文件列出了诸如磁盘驱动器,以太网卡和声卡设备等多种设备驱动程序登记的许多I/O 端口范围。
示例:[root@localhost SPECS]# cat /proc/ioports0000-001f : dma10020-0021 : pic10040-0043 : timer00050-0053 : timer10060-006f : keyboard0070-0077 : rtc0080-008f : dma page reg00a0-00a1 : pic200c0-00df : dma200f0-00ff : fpu0170-0177 : ide101f0-01f7 : ide00376-0376 : ide10378-037a : parport0037b-037f : parport003c0-03df : vga+03f6-03f6 : ide003f8-03ff : serial0800-0803 : PM1a_EVT_BLK0804-0805 : PM1a_CNT_BLK0808-080b : PM_TMR0810-0815 : ACPI CPU throttle0820-0823 : GPE0_BLK0cf8-0cff : PCI conf1dc00-dcff : 0000:00:12.0dc00-dcff : via-rhinee000-e0ff : 0000:00:11.5e000-e0ff : VIA8233e400-e41f : 0000:00:10.0e400-e41f : uhci_hcde800-e81f : 0000:00:10.1e800-e81f : uhci_hcdec00-ec1f : 0000:00:10.2ec00-ec1f : uhci_hcdfc00-fc0f : 0000:00:11.1fc00-fc07 : ide0fc08-fc0f : ide1--------------------------------------------------------------------------------/proc/kcore文件这个文件是系统的物理内存以core文件格式保存的文件。
例如,GDB能用它考察内核的数据结构。
它不是纯文本,而是/proc目录下为数不多的几个二进制格式的项之一。
示例:暂无(因为会打印大量的乱码)--------------------------------------------------------------------------------/proc/kmsg文件这个文件用于检索用printk生成的内核消息。
任何时刻只能有一个具有超级用户权限的进程可以读取这个文件。
也可以用系统调用syslog检索这些消息。
通常使用工具dmesg或守护进程klogd检索这些消息。
示例:暂无--------------------------------------------------------------------------------/proc/ksyms文件这个文件列出了已经登记的内核符号;这些符号给出了变量或函数的地址。
每行给出一个符号的地址,符号名称以及登记这个符号的模块。
程序ksyms,insmod和kmod使用这个文件。
它还列出了正在运行的任务数,总任务数和最后分配的PID。
示例:暂无--------------------------------------------------------------------------------/proc/loadavg文件这个文件给出以几个不同的时间间隔计算的系统平均负载,这就如同uptime命令显示的结果那样。