文件系统
1、定义:
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
2、种类
用df-T
可以查看文件系统
下面显示部分文件系统:
hgs@ubuntu:~$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
udev devtmpfs 1976320 0 1976320 0% /dev
tmpfs tmpfs 400172 2164 398008 1% /run
/dev/sda1 ext4 20509264 10552404 8892004 55% /
tmpfs tmpfs 2000852 0 2000852 0% /dev/shm
tmpfs tmpfs 5120 4 5116 1% /run/lock
tmpfs tmpfs 2000852 0 2000852 0% /sys/fs/cgroup
/dev/loop1 squashfs 3840 3840 0 100% /snap/gnome-system-monitor/127
EXT1,2,3,4:linux 常用 ,基于磁盘
NTFS :window常用
vfat :基于磁盘,boot(BootLoader,kernel)
ext4:根目录
tmpfs :内存文件系统(引索文件系统)
3.什么是分区
Windows :c,d盘,存放文件比较随意,同一个文件夹下的东西在同一个分区,根据个人意愿储存在这个分区,这一块地址连续的内存下。目录即分区
Linux :按照功能来分区,每个分区严格存放文件 目录非分区
同一个文件夹下的东西不一在同一个分区:即同一个文件夹下的子文件夹根据功能分别储存在bootloader、para、kernel、根目录分区
嵌入式系统可以分为4个分区
bootloader :系统启动代码
para :启动代码向内核传递参数的位置
kernel :内核分区
根目录分区 :文件系统结构
4.文件系统目录结构
说白了就是目录
LSB(Linux Standard Base)/FHS(Filesystem Hierarchy Standard)
**/**所有Linux操作系统的顶点目录,不像Windows,每个分区都有一个顶点目录
/boot 存放系统启动时相关的文件,比如kernel内核,grub引导菜单(不要删除)
/bin 存放的都是命令 ,普通用户可执行
/sbin 超级管理员能执行的命令
/home 存放普通用户的家目录
/root 超级管理员的家目录,普通用户无法进入
/etc 存放配置文件的目录
/etc/init 存放着开机启动的东西
/etc/hostname 主机名
/etc/hosts 本地解析域名的一种方式
/etc/sysconfig/network-script/ifcfg-* 网卡的配置文件
/dev 设备目录,硬盘\硬盘的分区\串口serial\光盘…
/dev/null 黑洞,接受所有东西,只进不出
/dev/zero 摇钱树,可以产生源源不断的数据
/dev/random 产生随机数的一个设备
/dev/pts/0 虚拟的Bash Shell终端,提供给远程用户使用,0代表一个用户,1代表两个终端 以此类推
/usr 类似windows的c盘下面的Windows目录
/usr/lib 共享库文件,后缀都是so结尾,share object
/usr/lib64 共享库文件64位,后缀都是so结尾 share object
/usr/local 早期大家都把文件放在这个目录下,和windows c:\programFile
/usr/bin
/usr/sbin
/var 存放一些可变化的内容,比如/var/log日志,可以人为让其发生变化,也或者是随时间产生变化
/tmp 存放临时文件无论哪个用户都可以存放
/proc 反馈当前运行的进程的状态信息
/run 存放程序运行后产生的pid文件
/media
/mnt 提供挂载的目录
/srv 物理设备产生的一些文件
5.文件系统目录的日常操作
1./home
s
u
d
o
m
k
d
i
r
a
b
c
d
:
新
建
一
个
用
户
2.
sudo mkdir abcd :新建一个用户 2.~
sudomkdirabcd:新建一个用户2. cd lost+found/ :开机找回
3.cat /proc/cpuinfo:查看cpu信息
4.cat /proc/meminfo:查看内存信息
5.sudo passwd root :超级管理员
6.虚拟文件系统vfs
虚拟文件系统 Virtual File System
文件系统类型不一样,读取的方式不一样,虚拟文件系统解决了这个问题
vfs就是对各种文件系统的一个抽象,它为各种文件系统提供一个通用的接口
作用 简化程序员的开发,不管是磁盘还是设备,都可以用open,read,write来操作。