访问LINUX文件系统

1、识别文件系统和设备

文件系统是包含保存数据的文件和目录的有序结构,将所有文件系统汇聚为一个具有单个跟的目录树。现有层次结构可以随时扩展:只需添加包含支持的文件系统的新磁盘或分区,即可在文件系统树的任何位置增加磁盘空间。将新文件系统添加到现在目录树的过程称为挂载,其中挂载了新文件系统的目录称为挂载点。

存储设备由一个特殊文件类型表示,其成为块设备。块设备存储在/dev目录中。

serverX上块设备的特殊文件类型为b

/dev/sda                                              第一个scsis,sata或usb驱动器

/dev/sdb1                                            第二块硬盘的第一个分区

/dev/vd或/dev/xvd                              虚拟机中的硬盘驱动器


整理磁盘和分区的另一种方式是通过逻辑卷管理 LVM 。通过LVM,一个或多个块设备可以汇集成一个存储池,称为卷组。磁盘空间可以一个或多个逻辑卷提供,逻辑卷与驻留与物理磁盘上的分区相当。卷组和逻辑卷在创建时都分配有名称。对于卷组,/dev目录中有一个名称与该卷组相同的目录,在该目录下,已创建名称与逻辑卷相同的符号链接。例如,myvg卷组中的mylv逻辑卷的设备文件是/dev/myvg/mylv。

LVM依赖于设备映射程序DM内核驱动程序。/dev/myvg/mylv指向/dev/dm-number块设备节点,number的分配是连续的,从0开始,number名称在每次启动会有所不同。

每个逻辑卷在/dev/mapper目录中有另外一个符号链接,名称为/dev/mapper/myvg-mylv,通常可以使用任意可靠且一致的符号链接来访问逻辑卷。


检查文件系统

df                                            查看文件系统挂载点和可用空间大小

df  -h                                       单位为Kib 、Mib  、Gib

df  -H                                       单位为Kb 、Mb 、 Gb       

du                                            查看某一特定目录树使用的空间的详细信息      


2、挂载和卸载文件系统

驻留与sata或scsi设备上的文件系统需要手动挂载后才能访问。mount命令允许root用户手动挂载文件系统。

格式:mount      需要挂载的文件系统         挂载点

blkid命令简要列出具有文件系统的现有分区和文件系统的UUID,以及用于格式化该分区的文件系统

文件系统可以挂载到现有的目录。默认存在/mnt,它可为挂载点提供入口,建议在/mnt下创建子目录,并将该子目录用作挂载点,便于管理。

若用于挂载点的目录非空,则只要有文件系统挂载到该目录,其中已存在的文件将不可访问,写入到挂载点目录的所有文件将出现在挂载此处的文件系统中。


卸载文件系统

格式: umount     挂载点

若挂载点正在由某一进程访问,将无法卸载,需该进程停止访问挂载点。

lsof    挂载点                                                  列出指定目录中所有打开的文件以及访问进程


USB闪存设备和驱动器等可移动介质在插入后便由图形桌面环境自动挂载,挂载点是:/run/media/<user>/<label>

<user>登录图形环境的用户    <label>文件系统创建时所取的名称


3、制作文件间的链接

硬链接:硬链接是新的目录条目,其引用文件系统中的现有文件,文件系统中的每一个文件默认具有一个硬链接。指向同一文件的所有硬链接具有相同的权限、用户/组所有权、时间戳以及文件内容。新连接创建后,无法区别哪一个是原始链接。即使原始文件删除,只要存在至少一个硬链接,该文件内容就依然可用。如果一个硬链接上的任务信息被更改,指向同一个文件的所有硬链接也会显示新的内容。

格式: ln      源文件        硬链接文件


软链接:也称符号链接,软链接是特殊的文件类型,它指向现有的文件和目录也可以指向其他文件系统中的文件或目录。软链接可以指向目录,指向目录时可作为目录使用。当原始文件删除后,软链接一人会指向该文件,但不可用,称为 悬挂的软链接。

格式:   ln  -s    源文件/目录     软链接文件/目录


4、查找系统中的文件

locate:locate命令根据locate数据库中的文件名或路径返回结果,该数据库存储文件名和路径信息。以普通用户搜索时,必须多包含匹配的目录树拥有读取权限

示例:  locate           passwd                                 搜索passwd

            locate  -i       passwd                                 不区分大小写

           locate  -n 5   passwd                                限制返回结果数量 

locate数据库每日自动跟新,root可通过updatedb命令更新该数据库


find:find命令在本地文件系统中执行搜索、查找符合命令行参数条件的文件。find命令以你的用户账户身份查询文件系统中的文件,调用find命令的用户必须具有要查看其内容的目录的读取和执行权限。

格式:   find    [要搜索的目录]      选项             ---------若省略参数,则搜索当前目录

若使用通配符搜索,务必将要查找的文件名用引号括起来,以防止终端对通配符号解译

示例:

find       /      -name       passwd                               查找名为passwd的文件

find       /       -iname      passwd                               不区分大小写

find        /       -name     '*pass*'                               查找文件名包含pass的文件

find        /      -user          lvyang                               查找用户lvyang拥有的文件

find        /      -group       lvyang                               查找用户组lvyang拥有的文件

find       /     -user   root   -group   mail                    查找root和mail组拥有的文件

find       /      -perm      755                                        查找权限为755的文件

find      /       -size   1M                                              搜索大小等于1M的文件(向上取整)

find      /       -size   +1M                                            搜索大小大于1M的文件

find     /        -size   -1M                                             搜索大小小于1M的文件

find      /       -type   f                                                  搜索普通文件               

find      /       -type   d                                                 搜索目录

find      /       -type   b                                                 搜索块设备

find      /       -type   l                                                   搜索软链接