如何在Ubuntu 12.04 LTS中使用终端检查分区中已使用的磁盘空间?

我正在使用Ubuntu 12.04 LTS,想知道是否有命令可以在终端中查看分区已用空间。比如,我想使用su命令切换到一个名为admin的用户(用户名为admin)。所以我输入了:

su admin

输入密码

现在我想查看此分区使用的磁盘空间。那么...有没有相应的命令?


这个帖子已经被锁定了,但是我只是想说ncdu在这样的工作中非常棒:http://unix.stackexchange.com/a/3964/13779 - Gerry
有人可以移除重复标签吗?这个问题是关于终端的。 - Diogo Gomes
1lsblk | grep sda应该会有所帮助。 - ImtiazeA
3个回答

su命令完全无关紧要。所有用户的磁盘使用情况都是相同的。不管怎样,我系统上一些相关的命令及其输出如下:
terdon@oregano ~ $ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda7              68G   23G   43G  35% /
udev                   10M     0   10M   0% /dev
tmpfs                 800M  1.6M  798M   1% /run
tmpfs                 5.0M     0  5.0M   0% /run/lock
tmpfs                 3.2G   12M  3.2G   1% /run/shm
/dev/sda6             290G  256G   20G  94% /home
tmpfs                 3.2G  992K  3.2G   1% /tmp
none                  4.0K     0  4.0K   0% /sys/fs/cgroup
/dev/sdc1             466G  379G   88G  82% /media/terdon/Iomega_HDD

为特定分区:
terdon@oregano ~ $ df -h /dev/sda7
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda7              68G   23G   43G  35% /

另外,虽然这只列出了大小,而没有列出使用的百分比:
terdon@oregano ~ $ lsblk 
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0  39.2M  0 part 
├─sda2   8:2    0  14.7G  0 part 
├─sda3   8:3    0  78.1G  0 part 
├─sda4   8:4    0     1K  0 part 
├─sda5   8:5    0     2G  0 part 
├─sda6   8:6    0 294.4G  0 part /home
├─sda7   8:7    0  68.7G  0 part /
└─sda8   8:8    0   7.8G  0 part [SWAP]
sdc      8:32   0 465.8G  0 disk 
└─sdc1   8:33   0 465.8G  0 part /media/terdon/Iomega_HDD
sr0     11:0    1  1024M  0 rom  

相反地,您可以使用du命令打印目录大小,如果在分区的挂载点上运行它,它将为您提供分区的磁盘使用情况:du -xsch /home-x选项将“跳过不同文件系统上的目录”,这对于在分区的挂载点下嵌套其他挂载点很有帮助(通常是/)。

4"-h"代表人类,使得我们人类可以阅读,否则它将以字节形式呈现 ^^ - Mr.Lee
1对于du -xsch /home的示例给予加分,尤其是 -x 参数。 - R. Oosterholt
什么时候应该使用 dudf - Charlie Parker
df 的输出对我来说看起来像无意义的东西。(合成) miranda9〜$ du -hs ~/data 59G /home/miranda9/data (合成) miranda9〜$ df -h ~/data 文件系统 大小 已用 可用 使用% 挂载点 daf-file-01.cs.illinois.edu:/srv/local/home/miranda9 10T 9.7T 365G 97% /home/miranda9 为什么它们不匹配呢? - Charlie Parker
@charlie 因为你正在比较数据子目录的大小与整个远程挂载卷的大小。为什么它们会匹配呢?如需更多详细信息,请提出一个新问题。 - terdon

你可以使用df -Th命令来获取分区的已用空间:
$ df -Th

Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda9      ext4       22G   16G  4.8G  77% /
none           tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
udev           devtmpfs  1.5G  4.0K  1.5G   1% /dev
tmpfs          tmpfs     297M  1.4M  295M   1% /run
none           tmpfs     5.0M  4.0K  5.0M   1% /run/lock
none           tmpfs     1.5G  616K  1.5G   1% /run/shm
none           tmpfs     100M   68K  100M   1% /run/user
/dev/sda5      fuseblk    53G   34G   19G  65% /media/Songs
/dev/sda7      fuseblk   103G   90G   14G  88% /media/Data
/dev/sda6      fuseblk    69G   34G   35G  50% /media/Movies
/dev/sda1      fuseblk    49G   36G   14G  72% /media/guru/0C64A7F864A7E326

如果你只想查看特定分区的磁盘利用情况,你也可以为其提供一个特定的分区。
$ df -Th /dev/sda9

Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sda9      ext4   22G   16G  4.8G  77% /

你还可以在终端中使用pydfdiscus来获得更好的显示效果。 如果你想使用它们,你需要先安装它们。在终端中输入:sudo apt-get install pydf 来安装pydf
$ pydf  
Filesystem Size Used Avail Use%                                      Mounted on                  
/dev/sda9   22G  16G 4893M 72.7 [#########################.........] /                           
/dev/sda7  103G  90G   13G 87.2 [##############################....] /media/Data                 
/dev/sda6   69G  34G   35G 49.3 [#################.................] /media/Movies               
/dev/sda5   53G  34G   19G 64.5 [######################............] /media/Songs                
/dev/sda1   49G  35G   14G 71.9 [########################..........] /media/guru/0C64A7F864A7E326

2pydf更容易阅读。df -Th的6/7条目令人困惑且无用。 - mpen

你可以通过使用df -h命令轻松检查磁盘空间状态。

有时候,你可能会因为一些自动化进程而意外地填满了硬盘。当我遇到这种情况时,我需要找出大部分的磁盘空间都去了哪里。以下命令对于这个任务非常有帮助:

$ cd /
$ sudo du -sh ./*

这将列出当前目录中的文件和文件夹列表以及每个文件的大小。如果一个目录比它应该的要大,cd 到该目录并再次运行 sudo du -sh ./*。重复此操作,直到找到占用大部分磁盘空间的内容。