层级结构
ls / 一级子目录
二级子目录也有固定的,尽量不要随意修改
逻辑+物理关联到一个根上,叫做单根结构
FHS文件系统层级结构基本标准
Linux的文件系统:FHS
程序包
为了避免自由社区出现太大分裂,Linux开始定制各种标准
操作系统运行需要什么?------ 启动Kernel(运行中的内核), 库libraries, 各种各样的application,各种各样的功能可能有一部分是公用的,那么组织成库(libraries),主机所有运行过程需要这3个组件,其余是补充,比如说man命令,基本的主框架需要这3部分
对于centos三大部分如下 kernel: /boot/vmlinuz
libraries: /lib, /lib64, /usr/lib, /usr/lib64
application:(应用程序)
我们 ls 一下lib64
你会发现这里面有许多已SO结尾的文件,结尾的数字为他的版本号
对于application有
二进制程序 /bin /sbin 其他bin相关的文件
库文件 共享库
配置文件 /etc
帮助文件
一个操作系统主要由这3部分组成,而对应的其他路径下的内容都属于补充类内容,但是他们的的确确有他们自己的特殊作用,至于有什么作用,怎么管理的呢,我们就来说说FHS
FHS:
/bin: 所有用户可用的基本命令程序文件;
/sbin: 实现管理功能的程序文件;(默认由管理员用来管理命令的获取)普通用户基于sudo机制
/boot: 引导加载器的静态文件;内核、ramdisk(initrd, initramfs)文件亦在此处;
/dev: 存储特殊文件或设备文件;
设备有两种类型:
块设备:随机访问,以“块”为单位实现数据交换;"b"
字符设备:线性访问,以“字符”为单位实现数据交换;"c" (块设备和字符设备URL)http://blog.sina.com.cn/s/blog_67be3b4501019a33.html
/etc:系统和应用程序的配置文件;放置当前系统或应用程序的配置文件存放位置;
/home: 普通用户的家目录;/root 是管理员家目录;
/home/USERNAME:每个都有自己专用的家目录;
/root:管理员的家目录;
/lib:共享库文件,以内核模块文件,为bin sbin提供动态共享库;
modules:内核模块;
/lib64:64位系统特有的存放64位共享库的路径;
/media:挂载便携式设备,可移动;
/mnt: 挂载临时文件系统,为其他文件系统提供与单根系统建立关联;
/opt: 第三方应用程序的安装路径;(早期,现在多为/usr/local)
/srv: 当前系统提供的服务运行中的用到的中间数据;
/tmp: 临时文件存储位置;
/usr: /usr Hierarchy,全局共享只读数据;第二重要,是一些只读数据,如果我们发行版是centos,debian两种,把usr拆下来放到debian也是可以用的
bin, sbin
lib, lib64
include:C程序头文件;
share:平台的独立的共享数据文件;
local:第三方应用程序安装路径,用来取代/opt的;
src:程序源代码;
/usr/local:第三方应用程序安装路径;可使用独立分区;
/var:可变数据存储位置;
cache:应用程序缓存数据;
lib: 可变状态信息数据;
log:日志文件目录;
lock:锁文件;
run:进程相关的数据,主要用户存储pid文件;
/proc:基于内存的虚拟文件系统; 用于为内核及进程存储其相关信息; 它们多数为内核参数,例如net.ipv4.ip_forward,虚拟为/proc/sys/net/ipv4/ip_forward;
/sys:sysfs虚拟文件系统,是一种提供了比/proc更为理想的访问内核数据的另一个途径;其主要作用在于为管理Linux系统上的设备提供一种统一模型的接口;
文件系统的挂载:把额外的文件系统与当前根文件系统上的某个目录建立关联关系,并以之作为新的文件的访问入口的操作过程,就叫做挂载(mount);拆除此关联关系的过程,即为卸载(umount);
Linux系统上文件的类型:
-:常规文件,有时使用f标识;
d:目录文件;
b:block;
c: character devices;
l: symbolic link files; 符号链接文件;
p:pipe,命名管道;
s:sokcet,套接字文件;