实验楼linux 寻找文件,linux学习笔记(实验楼) 实验7 文件系统操作与系统管理...

一、实验介绍

1.1 实验内容

本节实验的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解,但掌握这些也将对你在学习 Linux 和实验楼后续其他课程的过程中有极大帮助。

因为本课程的定位为入门基础,尽快上手,故没有打算涉及太多理论内容,前面省略了关于 Linux 文件系统的一些基本知识,也因为我们是在线实验环境,所以也避开了很少一部分但又十分重要的关于硬件的内容,我们只能期待用户能够抱着提高自学能力的心态自己去补充相关的知识。

1.2 实验知识点

df,du,mount命令的使用

磁盘相关知识学习

二、基本操作

2.1 查看磁盘和目录的容量

使用 df 命令查看磁盘的容量

4443178a067ce9909a03179843284601.png

在实验楼的环境中你将看到如下的输出内容:

ed45abe326be1198067c4859c6e31bbc.png

但在实际的物理主机上会更像这样:

9f21b2f52d6f57c6fb3af67c81831498.png

物理主机上的 /dev/sda2 是对应着主机硬盘的分区,后面的数字表示分区号,数字前面的字母 a 表示第几块硬盘(也可能是可移动磁盘),你如果主机上有多块硬盘则可能还会出现 /dev/sdb,/dev/sdc 这些磁盘设备都会在 /dev 目录下以文件的存在形式。

接着你还会看到"1k-块"这个陌生的东西,它表示以磁盘块大小的方式显示容量,后面为相应的以块大小表示的已用和可用容量,在你了解 Linux 的文件系统之前这个就先不管吧,我们以一种你应该看得懂的方式展示:

ce1da5638b94078f35b4f74905aefeac.png

76bd540aa8c84fe787b33aac680bda39.png

现在你就可以使用命令查看你主机磁盘的使用情况了。至于挂载点如果你还记得前面第 4 节介绍 Linux 目录树结构的内容,那么你就应该能很好的理解挂载的概念,这里就不再赘述。

使用 du 命令查看目录的容量

这个命令前面其实已经用了很多次了:

781a22532f9e5aee953aecb3d8d0b0e5.png

-d参数指定查看目录的深度

5a0498bb71efc69322e26b49c97dd2f6.png

常用参数

de6d6af57195d6ffa4334becffb4fe97.png

df66cc228162151d6eda08510ab0ddad.png

du(estimate file space usage)命令与df(report file system disk space usage)命令只有一字之差,希望大家注意不要弄混淆了,你可以像我这样从man手册中获取命令的完整描述,记全称就不会搞混了。

三、简单的磁盘管理

下面涉及的命令具有一定的危险性,操作不当可能会丢失你的个人数据,初学者建议在虚拟环境中进行操作

通常情况下,这一小节应该直接讲如何挂载卸载磁盘,如何格式化磁盘,如何分区,但如你所见,由于实验环境的限制,环境中没有额外的磁盘可以挂载,也没有空闲空间测试分区命令,所以首先我们会先创建一个虚拟磁盘来进行后续的练习操作。

3.1创建虚拟磁盘

dd 命令简介(部分说明来自dd (Unix) wiki)

dd命令用于转换和复制文件,不过它的复制不同于cp。之前提到过关于 Linux 的很重要的一点,一切即文件,在 Linux 上,硬件的设备驱动(如硬盘)和特殊设备文件(如/dev/zero和/dev/random)都像普通文件一样,只是在各自的驱动程序中实现了对应的功能,dd 也可以读取文件或写入这些文件。这样,dd也可以用在备份硬件的引导扇区、获取一定数量的随机数据或者空数据等任务中。dd程序也可以在复制时处理数据,例如转换字节序、或在 ASCII 与 EBCDIC 编码间互换。

dd的命令行语句与其他的 Linux 程序不同,因为它的命令行选项格式为选项=值,而不是更标准的--选项 值或-选项=值。dd默认从标准输入中读取,并写入到标准输出中,但可以用选项if(input file,输入文件)和of(output file,输出文件)改变。

我们先来试试用dd命令从标准输入读入用户的输入到标准输出或者一个文件中:

9b2806821a6ff6336c8127b6701d6c7c.png

上述命令从标准输入设备读入用户输入(缺省值,所以可省略)然后输出到 test 文件,bs(block size)用于指定块大小(缺省单位为 Byte,也可为其指定如'K','M','G'等单位),count用于指定块数量。如上图所示,我指定只读取总共 10 个字节的数据,当我输入了“hello shiyanlou”之后加上空格回车总共 16 个字节(一个英文字符占一个字节)内容,显然超过了设定大小。使用du和cat命令看到的写入完成文件实际内容确实只有 10 个字节(那个黑底百分号表示这里没有换行符),而其他的多余输入将被截取并保留在标准输入。

前面说到dd在拷贝的同时还可以实现数据转换,那下面就举一个简单的例子:将输出的英文字符转换为大写再写入文件:

8ab79f56245343741648fb43270897aa.png

8f02bdecb702f5c7f6a5ab4bda4250c9.png

你可以在man文档中查看其他所有转换参数。

