善用开源,无GUI的磁盘管理小工具

2024-02-26 21:48:40 浏览数 (2)

系统用久了,占用磁盘会越来越多. 以至于到后面你都不知道究竟是什么东西占用了这么多磁盘空间.

虽然现在硬盘越来越便宜, 我们的硬盘可能早就是512G甚至是1TB起步了. 但在很多场景之下, 我们仍然会有查找磁盘占用的原因及清理磁盘. 特别是做开发, 各种开发缓存占用的磁盘越来越大, 及时清理有时候非常有必要.

这个时候,我们就需要一个好的磁盘空间管理工具.而今天我要介绍的就是一个高效的开源的磁盘管理工具 -- NCDU

ncdu是什么

ncdu全称是NCurses Disk Usage, 是一款C编写的, 以命令行为界面,支持 POSIX-like系统的磁盘分析与管理工具.

优势在于:

  • 基于C语言实现, 所以它分析与扫描磁盘的性能与效率非常高
  • 以命令行为界面, 意味着你不需要GUI就能使用它. 这不仅更高效, 还支持无GUI的Linux服务器.
  • 简单,方便,易于使用

不足在于:

  • 不支持Windows

这意味着你如果是使用Windows, 你就没法使用它. 但你可以在Linux或MacOS等POSIX类系统上使用它. 特别是对无GUI的Linux服务器, 使用它会非常方便.

效果

先了解下ncdu的使用效果

NCDU效果图

如上图所示, 使用ncdu扫描完成你的磁盘目录后, 它会在你的terminal界面上, 以列表的形式,按照大小顺序直观的展示不同目录占用的空间.

你可以在这个界面上,轻松的:

  • 进入或退出某个目录, 查看任意目录的空间占用情况
  • D键,直接删除某个文件或目录,进行清理

相比其它一些扫描与分析工具, ncdu简单,直观,而且极为高效. 特别是你的Linux服务器, 用它来了解磁盘使用情况, 再好不过了.

安装与使用

安装

在你的Linux系统上, 使用系统自带的包管理器来安装它, 是最方便快捷的

Debian/Ubuntu类

代码语言:javascript复制
sudo apt install ncdu

RHEL/CentOS类

代码语言:javascript复制
sudo apt install ncdu

Arch Linux类

代码语言:javascript复制
sudo pacman -S ncdu

OpenSUSE/SUSE类

代码语言:javascript复制
sudo zypper in ncdu

如果你是MacOS系统, 基于brew来安装是最方便的

代码语言:javascript复制
brew install ncdu

使用

在命令行下,直接ncdu就能使用它. 不过这样默认是扫描当前目录

扫描整个系统

代码语言:javascript复制
sudo ncdu /

扫描指定目录

代码语言:javascript复制
# 扫描/opt目录
sudo ncdu /opt

排除指定目录

代码语言:javascript复制
# 扫描整个系统,但排除 /opt,/tmp两个子目录
sudo ncdu / --exclude=/opt --exclude=/tmp

扫描会非常快, 完成后, 你可以用键盘来方便的查阅结果, 进入及退出任意目录.

  • 在某个目录或文件下, 按D键会触发删除 (删除是完全删除,不是删除到回收站)
  • 选择某个目录, 按Enter键进入目录,继续查阅

最后

这个ncdu工具是我用过的最方便的工具, 它不仅快, 最重要的是轻松让我知道哪些目录, 哪些程序使用了空间.

当然,它有一定的危险性, 比如几乎可以删除任何目录, 但有些系统目录是不能删除的. 这一点要特别注意. 但是做为程序员, 这个点想必是你能轻松应对的.

最重要的是, 在无GUI的Linux上安装这个工具, 最方便不过了. 如果你想给你的Linux找一款更好的磁盘分析与管理工具, NCDU是一个非常不错的选择.

0 人点赞