1.文件系统的概念
文件系统(File System)是文件管理系统的简称,根据维基百科的描述,文件系统是用来组织数据在存储介质上的存储方式以及检索方式的。没有文件系统,信息在存储介质上会是一个很大的信息块,没法知道一条信息什么时候会结束,也没法知道信息在什么时候开始,对信息的管理就会十分的麻烦。
2.df命令
df 检查文件系统的磁盘空间占用情况。
显示已挂载的文件系统,相当于在windows下打开计算机C、D、E盘的大小多少。
-a ∶列出所有的文件系统,包括系统特有的 /proc 等文件系统
-k ∶以 KBytes 的容量显示各文件系统
-m ∶以 MBytes 的容量显示各文件系统
-h ∶以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示
-H ∶以 M=1000K 取代 M=1024K 的进位方式
-T ∶连同该 partition 的 filesystem 名称 (例如 ext3) 也列出
-i ∶不用磁盘容量,而以 inode 的数量来显示
练习:
1.将系统内所有文件系统列出来(不含特殊内存内的文件系统与swap),都以1KB的容量来列出来。(tmpfs是一种虚拟内存文件系统,而不是块设备,是基于内存的文件系统。/dev/shm是与内存有关的挂载)
df
2.将容量结果以易读的方式显示出来
df -h
3.将系统内的所有特殊文件系统及名称都列出来
df -aT
4.将/etc该目录或文件所在的分区容量显示出来
df -h /etc
5.将目前各个分区当中的inode数量列出
df -ih
6.使用ls命令的-i选项查看文件的inode号
ls -li
问题:
df 代表什么意思?
df . 代表什么意思?
如图所示 df命令是检查文件系统的磁盘空间占用情况。 df . 命令是检查当前文件夹所在的磁盘的磁盘空间占用情况
说明一下范例所输出的结果信息:
Filesystem: 代表该文件系统是在哪个分区,所以列出设备名称。
1k-blocks: 说明下面的数字单位是1KB
Mounted on 挂载点
3.du命令
du 统计目录(或文件)所占磁盘空间的大小(即查看文件夹大小,将里面的东西大小也显示出来)
-a ∶分列出所有的文件与目录容量(不可用于统计)。
-h ∶以人们较易读的容量格式 (G/M) 显示;
-s ∶统计目录总容量,与-a相对。
-k ∶以 KBytes 列出容量显示;
-m ∶以 MBytes 列出容量显示;
用法:du [-ahskm] 文件或目录名称
练习:
1.列出当前目录下的所有目录容量,即文件夹的大小(默认不包含文件的容量)
du
#直接输入du没有加任何参数时,则du会分析当前所在目录的文件与目录所占用的硬盘空间。
#但是,实际显示时,仅会显示目录容量(不含文件)。
#因此,目录有很多文件没有被列出来,所以全部的目录相加不会等于.的容量
2.将文件的容量(大小)也列出来
du -a
du -ah
3.s:single的意思,只显示单层的,即这个目录的大小
du -s /etc
4.显示根有多大
du -sh /
5.列出根目录下每个目录所占用的容量
du -sm /*
6.列出/usr下每个目录所占用的容量
du -sh /usr/*
问题:
du 代表什么意思?
du . 代表什么意思?
du 统计目录(或文件)所占磁盘空间的大小
du. 统计当前目录所占磁盘空间大小
4.索引节点
Linux文件是通过inode和block来存储的。
文件系统存储的最小单位是block(块),文件的实际数据放置到block块中。
文件数据除了文件实际内容外,通常含有非常多的属性。
Linux操作系统的文件权限(rwx)与文件属性(所有者、群组、时间参数等)存放到inode中。一个文件占用一个inode,同时记录此文件的数据所在的block号码。
另外,还有一个超级快(superblock)会记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量等。
5.硬连接
硬连接是Linux和Unix里面专有的一个概念,在其它操作系统里面并没有硬连接这个概念。
如A、B均指向磁盘中的同一块空间,使用A或者B都能达到操纵文件的目的。创建硬连接增加连接数。
rm命令减少连接数,当连接数为0时,删除这个文件。“连接”这个字段的意义为“有多少文件名连接到这个inode”,如果你将任何一个“文件名”删除,其实inode与block都还是存在的。
硬链接仅能在单一文件系统中进行,所有hard link是有限制的:
a.不能跨文件系统
b.不能连接到目录
练习:
1.新建一个目录,在新目录里操作
mkdir xx
cd xx
2.复制/etc/passwd,-a选项连同属性一起复制
cp -a /etc/passwd .
3.使用du命令以字节为单位显示当前目录的大小,使用df命令查看当前目录所在分区的inode数量
du -sb;df -i .
4.为passwd文件建立硬连接,ln为link的简写,不要写错了
ln passwd passwd-hd
5.查看当前目录大小和当前目录所在分区中的inode数量是有否变化
du -sb;df -i .
6.查看文件passwd和passwd-hd的inode号是否相同?
ll -i
#可见整个inode与block的容量并没有改变
#硬链接和原文件的inode号相同,指向同一个文件,只是连接数(别名)增加了。
6.软连接(又称符号连接)
符号连接就是在创建一个独立的文件,类似于快捷方式,B是A的符号连接,那么B可看作是A的引用。删除B,则A继续存在。ll命令后,箭头右边的文件名共有几个英文,每个英文占1个byte,就是文件的大小几byte。
练习:
1.为文件passwd建立符合连接
ln -s passwd passwd-so
2.查看当前目录大小和当前目录所在分区中的inode数量
du -sb;df -i .
3.查看文件passwd和passwd-so的inode号是否相同?
ll -i
4.整个容量和inode数量都增加了,软连接文件有自己的inode号,所以,软连接是增了新文件
cat passwd-so
cat passwd-hd #访问软、硬连接文件
#删除原文件,软、硬连接文件还能被访问么?
rm -f passwd
7.磁盘分区fdisk
fdisk非常危险,一般我们只是使用它来查看磁盘分区情况,没有挂载上的也能查到
练习:
fdisk -l //列出系统内能够找到的设备的分区
#只查看某一个硬盘
fdisk -l /dev/sda
练习:
将系统现有磁盘的最后一个分区删掉,重新建一个分区
fdisk -l //先查看一下系统中硬盘的名称,eg:/dev/sda
fdisk /dev/sda
m //m命令是帮助
p //打印当前磁盘的分区情况
d //deletc分区
3 //假设最后一个分区的分区号是3
n //n命令可以新建一个分区
p //新建一个主分区
4 //设置一个分区号
Enter
+512M
p //使用p命令查看一下分区情况
n //n命令可以新建一个分区
e //新建一个扩展分区
3 //设置一个分区号
Enter
Enter
p //使用p命令查看一下分区情况
后面可以继续在扩展分区中建逻辑分区
q //q命令退出未将修改保持
注意:
主分区与扩展分区最多可以有4个扩展分区最多只能有一个逻辑分区是由扩展分区继续分出来的
8.mount命令
mount挂载文件系统
-t ∶可以加上文件系统种类来指定欲挂载的文件系统的类型。
常见的Linux支持类型有ext2、ext3、vfat、reiserfs、iso9660(光盘格式)、nfs、cifs、smbfs(此三种为网络文件系统类型)
练习挂载U盘:
a) 插U盘之前使用fdisk查看当前系统中的磁盘情况
fdisk -l
b) 插U盘后再次使用fdisk查看当前系统中的磁盘情况,eg:/dev/sdb
fdisk -l
c) 建立准备挂载的目录
mkdir /mnt/usb
d) 使用mount命令将U盘挂上去
mount /dev/sdb /mnt/usb
cd /mnt/usb
e)查看U盘里的内容
ls
f)卸载U盘
umount usb或umount /dev/sdb //使用后,卸载,拔除USB设备