使用 dd 命令创建虚拟镜像文件

通过上面一小节,你应该掌握了dd的基本使用,下面就来使用dd命令来完成创建虚拟磁盘的第一步。

从/dev/zero设备创建一个容量为 256M 的空文件:

6dc40901eb2f774657c8981d096a8ffb.png

1f50d6308596846c8f769c1f080dbe5e.png

然后我们要将这个文件格式化(写入文件系统),这里我们要学到一个(准确的说是一组)新的命令来完成这个需求。

使用 mkfs 命令格式化磁盘(我们这里是自己创建的虚拟磁盘镜像)

你可以在命令行输入 sudo mkfs 然后按下Tab键,你可以看到很多个以 mkfs 为前缀的命令,这些不同的后缀其实就是表示着不同的文件系统,可以用 mkfs 格式化成的文件系统。

我们可以简单的使用下面的命令来将我们的虚拟磁盘镜像格式化为ext4文件系统:

1a908962f77700841214deaaeec4a921.png

6fd5b32d5162e49b54cbb5b6bbd92d58.png

可以看到实际 mkfs.ext4 是使用 mke2fs 来完成格式化工作的。mke2fs 的参数很多,不过我们也不会经常格式化磁盘来玩,所以就掌握这基本用法吧,等你有特殊需求时,再查看 man 文档解决。

如果你想知道 Linux 支持哪些文件系统你可以输入ls -l /lib/modules/$(uname -r)/kernel/fs(我们的环境中无法查看)查看。

使用 mount 命令挂载磁盘到目录树

用户在 Linux/UNIX 的机器上打开一个文件以前,包含该文件的文件系统必须先进行挂载的动作,此时用户要对该文件系统执行 mount 的指令以进行挂载。该指令通常是使用在 USB 或其他可移除存储设备上,而根目录则需要始终保持挂载的状态。又因为 Linux/UNIX 文件系统可以对应一个文件而不一定要是硬件设备,所以可以挂载一个包含文件系统的文件到目录树。

Linux/UNIX 命令行的 mount 指令是告诉操作系统,对应的文件系统已经准备好,可以使用了,而该文件系统会对应到一个特定的点(称为挂载点)。挂载好的文件、目录、设备以及特殊文件即可提供用户使用。

我们先来使用mount来查看下主机已经挂载的文件系统:

d3f545427eb7587ec3bbd9e5938c5767.png

fcfd40ac087686139979109dfbd26eda.png

输出的结果中每一行表示一个设备或虚拟设备,每一行最前面是设备名,然后是 on 后面是挂载点,type 后面表示文件系统类型,再后面是挂载选项(比如可以在挂载时设定以只读方式挂载等等)。

那么我们如何挂载真正的磁盘到目录树呢,mount命令的一般格式如下:

7a99cb7e6708393f47a2cf2a5721be00.png

一些常用操作:

a8eb243c150ca5105e8f4bfbe581c0ad.png

注意:由于实验楼的环境限制,mount 命令挂载及 umount 卸载都无法进行操作,可以简单了解这些步骤。

现在直接来挂载我们创建的虚拟磁盘镜像到/mnt目录:

dd7ac4225f7eadcc553eda8140634db8.png

使用 umount 命令卸载已挂载磁盘

注意:由于实验楼的环境限制,mount 命令挂载及 umount 卸载都无法进行操作,可以简单了解这些步骤。

d5008631b6b6f9988e2768da7cbb2157.png

不过遗憾的是,由于我们环境的问题(环境中使用的 Linux 内核在编译时没有添加对 Loop device的支持),所以你将无法挂载成功:

另外关于 loop 设备,你可能会有诸多疑问,那么请看下面来自维基百科/dev/loop的说明:

在类 UNIX 系统中,/dev/loop(或称vnd (vnode disk)、lofi(循环文件接口))是一种伪设备,这种设备使得文件可以如同块设备一般被访问。

在使用之前,循环设备必须与现存文件系统上的文件相关联。这种关联将提供给用户一个应用程序接口,接口将允许文件视为块特殊文件(参见设备文件系统)使用。因此,如果文件中包含一个完整的文件系统,那么这个文件就能如同磁盘设备一般被挂载。

这种设备文件经常被用于光盘或是磁盘镜像。通过循环挂载来挂载包含文件系统的文件,便使处在这个文件系统中的文件得以被访问。这些文件将出现在挂载点目录。如果挂载目录中本身有文件,这些文件在挂载后将被禁止使用。

使用 fdisk 为磁盘分区

注意:由于实验楼的环境限制,fdisk 命令无法进行操作,可以简单了解这些步骤。

同样因为环境中没有物理磁盘,也无法创建虚拟磁盘的原因我们就无法实验练习使用该命令了,下面我将以我的物理主机为例讲解如何为磁盘分区。

5089c71c342413e3051c1387427fc2f1.png

6bae638ef053207c0a77063a70b72b11.png

输出结果中开头显示了我主机上的磁盘的一些信息,包括容量扇区数,扇区大小,I/O 大小等信息。

