常用系统环境命令

image.png

如果想查看用户分配的自己目录的容量,可以除了用du -s
获取最后输出的目录总计大小。或者-d 参数控制查看深度。

  1. $ du -lhs
  2. 350G .

还推荐使用软件ncdu,计算更快,界面也更友好:

ncdu 1.14.1 ~ Use the arrow keys to navigate, press ? for help                  
--- /home/data/yzpeng ----------------------------------------------------------
  331.7 GiB [##########] /1.pipeline                                            
   11.2 GiB [          ] /2.data
    4.0 GiB [          ] /miniconda3
  481.5 MiB [          ] /archive
  447.4 MiB [          ] /3.biosoft

容量查看

查看磁盘容量

image.png
使用 df -h ,就可以以可读的方式显示容量情况了。
image.png

查看目录容量

image.png

  • 常用选项
    du -h #同--human-readable 以K,M,G为单位,提高信息的可读性。
    du -a #同--all 显示目录中所有文件的大小。
    du -s #同--summarize 仅显示总计,只列出最后加总的值。
    du -d #查看目录深度, -d 0 表示查看1级目录,以此往上加
    
    默认du 会递归罗列目录下的文件,通过 -d 参数,可以指定显示某一层内的文件。

    创建虚拟磁盘

dd命令

dd命令用于转换和复制文件,不过它的复制不同于cp。

linux中,“一切即文件”,因此硬件的设备驱动(如硬盘)和特殊设备文件(如/dev/zero/dev/random)都像普通文件一样,在各自的驱动程序中实现对应的功能。而dd,也可以实现读取或写入这些文件。

dd也可以用在备份硬件的引导扇区、获取一定数量的随机数据或者空数据等任务中。dd程序也可以在复制时处理数据,例如转换字节序、或在 ASCII 与 EBCDIC 编码间互换。

dd的命令行语句与其他的 Linux 程序不同,因为它的命令行选项格式为选项=值

# 输出到文件
$ dd of=test bs=10 count=1 # 或者 dd if=/dev/stdin of=test bs=10 count=1
# 输出到标准输出
$ dd if=/dev/stdin of=/dev/stdout bs=10 count=1
# 注
在打完了这个命令后,继续在终端打字,作为你的输入

上述命令从标准输入设备读入用户输入(缺省值,所以可省略)然后输出到 test 文件。
其中:

if #输入文件
of #输出文件
bs #block size,指定块大小
count #指定块数量
conv=ucase #可以实现输入转换,将英文字符转换为大写。

创建虚拟镜像

通过 dd ,我们从/dev/zero设备创建一个容量为 256M 的空文件:

$ dd if=/dev/zero of=virtual.img bs=1M count=256
$ du -h virtual.img

格式化磁盘

然后我们要将这个文件格式化(写入文件系统)。

一般使用 mkfs 命令来格式化磁盘。可以看到mkfs 后有不同的后缀,这些不同的后缀其实就是表示着不同的文件系统,可以用 mkfs 格式化成的文件系统。
image.png

开始格式化:

$ sudo mkfs.ext4 virtual.img

image.png

挂载及卸载磁盘

用户在 Linux/UNIX 的机器上打开一个文件以前,包含该文件的文件系统必须先进行 挂载的动作 ,此时用户要对该文件系统执行 mount 的指令以进行挂载。挂载好的文件、目录、设备以及特殊文件即可提供用户使用。

可以先查看当前主机上已经挂载的文件:

$ sudo mount

image.png
挂载虚拟磁盘镜像到 /mnt 目录:

$ mount -o loop -t ext4 virtual.img /mnt
# 也可以省略挂载类型,很多时候 mount 会自动识别

# 以只读方式挂载
$ mount -o loop --ro virtual.img /mnt
# 或者mount -o loop,ro virtual.img /mnt

umount 卸载磁盘:

# 命令格式 sudo umount 已挂载设备名或者挂载点,如:
$ sudo umount /mnt

mount 命令

一般格式:

mount [options] [source] [directory]

常用选项:

mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]

磁盘分区

# 查看硬盘分区表信息
$ sudo fdisk -l

我们可以进入之前创建的虚拟镜像,对其进行磁盘分区

# 进入磁盘分区模式
$ sudo fdisk virtual.img

image.png

通过n 我们可以为该镜像进行分区:
image.png

默认是2048,对应大小为512B。

写入分区完成后,需要再输入 w ,表示写入完成。

建立设备关联

$ sudo losetup /dev/loop0 virtual.img
# 如果提示设备忙你也可以使用其它的回环设备,"ls /dev/loop*"参看所有回环设备

# 解除设备关联
$ sudo losetup -d /dev/loop0

接着要建立虚拟映射,使用 kpartx 软件:

$ sudo apt-get install kpartx
$ sudo kpartx -av /dev/loop0

# 取消映射
$ sudo kpartx -dv /dev/loop0

接着还需要格式化为 ext4 类型:

$ sudo mkfs.ext4 -q /dev/mapper/loop0p1
$ sudo mkfs.ext4 -q /dev/mapper/loop0p5
$ sudo mkfs.ext4 -q /dev/mapper/loop0p6

接着创建空目录用于挂载:

$ mkdir -p /media/virtualdisk_{1..3}

开始挂载:

# 挂载磁盘分区
$ sudo mount /dev/mapper/loop0p1 /media/virtualdisk_1
$ sudo mount /dev/mapper/loop0p5 /media/virtualdisk_2
$ sudo mount /dev/mapper/loop0p6 /media/virtualdisk_3

# 卸载磁盘分区
$ sudo umount /dev/mapper/loop0p1
$ sudo umount /dev/mapper/loop0p5
$ sudo umount /dev/mapper/loop0p6

练习

image.png
image.png