Java充电社
专辑
博文
联系我
本人继续续收门徒,亲手指导
Linux专题
-> 磁盘管理类命令
1、本教程介绍
2、Linux入门
3、VMware和Centos7的安装
4、Linux文件与目录结构
5、VI、VIM编辑器
6、网络配置和系统管理操作
7、远程登录(Xshell)
8、系统管理
9、帮助命令(man、help)
10、文件目录类命令
11、时间日期类命令
12、用户管理命令
13、用户组管理命令
14、文件权限类命令
15、搜索查找类命令
16、压缩和解压类命令
17、磁盘管理类命令
18、进程管理类命令(ps、kill、pstree、top、netstat)
19、系统定时任务(crontab)
20、软件包管理(rpm、yum)
21、Centos7安装MySQL8
22、CentOS7中安装Nginx
23、CentOS7中安装keepalived
24、Keepalived+Nginx高可用架构
25、Linux下查找java进程耗用cpu最高的线程方法
26、Linux查看防火墙开放端口号命令
上一篇:压缩和解压类命令
下一篇:进程管理类命令(ps、kill、pstree、top、netstat)
<div style="display:none"></div> ## 17.1、磁盘查看和分区类 ### 17.1.1、du:查看文件和目录占用的磁盘空间 **1)基本语法** ```shell du 目录/文件 ``` > 显示目录下每个字母的磁盘使用情况 **2)选项说明** | 选项 | 功能 | | ------------------------------- | ---------------------------------------------------- | | -h | 以人们交易阅读的GBytes,MBytes,KBytes等格式自行显示 | | -a | 不仅查看子目录大小,还包括文件 | | -c | 显示所有的文件和子目录大小后,显示总和 | | -s | 只显示总和 | | --max-depth=n<br />或<br />-d n | 指定统计子目录的深度为第n层 | **3)案例实操** **(1)查看当前用户主目录占用的磁盘空间大小** ```shell [root@testx ~]# cd [root@testx ~]# du -sh 7.1M . ``` **(2)综合案例** ```shell [root@testx b]# tree . ├── 1.tar.gz ├── log.tar.gz └── target └── logs ├── 1.log └── 2.log 2 directories, 4 files [root@testx b]# du -h 400K ./target/logs 400K ./target 700K . [root@testx b]# du -ah 200K ./1.tar.gz 100K ./log.tar.gz 200K ./target/logs/1.log 200K ./target/logs/2.log 400K ./target/logs 400K ./target 700K . [root@testx b]# du -ah -d 1 200K ./1.tar.gz 100K ./log.tar.gz 400K ./target 700K . ``` ### 17.1.2、df:查看磁盘空间使用情况 **1)基本语法** ```shell df 选项 ``` > 列出文件系统的整体磁盘使用量,检查文件系统磁盘占用情况。 **2)选项** | 选项 | 功能 | | ---- | ---------------------------------------------------- | | -h | 以人们较易阅读的GBytes、MBytes、KBytes等格式显示大小 | **3)案例** ```shell [root@testx b]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 894M 0 894M 0% /dev tmpfs 910M 0 910M 0% /dev/shm tmpfs 910M 11M 900M 2% /run tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/mapper/centos-root 17G 5.0G 13G 29% / /dev/sda1 1014M 185M 830M 19% /boot tmpfs 182M 12K 182M 1% /run/user/42 tmpfs 182M 0 182M 0% /run/user/0 ``` ### 17.1.3、lsblk:查看设备挂载情况 **1)语法** ```shell lsblk [选项] [<设备> ...] ``` > 设备参数可以省略,此时会列出所有设备 **2)选项** | 选项 | 功能 | | ---- | ---------------------------------------- | | -f | 查看详细的设备挂载情况,显示文件系统信息 | **3)案例** **(1)lsblk:查看设备挂载信息** ```shell NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sr0 11:0 1 4.4G 0 rom ``` - NAME:块设备名 - MAJ:MIN:本栏显示主要和次要设备号 - RM:显示可移动设备。0表示非移动设备,1表示可移动设备 - SIZE:块设备的空间大小 - RO:是否只读,0表示非只读,1表示只读 - TYPE:块设备类型,比如disk磁盘,part分区,lvm逻辑卷,rom只读存储 - MOUNTPOINT:设备挂载点 **(2)lsblk -f:查看设备文件详细信息** ```shell [root@testx ~]# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 xfs afc5b580-2325-4927-8c90-be699ef0db3a /boot └─sda2 LVM2_member x8BBth-iUkR-mxG0-Kzsh-Tai1-HRUN-F0FYUy ├─centos-root xfs c7cc6061-60b3-468d-b3cd-642d164fc048 / └─centos-swap swap bf602523-785c-4b62-879b-1cbc36071c13 [SWAP] sr0 iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00 /run/media/root/CentOS 7 x86_64 ``` - NAME:设备名 - FSTYPE:文件系统类型 - UUID:文件系统ID - MOUNTPOINT:设备挂载点 **(3)lsblk 设备:查看某个设备挂载信息** ```shell [root@testx ~]# lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] ``` ### 17.1.4、mount:挂载 ```shell mount 设备 目录 ``` > 这个后面的案例中会讲。 ### 17.1.5、umount:卸载 ```shell umount <设备> | <目录> ``` ```shell umount -v /dev/sda1 umount -v /mnt/mymount/ ``` ## 17.2、磁盘管理(添加磁盘、分区、格式化、挂载) 这部分会给大家演示一下,如何在系统中添加一块硬盘,会演示介绍整个过程。 ### 17.2.1、linux如何使用一块硬盘? 大家可以把硬盘想象成一个大房子,房子里面有很多房间,房间需要装修后才能入住,才能够放东西 #### 1)硬盘 相当于一个大房子 #### 2)分区 硬盘想要使用,也需要像房子一样划分成一块块的区域,这个就叫分区,一个分区相当于房子中的一个房间。 在linux中一块硬盘只能划分成4个大的分区,如果想划分更多的分区怎么办呢? 这里就涉及到分区的类型了,即主分区和扩展分区 - **主分区**:内部不能在创建小房间的分区,即一块硬盘最多只能有4个主分区,即4个分区的类型都是主分区。 - **扩展分区**:内部可以继续划分成小房间的分区,一块磁盘中最多只能有一个扩展分区,扩展分区内部可以划分成很多小房间,这些小房间叫做逻辑分区。 #### 3)格式化 对分区进行格式化,相当于对房间进行装修,装修后然后才能放东西,即格式化之后,分区中才能够存储数据 #### 4)挂载 分区经过格式化之后,可以放数据了,而linux中是通过目录来访问文件的,而真正存储数据的是磁盘中的分区,此时目录就需要和分区有个映射关系,创建映射关系这个过程就是挂载的过程,将某个区分和某个目录联系起来,当向这个目录中放文件的时候,实际上就向目录关联的分区中放东西。 ### 17.2.2、硬盘说明 - linux硬盘分IDE硬盘和SCSI硬盘,目前基本上都是SCSI硬盘 - 对应IDE硬盘,驱动器标识符为"hdx~",其中“hd”表名分区所在的设备的类型,这里是指IDE硬盘了,“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,钱4个分区用数字1到5表示,他们是主分区或者扩展分区,从5开始就是逻辑分区,例如,hda3表示为第一个IDE硬盘上第3个主分区或扩展分区,hdb2表示第2个IDE硬盘上的第2个主分区或扩展分区 - 对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在的设备的类型的,其余则和IDE硬盘的表示方法一样 使用`lsblk`可以看到系统硬盘情况,下面我们来看一下 ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/0669c37c-e495-458e-b017-7f048bc9d499.png) TYPE列为disk的表示硬盘,可以看出只有一块硬盘,名称为`sda`,sd开头的是SCSI类型硬盘,这个硬盘下面有2个分区(TYPE类型为part的) - sda1:第一个主分区 - sda2:扩展分区,下面有2个逻辑分区(TYPE列为lvm的) - centos-root:逻辑分区,挂载点是/,表示/目录中的数据这个分区中放在 - centos-swap:逻辑分区,挂载点是[SWAP:交换分区],类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用 ## 17.3、案例:演示添加硬盘的过程(含分区、格式化、挂载整个过程) 这个过程还是挺重要,当我们系统中磁盘空间不足的时候,我们需要添加硬盘,就涉及到这个过程。 ### 1)需求 添加一块20G的硬盘,分3个主分区,1个扩展分区,扩展分区下面挂2个逻辑分区,由于我们系统中已经存在一块硬盘了:sda,那么我们重新添加一块硬盘,名称就变成:sdb了,对应的分区如下,如果大家要创建的分区和这个不一样,将过程调整一下就可以了。 | 分区名称 | 类型(P:主分区,E:扩展分区,L:逻辑分区) | 大小(G) | 文件系统类型 | | -------- | ------------------------------------------- | --------- | ------------ | | sdb1 | P | 4G | xfs | | sdb2 | P | 5G | xfs | | sdb3 | P | 6G | xfs | | sdb4 | E | | | | sdb5 | L | 2G | xfs | | sdb6 | L | 3G | xfs | ### 2)添加一块20G的硬盘 VMware左侧窗口,选中当前虚拟机->右键->设置 ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/d654c107-5090-49ef-a40f-9b05b1e43941.png) ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/8bafd633-c888-4ee6-9e59-b8a606127a39.png) ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/23202616-f03e-4fea-a10f-05e53c7be99d.png) ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/53fcd43e-1f52-400d-8ab9-62bb4cf7541b.png) ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/16aa158f-e74d-4508-9941-2d49c5ba300a.png) ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/938c3cee-da37-4fba-9653-ea8144c5d55d.png) ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/9f919899-a3ce-4dbd-b0c0-ff2221d794ac.png) ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/ad87b040-0aee-430f-b2cb-675361141569.png) ### 3)重启机器,即可看到新的硬盘 需要重启机器之后,可以看到这颗硬盘,所以执行reboot,重启机器。 重启之后,用`lsblk`命令,即可看到新加的硬盘:`sdb` ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/9bcbeead-48ce-45e0-9b88-6026f2e35c6d.png) 这里说一下,linux中所有设备都是用文件来表示的,都在/dev目录用一个文件表示,磁盘也是一样的,我们通过下面命令来看一下 ```shell [root@testx ~]# ll /dev | grep -w "sd." brw-rw----. 1 root disk 8, 0 5月 10 17:26 sda brw-rw----. 1 root disk 8, 16 5月 10 17:26 sdb ``` - /dev/sda:对应第1块硬盘 - /dev/sdb:对应第2块硬盘 ### 4)创建第1个主分区:sdb1,大小为4G 需要用到一个新的命令:`fdisk 磁盘`,来对磁盘进行分区,这里我们需要对`sdb`这块磁盘进行分区,所以需用`fdisk /dev/sdb`来进行操作。 **(1)执行`fdisk /dev/sdb`命令** ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/7ebc0496-9f60-4cb2-b031-c24b1e3c3515.png) **(2)输入m,查看帮助** - n:在当前磁盘创建一个新的分去 - d:在当前磁盘删除一个分区 - p:列出当前磁盘分区信息 - w:保存配置并退出 ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/3691c97e-76b4-4829-9e31-0a4a579e4f52.png) **(3)输入n:创建分区,提示让我们选择创建的分区类型,我们要创建是主分区,所以需要选择p** > p:主分区 > > e:扩展分区 ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/3b3ec642-65a9-4692-aa37-7cb7bf29386d.png) **(4)输入p:提示如下,此时会让我们选择分区编号,这里可以看出分区编号只能有4个** ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/ad3f946c-cb98-4799-8dd7-6e57669e6c0b.png) **(5)输入分区编号1,如下,又会提示让我们输入扇区的位置,直接按enter键就行了,会自动取默认值** ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/bf6ec152-5352-4846-93b8-da7ec4ebfd8e.png) **(6)输入分区的大小:+4G,注意这里的格式:+size{K,M,G}这单位有大小写的,不要写错了** ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/7e7262fa-ebb1-4d3c-aaff-c0999a46dc66.png) **(7)输入p看一下,目前的分区信息,如下** > 可以看到列表中目前只有一个分区:/dev/sdb1 ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/54395081-d6de-4965-8315-288e07a57c77.png) ### 5)创建第2个主分区:sdb2,大小为5G > 过程参考第4步中创建第一个分区的过程。 ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/0604b36f-3c29-4c8c-bccb-f6ca0e3868d3.png) ### 6)创建第3个主分区:sdb3,大小为6G ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/e89ea257-ab99-45fb-9cfc-b456b0a83d3e.png) ### 7)创建扩展分区:sdb4,大小为剩下的空间 > 过程和上面的上面创建分区的过程有点不同 > > - 分区类型选择的是e,不能选p哦 > - 输入大小的时候,直接按enter就行了,空间大小为剩余的空间,即5G ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/f16e2123-8d42-4878-b1e4-07fb5271a4cd.png) ### 8)创建逻辑分区:sdb5,大小为2G ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/0a68229b-5549-4180-a168-910587308106.png) ### 9)创建逻辑分区:sdb6,大小为3G ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/300e942d-795d-4310-bb0d-144f6314a52a.png) ### 10)输入p查看分区列表,6个分区都ok了 ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/3e756127-b1fd-4ad9-a2c3-d7992ec3065b.png) ### 11)输入w保存并退出(别忘啦) > 输入w:保存配置并退出,否则就白搞了 ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/284/e48af14e-7a9b-4273-9575-7defe48010d1.png) ### 12)查看/dev/sdb磁盘分区挂载情况 ```shell [root@testx ~]# lsblk -f /dev/sdb NAME FSTYPE LABEL UUID MOUNTPOINT sdb ├─sdb1 ├─sdb2 ├─sdb3 ├─sdb4 ├─sdb5 └─sdb6 ``` ### 13)格式化第一个分区sdb1 需要使用`mkfs`命令对分区进行格式化,语法 ```shell mkfs -t 文件类型 设备 ``` 这里文件类型我们选择`xfs`,文件类型这里不介绍了,大家可以自行百度。 执行下面命令对sdb1分区进行格式化 ```shell [root@testx ~]# mkfs -t xfs /dev/sdb1 meta-data=/dev/sdb1 isize=512 agcount=4, agsize=262144 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=1048576, 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 ``` ### 14)格式化其他几个分区(不包含扩展分区) ```shell mkfs -t xfs /dev/sdb2 mkfs -t xfs /dev/sdb3 mkfs -t xfs /dev/sdb5 mkfs -t xfs /dev/sdb6 ``` ### 15)挂载 分区格式化好,然后需要将其和目录进行关联起来之后才可以使用,这个过程就是挂载的过程。 **挂载有2种方式** - 方式1:使用mount命令进行挂载,重启会丢失 - 方式2:修改文件的方式,持久性的,重启之后不会丢失 ### 16)使用mount命令进行挂载 mount挂载语法如下,将分区挂载到目标目录 ```shell mount 设备 目标目录 ``` **分区和目录的映射关系如下** | 分区(也叫挂载点或者设备) | 目录 | | -------------------------- | -------------- | | /dev/sdb1 | /home/xxx/dir1 | | /dev/sdb2 | /home/xxx/dir2 | | /dev/sdb3 | /home/xxx/dir3 | | /dev/sdb5 | /home/xxx/dir5 | | /dev/sdb6 | /home/xxx/dir6 | 执行下面命令,对5个分区进行挂载到表格中对应的目录 ```shell [root@testx home]# mkdir -p /home/xxx/dir1 /home/xxx/dir2 /home/xxx/dir3 /home/xxx/dir5 /home/xxx/dir6 [root@testx home]# mount /dev/sdb1 /home/xxx/dir1/ [root@testx home]# mount /dev/sdb2 /home/xxx/dir2/ [root@testx home]# mount /dev/sdb3 /home/xxx/dir3/ [root@testx home]# mount /dev/sdb5 /home/xxx/dir5/ [root@testx home]# mount /dev/sdb6 /home/xxx/dir6/ ``` 再来看看挂载后的情况,如下 ```shell [root@testx dir1]# lsblk -f /dev/sdb NAME FSTYPE LABEL UUID MOUNTPOINT sdb ├─sdb1 xfs aaac1551-a072-4bd7-a8b0-a0209011f8ca /home/xxx/dir1 ├─sdb2 xfs bed7ee3e-2f6f-408c-b720-49af694bbc7a /home/xxx/dir2 ├─sdb3 xfs 6e712f33-c47a-423a-9bfd-372434437549 /home/xxx/dir3 ├─sdb4 ├─sdb5 xfs 30f62f64-316e-477d-8b59-99fec197ac28 /home/xxx/dir5 └─sdb6 xfs 18768b27-579c-4b2c-bf9d-326eb47bb7c5 /home/xxx/dir6 ``` 下面来测试一下效果,向`/home/xxx/dir1`目录中扔个大文件,看看对应的分区`/dev/sdb1`磁盘使用情况是否发生变化了 ```shell [root@testx dir1]# df -h /dev/sdb1 文件系统 容量 已用 可用 已用% 挂载点 /dev/sdb1 4.0G 33M 4.0G 1% /home/xxx/dir1 [root@testx dir1]# find / -size +100M [root@testx dir1]# cp /var/cache/yum/x86_64/7/updates/packages/firefox-91.8.0-1.el7.centos.x86_64.rpm /home/xxx/dir1 [root@testx dir1]# ll -h /home/xxx/dir1/ 总用量 107M -rw-r--r--. 1 root root 12 5月 10 19:42 1.txt -rw-r--r--. 1 root root 107M 5月 10 19:52 firefox-91.8.0-1.el7.centos.x86_64.rpm [root@testx dir1]# df -h /dev/sdb1 文件系统 容量 已用 可用 已用% 挂载点 /dev/sdb1 4.0G 139M 3.9G 4% /home/xxx/dir1 ``` ### 17)设置自动挂载 mount命令的挂载方式,重启后挂载关系会丢失。 linux提供了自动挂载的方式:配置文件`/etc/fstab`,用来配置设备的挂载信息,系统启动后会自动读取这个目录,执行自动挂载操作。 将下面信息加入到`/etc/fstab`中,即可实现自动挂载 ```shell /dev/sdb1 /home/xxx/dir1 xfs defaults 0 0 /dev/sdb2 /home/xxx/dir2 xfs defaults 0 0 /dev/sdb3 /home/xxx/dir3 xfs defaults 0 0 /dev/sdb5 /home/xxx/dir5 xfs defaults 0 0 /dev/sdb6 /home/xxx/dir6 xfs defaults 0 0 ``` <a style="display:none" target="_blank" href="https://mp.weixin.qq.com/s/_S1DD2JADnXvpexxaBwLLg" style="color:red; font-size:20px; font-weight:bold">继续收门徒,亲手带,月薪 4W 以下的可以来找我</a> ## 最新资料 1. <a href="https://mp.weixin.qq.com/s?__biz=MzkzOTI3Nzc0Mg==&mid=2247484964&idx=2&sn=c81bce2f26015ee0f9632ddc6c67df03&scene=21#wechat_redirect" target="_blank">尚硅谷 Java 学科全套教程(总 207.77GB)</a> 2. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247484192&idx=1&sn=505f2faaa4cc911f553850667749bcbb&scene=21#wechat_redirect" target="_blank">2021 最新版 Java 微服务学习线路图 + 视频</a> 3. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247484573&idx=1&sn=7f3d83892186c16c57bc0b99f03f1ffd&scene=21#wechat_redirect" target="_blank">阿里技术大佬整理的《Spring 学习笔记.pdf》</a> 4. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247484544&idx=2&sn=c1dfe907cfaa5b9ae8e66fc247ccbe84&scene=21#wechat_redirect" target="_blank">阿里大佬的《MySQL 学习笔记高清.pdf》</a> 5. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247485167&idx=1&sn=48d75c8e93e748235a3547f34921dfb7&scene=21#wechat_redirect" target="_blank">2021 版 java 高并发常见面试题汇总.pdf</a> 6. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247485664&idx=1&sn=435f9f515a8f881642820d7790ad20ce&scene=21#wechat_redirect" target="_blank">Idea 快捷键大全.pdf</a> ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/1/2883e86e-3eff-404a-8943-0066e5e2b454.png)
#custom-toc-container