今天学习了Linux的文件系统,所谓好记性不如烂笔头。还将这些知识点归纳并记录下来,以备以后查看,虽然现在理解的或许不够透彻,但我想通过不断地总结归纳,一定会有助于对知识的消化和理解,在将来一定会有所提高的吧.....
说起Linux的文件系统,就不得不说FHS,那么什么是FHS?
0、FHS:树状结构,文件系统层级标准
Filesystem Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。实际上FHS仅是规范在根目录(/)下面各个主要目录应该放什么样的文件。
当我们了解了什么是FHS之后,我们就可以得知,所谓Linux的文件系统,就是rootfs: 根文件系统
现在就让我们来认识根目录下的各个目录及其作用吧。
1、根目录下的各个目录
1、/boot: 系统启动相关的文件,如内核(vmlinuz)、initrd(rd=ram+disk),以及grub(bootloader)
2、/dev: 设备文件
设备文件:
块设备:随机访问,数据块。如磁盘
字符设备:线性访问,按字符为单位。如磁带
特殊文件:ls -l列出的文件信息的文件大小部分变设备号,因为此类文件为空文件没有文件内容(数据),只有属 性(元数据)
设备号:主设备号(major)和次设备号(minor)
3、/etc:配置文件
4、/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
5、/root:管理员的家目录;为了保障安全,管理员和普通用户不"住在"同一个地方。
6、/lib:库文件
静态库, .a
动态库, .dll(windows),.so (shared object)
库文件也是ELF格式,但却不可以执行,即没有X权限。
/lib/modules:内核模块文件
7、/media:挂载点目录,移动设备
什么是挂载:将设备文件与某个节点建立关联关系,设备文件只有通过挂载才能使用
8、/mnt:挂载点目录,额外的临时文件系统
9、/opt:可选目录,第三方程序的安装目录,现在被usr/local替代
10、/proc:伪文件系统,存放内核映射文件,如网卡的工作状态,路由功能,IPv4;
通过改变这里的文件,达到改变操作系统的根本属性
11、/sys:伪文件系统,跟硬件设备相关的属性映射文件(如修改磁盘调度队列)
设备要访问设备必须通过内核?
关于伪文件系统:在计算机启动前该文件夹为空,启动后才有内容。
12、/tmp:临时文件, /var/tmp
临时文件:定期自动清空。任何人都有权利创建,却不能删除别人创建的文件
/tmp目录的属性:为什么使用命令ls -ld /tmp显示该目录的属性为rwxrwxrwt
13、/var:可变化的文件
14、/bin:可执行文件, 用户命令
可执行文件的格式:
Linux:ELF可链接文件
Windows:PE可移植执行体
15、/sbin:可执行文件,管理命令
16、/usr:shared, read-only,全局的共享的只读文件目录,只有读r的权利,而没有w和x的权利
/usr/bin
/usr/sbin
/usr/lib
问题:为什么要多出来一个目录/usr去存放这些关于程序运行执行的目录(bin,sbin,lib)呢,为什么不把全部关于程序执行的文件都存放在统一放在目录(/bin,/sbin,/lib)中?
答:一个(/bin;/sbin;/lib)是跟自身启动相关,
一个(/usr/bin;/usr/sbin;/usr/lib)跟系统启动以后提供正常的基本功能相关。
/usr/local:第三方软件的存放目录,取代了/opt;(格式化后,系统可以正常启动)
/usr/local/bin
/usr/local/sbin
/usr/local/lib
2、文件及文件目录的命名规则:
1、名称长度不能超过255个字符
2、不能使用/当文件名,除此之外没有限制(*,空格等);
因为根目录是/,也是路径的分隔符
3、严格区分大小写