Unix / Linux - 文件系统基础

  • 简述

    文件系统是分区或磁盘上文件的逻辑集合。分区是信息的容器,如果需要,可以跨越整个硬盘驱动器。
    您的硬盘驱动器可以有多个分区,这些分区通常只包含一个文件系统,例如一个文件系统包含 /file system 或另一个包含 /home file system.
    每个分区一个文件系统允许对不同文件系统进行逻辑维护和管理。
    Unix 中的一切都被认为是一个文件,包括物理设备,如 DVD-ROM、USB 设备和软盘驱动器。
  • 目录结构

    Unix 使用分层文件系统结构,很像一棵倒置的树,根 (/) 位于文件系统的底部,所有其他目录从那里扩展。
    Unix 文件系统是具有以下属性的文件和目录的集合 -
    • 它有一个根目录(/) 包含其他文件和目录。
    • 每个文件或目录都由其名称、它所在的目录和唯一标识符(通常称为 inode.
    • 按照惯例,根目录有一个 inode 数量 2lost&plusfound 目录有一个 inode 数量 3. 索引节点数01不使用。文件 inode 编号可以通过指定-i optionls command.
    • 它是独立的。一个文件系统和另一个文件系统之间没有依赖关系。
    这些目录具有特定用途,并且通常包含相同类型的信息,以便轻松定位文件。以下是 Unix 主要版本上存在的目录 -
    序号 目录和说明
    1
    /
    这是根目录,应仅包含文件结构顶层所需的目录
    2
    /bin
    这是可执行文件所在的位置。这些文件可供所有用户使用
    3
    /dev
    这些是设备驱动程序
    4
    /etc
    主管目录命令、配置文件、磁盘配置文件、有效用户列表、组、以太网、主机、发送关键消息的位置
    5
    /lib
    包含共享库文件,有时还包含其他内核相关文件
    6
    /boot
    包含用于引导系统的文件
    7
    /home
    包含用户和其他帐户的主目录
    8
    /mnt
    用于挂载其他临时文件系统,如 cdromfloppy 为了 CD-ROM 开车和 floppy diskette drive, 分别
    9
    /proc
    包含所有标记为文件的进程 process number 或其他对系统动态的信息
    10
    /tmp
    保存系统启动之间使用的临时文件
    11
    /usr
    用于各种用途,可供许多用户使用。包括管理命令、共享文件、库文件等
    12
    /var
    通常包含可变长度文件,例如日志和打印文件以及可能包含可变数据量的任何其他类型的文件
    13
    /sbin
    包含二进制(可执行)文件,通常用于系统管理。例如,fdiskifconfig 公用事业
    14
    /kernel
    包含内核文件
  • 浏览文件系统

    现在您了解了文件系统的基础知识,您可以开始导航到您需要的文件。以下命令用于导航系统 -
    序号 命令和描述
    1
    cat filename
    显示文件名
    2
    cd dirname
    将您移动到指定的目录
    3
    cp file1 file2
    将一个文件/目录复制到指定位置
    4
    file filename
    标识文件类型(二进制、文本等)
    5
    find filename dir
    查找文件/目录
    6
    head filename
    显示文件的开头
    7
    less filename
    从结尾或开头浏览文件
    8
    ls dirname
    显示指定目录的内容
    9
    mkdir dirname
    创建指定目录
    10
    more filename
    从头到尾浏览文件
    11
    mv file1 file2
    移动文件/目录的位置或重命名
    12
    pwd
    显示用户所在的当前目录
    13
    rm filename
    删除文件
    14
    rmdir dirname
    删除目录
    15
    tail filename
    显示文件的结尾
    16
    touch filename
    创建一个空白文件或修改现有文件或其属性
    17
    whereis filename
    显示文件的位置
    18
    which filename
    如果文件在 PATH 中,则显示文件的位置
    您可以使用 Manpage Help 检查此处提到的每个命令的完整语法。
  • df 命令

    管理分区空间的第一种方法是使用 df (disk free)命令。命令df -k (disk free) 显示 disk space usage in kilobytes,如下图所示 -
    
    $df -k
    Filesystem      1K-blocks      Used   Available Use% Mounted on
    /dev/vzfs        10485760   7836644     2649116  75% /
    /devices                0         0           0   0% /devices
    $
    
    一些目录,例如 /devices, 在 kbytes、used 和avail 列中显示 0,在容量中显示 0%。这些是特殊(或虚拟)文件系统,尽管它们驻留在 / 下的磁盘上,但它们本身不占用磁盘空间。
    df -k输出在所有 Unix 系统上通常是相同的。这是它通常包括的内容 -
    序号 列和描述
    1
    Filesystem
    物理文件系统名称
    2
    kbytes
    存储介质上的总可用空间千字节
    3
    used
    使用的总空间千字节(按文件)
    4
    avail
    可用的总千字节数
    5
    capacity
    文件使用的总空间百分比
    6
    Mounted on
    文件系统挂载在什么位置
    您可以使用 -h (human readable) option 以更易于理解的符号显示大小的格式显示输出。
  • du 命令

    du (disk usage) command 使您可以指定目录以显示特定目录上的磁盘空间使用情况。
    如果您想确定特定目录占用了多少空间,则此命令很有用。以下命令显示每个目录消耗的块数。根据您的系统,单个块可能需要 512 字节或 1 千字节。
    
    $du /etc
    10     /etc/cron.d
    126    /etc/default
    6      /etc/dfs
    ...
    $
    
    -h 选项使输出更容易理解 -
    
    $du -h /etc
    5k    /etc/cron.d
    63k   /etc/default
    3k    /etc/dfs
    ...
    $
    
  • 挂载文件系统

    必须挂载文件系统才能供系统使用。要查看系统上当前安装的内容(可供使用),请使用以下命令 -
    
    $ mount
    /dev/vzfs on / type reiserfs (rw,usrquota,grpquota)
    proc on /proc type proc (rw,nodiratime)
    devpts on /dev/pts type devpts (rw)
    $
    
    /mnt根据 Unix 惯例,目录是临时安装(例如 CDROM 驱动器、远程网络驱动器和软盘驱动器)所在的位置。如果您需要挂载文件系统,您可以使用具有以下语法的 mount 命令 -
    
    mount -t file_system_type device_to_mount directory_to_mount_to
    
    例如,如果你想挂载一个 CD-ROM 到目录 /mnt/cdrom,您可以输入 -
    
    $ mount -t iso9660 /dev/cdrom /mnt/cdrom
    
    这假设您的 CD-ROM 设备被称为 /dev/cdrom 并且您想将其安装到 /mnt/cdrom. 有关更多具体信息,请参阅 mount 手册页或键入 mount-h 在命令行中获取帮助信息。
    挂载后,您可以使用 cd 命令通过您刚刚创建的挂载点导航新可用的文件系统。
  • 卸载文件系统

    要从系统卸载(删除)文件系统,请使用 umount 命令通过识别挂载点或设备。
    例如, to unmount cdrom,使用以下命令 -
    
    $ umount /dev/cdrom
    
    mount command 使您能够访问您的文件系统,但在大多数现代 Unix 系统上, automount function 使这个过程对用户不可见,不需要干预。
  • 用户和组配额

    用户和组配额提供了一种机制,通过该机制可以将单个用户或特定组内所有用户使用的空间量限制为管理员定义的值。
    配额在两个限制附近运行,如果空间量或磁盘块数开始超过管理员定义的限制,则允许用户采取一些措施 -
    • Soft Limit − 如果用户超过定义的限制,则有一个宽限期允许用户释放一些空间。
    • Hard Limit − 当达到硬限制时,无论宽限期如何,都不能再分配文件或块。
    有许多命令可以管理配额 -
    序号 命令和描述
    1
    quota
    显示组用户的磁盘使用情况和限制
    2
    edquota
    这是一个配额编辑器。可以使用此命令编辑用户或组配额
    3
    quotacheck
    扫描文件系统的磁盘使用情况,创建、检查和修复配额文件
    4
    setquota
    这是一个命令行配额编辑器
    5
    quotaon
    这向系统宣布应该在一个或多个文件系统上启用磁盘配额
    6
    quotaoff
    这向系统宣布应该为一个或多个文件系统禁用磁盘配额
    7
    repquota
    这将打印指定文件系统的磁盘使用情况和配额的摘要
    您可以使用 Manpage Help 检查此处提到的每个命令的完整语法。