Logo

郎哥编程

磁盘和目录操作常用命令

2026-07-01 136

在深入学习Linux之前,我们需要掌握一些基本的Linux关于磁盘和目录的操作命令,我们可以通过这些基础命令完成对磁盘、目录和文件的基础操作。

Linux系统内置了完善的命令帮助机制,通过在命令后添加--help参数,我们可以快速查阅命令的使用方法和相关参数。例如,执行ls --help命令就能查看ls命令的详细用法说明,包括各种参数的功能解释。

下图通过执行ls --help命令,系统列出了ls命令的用法及相关参数。因此本课仅是简单介绍命令的使用方法,让大家知道什么情况下需要使用这些命令,关于命令的详细用法还需要查看命令的帮助文档。

一、磁盘操作命令

下表是查看磁盘信息的常用命令。

命令 用途 实用示例
lsblk 查看系统块设备 lsblk
df -h 查看磁盘空间及使用情况

df -h

df -h /home(查看指定目录所在分区) ‌

du -sh [路径] 统计目录或文件占用空间大小 du -sh /var/log
fdisk -l 显示磁盘分区表信息 sudo fdisk -l /dev/sda

 

lsblk 命令

lsblk命令用于查看系统块设备信息。在Linux系统中,‌块设备(Block Device)‌是指操作系统可以按固定大小的块(如512KB)来读写数据的设备,如硬盘、固态盘、U盘等都属于块设备。

直接在终端或控制台输入下面的命令(自己输入命令,不要复制和粘贴):

lsblk

对于不需要管理员权限的命令,命令前面可以省略sudo。执行命令后,会显示如下图所示的内容。

从上图可以看出,系统中存在很多的块设备,其实大多数块设备是回环设备,即以loop命名的设备,这些设备不是真正的物理设备,而是操作系统将一个文件虚拟成一个块设备,对应 Snap 安装的应用,容量从几 KB 到几百 MB 不等,是 Snap 应用的运行时镜像。

真正的物理设备是以字符S开头的设备,设备sda表示一个真正的物理磁盘,磁盘空间20G,因为当前Ubuntu系统运行在VMware虚拟机上,因此这是VMware分配的虚拟磁盘。

设备sda下面有两个分区:sda1是磁盘的第1个分区,分区空间为1M,是系统的 BIOS Boot 分区;sda2是磁盘的第2个分区,分区空间为20G,几乎占用了磁盘全部空间,该分区挂载到系统根目录, 是Ubuntu 系统的根分区,系统、用户数据都存放在这里。

lsblk命令后面可以添加参数,添加这些参数的本质是过滤输出信息、定制输出格式,可帮助你快速定位需要查看的信息。

df命令

df命令用来查看磁盘空间及使用情况,df命令的默认输出是以KB为单位来显示磁盘空间信息,显示的数字比较大,不直观。在命令后面添加参数 -h,会自动将单位换算为 ‌K(千字节)‌、‌M(兆字节)‌、‌G(吉字节)‌等,便于理解。

直接在终端或控制台输入下面的命令(自己输入命令,不要复制和粘贴):

df -h

执行命令后,会显示如下图所示的内容。

在Linux系统中,设备都被映射为文件,物理磁盘和逻辑磁盘也会被映射为文件,因此图中的第1列称为文件系统。其中tmpfs是 Linux 基于内存的临时文件系统,数据存放在 RAM 中,断电或重启后自动清空,用于存放临时运行数据。

/dev/sda2是磁盘的第2个分区,对应之前 lsblk命令里的 sda2 设备,大小为20G,已用15G,可用还剩余3.9G,空间使用率80%, 已经达到Linux系统预警阈值,Linux 系统通常建议根分区使用率不超过 80%,避免系统因空间不足崩溃。挂载点为系统根目录。

若需要查看某一目录的空间及使用情况,可以在后面添加目录路径参数,如下面的命令会查看/home目录的空间及使用情况。

df -h /home

du命令

du命令主要用来统计目录或文件占用磁盘工具的大小。当du命令无附加参数时,会递归遍历当前所有子目录,逐个显示每个子文件夹占用的磁盘空间大小(单位为字节),最后叠加统计,一层一层汇总。命令执行结果如下图所示.

在du命令后面添加-sh参数,可以直接查看指定文件夹的大小,不显示子文件夹细节,单位自动以KB/MB/GB显示。

直接在终端或控制台输入下面的命令(自己输入命令,不要复制和粘贴):

du -sh
du -sh software

执行命令后,会显示如下图所示的内容。

上图的第一个命令显示根目录占用的磁盘空间为2.2G,第二个命令显示根目录下的software目录占用的磁盘空间为500K。这两条命令都没有显示子文件夹细节,而是对子文件夹占用的磁盘空间进行了汇总。

fdisk 命令

fdisk命令是linux磁盘分区管理工具,用于查看计算机所有硬盘分区表,并能完成新建、删除、查看、修改、调整硬盘分区,管理分区类型、激活分区等功能。本节课主要使用fdisk命令来了解磁盘分区信息。磁盘分区管理工具的详细使用,我们将拿出单独的一节课来讲解。

直接在终端或控制台输入下面的命令(自己输入命令,不要复制和粘贴):

sudo fdisk -l /dev/sda

该命令查看计算机第一块硬盘的分区信息,在Linux系统里,第一块硬盘的名称是sda、第二块硬盘的名称是sdb、……、以此类推。在Linux系统中,dev是设备目录,所有硬件(硬盘、U 盘、键盘、网卡)都当成文件放在 /dev 下面,sda 是第一块硬盘。

