@TOC
👨💻 江湖有缘
🚀 一名在运维领域不懈探索的学习者。
🌟 认证与成就
🔴 红帽 RHCE 认证
🟠 华为 HCIP 数通认证
🔵 华为 HCIE 云计算认证
...以及其他多项专业认证
🌐 个人主页
🔗 CSDN个人主页
📢 公众号
🏷️ 【运维江湖客】
👥 交流社群
💬 欢迎同行及爱好者加入我们的QQ群:
🏷️ 群号【942602415】
📝 人生格言
"人可以被毁灭,但不能被打败。"
—— 海明威
一、ncdu命令命令介绍
1.1 ncdu简介
ncdu
是一个基于 ncurses 的磁盘使用情况分析工具。它可以帮助您快速地查看文件系统中哪些文件或目录占用了较多的空间,并且以易于阅读的树状视图形式展示结果。
1.2 ncdu特点
- 快速扫描: ncdu 提供了快速的磁盘使用情况扫描,帮助您快速识别哪些文件或目录占用了大量空间。
- 交互式界面: ncdu 提供了一个基于 ncurses 的交互式界面,允许您轻松浏览文件系统结构。
- 颜色编码: 默认情况下,ncdu 使用颜色编码来区分文件类型和目录,使得输出更加直观。
- 灵活的选项: ncdu 支持多种选项,比如排除某些目录、按照大小排序、以及导出和导入扫描结果。
- 易于操作: ncdu 提供了简单的键盘命令,如使用方向键浏览文件列表、使用 Enter 键进入子目录等。
二、本地环境介绍
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为
Ubuntu 22.04.1
。
hostname | 本地P地址 | 操作系统版本 | 内核版本 | node版本 |
---|---|---|---|---|
ubuntu-001 | 192.168.3.251 | Ubuntu 22.04.1 LTS | 5.15.0-89-generic | v18.0.0 |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Ubuntu环境下ncdu命令的安装及基本使用。
三、检查本地环境
3.1 检查本地操作系统版本
检查本地操作系统版本,当前版本为
Ubuntu 22.04.1 LTS
。
root@ubuntu-001:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
3.2 检查系统内核版本
检查系统内核版本,当前内核版本为
5.15.0-89-generic
。
root@ubuntu-001:~# uname -r
5.15.0-97-generic
3.3 检查系统镜像源
对于Ubuntu 22.04.1 LTS版本,将镜像源配置文件/etc/apt/sources.list修改内容如下。
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
3.4 更新软件列表
执行以下命令,更新软件列包表。
root@ubuntu-001:~# apt update
Hit:1 https://mirrors.aliyun.com/ubuntu jammy InRelease
Hit:2 https://mirrors.aliyun.com/ubuntu jammy-security InRelease
Hit:3 https://mirrors.aliyun.com/ubuntu jammy-updates InRelease
Hit:4 https://mirrors.aliyun.com/ubuntu jammy-backports InRelease
Hit:5 https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
116 packages can be upgraded. Run 'apt list --upgradable' to see them.
四、安装ncdu工具
4.1 安装ncdu软件
在ubuntu系统下,直接执行以下命令,安装ncdu。
apt install ncdu -y
4.2 ncdu命令帮助
- help帮助信息
root@ubuntu-001:~# ncdu --help
ncdu <options> <directory>
-h,--help This help message
-q Quiet mode, refresh interval 2 seconds
-v,-V,--version Print version
-x Same filesystem
-e Enable extended information
-r Read only
-o FILE Export scanned directory to FILE
-f FILE Import scanned directory from FILE
-0,-1,-2 UI to use when scanning (0=none,2=full ncurses)
--si Use base 10 (SI) prefixes instead of base 2
--exclude PATTERN Exclude files that match PATTERN
-X, --exclude-from FILE Exclude files that match any pattern in FILE
-L, --follow-symlinks Follow symbolic links (excluding directories)
--exclude-caches Exclude directories containing CACHEDIR.TAG
--exclude-kernfs Exclude Linux pseudo filesystems (procfs,sysfs,cgroup,...)
--confirm-quit Confirm quitting ncdu
--color SCHEME Set color scheme (off/dark)
- 详细解释
Option | Description |
---|---|
-h, --help |
显示帮助消息。 |
-q |
安静模式,刷新间隔为 2 秒。 |
-v, -V, --version |
打印版本信息。 |
-x |
仅在同一文件系统内操作。 |
-e |
启用扩展信息。 |
-r |
读取模式,禁止修改文件。 |
-o FILE |
将扫描的目录导出到文件 FILE 。 |
-f FILE |
从文件 FILE 导入扫描的目录。 |
-0, -1, -2 |
设置扫描时使用的用户界面(0=无,2=完整的 ncurses)。 |
--si |
使用以 10 为基数的 SI 前缀而不是以 2 为基数的前缀。 |
--exclude PATTERN |
排除匹配模式 PATTERN 的文件。 |
-X, --exclude-from FILE |
从文件 FILE 中读取排除模式。 |
-L, --follow-symlinks |
跟随符号链接(不包括目录)。 |
--exclude-caches |
排除包含 CACHEDIR.TAG 的目录。 |
--exclude-kernfs |
排除 Linux 的伪文件系统(如 procfs, sysfs, cgroup 等)。 |
--confirm-quit |
在退出 ncdu 之前进行确认。 |
--color SCHEME |
设置颜色方案(off/dark)。 |
五、ncdu命令的基本使用
5.1 直接启动ncdu
直接在命令行,输入ncdu命令,此时会从当前目录开始分析磁盘使用情况。
ncdu
- ncdu界面的基本交互命令,通过这些命令你可以浏览和管理文件系统的磁盘使用情况。
键 | 功能 |
---|---|
up, k | 将光标向上移动 |
down, j | 将光标向下移动 |
right/enter | 打开选定的目录 |
left, <, h | 打开父目录 |
n | 按名称排序(升序/降序) |
s | 按大小排序(升序/降序) |
C | 按项目数排序(升序/降序) |
M | 按修改时间排序(需启用 -e 选项) |
d | 删除选定的文件或目录 |
t | 在排序时切换目录在文件之前/之后 |
5.2 指定路径
可以在ncdu命令后面,加上需要分析的目录路径。如果需要查看某个特定目录下的磁盘使用情况,只需在命令行后面加上该目录的路径即可。
ncdu /var/log/
5.3 结果保存到文件
- 将
/home
目录的磁盘使用情况保存到文件 disk_usage.txt 中:
ncdu -o disk_usage.txt /home
- 查看保存文件内容
cat disk_usage.txt
5.4 从文件导入扫描的目录
可以使用
-f
选项将文件导入扫描的目录
ncdu -f disk_usage.txt
5.5 设置颜色方法
执行以下命令,ncdu 会扫描 /home 目录及其子目录,并以颜色高亮的方式显示每个子目录占用的空间。颜色方案会帮助你更容易地区分文件和目录,并识别哪些部分占用了大量磁盘空间。
ncdu --color dark /home
六、总结
ncdu
(NCurses 磁盘使用情况)是一款基于 ncurses 的磁盘空间分析工具,它以图形化的树状视图形式展示了磁盘使用情况,帮助用户直观地识别哪些文件或目录占用了大量的磁盘空间。与传统的du
命令相比,ncdu
提供了更为直观的交互式界面,使得管理磁盘空间变得更加容易和高效。