【Linux】与磁盘相关的常用命令(自用)

本文将详细介绍以下几个常用的命令:df、du、fdisk、mkfs、lsblk、mount、umount和parted。

一、概述

常用的磁盘相关命令:

  1. df:用于显示文件系统的磁盘空间使用情况。

    • df:显示所有挂载的文件系统的磁盘使用情况。
    • df -h:以人类可读的格式显示磁盘使用情况,以便更易于理解。
    • df -i:显示inode的使用情况,而不是磁盘空间。
  2. du:用于估算文件或目录的磁盘空间使用量。

    • du:显示当前目录下每个子目录和文件的磁盘空间使用量。
    • du -h:以人类可读的格式显示磁盘空间使用量。
    • du -s:仅显示总计磁盘空间使用量,而不显示每个子目录和文件的详细信息。
  3. fdisk:用于磁盘分区管理。

    • fdisk -l:列出所有磁盘的分区表信息。
    • fdisk /dev/sdX:打开指定磁盘(例如:/dev/sda)的分区表进行编辑。
  4. mkfs:用于创建文件系统。

    • mkfs.ext4 /dev/sdX#:创建ext4文件系统在指定磁盘分区(例如:/dev/sda1)上。
    • mkfs.ntfs /dev/sdX#:创建NTFS文件系统在指定磁盘分区上。
  5. mount:用于挂载文件系统到指定的挂载点。

    • mount /dev/sdX# /mnt:将指定的磁盘分区(例如:/dev/sda1)挂载到/mnt目录。
  6. umount:用于卸载挂载的文件系统。

    • umount /mnt:卸载/mnt目录下的文件系统。
  7. lsblk:用于列出块设备的信息,包括磁盘和分区。

    • lsblk:显示所有块设备的信息,包括磁盘和分区。
  8. parted:用于磁盘分区管理和操作。

    • parted /dev/sdX:打开指定磁盘(例如:/dev/sda)进行分区操作。

二、详细说明

df 命令

df(disk free)命令用来显示磁盘的使用情况,包括磁盘的总容量、已用空间、可用空间和使用百分比。它可以帮助我们监控磁盘的空间是否充足,以及哪些分区或文件系统占用了较多的空间。

df命令的基本语法是:

df [选项] [文件名]

其中,选项可以用来指定输出的格式或单位,例如:

  • -h--human-readable:以人类可读的方式显示磁盘容量,如K、M、G等。
  • -T--print-type:显示每个文件系统的类型,如ext4、xfs等。
  • -a--all:显示所有文件系统,包括特殊的文件系统,如proc、sysfs等。
  • -i--inodes:显示每个文件系统的inode信息,即文件数量和使用情况。

如果没有指定文件名,则df命令会显示所有已挂载的文件系统的信息。如果指定了文件名,则df命令会显示该文件所在的文件系统的信息。

例如,执行以下命令:

df -hT

输出可能类似于:

Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4       20G  8.5G   11G  45% /
/dev/sda2      ext4       50G   12G   35G  25% /home
/dev/sdb1      xfs       100G   50G   50G  50% /data
tmpfs          tmpfs     2.0G     0  2.0G   0% /dev/shm

这表示系统有四个文件系统,分别是/dev/sda1(根分区)、/dev/sda2(/home分区)、/dev/sdb1(/data分区)和tmpfs(内存文件系统)。它们的类型、大小、已用空间、可用空间和使用百分比都显示在相应的列中。

du 命令

du(disk usage)命令用来显示目录或文件占用的磁盘空间。它可以帮助我们找出哪些目录或文件占用了较多的空间,以便进行清理或优化。

du命令的基本语法是:

du [选项] [目录名或文件名]

其中,选项可以用来指定输出的格式或单位,例如:

  • -h--human-readable:以人类可读的方式显示磁盘容量,如K、M、G等。
  • -s--summarize:只显示总计,而不显示每个子目录或文件的大小。
  • -a--all:显示所有文件和目录的大小,而不只是目录。
  • -c--total:在最后一行显示所有参数的总计。

如果没有指定目录名或文件名,则du命令会显示当前目录及其子目录的大小。如果指定了目录名或文件名,则du命令会显示该目录或文件及其子目录或子文件的大小。

