[TOC]
# <span style="font-size:15px">1、查看linux服务器的文件系统的磁盘空间占用情况:df [option] file</span>
> **说明**:
> * 可以用来查看磁盘已被使用多少空间和还剩余多少空间
>* 如果没有文件名参数,则显示所有当前已挂载文件系统的磁盘空间使用情况。
> * 在默认情况下,磁盘空间是以**1KB**为单位进行显示的,但是,如果**POSIXLY\_CORRECT**环境变量被设置为true,这种情况下默认使用**512字节**为单位显示
>
> **option:**
> * -a 显示所有的文件系统,包括虚拟文件系统
> * --block-size=SIZE 指定块的大小,比如1k,1m等
> * -h 用常见的格式显示出大小(例如:1K 234M 2G)
> * -H 同上,但是这里的1k等于1000字节而不是1024字节
> * -i 用信息索引点代替块表示使用状况
> * -k 指定块大小等于1024字节来显示使用状况,相当于`--block-size=1k`
> * -l 只显示本地文件系统使用状况
> * -m 以指定块大小等于1048576字节(1M)来显示使用状况,相当于`--block-size=1m`
> * --no-sync 在取得使用信息前禁止调用同步 (default)
> * -P 使用POSIX格式输出
> * --sync 在取得使用信息前调用同步
> * -t 只显示指定类型(TYPE)的文件系统
> * -T 输出每个文件系统的类型
> * -x, --exclude-type=TYPE 只显示指定类型(TYPE)之外的文件系统.
> * -v 输出该命令的帮助信息并退出
>
> **输出列说明:**
> * Filesystem:代表该文件系统时哪个分区,所以列出的是设备名称。
> * 1K-blocks:说明下面的数字单位是1KB,可利用`-h`或`-m`来改变单位大小,也可以用`-B`来设置。
> * Used:已经使用的空间大小。
> * Available:剩余的空间大小。
> * Use%:磁盘使用率。如果使用率在90%以上时,就需要注意了,避免磁盘容量不足出现系统问题,尤其是对于文件内容增加较快的情况(如/home、/var/spool/mail等)。
> * Mounted on:磁盘挂载的目录,即该磁盘挂载到了哪个目录下面。
```
[root@izwz91quxhnlkan8kjak5hz /]# df // 默认情况
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/vda1 41151808 10770136 28268240 28% /
devtmpfs 931032 0 931032 0% /dev
tmpfs 941108 1796 939312 1% /dev/shm
tmpfs 941108 432 940676 1% /run
tmpfs 941108 0 941108 0% /sys/fs/cgroup
tmpfs 188224 0 188224 0% /run/user/0
[root@izwz91quxhnlkan8kjak5hz /]# df /home/ // 指定文件夹或文件
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/vda1 41151808 10770212 28268164 28% /
[root@izwz91quxhnlkan8kjak5hz /]# df --block-size 1m // 或者:df -B 1m 指定单位大小 以1m为单位
文件系统 1M-块 已用 可用 已用% 挂载点
/dev/vda1 40188 10511 27613 28% /
devtmpfs 910 0 910 0% /dev
tmpfs 920 2 918 1% /dev/shm
tmpfs 920 1 919 1% /run
tmpfs 920 0 920 0% /sys/fs/cgroup
tmpfs 184 0 184 0% /run/user/0
[root@izwz91quxhnlkan8kjak5hz /]# df -h // 以已读形式显示
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 40G 11G 27G 28% /
devtmpfs 910M 0 910M 0% /dev
tmpfs 920M 1.8M 918M 1% /dev/shm
tmpfs 920M 432K 919M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs 184M 0 184M 0% /run/user/0
[root@izwz91quxhnlkan8kjak5hz /]# df -t ext4 // 指定文件类型
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/vda1 41151808 10763884 28274492 28% /
[root@izwz91quxhnlkan8kjak5hz /]# df -T // 输出每个文件系统的类型
文件系统 类型 1K-块 已用 可用 已用% 挂载点
/dev/vda1 ext4 41151808 10763872 28274504 28% /
devtmpfs devtmpfs 931032 0 931032 0% /dev
tmpfs tmpfs 941108 1800 939308 1% /dev/shm
tmpfs tmpfs 941108 432 940676 1% /run
tmpfs tmpfs 941108 0 941108 0% /sys/fs/cgroup
tmpfs tmpfs 188224 0 188224 0% /run/user/0
[root@izwz91quxhnlkan8kjak5hz /]# export POSIXLY_CORRECT=true
[root@izwz91quxhnlkan8kjak5hz /]# echo $POSIXLY_CORRECT
true
[root@izwz91quxhnlkan8kjak5hz /]# df // POSIXLY\_CORRECT为true时,默认512B展示
文件系统 类型 512B-块 已用 可用 已用% 挂载点
/dev/vda1 ext4 82303616 21529552 56547200 28% /
devtmpfs devtmpfs 1862064 0 1862064 0% /dev
tmpfs tmpfs 1882216 3600 1878616 1% /dev/shm
tmpfs tmpfs 1882216 864 1881352 1% /run
tmpfs tmpfs 1882216 0 1882216 0% /sys/fs/cgroup
tmpfs tmpfs 376448 0 376448 0% /run/user/0
[root@izwz91quxhnlkan8kjak5hz /]# df -T -x ext4 // 排除ext4类型文件
文件系统 类型 512B-块 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1862064 0 1862064 0% /dev
tmpfs tmpfs 1882216 3600 1878616 1% /dev/shm
tmpfs tmpfs 1882216 864 1881352 1% /run
tmpfs tmpfs 1882216 0 1882216 0% /sys/fs/cgroup
tmpfs tmpfs 376448 0 376448 0% /run/user/0
```
# <span style="font-size:15px">2、显示指定的目录或文件所占用的磁盘空间:du [option] file</span>
> **说明:**
> * 默认单位是1024字节,若设置了环境变量POSIXLY_CORRECT为true,则是以512字节为单位
>
> **option:**
> * -a, --all 显示对所有文件的统计,而不只是包含子目录。
> * -b, --bytes 输出以字节为单位的大小,替代缺省时1024字节的计数单位
> * --block-size=size 输出以块为单位的大小,块的大小为 size 字节
> * -c, --total 除了列出文件和目录的容量大小外,列出总的容量大小
> * -D, --dereference-args 引用命令行参数的符号连接。但不影响其他的符号连接。 这对找出象 /usr/tmp 这样的目录的磁盘使用量有用, /usr/tmp 等通常是符号连接。 译住:例如在 /var/tmp 下建立一个目录test, 而/usr/tmp 是指向 /var/tmp 的符号连接。du /usr/tmp 返回一项 /usr/tmp , 而 du - D /usr/tmp 返回两项 /usr/tmp,/usr/tmp/test
> * --exclude=pattern 在递归时,忽略与指定模式相匹配的文件或子目录。模式 可以是任何 Bourne shell 的文件 glob 模式
> * -h, --human-readable 以人们易读的方式(KB,MB,GB)显示容量大小
> * -k 和`--block-size=1k`类似,以KB为单位。
> * -m 和`--block-size=1m`类似,以MB为单位
> * -l, --count-links 统计所有文件的大小,包括已经被统计过的
> * -L, --dereference 引用符号连接(不是显示连接点本身而是连接指向的文件或 目录所使用的磁盘空间)
> * --max-depth=n 只输出命令行参数的小于等于第 n 层的目录的总计。 --max-depth=0的作用同于-s选项,如果`--max-depth=1`,就相当于`du -s 目录/*`
> * -s, --summarize 对每个参数只显示总和
> * -S, --separate-dirs 单独报告每一个目录的大小,不包括子目录的大小
> * -x, --one-file-system 忽略与被处理的参数不在同一个文件系统的目录
> * -X file, --exclude-from=file 除了从指定的文件中得到模式之外与 --exclude 一样。 模式以行的形式列出。如果指定的文件是'-',那么从标准输 入中读出模式
```
[root@izwz91quxhnlkan8kjak5hz test]# du // 默认情况下,只统计目录的容量大小
8 ./dir2/dir3
16 ./dir2
8 ./dir1
28 .
[root@izwz91quxhnlkan8kjak5hz test]# du -a // 统计目录和文件的容量大小
4 ./dir2/test.txt
4 ./dir2/dir3/test3
8 ./dir2/dir3
16 ./dir2
4 ./dir1/sed.txt
8 ./dir1
28 .
[root@izwz91quxhnlkan8kjak5hz test]# du -c dir2/ // 指定文件夹,并在最下面显示总的容量大小
8 dir2/dir3
16 dir2/
16 总用量
[root@izwz91quxhnlkan8kjak5hz test]# du -b dir2 // 输出以字节为单位的大小
5096 dir2/dir3
9227 dir2
[root@izwz91quxhnlkan8kjak5hz test]# du -B 1k dir2 // 同:du --block-size 1k dir2,指定单位大小
8 dir2/dir3
16 dir2
[root@izwz91quxhnlkan8kjak5hz test]# du -h dir2 // 以易读的方式展示
8.0K dir2/dir3
16K dir2
[root@izwz91quxhnlkan8kjak5hz test]# du -ah --max-depth=1 // 通过指定递归深度方式
4.0K ./file
16K ./dir2
8.0K ./dir1
32K .
[root@izwz91quxhnlkan8kjak5hz test]# du -ah * | sort -rh // 查看目录下所有文件的大小并按照大小排序
16K dir2
8.0K dir2/dir3
8.0K dir1
4.0K file
4.0K dir2/test.txt
4.0K dir2/dir3/test3
4.0K dir1/sed.txt
```
# <span style="font-size:15px">3、列出所有指定的块设备的信息:lsblk [选项] [<设备> ...]</span>
> * -a, --all 打印所有设备
> * -b, --bytes 以字节为单位而非易读的格式来打印 SIZE
> * -d, --nodeps 不打印从属设备(slave)或占位设备(holder)
> * -D, --discard 打印时丢弃能力
> * -e, --exclude <列表> 根据主设备号排除设备(默认:内存盘)
> * -I, --include <列表> 只显示有指定主设备号的设备
> * -f, --fs 输出文件系统信息
> * -h, --help 使用信息(此信息)
> * -i, --ascii 只使用 ascii 字符
> * -m, --perms 输出权限信息
> * -l, --list 使用列表格式的输出
> * -n, --noheadings 不打印标题
> * -o, --output <列表> 输出列
> * -p, --paths 打印完整设备路径
> * -P, --pairs 使用 key=“value” 输出格式
> * -r, --raw 使用原生输出格式
> * -s, --inverse 反向依赖
> * -t, --topology 输出拓扑信息
> * -S, --scsi 输出有关 SCSI 设备的信息
> * -h, --help 显示此帮助并退出
> * -V, --version 输出版本信息并退出
```
// 以树状列出所有块设备
[root@izwz91quxhnlkan8kjak5hz command]# lsblk -a
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 40G 0 disk
└─vda1 253:1 0 40G 0 part /
// 输出权限信息
[root@izwz91quxhnlkan8kjak5hz command]# lsblk -m
NAME SIZE OWNER GROUP MODE
vda 40G root disk brw-rw----
└─vda1 40G root disk brw-rw----
// 输出文件系统信息
[root@izwz91quxhnlkan8kjak5hz command]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
vda
└─vda1 ext4 eb448abb-3012-4d8d-bcde-94434d586a31 /
// 以列表格式列出设备,而不是默认的树状格式
[root@izwz91quxhnlkan8kjak5hz command]# lsblk -nl
vda 253:0 0 40G 0 disk
vda1 253:1 0 40G 0 part /
// 指定块设备查看权限信息
[root@izwz91quxhnlkan8kjak5hz command]# lsblk -m /dev/vda1
NAME SIZE OWNER GROUP MODE
vda1 40G root disk brw-rw----
```
- PHP
- PHP基础
- PHP介绍
- 如何理解PHP是弱类型语言
- 超全局变量
- $_SERVER详解
- 字符串处理函数
- 常用数组函数
- 文件处理函数
- 常用时间函数
- 日历函数
- 常用url处理函数
- 易混淆函数区别(面试题常见)
- 时间戳
- PHP进阶
- PSR规范
- RESTFUL规范
- 面向对象
- 三大基本特征和五大基本原则
- 访问权限
- static关键字
- static关键字
- 静态变量与普通变量
- 静态方法与普通方法
- const关键字
- final关键字
- abstract关键字
- self、$this、parent::关键字
- 接口(interface)
- trait关键字
- instanceof关键字
- 魔术方法
- 构造函数和析构函数
- 私有属性的设置获取
- __toString()方法
- __clone()方法
- __call()方法
- 类的自动加载
- 设计模式详解
- 关于设计模式的一些建议
- 工厂模式
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 区别和适用范围
- 策略模式
- 单例模式
- HTTP
- 定义
- 特点
- 工作过程
- request
- response
- HTTP状态码
- URL
- GET和POST的区别
- HTTPS
- session与cookie
- 排序算法
- 冒泡排序算法
- 二分查找算法
- 直接插入排序算法
- 希尔排序算法
- 选择排序算法
- 快速排序算法
- 循环算法
- 递归与尾递归
- 迭代
- 日期相关的类
- DateTimeInterface接口
- DateTime类
- DateTimeImmutable类
- DateInterval类
- DateTimeZone类
- DatePeriod类
- format参数格式
- DateInterval的format格式化参数
- 预定义接口
- ArrayAccess(数组式访问)接口
- Serializable (序列化)接口
- Traversable(遍历)接口
- Closure类
- Iterator(迭代器)接口
- IteratorAggregate(聚合迭代器) 接口
- Generator (生成器)接口
- composer
- composer安装与使用
- python
- python3执行tarfile解压文件报错:tarfile.ReadError:file could not be opened successfully
- golang
- 单元测试
- 单元测试框架
- Golang内置testing包
- GoConvey库
- testify库
- 打桩与mock
- GoMock框架
- Gomonkey框架
- HTTP Mock
- httpMock
- mux库/httptest
- 数据库
- MYSQL
- SQL语言的分类
- 事务(重点)
- 索引
- 存储过程
- 触发器
- 视图
- 导入导出数据库
- 优化mysql数据库的方法
- MyISAM与InnoDB区别
- 外连接、内连接的区别
- 物理文件结构
- PostgreSQL
- 编译安装
- pgsql常用命令
- pgsql应用目录(bin目录)文件结构解析
- pg_ctl
- initdb
- psql
- clusterdb
- cluster命令
- createdb
- dropdb
- createuser
- dropuser
- pg_config
- pg_controldata
- pg_checksums
- pgbench
- pg_basebackup
- pg_dump
- pg_dumpall
- pg_isready
- pg_receivewal
- pg_recvlogical
- pg_resetwal
- pg_restore
- pg_rewind
- pg_test_fsync
- pg_test_timing
- pg_upgrade
- pg_verifybackup
- pg_archivecleanup
- pg_waldump
- postgres
- reindexdb
- vacuumdb
- ecpg
- pgsql数据目录文件结构解析
- pgsql数据目录文件结构解析
- postgresql.conf解析
- pgsql系统配置参数说明
- pgsql索引类型
- 四种索引类型解析
- 索引之ctid解析
- 索引相关操作
- pgsql函数解析
- pgsql系统函数解析
- pgsql窗口函数解析
- pgsql聚合函数解析
- pgsql系统表解析
- pg_stat_all_indexes
- pg_stat_all_tables
- pg_statio_all_indexes
- pg_statio_all_tables
- pg_stat_database
- pg_stat_statements
- pg_extension
- pg_available_extensions
- pg_available_extension_versions
- pgsql基本原理
- 进程和内存结构
- 存储结构
- 数据文件的内部结构
- 垃圾回收机制VACUUM
- 事务日志WAL
- 并发控制
- 介绍
- 事务ID-txid
- 元组结构-Tuple Structure
- 事务状态记录-Commit Log (clog)
- 事务快照-Transaction Snapshot
- 事务快照实例
- 事务隔离
- 事务隔离级别
- 读已提交-Read committed
- 可重复读-Repeatable read
- 可序列化-Serializable
- 读未提交-Read uncommitted
- 锁机制
- 扩展机制解析
- 扩展的定义
- 扩展的安装方式
- 自定义创建扩展
- 扩展的管理
- 扩展使用实例
- 在pgsql中使用last、first聚合函数
- pgsql模糊查询不走索引的解决方案
- pgsql的pg_trgm扩展解析与验证
- 高可用
- LNMP
- LNMP环境搭建
- 一键安装包
- 搭建方法
- 配置文件目录
- 服务器管理系统
- 宝塔(Linux)
- 安装与使用
- 开放API
- 自定义apache日志
- 一键安装包LNMP1.5
- LNMP1.5:添加、删除站点
- LNMP1.5:php多版本切换
- LNMP1.5 部署 thinkphp项目
- Operation not permitted解决方法
- Nginx
- Nginx的产生
- 正向代理和反向代理
- 负载均衡
- Linux常用命令
- 目录与文件相关命令
- 目录操作命令
- 文件编辑命令
- 文件查看命令
- 文件查找命令
- 文件权限命令
- 文件上传下载命令
- 用户和群组相关命令
- 用户与用户组的关系
- 用户相关的系统配置文件
- 用户相关命令
- 用户组相关命令
- 压缩与解压相关命令
- .zip格式
- .tar.gz格式
- .gz格式
- .bz2格式
- 查看系统版本
- cpuinfo详解
- meminfo详解
- getconf获取系统信息
- 磁盘空间相关命令
- 查看系统负载情况
- 系统环境变量
- 网络相关命令
- ip命令详解
- ip命令格式详解
- ip address命令详解
- ip link命令详解
- ip rule命令详解
- ip route命令详解
- nslookup命令详解
- traceroute命令详解
- netstat命令详解
- route命令详解
- tcpdump命令详解
- 系统进程相关命令
- ps命令详解
- pstree命令详解
- kill命令详解
- 守护进程-supervisord
- 性能监控相关命令
- top命令详解
- iostat命令详解
- pidstat命令详解
- iotop命令详解
- mpstat命令详解
- vmstat命令详解
- ifstat命令详解
- sar命令详解
- iftop命令详解
- 定时任务相关命令
- ssh登录远程主机
- ssh口令登录
- ssh公钥登录
- ssh带密码登录
- ssh端口映射
- ssh配置文件
- ssh安全设置
- 历史纪录
- history命令详解
- linux开启操作日志记录
- 拓展
- git
- git初始化本地仓库-https
- git初始化仓库-ssh
- git-查看和设置config配置
- docker
- 概念
- docker原理
- docker镜像原理
- docker Overlay2 文件系统原理
- docker日志原理
- docker日志驱动
- docker容器日志管理
- 原理论证
- 验证容器的启动是作为Docker Daemon的子进程
- 验证syslog类型日志驱动
- 验证journald类型日志驱动
- 验证local类型日志驱动
- 修改容器的hostname
- 修改容器的hosts
- 验证联合挂载技术
- 验证启动多个容器对于磁盘的占用情况
- 验证写时复制原理
- 验证docker内容寻址原理
- docker存储目录
- /var/lib/docker目录
- image目录
- overlay2目录
- 数据卷
- 具名挂载和匿名挂载
- 数据卷容器
- Dockerfile详解
- dockerfile指令详解
- 实例:构造centos
- 实例:CMD和ENTRYPOINT的区别
- docker网络详解
- docker-compose
- 缓存
- redis
- redis的数据类型和应用场景
- redis持久化
- RDB持久化
- AOF持久化
- redis缓存穿透、缓存击穿、缓存雪崩
- 常见网络攻击类型
- CSRF攻击
- XSS攻击
- SQL注入
- Cookie攻击
- 历史项目经验
- 图片上传项目实例
- 原生php上传方法实例
- base64图片流
- tp5的上传方法封装实例
- 多级关系的递归查询
- 数组转树结构
- thinkphp5.1+ajax实现导出Excel
- JS 删除数组的某一项
- 判断是否为索引数组
- ip操作