根目录下所有目录如下图所示,我们将了解/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp
根目录下的usr目录包含目录如下图所示,我们将了解 /usr/lib,/usr/local
1./proc
特殊文件目录。这个目录采用一种特殊的文件格式(proc格式,内核支持这种格式。其中包括了全部虚拟文件。它们并不是保存在磁盘中,也不占用磁盘空间,当查看它们时,实际上看到的是内存里的信息,这些文件有助于我们了解系统内部信息)。Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。
用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。在/proc下还有三个很重要的目录:net,scsi和sys。 Sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi 目录不存在。
一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的 PID号为目录名,它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个link。
这里摘自:https://blog.csdn.net/zdwzzu2006/article/details/7747977?utm_source=copy
2./sys
文件系统访问Linux内核,Sysfs文件系统是一个类似于proc文件系统的特殊文件系统,也是一个虚拟的文件系统,用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息。其实,就是在用户态可以通过对sys文件系统的访问,来看内核态的一些驱动或者设备等。该目录不占硬盘容量。
3./bin(存放二进制可执行文件)
/bin目录下包含了用户命令文件,也就是shell命令。提供给所有用户和脚本程序使用。/bin目录不得包含任何子目录。用户也可将自己写的程序放入/bin目录下。
4. /var
/var目录主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件。内容经常变化的目录。此目录下文件的大小可能改变,如缓冲文件、日志文件、缓存文件等一般会放在这里。
/var目录下的重要目录:(此处摘自:https://www.cnblogs.com/ftl1012/p/9278592.html)
目录 | 应放置文件内容 |
/var/cache/ | 应用程序本身运作过程中会产生的一些暂存档 |
/var/lib/ | 程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录。 举例来说,MySQL的数据库放置到/var/lib/mysql/而rpm的数据库则放到/var/lib/rpm去 |
/var/lock/ | 某些装置或者是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该装置时, 就可能产生一些错误的状况,因此就得要将该装置上锁(lock),以确保该装置只会给单一软件所使用。 举例来说,刻录机正在刻录一块光盘,你想一下,会不会有两个人同时在使用一个刻录机烧片? 如果两个人同时刻录,那片子写入的是谁的数据?所以当第一个人在刻录时该刻录机就会被上锁, 第二个人就得要该装置被解除锁定(就是前一个人用完了)才能够继续使用 |
/var/log/ | 非常重要。这是登录文件放置的目录。里面比较重要的文件如/var/log/messages, /var/log/wtmp(记录登入者的信息)等。 |
/var/mail/ | 放置个人电子邮件信箱的目录,不过这个目录也被放置到/var/spool/mail/目录中,通常这两个目录是互为链接文件。 |
/var/run/ | 某些程序或者是服务启动后,会将他们的PID放置在这个目录下 |
/var/spool/ | 这个目录通常放置一些队列数据,所谓的“队列”就是排队等待其他程序使用的数据。 这些数据被使用后通常都会被删除。举例来说,系统收到新信会放置到/var/spool/mail/中, 但使用者收下该信件后该封信原则上就会被删除。信件如果暂时寄不出去会被放到/var/spool/mqueue/中, 等到被送出后就被删除。如果是工作排程数据(crontab),就会被放置到/var/spool/cron/目录中。 |
5./tmp
/tmp文件夹是存放linux临时文件的地方,在Linux系统中/tmp文件夹里面的文件会被清空,至于多长时间被清空,这个可以通过一些命令来设置。
现假设该Linux系统中有两个用户:A和B。我们会发现A,B均能在目录 /tmp中创建文件及目录,并各自创建的文件和目录就行编辑。但是我们用户A不能删除用户B创建的所用东西(包括文件,目录等),用户B不能删除用户A所创建的所有东西(包括目录和文件)因为Linux系统中三种特殊权限(SUID,SGID,SBIT)里的SBIT。SBIT的作用是:当一个目录设置了SBIT权限后,对于该目录内的文件来说仅有该文件的创建者和root能够删除该文件,其他任何人都不能删除该文件。很明显当我们安装Linux时,系统就已经自动为目录/tmp设置了SBIT权限,所以会出现如假设所示的情形。
6./SElinux
SELinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。SELinux 的结构及配置非常复杂,而且有大量概念性的东西,很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了。
7./etc/
全局配置文件存放目录。系统和程序一般都可以通过修改相应的配置文件来进行配置。
/etc/profile
/etc/profile里边包含了系统的环境变量的设置,比如$PATH,$HOME...每次用户登陆都会加载这个文件以设置环境变量,这个文件是全局的profile文件,设置后会影响到所有用户。
/etc/hosts
hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,以ASCII格式保存。hosts文件包含了IP地址和主机名之间的映射,还包括主机名的别名。在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址,否则就需要使用DNS服务程序来解决。通常可以将常用的域名和IP地址映射加入到hosts文件中,实现快速方便的访问。
/etc/passwd
这个文件包含User的信息,当一个添加一个新用户,这个文件中就会增加一行(包含用户名,密码...),这个文件系统中的每个user都能查看。如果密码字段包含"x",这表示密码已经被混淆了(此处摘自:http://blog.csdn.net/pan_tian/article/details/7712992)
8./root
系统管理员root的家目录。/root下包含家目录,家目录下有个人文件。构成结构如下所示。
9.usr
/usr下的目录如下所示。
/usr: 最庞大的目录,是应用程序主要存放的目录。该目录中的二进制文件对系统启动和维护并非必要,因此整个 /usr 目录结构常会被存放到另一个分离的文件系统中。因为其(通常)具有很大的容量,/usr 有其自己的子目录结构。其中包含:
/usr/bin 众多的应用程序
/usr/sbin 超级用户的一些管理程序
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/src 源代码,Linux内核的源代码就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库根文件系统
9.1./usr/lib
系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。
9.2/usr/local
安装本地程序的一般默认路径。当我们下载一个程序源代码,编译并且安装的时候,如果不特别指定安装的程序路径,那么默认会将程序相关的文件安装到这个目录的对应目录下。
/usr:系统级的目录,可以理解为C:/Windows/。
/usr/lib:理解为C:/Windows/System32。
/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。