例如,执行以下命令:

du -sh /home/*

输出可能类似于:

1.2G    /home/alex
2.3G    /home/bob
3.4G    /home/cathy

这表示/home目录下有三个用户目录,分别是/home/alex、/home/bob和/home/cathy。它们的大小分别是1.2G、2.3G和3.4G。

fdisk 命令

fdisk(fixed disk)命令用来对磁盘进行分区,即将磁盘划分为若干个逻辑区域,以便在不同的区域安装不同的操作系统或存储不同的数据。它可以帮助我们管理磁盘的结构和布局,以及修改分区的类型、大小和标志。

fdisk命令的基本语法是:

fdisk [选项] [设备名]

其中,选项可以用来指定操作模式或输出格式,例如:

  • -l--list:列出所有磁盘或指定磁盘的分区信息,而不进入交互模式。
  • -s--get-size:显示指定分区的大小,以扇区为单位。
  • -u--units:指定输出的单位,可以是cylinders(柱面)、sectors(扇区)或bytes(字节)。

如果没有指定选项,则fdisk命令会进入交互模式,让用户输入各种命令来操作分区。常用的命令有:

  • p:显示当前磁盘的分区信息。
  • n:创建一个新的分区。
  • d:删除一个已有的分区。
  • t:修改一个分区的类型。
  • a:设置一个分区为可引导的。
  • w:保存修改并退出。
  • q:放弃修改并退出。

如果指定了设备名,则fdisk命令会对该设备进行操作。设备名通常是/dev/sdX的形式,其中X是一个字母,表示磁盘的编号。例如,/dev/sda表示第一块磁盘,/dev/sdb表示第二块磁盘,依此类推。

例如,执行以下命令:

fdisk -l /dev/sda

输出可能类似于:

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders, total 156301488 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e6b8a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    40962047    20480000   83  Linux
/dev/sda2        40962048   156301311    57669632   8e  Linux LVM

这表示/dev/sda这块磁盘有80GB的容量,共有两个分区。第一个分区是/dev/sda1,大小为20GB,类型为Linux(83),并且是可引导的(*)。第二个分区是/dev/sda2,大小为57.7GB,类型为Linux LVM(8e),用于逻辑卷管理。

mkfs 命令

mkfs(make file system)命令用来在一个分区上创建一个文件系统,即将分区格式化为一种特定的数据结构,以便存储和管理文件。它可以帮助我们为不同的分区选择合适的文件系统类型,以提高磁盘的性能和稳定性。

mkfs命令的基本语法是:

mkfs [选项] [设备名]

其中,选项可以用来指定文件系统的类型或参数,例如:

  • -t--type:指定文件系统的类型,如ext4、xfs、vfat等。
  • -V--verbose:显示详细的信息,包括文件系统的参数和进度。
  • -L--label:指定文件系统的标签,即给分区起一个别名,方便识别和挂载。

如果没有指定选项,则mkfs命令会根据设备名的后缀来判断文件系统的类型。例如,mkfs.ext4表示创建ext4类型的文件系统,mkfs.vfat表示创建vfat类型的文件系统,依此类推。

如果指定了设备名,则mkfs命令会对该设备进行格式化。设备名通常是/dev/sdXN的形式,其中X是一个字母,表示磁盘的编号,N是一个数字,表示分区的编号。例如,/dev/sda1表示第一块磁盘的第一个分区,/dev/sdb2表示第二块磁盘的第二个分区,依此类推。

例如,执行以下命令:

mkfs -t ext4 -L data /dev/sdb1

输出可能类似于:

mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=data
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6553600 inodes, 26214400 blocks
1310720 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
800 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

这表示将/dev/sdb1这个分区格式化为ext4类型的文件系统,并且给它起了一个标签为data。输出中还显示了文件系统的各种参数和进度。

好的,我会尝试写一篇文章,详细介绍:mount、umount、parted命令。请看:

mount 命令

mount命令用来将一个文件系统挂载到一个指定的目录上,使得该文件系统可以被访问。mount命令的基本语法是:

mount [-t 文件系统类型] [-o 选项] 设备文件名 挂载点

其中,-t选项可以指定文件系统的类型,如ext4、ntfs、vfat等;-o选项可以指定一些挂载选项,如ro(只读)、rw(读写)、noexec(禁止执行)等;设备文件名是要挂载的磁盘分区或者光盘等的设备文件,如/dev/sda1、/dev/cdrom等;挂载点是一个已存在的空目录,用来作为文件系统的访问入口。

例如,如果要将/dev/sda1分区挂载到/mnt目录上,并且指定文件系统类型为ext4,可以使用以下命令:

mount -t ext4 /dev/sda1 /mnt

如果要查看当前系统中已经挂载的文件系统,可以使用以下命令:

mount

或者

cat /proc/mounts

umount 命令

umount命令用来卸载一个已经挂载的文件系统,使得该文件系统不再被访问。umount命令的基本语法是:

umount [-f] [-l] 设备文件名或者挂载点

其中,-f选项可以强制卸载一个文件系统,即使该文件系统正在被使用;-l选项可以延迟卸载一个文件系统,即使该文件系统正在被使用,直到该文件系统不再被使用为止;设备文件名或者挂载点是要卸载的文件系统对应的设备文件或者挂载点。

例如,如果要卸载/mnt目录上的文件系统,可以使用以下命令:

umount /mnt

或者

umount /dev/sda1

parted 命令

parted命令用来对磁盘进行分区和格式化操作。parted命令的基本语法是:

parted [选项] [设备] [命令]

其中,选项可以是-s(脚本模式)、-a(对齐方式)等;设备是要操作的磁盘设备,如/dev/sda、/dev/sdb等;命令是要执行的分区或格式化操作,如mklabel(创建分区表)、mkpart(创建分区)、print(显示分区信息)、rm(删除分区)、mkfs(格式化分区)等。

例如,如果要对/dev/sda磁盘进行分区操作,并且创建两个主分区和一个扩展分区,可以使用以下命令:

parted -s /dev/sda mklabel msdos # 创建msdos分区表
parted -s /dev/sda mkpart primary ext4 1M 100M # 创建第一个主分区,大小为100M,格式为ext4
parted -s /dev/sda mkpart primary ext4 100M 200M # 创建第二个主分区,大小为100M,格式为ext4
parted -s /dev/sda mkpart extended 200M 100% # 创建扩展分区,大小为剩余空间

如果要查看/dev/sda磁盘的分区信息,可以使用以下命令:

parted -s /dev/sda print

lsblk 命令

lsblk是一个用于列出所有可用块设备的信息,以及他们之间的依赖关系的命令。块设备是指代表磁盘、分区、光盘等设备的特殊文件。lsblk命令通过查询/sys虚拟文件系统和udev数据库来获取信息。如果udev数据库不可用或者lsblk没有编译udev支持,那么它会尝试从块设备中读取标签、UUID和文件系统类型。lsblk命令的基本语法是:

lsblk [选项] [设备...]

其中,选项可以指定输出格式、过滤条件、显示列等;设备可以指定要显示的块设备,如/dev/sda、/dev/sdb等。如果不指定设备,则默认显示所有块设备(除了RAM盘)。

lsblk命令的输出是一个树状结构,显示了每个块设备的名称、大小、类型、安装点等信息。例如,以下命令显示了我的系统中的所有块设备:

lsblk

输出结果如下:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0   732M  0 part /boot
└─sda3   8:3    0 930.3G  0 part 
  ├─vgubuntu-root
       253:0    0   200G  0 lvm  /
  └─vgubuntu-swap_1
       253:1    0     4G  0 lvm  
sr0     11:0    1   1.4G  0 rom  

从上面的输出可以看出,我的系统有一个磁盘(sda),一个光驱(sr0),以及一个逻辑卷管理器(lvm)。磁盘sda有三个分区(sda1, sda2, sda3),其中sda3被划分为两个逻辑卷(vgubuntu-root, vgubuntu-swap_1)。每个分区或逻辑卷都有自己的主设备号(MAJ)、次设备号(MIN)、是否可移动(RM)、大小(SIZE)、是否只读(RO)、类型(TYPE)和安装点(MOUNTPOINT)。



~

猜你喜欢

转载自blog.csdn.net/weixin_43764974/article/details/131485170
今日推荐