Linux文件系统
参考一些资料,学习一下linux文件系统的一些基本知识。主要包括:linux磁盘分区和目录、挂载的基本原理、文件存储结构、软连接硬链接等。
1、linux磁盘分区和目录
linux各个发行版之间差别不大,目录结构基本一致。Windows文件系统结构是多个树状结构并列,树顶部就是不同的磁盘分区。而linux文件系统结构是单个树状结构。在Ubuntu下安装tree,可以通过命令查看树状结构。
linux磁盘分区和目录的关系如下:
-任何一个分区必须挂载到某个目录上,才能进行读写操作
-目录是逻辑上的区分。分区是物理上的区分
-根目录是所有linux文件和目录所在的地方,需要挂载一个磁盘分区
一些常用命令:
-fdisk 查看硬盘分区表
-df 查看分区使用情况
-du 查看文件占用情况
Ps:为什么要分区?不同资料分开管理,降低风险;大磁盘搜索效率低;碎片整理。
2、挂载的概念
挂载:当要使用某个设备时,必须把这些设备对应到某个目录上,这个目录成为“挂载点”,这样才能进行读写操作。挂载将物理分区的细节屏蔽掉,用户只有统一的逻辑概念。
在linux系统中,利用/etc/fstab来挂载分区,linux内核会参照此文件对文件系统进行自动挂载。
3、文件类型
- 普通文件
- 目录文件
- 链接文件
- 特殊文件
4、文件存储结构
一个文件包括:
- 目录项:文件名+iNode节点号
- iNode:文件索引节点,存放文件基本信息、存放位置、数据块指针存放位置
具体包括 inumber+file type+owner ID+Link count+...不包含文件名
- 数据块:文件具体内容
查看某个文件时,先从iNode table中找到文件属性和存放地点,再读取数据。
5、软链接、硬链接
软链接:符号连接,类似于Windows中的快捷方式,当源文件删除时,链接失效。删除链接则不会影响源文件。
硬链接:文件的一个副本,并与源文件建立链接。修改其中一个会造成同时更改,删除其中一个其余文件不受影响。源文件与新文件iNode编号一致,软链接不一致。
6、文件目录管理命令
磁盘和文件控件:fdisk\df\du
文件目录管理:cd\pwd\mkdir\rmdir\ls\cp\rm\mv
查看文件内容:cat\tac more\less head\tail
文件目录与权限:chmod\chown\chgrp\umask
文件查找:which(PATH)\where\locate\find\
7、常见目录解释
/ 根目录
/bin 系统中基础的命令,如:ls\cp\mkdir,功能和/usr/bin类似,都是可执行命令。
/boot 内核及引导系统所需要的文件,如:vmlinuz\initrd.img\kernels\initrd\gurb等,独立分区。
/dev 一些必要设备。
/etc 系统配置文件。
/home 用户工作目录,独立分区。
/lib 库文件。
/media 可拆卸的媒介挂载点,如:cdrom\移动硬盘\U盘
/mnt 临时挂载文件系统。
/opt 可选的应用程序包。
/proc 操作系统运行时,进程信息及内核信息存放地。
/root root用户的工作目录。
/sbin 和bin类似,系统管理员所需使用的。
/tmp 临时文件。
/usr 系统用户工具和程序。
/srv 存放一些服务启动后需要提取的数据。