0722_Linux基础(17)

277 阅读3分钟

Linux 文件系统

Linux 是如何进行文件访问的呢? 这依赖于 Linux 系统上面提供的挂载点,通过挂载点,将存储设备挂载上去,这样才能够被用户访问。在 Linux 中,对存储设备的低级别访问是由一种称为块设备的特殊文件提供,挂载存储设备前,需要使用文件系统对其进行格式化

一些块设备的命名方式 /dev/sda (SATE/SAS/USB 一类的存储)、/dev/vda 或 /dev/sd* (虚拟存储)、/dev/nme0 (NVMe 附件存储,多为 SSD)。

硬盘分区

虽然一个存储设备可以整个作为一个文件系统,但我们通常会划分为更小的区块,这个过程称为分区。像 Windows 那样,一块 500 G 的硬盘,我们可能会分成 C D E F 四个区。

另外分区也属于块设备,所以命名的时候,通常会在对应的存储类型上加数字后缀,比如 /dev/sda1

分区的方式,有两种:

  1. MBP 每个驱动器最多支持 4 个主分区,最多划分 2TB 的磁盘
  2. GPT 每个驱动器最多支持 128 个分区,最多可以划分 18EB 的磁盘。

整理磁盘和分区的另外一种方式是通过逻辑卷管理(LVM)。

使用 df -h 命令可以人性化的查看已挂载在文件系统上面的存储设备的使用情况。

挂载和卸载文件系统

系统提供访问存储介质的入口,即挂载点,通过将需要挂载的对象(文件系统)进行挂载,从而用户能够访问对应的数据。常见的文件系统有 FAText4 等。

Linux 系统安装之后,每次开机肯定会自动帮我们挂载一些分区啦,当有移动存储设备插入的时候,也能够自动感知并挂载(当然驱动不可少)要记住 Linux 上一切皆文件,所以存储设备也是由文件管理。

挂载设备使用 mount 命令、卸载设备使用 umount(卸载设备时,这个设备不能在使用,可以使用 lsof 命令进行查看) ,查看所有可以设备的详细信息可以使用 lsblk -fp 命令。

查找文件

locate 命令可以搜索预先生成索引的文件名或文件路径,并即时返回包含搜索关键字的文件或目录,它需要依赖预先生成的数据库,但这个数据库不会实时更新(一般 locate 数据库每天晚上会更新一次),不过,root 用户可以使用 updatedb 立即更新数据库。

find 命令则是根据文件的结构层次执行实时,查找出所有符合搜索条件的文件,所以效率会比 locate 慢很多。 find 命令的参数很多,能够根据不同的条件参数进行不同的搜索,比如,根据用户名或用户组搜索,确定用户或用户组所拥有的文件。 另外,find 命令支持 通配符,能够进行一定程度的模糊查询。


# 在 localte 数据库中,查找包含 test 的 文件或目录
# 如果没有数据库,可以切换成 root 用户,然后使用 updatedb 命令来生成

locate test

# 查找当前目录下 的 test 文件

find -name test


# 查找当前目录下 以 test 结尾的文件

find -name *test


# 查找当前目录下 包含 te 并且以 .txt 结尾的文件
find -name *te*.txt


# 在指定路径下 查找 passwd 文件。
find /etc -name "passwd"

# 查找 /usr/bin 目录中文件大小超过 50kb 的文件
find /usr/bin -size 50k

# 查找 /home/student 目录下最近 120 分钟没有被更改的文件

find /home/student -mmin +120