Linux系统中如何查看磁盘情况

Linux不像windows系统那样方便的图形界面,特别是作为服务器使用的时候,只有命令行可以使用。

我有个云服务器平时用来做一些数据分享用的,最近想看看磁盘和其中文件的占用情况,

于是搜索并学习了一些查看磁盘空间信息的命令,命令虽然简单,但对我自己来说还是有些新的东西值得记录。

1. df

首先,登录服务器用df命令查看磁盘情况:

bash 复制代码
/home/projects/databook# df .
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/vda1       51420828 14018512  35079240  29% /

输出包含当前文件系统的磁盘使用情况。

df命令有个-h参数,可以更好的展示磁盘情况:

bash 复制代码
/home/projects/databook# df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   14G   34G  29% /

-h参数一般是用来显示帮助信息的,但是对于df命令,h表示human,也就是以人类易读的方式显示。

上面的输出表示这个磁盘的使用量,包括我的虚拟服务器上的所有内容------可执行文件、库和支持文件等等。

总容量 50G,目前只使用了29%,剩余的还比较充裕。

2. du

接下来,我想看看databook目录的文件占用情况。这需要使用 du 命令:

bash 复制代码
/home/projects/databook# du -hd 1 .
24K     ./certs
4.0K    ./download
3.2M    ./admin-ui
2.9M    ./public
108K    ./output
181M    ./upload
472K    ./markdown-files
207M    .

同样,-h参数表示以人类易读的方式显示,-d 1 参数表示 du 只进入一个目录级别(也就是当前目录)。

从输出可以看出,upload目录稍微大点,其他目录都还好。

最后一行 207M 是整个目录占用磁盘的大小。

我希望按照文件/文件夹 占用磁盘空间大小的顺序来显示,这样可以快速定位到占用空间大的 文件/文件夹

3. du | sort

但是,du命令并没有按磁盘空间排序的参数,所以尝试结合 sort 命令来排序。

bash 复制代码
/home/projects/databook# du -hd 1 . | sort -n
2.9M    ./public
3.2M    ./admin-ui
4.0K    ./download
24K     ./certs
108K    ./output
181M    ./upload
207M    .
472K    ./markdown-files

sort命令的-n参数表示按数字排序,不过文件夹大小不仅有数字,还有单位(比如MK这些)。

所以,这样排序对我们用处不大。

接着,尝试所有文件统一用字节表示,然后在排序:

bash 复制代码
/home/projects/databook# du -kd 1 . | sort -n
4       ./download
24      ./certs
108     ./output
472     ./markdown-files
2948    ./public
3224    ./admin-ui
184532  ./upload
211112  .

du命令的-k参数表示用字节表示文件/文件夹的大小。

这样虽然可以正常排序,但是可读性差,字节并不是人类易读的方式,还是MBGB更好理解。

进一步调查,发现sort命令居然也有-h参数,也是为了读取人类易读格式的值。

bash 复制代码
/home/projects/databook# du -hd 1 . | sort -hr
207M    .
181M    ./upload
3.2M    ./admin-ui
2.9M    ./public
472K    ./markdown-files
108K    ./output
24K     ./certs
4.0K    ./download

这样就满足了我查询磁盘空间的要求。
sort命令的-r参数表示从大到小排序,因为我关注的是大文件,所以想把它们排在前面。

补充:-h参数是在2009年添加到GNU sort 的。

相关推荐
ltl10 小时前
大多数「无锁」代码其实不是无锁的
linux
ltl10 小时前
Linux 内核的内存屏障:一个让我调了三天的 bug
linux
Lonely 净土12 小时前
Rocky Linux 安装教程
linux·运维·服务器
李白你好16 小时前
Windows 离线 Linux 提权辅助查询工具
linux
Lust Dusk16 小时前
记一次Linux应急响应题目解析
linux·运维·服务器·网络·安全·网络安全
ShineWinsu17 小时前
对于Linux:五种IO模型以及非阻塞IO的详细解析
linux·c++·面试·io·阻塞·非阻塞·fcntl
千千寰宇17 小时前
[Linux/Ollama] Termux : 一款运行在 Android 平台上的开源终端模拟器与 Linux 环境应用、支持在手机上基于Ollama部署LLM
linux
lingran__19 小时前
Linux 基础常用指令万字详解(上)|文件目录命令,结合底层原理剖析
linux·运维·服务器·后端·centos·linux基础指令
Dlrb121120 小时前
Linux驱动---sys文件系统自动添加设备节点、添加调试节点以及MISC设备驱动的解释
linux·imx6ull·misc·设备节点·sys文件系统
刘某的Cloud20 小时前
Galera Cluster mariadb 生产环境常见问题排查与运维指南
linux·运维·数据库·mariadb·集群高可用