Unix / Linux-文件系统基础

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

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

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

Unix中的所有内容都被认为是文件,包括物理设备,例如DVD-ROM,USB设备和软盘驱动器。

目录结构

Unix使用分层的文件系统结构,就像倒置的树一样,在文件系统的基础上带有根(/),所有其他目录都从那里展开。

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

  • 它具有包含其他文件和目录的根目录(/)。
  • 每个文件或目录均由其名称,其所在目录以及唯一的标识符(通常称为inode)唯一标识。
  • 按照惯例,根目录的索引节点号为2,而lost + found目录的索引节点号为3。不使用索引号01。文件inode编号可以通过指定可见-i选项ls命令
  • 它是独立的。一个文件系统与另一个文件系统之间没有依赖关系。

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

序号目录和说明
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
包含内核文件

浏览文件系统

既然您了解了文件系统的基础知识,就可以开始导航到所需的文件了。以下命令用于导航系统-

序号命令与说明
1个cat 文件名显示文件名
2cd 目录名将您移至已识别目录
3cp file1 file2将一个文件/目录复制到指定位置
4file 文件名标识文件类型(二进制,文本等)
5find 文件名目录查找文件/目录
6head 文件名显示文件的开头
7less 文件名从头到尾浏览文件
8ls 目录名显示指定目录的内容
9mkdir 目录名创建指定的目录
10more 文件名从头到尾浏览文件
11mv file1 file2移动文件/目录的位置或重命名文件/目录
12pwd显示用户所在的当前目录
13rm 文件名删除文件
14rmdir 目录名删除目录
15tail 文件名显示文件结尾
16touch 文件名创建一个空白文件或修改现有文件或其属性
17whereis 文件名显示文件的位置
18which 文件名显示文件的位置(如果它在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%。这些是特殊的(或虚拟)文件系统,尽管它们位于/下的磁盘上,但它们本身并不占用磁盘空间。

在所有Unix系统上,df -k输出通常是相同的。这通常包括-

序号列和说明
1个Filesystem
物理文件系统名称
2kbytes
存储介质上可用的总千字节空间
3used
已使用的总千字节空间(按文件)
4avail
可用总千字节
5capacity
文件使用的总空间百分比
6Mounted on
文件系统挂载在什么上

您可以使用-h(人类可读)选项以一种格式显示输出,该格式以易于理解的符号显示大小。

du 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)
$

根据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个quota
显示磁盘使用情况和组用户的限制
2edquota
这是一个配额编辑器。可以使用此命令编辑用户或组配额
3quotacheck
扫描文件系统中的磁盘使用情况,创建,检查和修复配额文件
4setquota
这是命令行配额编辑器
5quotaon
这向系统宣布应该在一个或多个文件系统上启用磁盘配额
6quotaoff
这向系统宣布应该为一个或多个文件系统禁用磁盘配额
7repquota
这将显示指定文件系统的光盘使用情况和配额的摘要。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