AI智能
改变未来

『学了就忘』Linux文件系统管理 — 58、常用硬盘管理相关命令

[toc]

1、df命令

df

命令用于统计分区的占用状况。

[root@localhost ~]# df -ahT

选项:

  • -a

    :显示特殊文件系统,这些文件系统几乎都是保存在内存中的。如

    proc

    ,因为是挂载在内存中,所以占用量都是0。

  • -h

    :换算成人类习惯看的单位(人性化显示)。

  • -T

    :多出了一列文件系统类型。

示例如下:

[root@localhost ~]# df -hTFilesystem Type Size Used Avail Use% Mounted on/dev/sda3  ext4 19G  2.2G 16G  13%   /tmpfs      tmpfs 495M 0   495M 0%    /dev/shm/dev/sdal  ext4 190M 33M  147M 19%   /boot

结果说明:

  • Filesystem

    :设备文件名。

  • Type

    :文件系统类型。

  • Size

    :分区总大小。

  • Used

    :占用大小。

  • Avail

    :空闲多少。

  • Use%

    :利用率。

  • Mounted on

    :挂载点。

2、du命令

du

命令用于统计目录或文件大小的命令。

[root@localhost ~]# du [选项] [目录或文件名]

选项:

  • -a

    :显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量。

  • -h

    :使用习惯单位显示磁盘占用量,如KB,MB或GB等(人性化显示)。

  • -s

    :统计总占用量,而不列出子目录和子文件的占用量。

(1)

ls

或者

ll

命令统计目录的大小是不准确的,为什么?

我们通过

ls

或者

ll

命令查看文件大小,目录一般是

0K

或者

4k

或者是

4K

的倍数。

如下图:

boot

目录和

dev

目录除外。

我把一个

6.2M

大小的压缩包解压后,所的到的文件夹,显示也是

4K

如下图所示:

解压后得到的文件,反而比压缩文件小很多,这明显就是不正确的数据。

这明显就是不合理的情况。

说明

ls

或者

ll

命令统计文件大小有问题,统计目录大小的数据是不准确的。

出现这种问题的原因,还要从分区说起。

目录有自己的

block

块,该

block

块中存放着文件名和对应的

i

节点号,和目录中文件的文件名和

i

节点号的数据,目录的

block

块中是不会统计目录中的文件大小是多少。

记录目录的文件名和对应的

i

节点号,和目录中文件的文件名和

i

节点号的这些数据,如果一个

block

块能装下,就是

4K

,如果装不下,就分多个

block

块来存储,这样就是

4K

的倍数。

所以执行

[root@localhost ~]# du -h httpd-2.2.9

命令,就可以看到

httpd-2.2.9

目录中每个文件的大小,最后会显示

httpd-2.2.9

目录的大小。

如果只需要看文件的总大小,添加选项

s

即可。

[root@localhost ~]# du -hs httpd-2.2.9

解释:

  • 为什么
    boot

    目录是1K大小,因为之前说过

    block

    块的大小为1K、2K、4K(默认),但是

    boot

    是一个单独的分区,默认就是1KB。

  • dev

    目录是特殊硬件目录,里边保存的都是硬盘等设备信息,比较特殊,所以除外。

(2)

du

命令与

df

命令的区别

  • du

    命令是用于统计文件大小的,统计的文件大小是准确的。

  • df

    命令是用于统计空间大小的(文件和临时文件都会算,重启会释放),统计分区的使用率是准确的(更明确的说法是分区剩余空间是准确的)。

再有如果你在工作中不能重启服务器,想释放临时文件占用的空间,也是可以手动释放的。

sof I grep deleted

:是查询文件隐藏状态的命令,找出要删除的文件,然后一个进程一个进程的手工

kill

也是可以的。

这样做法极其难操作,出现错误的几率很高,不推荐手动释放。

Linux服务器在计划之内的重启所造成的损失,远比服务器意外宕机或重启所造成的损失要小的多。

3、fsck文件系统修复命令

这个命令是Linux系统中自带的一个文件系统修复的命令。

这个命令有点类似于Windows系统没有正常关机(突然断电了),下次开机的时候会提示是否扫描修复文件。

自动修复命令:

[root@localhost ~]# fsck -y /dev/sdb1

这条命令在Linux系统开机的时候,会自动执行。如果文件能通过

fsck

命令进行修复,开机自动执行也就修复了,如果Linux系统启动之后文件还报错,手工在执行一边

fsck

命令,也是没有用的,修复不好。

4、显示磁盘状态dumpe2fs

显示磁盘状态使用

dumpe2fs

命令,执行

dumpe2fs + 分区号

进行查看。

如何查询分区号,通过

df -h

命令进行查询,很方便。

下面是执行命令的结果:

上面的信息很多,如果你只想看超级块的信息(也就是最上面的一部分信息),只需要加上

-h

选项即可。

如下:

[root@localhost ~]# dumpe2fs -h /dev/sda3

5、查看文件的详细时间

stat 文件名

:查看文件的详细时间。

执行命令结果如下:

这些信息能看懂就行。了解即可。

6、判断文件类型

  • file 文件名

    :判断文件类型

  • type 命令名

    :判断命令类型

判断文件类型

  • 如果我们判断一个文件,会显示该文件是一个ASCII码的英文文档。
    [root@localhost ~]# file anaconda-ks. cfganaconda-ks. cfg: ASCII English text
  • 如果我们判断一个目录,会显示该文件是一个目录。
    [root@localhost ~]# file 123/123/: directory

判断命令类型Linux系统中的命令分为内部命令和外部命令

  • 如果用
    type

    命令判断命令类型,有命令的位置,说明是外部命令。如下:

    [root@localhost ~]# type mkdirmkdir is /bin/mkdir
  • 如果用
    type

    命令判断命令类型,显示

    shell builtin

    (shell内置命令),说明是内部命令。如下:

    [root@localhost ~]# type cdcd is a shell builtin
  • 如果命令有别名,用
    type

    命令判断命令类型,显示的是命令的别名信息。

    [root@localhost ~]# type lsls is aliased to \'ls --color=auto\'

提示:这两个命令一般都是在写脚本程序的时候使用,平时我们辨别文件还是文件夹都很方便的(用眼,哈哈)。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 『学了就忘』Linux文件系统管理 — 58、常用硬盘管理相关命令