常用系统环境命令
如果想查看用户分配的自己目录的容量,可以除了用du -s
:
获取最后输出的目录总计大小。或者-d 参数控制查看深度。
$ du -lhs
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
容量查看
查看磁盘容量
查看目录容量
- 常用选项
默认du 会递归罗列目录下的文件,通过du -h #同--human-readable 以K,M,G为单位,提高信息的可读性。 du -a #同--all 显示目录中所有文件的大小。 du -s #同--summarize 仅显示总计,只列出最后加总的值。 du -d #查看目录深度, -d 0 表示查看1级目录,以此往上加
-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 格式化成的文件系统。
开始格式化:
$ sudo mkfs.ext4 virtual.img
挂载及卸载磁盘
用户在 Linux/UNIX 的机器上打开一个文件以前,包含该文件的文件系统必须先进行 挂载的动作
,此时用户要对该文件系统执行 mount
的指令以进行挂载。挂载好的文件、目录、设备以及特殊文件即可提供用户使用。
可以先查看当前主机上已经挂载的文件:
$ sudo mount
挂载虚拟磁盘镜像到 /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
通过n 我们可以为该镜像进行分区:
默认是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