作用:
列出文件系统的整体磁盘使用量。
选项:
- -a:列出所有的文件系统,包括系统特有的/proc等文件系统;
- -k:以KBytes的容量显示各文件系统。
- -m:以MBytes的容量显示各文件系统。
- -h:以较以阅读的GBytes、MBytes、KBytes等格式自行显示,常用。
- -H:1M=1000K取代1M=1024k的进位方式。
- -T:连同该分区的文件系统名称(如“xfs”)也列出。
- -i:不用磁盘容量显出,而以inode的数量来显示
示例:
我一般使用“df -hT”较多,如下:
[root@localhost ~]# df -hT #执行该命令
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 39G 4.2G 35G 11% /
devtmpfs devtmpfs 895M 0 895M 0% /dev
tmpfs tmpfs 911M 0 911M 0% /dev/shm
tmpfs tmpfs 911M 11M 901M 2% /run
tmpfs tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/mapper/centos-home xfs 19G 33M 19G 1% /home
/dev/sda1 xfs 1014M 170M 845M 17% /boot
tmpfs tmpfs 183M 8.0K 183M 1% /run/user/42
tmpfs tmpfs 183M 0 183M 0% /run/user/0
[root@localhost ~]# df -h /etc #将/etc下可用的磁盘容量以易读的容量格式显示
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 39G 4.2G 35G 11% /
[root@localhost ~]# df -ih /etc #查询这个目录的可用inode数量
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/mapper/centos-root 20M 154K 19M 1% /
作用:
评估文件系统的磁盘使用量(常用在推估目录所占容量)。
选项:
- -a:列出所有的文件与目录容量,默认仅统计目录下面的文件量而已。
- -h:以较易读懂的容量格式(G/M)显示,常用。
- -s:列出总量而已,而不列出每个个别的目录占用容量,常用。
- -S:不包括子目录下的总计,与-s有点差别,不常用。
- -k:以KBytes列出容量显示。
- -m:以MBytes列出容量显示。
我一般使用“du -sh”较多,如下:
[root@localhost ~]# du -sh /etc #统计/etc目录的总用量
37M /etc
作用:
创建链接,可以将之当成windows中的创建快捷方式。
软连接及硬链接的区别:
链接有软连接及硬链接之分,软连接就是Windows中创建了一个快捷方式,而硬链接则相当于直接复制了一份到指定位置。
二者区别:软连接占用空间小,硬链接占用空间大,当源文件不存在时,软连接也就跟着失效了,而硬链接则没事,它相当于一个完全独立的个体。
选项:
- -s:如果不加任何参数就进行链接,那就是创建的硬链接,而“-s”选项就是创建软连接。
- -f:如果目标文件存在时,就主动的将目标文件直接移除后再创建。
示例:
#软连接示例:
[root@localhost ~]# ln -s /etc/passwd /tmp/password #创建一个软连接
[root@localhost ~]# ls -ld /etc/passwd /tmp/password #查看源文件及链接文件
-rw-r--r--. 1 root root 2342 7月 14 22:46 /etc/passwd
lrwxrwxrwx 1 root root 11 8月 17 22:54 /tmp/password -> /etc/passwd
#可以看到链接文件的权限很大,但实际的权限以源文件为准
[root@localhost ~]# du -sh /etc/passwd /tmp/password
4.0K /etc/passwd
0 /tmp/password #可以看到软连接的文件大小基本可以忽略不计
#硬链接示例:
[root@localhost ~]# ln /etc/passwd /tmp/password2 #创建一个硬链接
#分别查看源文件和连接文件的大小
[root@localhost ~]# du -sh /etc/passwd
4.0K /etc/passwd
[root@localhost ~]# du -sh /tmp/password2
4.0K /tmp/password2
#可以看出来大小一样
[root@localhost ~]# ls -ld /etc/passwd /tmp/password2 #文件属性也一样
-rw-r--r--. 2 0 root 2277 8月 17 22:58 /etc/passwd
-rw-r--r--. 2 0 root 2277 8月 17 22:58 /tmp/password2
作用:
列出系统上所有的磁盘列表。
选项:
- -d:仅列出磁盘本身,并不会列出该磁盘的分区数据。
- -f:同时列出该磁盘内的文件系统。
- -i:使用ASCII的线段输出,不使用复杂的编码(某些环境下很有用)。
- -m:同时输出该设备在/dev下面的权限数据(rwx的数据)。
- -p:列出该磁盘设备的完整文件名,而不是仅列出最后的名字。
- -t:列出该磁盘设备的详细数据,包括磁盘阵列机制、预读写的数据量大小等。
示例:
[root@localhost ~]# lsblk #默认不加选项,查看磁盘上所有的分区信息
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 59G 0 part
├─centos-root 253:0 0 38.3G 0 lvm /
├─centos-swap 253:1 0 2G 0 lvm [SWAP]
└─centos-home 253:2 0 18.7G 0 lvm /home
sr0 11:0 1 1024M 0 rom
[root@localhost ~]# lsblk -d #仅列出磁盘本身
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
sr0 11:0 1 1024M 0 rom
作用:
列出磁盘设备的UUID等参数。
示例:
[root@localhost ~]# blkid #查询磁盘的UUID及文件系统
/dev/sda1: UUID="cfcc42fb-78c0-4bf6-84ec-bc3f52803d14" TYPE="xfs"
/dev/sda2: UUID="fLk953-Bcni-gHbP-E6Sq-F5o6-55pz-LScGyM" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="9693181b-8904-4ead-94d8-eb7638055f7a" TYPE="xfs"
/dev/mapper/centos-swap: UUID="c5c51833-e6a5-4223-b848-aa02d2128dfe" TYPE="swap"
/dev/mapper/centos-home: UUID="5a05f8d3-3211-401b-8f22-99ef3681777f" TYPE="xfs"
作用:
列出磁盘的分区表类型与分区信息。
示例:
[root@localhost ~]# parted /dev/sda print #列出/dev/sda磁盘的相关数据,需要加“print”参数
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
#下面是分区数据
Number Start End Size Type File system 标志
1 1049kB 1075MB 1074MB primary xfs 启动
2 1075MB 64.4GB 63.3GB primary lvm
对磁盘进行分区等一系列改动操作,使用GPT模式进行分区,另一种模式是MBR分区格式,使用fdisk命令,两者分区时的操作大同小异。这里不写示例了,可以参考我之前的博文:Linux中磁盘的分区管理。
对磁盘分区进行改动后,最好手动更新Linux核心的分区信息,命令如下:
[root@localhost ~]# partprobe -s “-s”选项可以不加,那样就不会输出任何信息
/dev/sda: msdos partitions 1 2
作用:
对磁盘分区后,需要使用此命令进行格式化。
关于其选项有些多,直接上个截图吧!
一般使用如下即可(没有特殊要求的话):
[root@localhost ~]# mkfs.xfs /dev/sdb1 #格式化此磁盘,将会输出磁盘的详细信息
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310655 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242619, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# grep 'processor' /proc/cpuinfo #查询CPU个数
processor : 0
#结果是只有一个CPU,可以设置相关参数,来优化文件系统的读写性能。
文件系统优化方案可以参考:xfs文件系统优化。
作用:
对文件系统进行检验。
选项:
- -f:后面跟的设备其实是个文件而不是实体设备。
- -n:单纯检查并不修改文件系统的任何数据(检查而已)。
- -d:通常用在单人维护模式下面,针对根目录(/)进行检查与修复的动作,很危险,不要随便使用。
示例:
[root@localhost ~]# xfs_repair /dev/sdb1 #检查/dev/sdb1文件系统
作用:
常用于检查ext4文件系统并尝试修复出现的错误,通常只有身为 root 用户且文件系统出现问题时才会使用,否则,在正常状况下使用 fsck 命令,很可能损坏系统。另外,如果你怀疑已经格式化成功的硬盘有问题,也可以使用此命令来进行检查。
使用 fsck 检查并修复文件系统是存在风险的,特别是当硬盘错误非常严重的时候,因此,当一个受损文件系统中包含了非常有价值的数据时,务必首先进行备份!
选项:
- -a:自动修复文件系统,没有任何提示信息。
- -r:采取互动的修复模式,在修改文件前会进行询问,让用户得以确认并决定处理方式。
- -A:按照 /etc/fstab 配置文件的内容,检查文件内罗列的全部文件系统。
- -t :文件系统类型 指定要检查的文件系统类型。
- -C:显示检查分区的进度条。
- -f:强制检测,一般 fsck 命令如果没有发现分区有问题,则是不会检测的。如果强制检测,那么不管是否发现问题,都会检测。
- -y:自动修复,和 -a 作用一致,不过有些文件系统只支持 -y。
- -D:针对文件系统下的目录进行最优化配置。
- -b:后面接superblock的位置,一般用不到这个选项,但是如果你的uperblock因故障损毁时,通过这个参数即可利用文件系统内备份的superblock来尝试救援。一般来说,superblock备份在:1K block放在8193,2K block放在16384,4K block放在32768。
需要注意的是,在使用 fsck 命令修改某文件系统时,这个文件系统对应的磁盘分区一定要处于卸载状态,磁盘分区在挂载状态下进行修复是非常不安全的,数据可能会遭到破坏,也有可能会损坏磁盘。
示例:
[root@localhost eee]# fsck.ext4 -f /dev/sdb1 #检查该分区
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/sdb1: 11/1310720 files (0.0% non-contiguous), 126322/5242619 blocks
模拟ext4的文件系统故障及恢复,请参考ext3/ext4 超级块修复。
[root@localhost /]# dumpe2fs -h /dev/sdb1 | grep "Blocks per group"
#该命令可以查找到superblock所在位置,每个block群组会有#32768个block,因此第二个superblock应该就在32768上,因为#block号码从0开始的。
dumpe2fs 1.42.9 (28-Dec-2013)
Blocks per group: 32768
作用:
挂载文件系统。
自己看吧!
作用:
卸载文件系统。
选项:
- -f:强制卸载,可用在类似网络文件系统(NFS)无法读取到的情况下。
- -l:立刻卸载文件系统,比“-f”还强。
- -n:不更新/etc/mtab情况下卸载。
设置开机自动挂载时,一些可以设置的参数:
———————— 本文至此结束,感谢阅读 ————————