Linux磁盘分区和挂载
- Linux无论有几个分区,分给哪一个目录使用,归根结底只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都用来组成整个文件系统的一部分
- Linux采用了一种叫”载入“ 的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。此时需要载入的一个分区将使它的存储空间在一个目录下获得
Linux 硬盘主要分成 IDE 硬盘和SCSI 硬盘,目前基本上使SCSI硬盘
IDE硬盘,驱动器标识符为”hdx~“,其中”hd“表明分区所在设备的类型,这里是指IDE因公安。”x“代表盘号(a:基本盘,b:基本从属盘,c:辅助从属盘)" ~"代表分区,前四个分区用数字1到4表示,他们是主分区或扩展分区,从5开始便是逻辑分区
对于SCSI硬盘则标识为”sdx~“,SCSI硬盘是用”sd“来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一致
查看所有设备的挂载情况
[root@rootylq ~]# clear
[root@rootylq ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 40G 0 disk
└─vda1 253:1 0 40G 0 part /
[root@rootylq ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
vda
└─vda1 ext4 c21fa2c1-70d0-40d1-9dd8-10ee068c30d8 /
[root@rootylq ~]#
Linux磁盘挂载案例
对磁盘进行分区
fdisk /dev/sdb
命令 | 选项 |
---|---|
m | 显示命令列表 |
p | 显示磁盘分区 同fdisk -l |
n | 新增分区 |
d | 删除分区 |
w | 写入并退出 |
开始分区后输入n,新增分区,然后选择p,分区类型为主分区,两次回车默认剩余全部空间,最后输入w写入分区并退出,若不保存退出输入q
对分区进行格式化
mkfs -t ext4 /dev/sdb1
分区挂载
mount /dev/sdb1 /newdisk/
卸载分区挂载
umount /dev/sdb1
用命令行挂载的方式,重启后会失效
永久实现磁盘分区挂载
- 通过修改/etc/fstab实现挂载
- 添加完成后,执行mount -a即刻生效
磁盘情况查询
[root@rootylq ~]# clear
[root@rootylq ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 16K 919M 1% /dev/shm
tmpfs 919M 520K 919M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/vda1 40G 6.4G 32G 17% /
tmpfs 184M 0 184M 0% /run/user/0
[root@rootylq ~]#
查询指定目录的磁盘占用情况
du -h /path
- -s 指定目录占用大小汇总
- -h 带计量单位
- -a 含文件
- –max-depth=1 子目录深度
- -c 列出明细的同时,增加汇总值
[root@rootylq opt]# ll
total 4
drwxr-xr-x 3 root root 4096 Dec 27 22:40 threatbook
[root@rootylq opt]# du -h --max-depth=1 /opt
32M /opt/threatbook
32M /opt
[root@rootylq opt]# du -ha --max-depth=1 /opt
32M /opt/threatbook
32M /opt
磁盘情况:工作实用指令
统计文件夹下文件的个数
[root@rootylq ~]# ll
total 280560
drwxr-xr-x 6 root root 4096 Jan 3 14:34 cmake
-rw-r--r-- 1 root root 47918636 Jan 3 14:33 cmake-3.25.1-linux-x86_64.tar.gz
-rw-r--r-- 1 root root 34178 Dec 15 14:32 install.sh
drwxr-xr-x 8 root root 4096 Dec 30 15:04 jdk1.8.0_351
-rw-r--r-- 1 root root 149697219 Dec 30 14:59 jdk-8u351-linux-x64.tar.gz
drwxr-xr-x 5 root root 4096 Jan 10 14:28 mongodb
-rw-r--r-- 1 root root 86589635 Jan 9 09:39 mongodb-linux-x86_64-rhel70-5.0.14.tgz
-rwxr--r-- 1 root root 40 Jan 12 17:52 my.sh
-rw-r--r-- 1 root root 10928 Jan 14 2022 mysql80-community-release-el7-5.noarch.rpm
drwxrwxr-x 8 root root 4096 Jan 10 15:32 redis-7.0.7
-rw-r--r-- 1 root root 3009569 Dec 27 16:53 redis-7.0.7.tar.gz
[root@rootylq ~]# ll | grep "^-"
-rw-r--r-- 1 root root 47918636 Jan 3 14:33 cmake-3.25.1-linux-x86_64.tar.gz
-rw-r--r-- 1 root root 34178 Dec 15 14:32 install.sh
-rw-r--r-- 1 root root 149697219 Dec 30 14:59 jdk-8u351-linux-x64.tar.gz
-rw-r--r-- 1 root root 86589635 Jan 9 09:39 mongodb-linux-x86_64-rhel70-5.0.14.tgz
-rwxr--r-- 1 root root 40 Jan 12 17:52 my.sh
-rw-r--r-- 1 root root 10928 Jan 14 2022 mysql80-community-release-el7-5.noarch.rpm
-rw-r--r-- 1 root root 3009569 Dec 27 16:53 redis-7.0.7.tar.gz
[root@rootylq ~]# ll | grep "^-"| wc -l
7
统计文件夹下目录的个数
[root@rootylq ~]# ll | grep "^d"| wc -l
4
[root@rootylq ~]#
统计文件夹下文件的个数,包括子文件中
[root@rootylq ~]# ls -lR | grep "^-" | wc -l
10010
[root@rootylq ~]#
统计文件夹下目录的个数,包括子文件里的
[root@rootylq ~]# ls -lR | grep "^d" | wc -l
354
以树形显示目录结构
如果没有tree指令,则使用yum install tree
[root@rootylq ~]# tree /home
/home
├── arc
├── mycal
├── myroot -> /root/
├── newuser
│ └── ok.txt
├── tom
├── www
└── ylq
├── apple.txt
├── hello.cpp
├── orange.txt
└── test.sh
6 directories, 6 files
Linux网络管理与配置
查看网络连接状态
[root@rootylq ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.22.69.202 netmask 255.255.240.0 broadcast 172.22.79.255
inet6 fe80::216:3eff:fe1f:fef3 prefixlen 64 scopeid 0x20<link>
ether 00:16:3e:1f:fe:f3 txqueuelen 1000 (Ethernet)
RX packets 416866 bytes 75033408 (71.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 345815 bytes 76639998 (73.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 1165 bytes 247274 (241.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1165 bytes 247274 (241.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ping 主机之间的连通性
ping [目标地址]
IP地址获取与指定
自动获取IP
登陆后,通过界面来自动获取ip
特点:linux启动后会自动获取IP,缺点是每次自动获的IP地址可能并不相同
指定特定的IP
直接修改配置文件来指定IP,并可以连接到外网
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0
重启网络服务或则重启系统使更改生效
service network restart
设置主机名和hosts映射
[root@rootylq ~]# hostname
rootylq
[root@rootylq ~]# cat /etc/hostname
rootylq
[root@rootylq ~]# vim /etc/hostname
思考:
如何通过主机名能够找到(例如ping)某个linux 系统
hosts 是一个文本文件,用来记录ip和hostname(主机名)之间的映射关系
DNS,就是Domain Name System 的缩写,翻译过来几位域名系统,是互联网上作为域名和IP地址相互映射的一个分布式数据库
主机名解析机制分析
- 浏览器首先检查浏览器缓存中有没有该域名解析IP地址,有就调用这个IP完成解析。如果没有,则检查DNS解析器缓存,如果有直接返回IP地址完成解析,这两个缓存,可以理解为本地解析器缓存
- 一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址
- 如果本地解析器缓存没有找到对应映射,则检查系统中hosts文件中,有没有配置对应的域名IP映射,如果有,则完成解析并返回
- 如果本地DNS解析器缓存和hosts文件中均未找到对应的IP,则到域名服务DNS进行解析域