Linux文件系统
1、主要概念
“文件”这个术语指的是常规文件、目录、符号连接、设备节点及其他
所有文件都有如下属性:用户所有者、组所有者、权限和时间信息。这种信息保存在名为inode(i-节点)的结构中。
文件名保存在名为dentry(目录项)的数据结构中。
文件的i-节点信息可以通过ls -l命令和stat命令查询。
在Linux内核中,文件一般通过i-节点编号加以识别。ls-l命令可以用来查询i-节点用来查询i-节点的编号
2、每个文件都有三层结构:dentry、inode和data
3、文件的时间信息
atime 访问时间,文件数据每次被阅读后更新
ctime 改变时间,文件的i-节点信息每次被改变后更新
mtime 改变时间,文件的数据每次被改变后更新
mtime的改变也会引起ctime的改变,atime的改变则不会引起mtime的改变。
4、文件的长度和大小
ls-l第五列显示文件长度(文件数据的实际字节数)
ls-s第一列显示文件大小(文件所占磁盘空间,单位千字节)
5、文件的链接数
文件的链接数就是引用该文件的dentry数(文件名)
6、用stat命令查看i-节点信息
7、用ls命令查看i-节点信息
8、硬链接和软链接
主要概念
ln命令可建立两种不同类型的链接,硬链接将多项dentry(文件名)关联到一个i-节点,软链接是一些不同的i-节点,用来引用其他文件名
9、目录与设备节点
主要概念
文件是指常规文件、目录、符号链接、设备节点及其他
所有文件均包含一些通用属性:用户所有者、组所有者、权限、时间戳信息
文件元数据保存于i-节点中
文件名保存于目录项(dentry)的数据结构中
可以使用ls-l命令或stat命令检查文件元数据
10、磁盘文件系统与挂载
主要概念
Linux允许通过/dev/目录下设备的节点对磁盘进行访问
通常,磁盘被分区格式化为文件系统,挂载到目录下使用
文件系统用mkfs命令创建
mount命令用于将磁盘分区挂载到已存在的目录,该目录叫做挂载点
unmount命令用于将已挂载目录脱卸。
df命令给出磁盘使用信息和已挂载的设备
11、文件系统将磁盘划分为规定大小的数据块进行管理
12、挂载文件系统
在UNIX系统中,一个分区满了,受影响的只有其挂载目录,而整个目录树不会受到影响
用户可以通过df命令查看分区空间使用状态
13、临时挂载
文件系统和挂载点也包括一些临时设备,例如软驱、光驱。
挂载相关问题:
1、权限
默认情况下,只有根用户才能够挂载和脱卸设备。如果一个用户通过网络登录或者使用su命令切换,那么他不会被认为是“控制台用户”,那么也就没有权限挂载这些设备。
2、使用中的文件系统
只有未被使用的文件系统才能被脱卸。一个文件系统里的文件被打开,任何进程的工作目录在该文件系统下,都会被认为是使用中的文件系统。唯一的办法是找到这些进程,然后kill掉。
3、自动挂载
GNOME图形环境会运行一个automounter程序,他会一直监控光驱,当新插入一张光盘,它会自动挂载。automounter程序是图形环境的一部分,通过虚拟控制台登陆的用户不会得到它的帮助,并且automounter只对光驱起作用。
4、内核缓冲
为了提升性能,内核对所有块设备操作做缓冲。例如当你向软驱复制数据,似乎很快就完成了,当你用unmount命令将其脱卸时,命令会等到将数据完全复制到磁盘后CIA完成。在妥协设备时,内核会将所有暂时延缓的更改提交到设备。
如果在完成提交更改之前将软盘取出后果:最好的结果,只是复制的数据不存在,最坏的情况是文件软盘上的文件系统损坏,下次再使用时内核无法识别。
14、使用locate和find命令查找文件
主要概念
locate命令利用数据库根据文件名快速定位系统上的文件
find命令实时、递归查找系统上的文件
find命令可以根据i-节点信息查找文件
find命令可对文件执行任意命令
配置文件可以在/etc目录下找到
可执行命令可以在/bin目录下找到
15、文件压缩:gzip和bipz2
主要概念
压缩不常用文件可以节约磁盘空间
最常用的命令是gzip
bzip2命令较新,压缩效果好。
16、文本归档:tar命令
主要概念
将文件归档可以把整个目录树保存在一个文件中。
tar命令用于创建、列出、抽取归档文件
归档文件通常也会一并压缩
file-roller应用程序提供图形化操作的界面