Linux文件和管理

Linux内所有的数据都是以文件的形式存在,所以Linux系统中最重要的地方就在于目录树(directory tree)结构。
目录树结构如下:

Linux目录树.jpg

挂载

挂载就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下,进入该目录即可读取该分区,这个动作我们称为挂载。这个进入点的目录我们称为挂载点。挂载点一定是目录。

挂载点.png

从图中可以看出可以将不同的目录挂载在不同的分区上。
可以在/etc/fsta里修改开机挂载内容。同时又以下限制:

  • /目录必须挂载,并且要先于其他挂载点挂载;
  • 其他mount porint必须为已创建的目录,可任意指定,但一定要遵守必须的系统目录架构原则(FHS);
  • 所有的mount point在同一时间之内,只能挂载一次。

文件属性和权限

改变权限命令:

  • chgrp:改变文件所属群组;
  • chown:改变文件拥有者;
  • chmod:改变文件的权限。
    -R为递归,文件次目录的所有文件都会变更。
    也可以使用chown user.group file的方式同时改变拥有者和群组。
    cp命令会将文件拥有者属性和权限都复制过去。
    文件权限数字表达为:r:4; w:2;x:1
    符号类型改变文件权限:拥有者表达方式u=user, g=group, o=other a=all权限则用+ - =来表示添加、删除和赋予。

文件种类与扩展名

文件种类

  1. 普通文件,第一个字符为-,包含文本、二进制文件、数据格式文件等;
  2. 目录:d
  3. 链接文件:l
  4. 设备文件
    • 区块设备文件,b
    • 字符设备文件,c
  5. 数据接口文件:socket s
  6. 管道文件(pipe):FIFO(first in first out) p

linux文件目录

/bin:可执行文件目录,该目录的指令可在单人维护模式下被执行。
/boot: 放置开机启动文件,包括linux kernel和开机菜单、开机所需配置文件等。kernel文件名为vmlinuz
/dev:设备与周边设备存放目录;
/etc:系统主要配置文件目录。只有root用户可修改。
/lib:系统函数库存放文件,驱动文件也放在这;
/media /mnt:媒体存放目录以及挂载目录;
/opt:第三方软件存放目录;
/srv:一些www ftp等服务数据存放目录
/tmp:一般使用者或正在执行的程序暂放文件的地方。任何人都可以读取,需要定期清理;
/home:默认使用者主文件夹;
/root:root用户主文件夹;
/last+found:ext2/3/4文件格式会产生的一个目录,当文件系统发生错误时,一些遗失的片段会放置在该目录下。
/proc:进程信息、设备状态、网络状态目录
/usr:unix software resource缩写,
文件默认权限umask来查看和修改。显示的是被减去的权限。

文件系统存放

superblock:记录文件系统的整体信息,包括inode/block的总量、使用量、剩余量以及文件系统的格式和相关信息;
inode:记录文件的属性,一个文件占用一个inode,同时记录文件的数据所在的block号码;
block:实际记录文件的内容,可能占用多个block。

EXT2

EXT2文件系统划分了多个block group,每个区块有独立的inode/block/superblock系统。ext2系统所支持的block大小为1K/2K/4K(Bytes)这三种。block的大小导致了文件系统磁盘容量的大小不同

ext2.png

ext2文件系统的block的限制如下:

  • block大小和数量在格式化完后就固定了;
  • 每个block内最多只能放置一个文件的数据;
  • 如果文件大于block的大小,则一个文件占用多个block数量;
  • 如果文件小于block,则该block的剩余容量就不会被其他文件占用。
    当小文件过多(日志文件)时,格式化成4K的block会浪费很大空间;而大型文件假如格式化成1K的block时则需要占用数量更多的block,则inode也要记录更多block号码,会导致文件系统不良的读写性能。因此要针对是什么服务器进行专门区分。

inode

inode记录的数据:

  • 该文件的读取模式;
  • 文件的拥有者和群组;
  • 文件的容量;
  • 文件的创建或状态改变时间ctime;
  • 最近一次读取时间atime;
  • 最近一次修改时间mtime;
  • 定义文件特殊的flag;
  • 文件真正指向pointer;
    inode特点:
  • 每个inode 大小固定为128Bytes(最新系统可到256)
  • 每个文件仅占用一个inode;
  • 文件系统能够创建的文件数量和inode数量相关;
  • 系统读取文件先找到inode,然后分析权限,最后读取block内容。

superblclock

superblock记录了整filesystem相关信息:

  • block和inode总量;
  • 未使用与已使用inode、block数量;
  • block和inode的大小;
  • filesystem的挂载时间、写入时间、检验磁盘时间等;
  • 一个vaild bit数值(挂载为0,未挂载为1)
    查询superblock命令dumpe2fs

链接

在linux下面链接文件有两种,一种类似Windows快捷方式的软链接,一种是通过文件系统的inode链接来产生新文件名,而不产生新文件,这种称为硬链接
二文件名只与目录相关,而文件内容则与inode相关。使用hard link设置链接文件时,磁盘的空间与inode的数目都不会改变,hard link只是某个目录下block多写入一个关联数据,既不会增加inode也不消耗block数量。

hard link限制

  • 不能跨file system;
  • 不能link 目录;
    hard link相比symbolic link安全,因为其中一个目录的文件被删掉,另外目录存放的数据还是安全的。

ln命令用法

ln [-sf] 源文件 目标文件
-s:symbolic link,不加任何参数的话则默认hardlink
-f:如果目标文件存在,则将目标文件移除后再创建

磁盘管理

观察分区

lsblk:list block device列出系统上的所有磁盘列表;
parted:列出磁盘的分区表类型与分区信息;
gdiskfdisk:MBR分区使用fdisk,GPT使用gdisk,不要对正在使用的分区进行分区操作,需要先将分区卸载掉,然后在进行分区操作。
mkfs make filesystem格式化分区。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容