执行命令后,会显示如下图所示的内容。

上图显示/dev/sda是虚拟机里的第一块虚拟硬盘,硬盘容量是20GB,每个扇区大小是 512 字节,磁盘用的是GPT分区表。

sda磁盘有两个分区:sda1和sda2。sda1是BIOS启动分区,用于存储BIOS程序,分区位置从2048扇区起始,到4095扇区结束,大小为1M。sda2是Linux根分区,系统、软件、用户数据都存在这里,扇区起始位置为4096,结束位置为41936896,大小为20G。

二、目录操作命令

下表是查看目录信息的常用命令。

命令 用途 实用示例
ls 列出目录内容

ls          # 简单列出

ls -l       # 详细信息

ls -a       # 显示隐藏文件

ls -lh      # 显示文件大小(KB/MB)

ls -lt      # 按修改时间排序

ls -la      # 所有文件 + 详细信息

pwd 输出当前工作目录绝对路径 pwd‌
find 搜素目录或文件

# 查找目录

find /path -type d -name "dir*"  

# 查找文件 

find /path -type f -name "*.log"  

cd 切换目录

#切换到根目录下的home目录

cd /home

rm 删除文件或目录

#递归删除temp目录及其下面的子目录和文件

rm -r temp

mkdir 创建目录

#在当前目录下创建temp目录

mkdir  temp 

ls命令

ls命令用来列出指定目录里的文件及文件夹清单,ls默认输出当前目录的清单。通过ls 命令不仅可以查看文件夹包含的文件,而且可以查看文件权限、大小、更改时间等等。

实例-1 列出当前目录下的文件夹及文件

不带任何参数的ls命令仅列出当前目录下的文件夹和文件名称,不会显示文件类型、大小、修改日期和时间、权限等信息。

实例-2 列出文件夹及文件详细信息

可以看到,用ls -l命令查看某一个目录会得到一个含7列的列表。

第1列是文件夹或文件的属性。文件属性共有10个字符组成,以第一行为例:

第1位:文件类型。

d:directory 目录

-:普通文件

l:软链接(快捷方式)

b:块设备(硬盘等)

c:字符设备

s:socket 文件

p:管道文件

第2~4位:rwx 文件权限。

r:read 若是文件,该文件可读;若是目录,该目录可使用ls命令查看目录内容。

w:write 若是文件,该文件可写;若是目录,该目录允许在目录里新建、删除、重命名文件。

x:execute 若是文件,该文件可执行;若是目录,该目录可进入(可以 cd 进入这个目录)。

第5~7位:r-x 同组用户权限。r:可读;-:不可写;x:可进入。

同组用户只能看、能进入,不能修改 / 删除。

第8~10位:r-x其他用户权限。r:可读;-:不可写;x:可进入。

所有人都能看、能进入,但不能修改。

第2列:如果是一个文件,该列的数值表示这个文件所具有的硬链接数;如果是一个目录,则该列表示所含子目录的个数。

第3列:文件(目录)拥有者。

第4列:文件(目录)拥有者所在的组。

第5列:文件所占用的空间(以字节为单位)。

第6列:文件(目录)最近访问(修改)时间。

第7列:文件(目录)名称。

find命令

find命令是文件搜素神器,它能递归搜索指定目录下的文件,基本命令结构如下:

find [搜索路径] [匹配条件] [执行动作]

搜索路径:指定从哪开始搜,比如`.`是当前目录,`/`就是从根目录搜起。

匹配条件:定义搜索规则,文件名、类型、大小都能筛。

执行动作:对执行结果进行操作,默认是输出符合搜索条件的文件路径。

实例-1 查找指定的文件

上述命令是在当前目录下递归查找名称为cmyk.png的文件。参数-name指定find使用文件名称来筛选,文件名称需要附加在-name参数后面,文件名称是区分大小写的,若不区分大小写,可以使用-iname参数。

cd命令

在什么情况下使用cd命令呢?当需要切换目录时,就需要使用cd命令。

#切换到data目录,目录路径为绝对路径
cd /home/user/data 
# 切换到当前目录下的test目录
cd test
# 返回上一级目录
cd ..
# 返回上两级目录
cd ../..
# 回到系统根目录
cd /

mkdir命令

当需要创建一个新的目录时,就要用到mkdir命令。

# 在当前目录下,创建一个新的目录test
mkdir test
# 在当前目录下,递归创建多层目录/a/b/c
mkdir -p a/b/c
# 在当前目录下,一次创建多个目录
mkdir dir1 dir2 dir3

rm命令

rm是删除目录和文件的命令,当需要删除目录和文件时,就要使用rm命令。

# 在当前目录下,删除cmyk.png文件
rm cmyk.png
# 递归删除目录,递归删除/home/test目录及其所有的子目录和文件
rm -r /home/test
# 递归删除目录,什么都不问,直接删光,慎用下面的命令
rm -r /home/test

三、本节总结

要查看计算机有哪些存储设备,就使用lsblk命令,它可以列出所有的存储设备。df命令可以查看磁盘空间使用情况,若需要查看目录或文件占用磁盘空间大小,就可以使用du命令。

cd命令可以切换目录,mkdir命令可以创建目录,rm命令用来删除目录,ls命令可以列出目录下的所有文件和子目录,find命令是搜索神器,可以快速定位你需要查找的目录和文件。

评论区

登录 后发表评论
暂无评论