Linux的文件系统
根文件系统
为了实现多个文件系统或多个文件系统独立管理,就需要分区,但任何一个分区在分区完成以后,它是不能被自我独立访问的,而是只能与现有的根一块访问。
对操作系统来讲最关键的是内核,内核也是一个应用程序,
对Linux主机来讲,当内核被启动加载完成以后,内核仅仅是一个程序,一般不提供可访问的文件,同时,也不是用户可使用的有用的进程,所以内核会额外启动很多外部命令,这些应用程序放在某一分区上,无论有多少分区,一定有一个作为系统盘的分区存在。这个系统盘,一般是内核启动完成以后,第一个加载的分区。
当内核被加载完成以后,为了帮助启动各种程序,内核会在自己的空间当中设置一个文件系统,这就是根文件系统。
根文件系统中,它会把第一个应该加载的分区中所以程序关联到根文件系统中,并生成对应路径,所以通过根访问的文件,都是在分区中的文件
根只能有一个,当一个分区被关联成根分区以后,后面的分区将无法访问,想要访问只能将后面的分区关联到根文件下的子目录中,以子目录作为访问端口
Linux文件系统中根文件系统中的一级子目录:
/etc、/usr、/var、/yoot、/home、/dev
/boot :引导文件存放目录、内核文件、引导加载器都存放在此目录
/bin :供所以的用户使用的基本命令,一般来讲不能关联至独立分区,操作系统os启动即会用到的程序都会放在此处。
基本命令:操作系统启动过程中或为了保证自己的运行就会用到的命令
/sbin:管理类的基本命令,一般不能关联至独立分区,是os启动就会用到的程序。
/lib:基本共享库文件
共享库可以放多个文件,这个目录所放的是系统启动中必须用到的程序,非常依赖的库文件。
内核模块文件一般都有单独的目录存放:/lib/modules
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录,里面大多数都是纯文本文件
/home/用户名:普通用户家目录
/root:管理员家目录
/media:便携式移动设备挂载点
/mnt:临时文件挂载点
/dev:设备文件及特殊文件存储位置
b:块设备 :指的是可随机访问的设备,你想访问哪一个就访问哪一个。
c:字符设备 : 线性访问设备,有先有后,按时序进行
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr:主要是用来存放除了/bin、/sbin下的基本命令程序以外的额外其他命令程序,以及诸多用户所用到的只读资源文件和共享资源文件,通常都在此处
/usr自己就是一个独立的层级系统,/usr是Liunx主机上通常会被独立分区的一个,或者是每一个被关联到独立分区的目录上,而且这个目录通常是最大的
/usr/bin:保证系统拥有完整功能而提供的应用程序,所以人都有权限运行
/usr/sbin:保证系统拥有完整功能而提供的应用程序,只有管理员才有权限运行的
/usr/lib、/usr/lib64:系统运行需要的一些库文件,基本命令在根文件的/lib64下,另外一些库文件就存放在此处,配置文件不会在此处,只会在/etc目录下
/usr/include:c程序的头文件
/usr/share:结构化独立的数据,在/usr/share下的文件大都是只读的,甚至整个/usr都是只读的,只读就是这个文件是不需要修改的
/usr/local:第三方应用程序的安装位置,它也可能有自己的bin、sbin、lib、lib64、etc、share,也有可能关联到一个独立的分区上去的。
/var:存放经常发生变化的数据文件
/var/cache:应用程序缓存数据目录
/var/lib:应用程序状态信息数据
/var/local:专用于/usr/local下的应用程序存储可变数据
/var/lock:锁文件
/var/log:日志目录及文件
/var/opt:专用于为/opt下的应用程序存储可变数据
/var/run:运行中的进程相关的数据通常用于存储进程的pid文件
/var/spool:应用进程的缓冲数据,应用程序数据池
/var/tmp:保存系统两次重启之间产生的临时数据
/proc:用于输出内核与进程相关的虚拟文件系统,内核中的很多配置接口都是参数,而不是文件,进程所输出的接口也是一些状态信息,是参数,也不是文件。
在Linux的哲学思想中,一切皆文件,而这些叫文件,却又不是文件,显然是不理想的,所以Linux通过一个独特的又精准的方式,叫尾文件系统或虚拟文件系统,把本来不是文件的内容做的像文件一样,可以向访问文件的方式来访问它。
/sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统
/misc:类似于man下的杂项,备用的杂项文件,一般是空的
/lost+founo:是Linux之上/etc文件系统默认格式化后产生的路径,和当前系统无关
/selinux:selinux相关的安全策略等信息的存储位置。
Linux上的应用程序的四大组成部分以及由可能存放的位置
二进制程序:/bin、/sbin、/usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin、
有些应用程序的有配置文件来定义这个应用程序的运行特性,一个应用程序可能有多个执行文件,这个应用程序有些功能是公共的,所以也会有库文件,共享库就是存放多个应用程序用到的相同功能,一个程序有很多的二进制程序,这些二进制程序有些部分是共享的,所以额外有自己的库文件。
库文件:这个库有两类,一个是多个程序之间的共享库,一个是自己能够被其他人做二次开发时调用的接口,大多数程序都可以被二次开发,为了实现二次开发和调用,也有自己的IPM
库文件:/lib、/lib64、/usr/lib、/usr/lib64、/usr/local/lib、/usr/local/lib64、
配置文件:/etc、/etc/DIRE CTORY、/usr/local/etc 帮助文件:/usr/share/man、/usr/share/doc、/usr/local/share/man、/usr/local/share/doc。
Linux下的文件系统
以文件的存储机制来区分的类型,以文件在磁盘上它的元数据和数据的存储,以组织机率来区分主要有以下几种:
-相当于f:普通文件
普通文件:它的内容有可能是文本文件,也有肯能是二进制程序,用file来区分它们,这种都称为一个文件,因为他们的元数据指向磁盘空间,在磁盘空间中放一段数据。
d:目录文件
目录文件:它的存放机率很独特,它在磁盘上也有一个磁盘块,也需要存数据,它里面的数据不是文件内容,而是每一个通过这个目录能够找到的文件路径。
b:块设备
块设备文件在磁盘上的存储机率很独特,甚至自己就没有占据磁盘空间,它只有元数据而没有数据
c:字符设备
l:软链接,也叫符号链接文件
在Linux上链接有两种,硬链接和软链接,l只表示软链接。
p:管道文件
s:套接字文件
用来实现通信的