Unix / Linux - 文件系统基础
-
简述
文件系统是分区或磁盘上文件的逻辑集合。分区是信息的容器,如果需要,可以跨越整个硬盘驱动器。您的硬盘驱动器可以有多个分区,这些分区通常只包含一个文件系统,例如一个文件系统包含 /file system 或另一个包含 /home file system.每个分区一个文件系统允许对不同文件系统进行逻辑维护和管理。Unix 中的一切都被认为是一个文件,包括物理设备,如 DVD-ROM、USB 设备和软盘驱动器。 -
目录结构
Unix 使用分层文件系统结构,很像一棵倒置的树,根 (/) 位于文件系统的底部,所有其他目录从那里扩展。Unix 文件系统是具有以下属性的文件和目录的集合 --
它有一个根目录(/) 包含其他文件和目录。
-
每个文件或目录都由其名称、它所在的目录和唯一标识符(通常称为 inode.
-
按照惯例,根目录有一个 inode 数量 2 和 lost&plusfound 目录有一个 inode 数量 3. 索引节点数0 和 1不使用。文件 inode 编号可以通过指定-i option 至 ls command.
-
它是独立的。一个文件系统和另一个文件系统之间没有依赖关系。
这些目录具有特定用途,并且通常包含相同类型的信息,以便轻松定位文件。以下是 Unix 主要版本上存在的目录 -序号 目录和说明 1 /这是根目录,应仅包含文件结构顶层所需的目录2 /bin这是可执行文件所在的位置。这些文件可供所有用户使用3 /dev这些是设备驱动程序4 /etc主管目录命令、配置文件、磁盘配置文件、有效用户列表、组、以太网、主机、发送关键消息的位置5 /lib包含共享库文件,有时还包含其他内核相关文件6 /boot包含用于引导系统的文件7 /home包含用户和其他帐户的主目录8 /mnt用于挂载其他临时文件系统,如 cdrom 和 floppy 为了 CD-ROM 开车和 floppy diskette drive, 分别9 /proc包含所有标记为文件的进程 process number 或其他对系统动态的信息10 /tmp保存系统启动之间使用的临时文件11 /usr用于各种用途,可供许多用户使用。包括管理命令、共享文件、库文件等12 /var通常包含可变长度文件,例如日志和打印文件以及可能包含可变数据量的任何其他类型的文件13 /sbin包含二进制(可执行)文件,通常用于系统管理。例如,fdisk 和 ifconfig 公用事业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 检查此处提到的每个命令的完整语法。 -