Unix / Linux - 文件系统基础知识


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

您的硬盘驱动器可以有多个分区,这些分区通常只包含一个文件系统,例如包含/file 系统的一个文件系统或包含/home 文件系统的另一个文件系统。

每个分区一个文件系统,允许对不同文件系统进行逻辑维护和管理。

Unix 中的一切都被视为文件,包括 DVD-ROM、USB 设备和软盘驱动器等物理设备。

目录结构

Unix 使用分层文件系统结构,很像一棵倒置的树,根 (/) 位于文件系统的底部,所有其他目录从那里展开。

Unix 文件系统是具有以下属性的文件和目录的集合 -

  • 它有一个根目录 ( / ),其中包含其他文件和目录。

  • 每个文件或目录都由其名称、它所在的目录以及唯一标识符(通常称为 inode )来唯一标识

  • 按照约定,根目录的inode编号为2lost+found目录的inode编号为3。不使用索引节点号01 。通过为ls 命令指定-i 选项可以查看文件 inode 编号。

  • 它是独立的。一个文件系统与另一个文件系统之间不存在依赖关系。

这些目录具有特定的用途,并且通常保存相同类型的信息,以便轻松定位文件。以下是 Unix 主要版本上存在的目录 -

先生。 目录及说明
1

/

这是根目录,应仅包含文件结构顶层所需的目录

2

/垃圾桶

这是可执行文件所在的位置。这些文件可供所有用户使用

3

/dev

这些是设备驱动程序

4

/ETC

主管目录命令、配置文件、磁盘配置文件、有效用户列表、组、以太网、主机、向何处发送关键消息

5

/lib

包含共享库文件,有时还包含其他与内核相关的文件

6

/启动

包含用于启动系统的文件

7

/家

包含用户和其他帐户的主目录

8

/mnt

用于挂载其他临时文件系统,例如分别用于CD-ROM驱动器和软盘驱动器的cdromfloppy

9

/进程

包含通过进程号或系统动态的其他信息标记为文件的所有进程

10

/tmp

保存系统启动之间使用的临时文件

11

/usr

用于多种目的,可供许多用户使用。包括管理命令、共享文件、库文件等

12

/var

通常包含可变长度文件,例如日志和打印文件以及可能包含可变数据量的任何其他类型的文件

13

/sbin

包含二进制(可执行)文件,通常用于系统管理。例如,fdiskifconfig实用程序

14

/核心

包含内核文件

浏览文件系统

现在您已经了解了文件系统的基础知识,您可以开始导航到您需要的文件。以下命令用于导航系统 -

先生。 命令与说明
1

猫文件名

显示文件名

2

cd 目录名

将您移至指定的目录

3

cp 文件1 文件2

复制一个文件/目录到指定位置

4

文件 文件名

识别文件类型(二进制、文本等)

5

查找文件名目录

查找文件/目录

6

头文件名

显示文件的开头

7

更少的文件名

从末尾或开头浏览文件

8

ls 目录名

显示指定目录的内容

9

mkdir 目录名

创建指定目录

10

更多文件名

从头到尾浏览文件

11

mv 文件1 文件2

移动文件/目录的位置或重命名文件/目录

12

密码

显示用户当前所在目录

13

rm 文件名

删除一个文件

14

rmdir 目录名

删除一个目录

15

尾部文件名

显示文件结尾

16

触摸文件名

创建空白文件或修改现有文件或其属性

17 号

whereis 文件名

显示文件的位置

18

哪个文件名

如果文件位于您的 PATH 中,则显示该文件的位置

您可以使用联机帮助页检查此处提到的每个命令的完整语法。

df 命令

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

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

某些目录(例如/devices)在千字节数、已用数和可用数列中显示 0,并且容量显示 0%。这些是特殊(或虚拟)文件系统,尽管它们驻留在磁盘上的 / 下,但它们本身并不消耗磁盘空间。

df -k输出在所有 Unix 系统上通常都是相同的。它通常包括以下内容 -

先生。 栏目及说明
1

文件系统

物理文件系统名称

2

千字节

存储介质上可用空间的总千字节数

3

用过的

使用的空间总千字节数(按文件)

4

有用

可供使用的总千字节数

5

容量

文件使用的总空间的百分比

6

镶嵌在

文件系统安装在什么上

您可以使用-h(人类可读)选项以更易于理解的表示法显示大小的格式显示输出。

杜指挥部

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目录是临时安装目录(例如 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命令。

例如,要卸载 cdrom,请使用以下命令 -

$ umount /dev/cdrom

mount命令使您能够访问文件系统,但在大多数现代 Unix 系统上,自动挂载功能使此过程对用户不可见并且不需要干预。

用户和组配额

用户和组配额提供了一种机制,通过该机制可以将单个用户或特定组中的所有用户使用的空间量限制为管理员定义的值。

配额围绕两个限制运行,如果空间量或磁盘块数量开始超过管理员定义的限制,则允许用户采取一些操作 -

  • 软限制- 如果用户超出定义的限制,则有一个宽限期,允许用户释放一些空间。

  • 硬限制- 当达到硬限制时,无论宽限期如何,都不能再分配文件或块。

有许多命令可以管理配额 -

先生。 命令与说明
1

配额

显示组用户的磁盘使用情况和限制

2

埃德配额

这是一个配额编辑器。可以使用此命令编辑用户或组配额

3

配额检查

扫描文件系统的磁盘使用情况,创建、检查和修复配额文件

4

设定配额

这是一个命令行配额编辑器

5

配额

这向系统宣布应在一个或多个文件系统上启用磁盘配额

6

配额取消

这向系统宣布应禁用一个或多个文件系统的磁盘配额

7

重新配额

这将打印指定文件系统的磁盘使用情况和配额的摘要

您可以使用联机帮助页检查此处提到的每个命令的完整语法。