查看磁盘和目录的容量
df 列出文件系统的整个磁盘的使用量
格式:
当df后面加目录或者文件名时,df会自动分析目录或文件所处的分区,并列出该分区的容量
df [-ahikHTm] [目錄或檔名]
选项与参数
- -a :列出所有的檔案系統,包括系統特有的 /proc 等檔案系統;
- -k :以 KBytes 的容量顯示各檔案系統;
- -m :以 MBytes 的容量顯示各檔案系統;
- -h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示;
- -H :以 M=1000K 取代 M=1024K 的進位方式;
- -T :連同該 partition 的 filesystem 名稱 (例如 xfs) 也列出;
- -i :不用磁碟容量,而以 inode 的數量來顯示
例子
Linux系统内部可以存在多个文件系统
例1: 列出系统中的所有文件系统
- Filesystem:代表該檔案系統是在哪個分区,所以列出裝置名稱;
- 1k-blocks:說明底下的數字單位是 1KB ,可利用 -h 或 -m 來改變容量的单位;
- Used:顧名思義,就是使用掉的磁碟空間啦!
- Available:也就是剩下的磁碟空間大小;
- Use%:就是磁碟的使用率啦!如果使用率高達 90% 以上時, 最好需要注意一下了,免得容量不足造成系統問題喔!(例如最容易被灌爆的 /var/spool/mail 這個放置郵件的磁碟)
- Mounted on:就是磁碟掛載的目錄所在啦!(掛載點)
[root@study ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root 10475520 3409408 7066112 33% /
devtmpfs 627700 0 627700 0% /dev
tmpfs 637568 80 637488 1% /dev/shm
tmpfs 637568 24684 612884 4% /run
tmpfs 637568 0 637568 0% /sys/fs/cgroup
/dev/mapper/centos-home 5232640 67720 5164920 2% /home
/dev/vda2 1038336 133704 904632 13% /boot
例2: 指定显示的容量单位
[root@study ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 10G 3.3G 6.8G 33% /
devtmpfs 613M 0 613M 0% /dev
tmpfs 623M 80K 623M 1% /dev/shm
tmpfs 623M 25M 599M 4% /run
tmpfs 623M 0 623M 0% /sys/fs/cgroup
/dev/mapper/centos-home 5.0G 67M 5.0G 2% /home
/dev/vda2 1014M 131M 884M 13% /boot
例3: df后面加目录或文件
- 會自動的分析該目錄或檔案所在的分区,並將該分区的容量顯示出來
- 可以通过这个获取目录剩余容量
[root@study ~]# df -h /etc
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 10G 3.3G 6.8G 33% /
du 查看目录占用的容量
容量输出的默认单位是kb
格式
du [-ahskm] 檔案或目錄名稱
参数与参数
- -a :列出所有的檔案與目錄容量,因為預設僅統計目錄底下的檔案量而已。
- -h :以人們較易讀的容量格式 (G/M) 顯示;
- -s :列出總量而已,而不列出每個各別的目錄佔用容量✨
- -S :不包括子目錄下的總計,與 -s 有點差別。
- -k :以 KBytes 列出容量顯示;
- -m :以 MBytes 列出容量顯示;
例子
**例1:**列出当前目录下的所有文件的容量
- 直接用du只会显示目录
- 预设仅会统计执行命令的目录下的文件容量。
- 因为没有附加任何选项,所以在实际显示时,仅仅会显示目录的容量,不包含文件。
[root@study ~]# du
4 ./.cache/dconf <==每個目錄都會列出來
4 ./.cache/abrt
8 ./.cache
....(中間省略)....
0 ./test4
4 ./.ssh <==包括隱藏檔的目錄
76 . <==這個目錄(.)所佔用的總量
**例2:**在例1的基础上将文件的容量也列出来
相较于例1,例2中的列表中将文件也显示出来了
root@iZbp1aupqg3cfppq5uigwdZ:~/TempDir# du -a
0 ./c.txt
0 ./b.txt
0 ./TempDir2/chenzhe.txt
4 ./TempDir2
4 ./a.txt
12 .
实体与符号链接:ln
Hard Link(实体链接、硬式链接或实际链接)
定义
创建实体链接后,即使删除其中一个文件名,也可以通过另一个文件名访问,只要存在一个文件名,那么记录真实数据的block(即是indoe指向的东东)就会一直存在。
格式
无任何选项和参数 生成的硬链接存储在执行命令的目录下
ln 來源檔 目標檔
新建多个文件名,指向同一个inode,从而实现不同的文件名指向同一个文件。
限制
- 不能跨文件系统
- 不能链接目录
例子
查看文件信息时可以发现,indoe的链接数变成2个了。 创建crontab的实体链接,并通过比较文件内容确认是否是同一内容。
root@iZbp1aupqg3cfppq5uigwdZ:~# ln TempDir/TempDir2/chenzhe.txt
root@iZbp1aupqg3cfppq5uigwdZ:~# ls
chenzhe.txt <==创建实体链接成功。
root@iZbp1aupqg3cfppq5uigwdZ:~# cd TempDir/TempDir2/
root@iZbp1aupqg3cfppq5uigwdZ:~/TempDir/TempDir2# cat chenzhe.txt
root@iZbp1aupqg3cfppq5uigwdZ:~/TempDir/TempDir2# vim chenzhe.txt //添加陈哲到此一游!
root@iZbp1aupqg3cfppq5uigwdZ:~/TempDir/TempDir2# cd ~
root@iZbp1aupqg3cfppq5uigwdZ:~# cat chenzhe.txt
陈哲到此一游! <= 成功,显示同一内容了
root@iZbp1aupqg3cfppq5uigwdZ:~# ll -i chenzhe.txt
271117 -rw-r--r-- 2 root root 20 Dec 5 16:18 chenzhe.txt <== 里面的2就是indoe链接数,由1变成2了。
Symolic Link(符号链接)
相当于windows中的快捷方式,就是创建一个包含指向原始文件链接的独立文件。如果原始文件被删除,那么这个快捷方式也会无法找到原始文件,然后报错
格式
ln [-sf] 來源檔 目標檔
选项与参数
- -s :如果不加任何參數就進行連結,那就是hard link,至於 -s 就是symbolic link
- -f :如果 目標檔 存在時,就主動的將目標檔直接移除後再建立!
与Hard Link相比
- 可以创建目录的快捷方式
- 相对来说没有Hard Link安全,因为其会随着原始文件的删除而失效
例子:
按我个人理解,a.txt的符号链接属于一个独立的文件,那么其是占用了一个indoe的。
创建a.txt的符号链接,通过比较其文件属性,得出二则为不同文件的结论
root@iZbp1aupqg3cfppq5uigwdZ:~# ln -s TempDir/a.txt
root@iZbp1aupqg3cfppq5uigwdZ:~# ls
a.txt <== 目录下多了与对象文件名相同的文件
root@iZbp1aupqg3cfppq5uigwdZ:~# ll -i a.txt <== 查看其属性,发现其是链接文件,且权限也与原文件不同
131057 lrwxrwxrwx 1 root root 13 Dec 5 18:13 a.txt -> TempDir/a.txt
root@iZbp1aupqg3cfppq5uigwdZ:~# ll -i TempDir/a.txt <== 原文件的文件信息
271129 -rw-r--r-- 1 root root 19 Dec 5 15:46 TempDir/a.txt
关于目录的Link数量:
创建新文件/目录时,其所在目录所持有的inode数量会增加 创建硬链接🔗,其所在的目录所持有的inode数量不会发生变化,其创建的文件指向同一个inode. 创建软链接🔗,其所在的目录所持有的inode数量会增加,因为其属于一个独立的文件。