Unix / Linux - 文件系统基础

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

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

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

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


目录结构

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

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

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

  • 每个文件或目录都由其名称、所在目录和唯一标识符(通常称为 inode)唯一标识。

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

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

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

序号 目录 & 描述
1

/

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

2

/bin

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

3

/dev

这些是设备驱动

4

/etc

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

5

/lib

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

6

/boot

包含用于启动系统的文件

7

/home

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

8

/mnt

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

9

/proc

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

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 中,则显示文件的位置

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


df 命令

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

$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 选项 以更易于理解的符号显示大小的格式显示输出。


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

例如,要卸载光驱,使用以下命令 −

$ umount /dev/cdrom

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


用户和组配额

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

配额围绕两个限制运行,允许用户在空间量或磁盘块数量开始超过管理员定义的限制时采取一些措施 −

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

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

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

序号 命令 & 描述
1

quota

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

2

edquota

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

3

quotacheck

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

4

setquota

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

5

quotaon

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

6

quotaoff

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

7

repquota

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

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