我们重点看一下中间的分区信息,/dev/sda1,/dev/sda2 为主分区分别安装了 Windows 和 Linux 操作系统,/dev/sda3 为交换分区(可以理解为虚拟内存),/dev/sda4 为扩展分区其中包含 /dev/sda5,/dev/sda6,/dev/sda7,/dev/sda8 四个逻辑分区,因为主机上有几个分区之间有空隙,没有对齐边界扇区,所以分区之间不是完全连续的。

b858dc40da34833312a71690af668141.png

2c4beec52a3124361fe9ff315924cbca.png

42523b35434655ad9a7e5214c1ccae31.png

在进行操作前我们首先应先规划好我们的分区方案,这里我将在使用 128M(可用 127M 左右)的虚拟磁盘镜像创建一个 30M 的主分区剩余部分为扩展分区包含 2 个大约 45M 的逻辑分区。

操作完成后输入p查看结果如下:

7d3a99904c3da1ef3d37ee52f3980bd1.png

最后不要忘记输入w写入分区表。

使用 losetup 命令建立镜像与回环设备的关联

注意:由于实验楼的环境限制,losetup 命令无法进行操作,可以简单了解这些步骤。

同样因为环境原因中没有物理磁盘,也没有 loop device 的原因我们就无法实验练习使用该命令了,下面我将以我的物理主机为例讲解。

10a0a63db49c57f1311017fd874ddbd5.png

然后再使用mkfs格式化各分区(前面我们是格式化整个虚拟磁盘镜像文件或磁盘),不过格式化之前,我们还要为各分区建立虚拟设备的映射,用到kpartx工具,需要先安装:

41b56b7502b5ff9eddbbf738c7bbaedf.png

9fe67e27e5c924925af714a3cb09d051.png

接着再是格式化,我们将其全部格式化为 ext4:

aa1adf3fa52e4b2329535e83ed347df8.png

格式化完成后在/media目录下新建四个空目录用于挂载虚拟磁盘:

7d84bf11b87fc33d0b556938e11570d5.png

1b60e53db15d5ccb4df8c92a50f31901.png

然后:

a5640de3087c89b0e1138688b6448703.png

ceb3079cef8f695b915515896dfd2b27.png

806f341ec7082c4f23a4b06bbf26949c.png

解析:

首先要了解三个常用命令:

du : 计算出单个文件或者文件夹的磁盘空间占用.

sort : 对文件行或者标准输出行记录排序后输出.

head : 输出文件内容的前面部分.

du:

-a:显示目录占用空间的大小,还要显示其下目录占用空间的大小

sort:

-n  : 按照字符串表示的数字值来排序

-r :按照反序排列

head :

-n : 取出前多少行

以上的问题可以使用命令: du -a | sort -n -r | head -n 10

答案来自:https://blog.csdn.net/dexter159/article/details/72598470/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于微信小程序的家政服务预约系统采用PHP语言和微信小程序技术,数据库采用Mysql,运行软件为微信开发者工具。本系统实现了管理员和客户、员工三个角色的功能。管理员的功能为客户管理、员工管理、家政服务管理、服务预约管理、员工风采管理、客户需求管理、接单管理等。客户的功能为查看家政服务进行预约和发布自己的需求以及管理预约信息和接单信息等。员工可以查看预约信息和进行接单。本系统实现了网上预约家政服务的流程化管理,可以帮助工作人员的管理工作和帮助客户查询家政服务的相关信息,改变了客户找家政服务的方式,提高了预约家政服务的效率。 本系统是针对网上预约家政服务开发的工作管理系统,包括到所有的工作内容。可以使网上预约家政服务的工作合理化和流程化。本系统包括手机端设计和电脑端设计,有界面和数据库。本系统的使用角色分为管理员和客户、员工三个身份。管理员可以管理系统里的所有信息。员工可以发布服务信息和查询客户的需求进行接单。客户可以发布需求和预约家政服务以及管理预约信息、接单信息。 本功能可以实现家政服务信息的查询和删除,管理员添加家政服务信息功能填写正确的信息就可以实现家政服务信息的添加,点击家政服务信息管理功能可以看到基于微信小程序的家政服务预约系统里所有家政服务的信息,在添加家政服务信息的界面里需要填写标题信息,当信息填写不正确就会造成家政服务信息添加失败。员工风采信息可以使客户更好的了解员工。员工风采信息管理的流程为,管理员点击员工风采信息管理功能,查看员工风采信息,点击员工风采信息添加功能,输入员工风采信息然后点击提交按钮就可以完成员工风采信息的添加。客户需求信息关系着客户的家政服务预约,管理员可以查询和修改客户需求信息,还可以查看客户需求的添加时间。接单信息属于本系统里的核心数据,管理员可以对接单的信息进行查询。本功能设计的目的可以使家政服务进行及时的安排。管理员可以查询员工信息,可以进行修改删除。 客户可以查看自己的预约和修改自己的资料并发布需求以及管理接单信息等。 在首页里可以看到管理员添加和管理的信息,客户可以在首页里进行家政服务的预约和公司介绍信息的了解。 员工可以查询客户需求进行接单以及管理家政服务信息和留言信息、收藏信息等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值