常用命令
# 查看磁盘使用空间 df -h # 查看当前目录下的文件和子目录的大小 du -sh * # 查看深度为 0 的目录的大小,这仅会列出当前目录的大小 du -h -d 0 # 查看深度为 1 的目录的大小,这仅会列出当前目录和子目录的大小 du -h -d 1 # 查看深度为 2 的目录的大小,并以 M 为单位从大到小排序 du -m -d 2 | sort -nr # 以 M 为单位,从大到小排序 du -sm * | sort -nr # 以 M 为单位,从大到小排序,显示前3个 du -sh * | head -n 3 # 以 K、M、G 为单位显示并过滤,从大到小排序 du -sh * | grep K | sort -nr du -sh * | grep M | sort -nr du -sh * | grep G | sort -nr # 统计 Nginx 访问日志,查出排名前 5 的请求IP(这对于找出爬虫行为的IP很有用) cat /var/log/nginx/access.log |awk '{print $1}'|sort -nr|uniq -c|sort -nr |head -5 # 使用 grep 排除不显示含有 1.1.1.1 和 2.2.2.2 的IP cat /var/log/nginx/access.log |awk '{print $1}'|sort -nr|uniq -c|sort -nr | grep -v "1.1.1.1\|2.2.2.2" | head -5
注意:ls
和 du
显示出来的文件大小有差别,这个是因为稀疏文件的缘故,稀疏文件中的 “洞” 不占存储空间。
du 参数解释
- -d 用于指定深入到的目录的层级
- -s 仅显示总计
- -h 以K,M,G为单位,提高信息的可读性
- -m 以1MB为单位
- -k 以1024 bytes为单位
更多参数请参考 Linux du 命令
sort 参数解释
- -n 依照数值的大小排序
- -r 以相反的顺序来排序
更多参数请参考 Linux sort 命令。
uniq
uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
当重复的行并不相邻时,uniq 命令是不起作用的,这时我们就可以先使用 sort:
sort access.log | uniq -c
- -c 在每列旁边显示该行重复出现的次数
参数参考:Linux uniq 命令