集册 UNIX 入门经典 文件系统基础知识

文件系统基础知识

黑派客     最近更新时间:2020-08-04 05:37:59

253

文件系统是一个分区或磁盘上的文件的逻辑集合。一个分区是一个信息的容器,如果需要可以跨整个硬盘。

你的硬盘可以有不同的分区,但通常只包含一个文件系统,如一个文件系统涵盖 /file 系统,另一个包含 /home 文件系统。

一个文件系统分区允许不同文件系统的逻辑维护和管理。

UNIX 中一切都被认为是一个文件,包括物理设备,如 DVD-ROMs、USB 设备、软盘驱动器等等。

目录结构

UNIX 使用文件系统层次结构,就像一棵倒置的树,根目录(/) 是文件系统的底部,所有其他的目录都从那里蔓延。

UNIX 文件系统是文件和目录的集合,具有以下属性:

  • 它有一个根目录 (/),包含其他的文件和目录。
  • 使用名字唯一地标识每个文件或目录,这个名字可以是它所在的目录,或者一个独特的标识符,通常被称为一个 inode。
  • 按照惯例,根目录的 inode 编号为 2,lost+found 目录的 inode 编号为 3。Inode 编号 0 和 1 暂不使用。文件的 inode 编号可以通过 ls 命令的 -i 选项指定。
  • 它是自包含的。一个文件系统和其他文件系统之间没有依赖关系。

目录有特定的目的,通常存储相同类型的信息以实现更容易定位文件的目的。以下是主要的 UNIX 版本上存在的目录:

目录 描述
/ 这是根目录,只包含顶层文件结构所需的目录。
/bin 这是可执行文件所在的地方。他们提供给所有用户使用。
/dev 这些是设备驱动程序。
/etc 上级目录的命令,配置文件,磁盘配置文件,有效的用户列表,组,以太网,主机等各种发送重要信息的地方。
/lib 包含共享库文件,例如其他内核相关文件。
/boot 包含系统启动相关的文件。
/home 包含用户的主目录和其他账户。
/mnt 用来挂载其他临时文件系统,比如分别针对光盘和软盘的 CD-ROM 驱动器和软盘驱动器。
/proc 标记为一个包含所有进程的文件,这些进程使用进程编号或其他信息标记。这个文件是一个动态的系统。
/tmp 包含系统启动期间所有的临时文件。
/uer 用于各种各样的用途,可以被许多用户使用。包括行政命令、共享文件、库文件等等。
/var 通常包含变长文件,如日志和打印文件和任何其他类型的文件,该文件包含的数据的量可能是变化的。
/sbin 包含二进制(可执行的)文件,通常用于系统管理。比如 fdisk 和 ifconfig 功能。
/kernel 包含内核文件。

浏览文件系统

既然已经了解了文件系统的基本知识,现在就可以开始导航到所需要的文件。以下列出导航到文件系统可以使用的命令:

命令 描述
cat filename 显示文件名。
cd dirname 移动到确定的目录。
cp file1 file2 复制一个文件/目录到指定位置。
file filename 识别文件类型(二进制、文本等)。
find filename dir 发现一个文件/目录。
head filename 显示一个文件的开始。
less filename 从结束或开始位置浏览一个文件。
ls dirname 显示指定目录的内容。
mkdir dirname 创建指定目录。
more filename 从头到尾浏览一个文件。
mv file1 file2 移动一个文件/目录的位置或重命名一个文件/目录。
pwd 显示用户当前所在的目录。
rm filename 删除一个文件。
rmdir dirname 删除一个目录。
tail filename 显示一个文件的结束。
touch filename 创建一个空白文件或修改现有文件的属性。
whereis filename 显示一个文件的位置。
which filename 如果文件在你的路径内,显示它的位置,。

df命令

管理分区空间的第一种方式是 df (磁盘空闲)命令。命令 df -k(磁盘空闲)以千字节的形式显示磁盘空间的使用情况,如下所示:

    $df -k
    Filesystem  1K-blocks  Used   Available Use% Mounted on
    /dev/vzfs10485760   7836644 2649116  75% /
    /devices0 0   0   0% /devices
    $

一些目录,比如 /devices,以千字节形式显示使用为 0,且可用列以及能力都为 0%。这些特殊的(或虚拟的)文件系统,虽然他们驻留在磁盘上,但他们本身不占用磁盘空间。

在所有 UNIX 系统上 df -k 的输出通常都是相同的。它一般包括:

描述
Filesystem 物理文件系统名称。
kbytes 存储介质上的可用空间总字节。
used 被文件使用过的空间的总字节。
avail 可用空间的总字节。
capacity 被文件使用的空间和总额的比例。
Mounted on 文件系统正在安装的。

您可以使用 -h (可读的)选项来设置显示,使用易于理解的符号,合适的大小等输出格式。

du 命令

du (磁盘使用量) 命令使您能够按指定目录来显示一个特定的目录中磁盘空间的使用情况。

如果你想判断一个特定的目录正在使用多少空间,这个命令是很有用的。以下命令将显示被每个目录消耗的块的数量。根据系统的不同,一个块可能需要 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)
    $

UNIX 协定的 /mnt 目录,就是临时挂载的地方(例如 CD-ROM 驱动器,远程网络驱动器,软盘驱动器)。如果你需要挂载文件系统,您可以使用 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。可以参考安装手册页获得更具体的信息或类型,在命令行输入 -h 得到帮助信息。

安装之后,您可以使用 cd 命令通过挂载点来浏览可用的新文件系统。

卸载文件系统

通过识别挂载点或设备,从你的系统中卸载(删除)文件系统。使用 umount 命令实行。

例如,可以使用以下命令卸载光盘:

展开阅读全文