Unix / Linux – 文件系统基础
Unix / Linux – 文件系统基础
文件系统是分区或磁盘上文件的逻辑集合。分区是信息的容器,如果需要,可以跨越整个硬盘驱动器。
您的硬盘驱动器可以有各种分区,这些分区通常只包含一个文件系统,例如一个文件系统包含/file system或另一个包含/home 文件系统。
每个分区一个文件系统允许对不同文件系统进行逻辑维护和管理。
Unix 中的一切都被认为是一个文件,包括物理设备,如 DVD-ROM、USB 设备和软盘驱动器。
目录结构
Unix 使用分层文件系统结构,很像一棵倒置的树,根 (/) 位于文件系统的底部,所有其他目录从那里扩展。
Unix 文件系统是具有以下属性的文件和目录的集合 –
-
它有一个包含其他文件和目录的根目录 ( / )。
-
每个文件或目录都由其名称、它所在的目录和唯一标识符(通常称为inode )唯一标识。
-
按照惯例,根目录的inode编号为2,而lost&plusfound目录的inode编号为3。不使用索引节点编号0和1。文件inode编号可以通过指定可见-i选项来ls命令。
-
它是独立的。一个文件系统和另一个文件系统之间没有依赖关系。
这些目录具有特定用途,并且通常包含相同类型的信息,以便轻松定位文件。以下是 Unix 主要版本上存在的目录 –
Sr.No. | 目录和说明 |
---|---|
1 |
/ 这是根目录,应仅包含文件结构顶层所需的目录 |
2 |
/bin 这是可执行文件所在的位置。这些文件可供所有用户使用 |
3 |
/dev 这些是设备驱动程序 |
4 |
/etc 主管目录命令、配置文件、磁盘配置文件、有效用户列表、组、以太网、主机、发送关键消息的位置 |
5 |
/lib 包含共享库文件,有时还包含其他内核相关文件 |
6 |
/boot 包含用于引导系统的文件 |
7 |
/home 包含用户和其他帐户的主目录 |
8 |
/mnt 用于安装其他临时文件系统,如CD-ROM和软驱的CD-ROM驱动器和软盘驱动器分别 |
9 |
/proc 包含通过进程号或其他对系统动态的信息标记为文件的所有进程 |
10 |
/tmp 保存系统启动之间使用的临时文件 |
11 |
/usr 用于各种用途,可供许多用户使用。包括管理命令、共享文件、库文件等 |
12 |
/var 通常包含可变长度文件,例如日志和打印文件以及可能包含可变数据量的任何其他类型的文件 |
13 |
/sbin 包含二进制(可执行)文件,通常用于系统管理。例如,fdisk和ifconfig实用程序 |
14 |
/kernel 包含内核文件 |
浏览文件系统
现在您了解了文件系统的基础知识,您可以开始导航到您需要的文件。以下命令用于导航系统 –
Sr.No. | 命令和描述 |
---|---|
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(磁盘免费)显示磁盘空间以千字节的使用,如下面的-
$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系统一样。这是它通常包括的内容 –
Sr.No. | 列和描述 |
---|---|
1 |
Filesystem 物理文件系统名称 |
2 |
kbytes 存储介质上的总可用空间千字节 |
3 |
used 使用的总空间千字节(按文件) |
4 |
avail 可用的总千字节数 |
5 |
capacity 文件使用的总空间百分比 |
6 |
Mounted on 文件系统挂载在什么位置 |
您可以使用-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系统中,自动安装功能,使这个过程对用户不可见的,不需要干预。
用户和组配额
用户和组配额提供了一种机制,通过该机制可以将单个用户或特定组内所有用户使用的空间量限制为管理员定义的值。
配额在两个限制附近运行,如果空间量或磁盘块数开始超过管理员定义的限制,则允许用户采取一些措施 –
-
软限制– 如果用户超过定义的限制,则有一个宽限期,允许用户释放一些空间。
-
硬限制– 当达到硬限制时,无论宽限期如何,都不能分配更多文件或块。
有许多命令可以管理配额 –
Sr.No. | 命令和描述 |
---|---|
1 |
quota 显示组用户的磁盘使用情况和限制 |
2 |
edquota 这是一个配额编辑器。可以使用此命令编辑用户或组配额 |
3 |
quotacheck 扫描文件系统的磁盘使用情况,创建、检查和修复配额文件 |
4 |
setquota 这是一个命令行配额编辑器 |
5 |
quotaon 这向系统宣布应该在一个或多个文件系统上启用磁盘配额 |
6 |
quotaoff 这向系统宣布应该为一个或多个文件系统禁用磁盘配额 |
7 |
repquota 这将打印指定文件系统的磁盘使用情况和配额的摘要 |
您可以使用手册页帮助检查此处提到的每个命令的完整语法。