linux中级

linux中级

该文档使用的操作系统为:RockyLinux8.8,安装在VMware虚拟机内

硬盘管理

为虚拟机准备三块硬盘

同样操作,执行两次

计算机容量单位

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

1PB = 1024TB

1EB = 1024PB

...

计算机使用1024换算,硬盘厂商使用1000换算

硬盘的最小单位是扇区,一个扇区的大小是512字节

识别硬盘 => 分区规划 => 格式化 => 挂载使用
两种分区模式:MBR和GPT

MBR分区(主分区)

最大支持2.2TB以内的硬盘

固定大小64字节,一个分区16,64÷16=4

主分区的读写效率高于逻辑分区

扩展分区不能格式化,空间不能直接存储数据,扩展分区里面的逻辑分区,才能存储数据

能存储数据就是:主分区,逻辑分区

lsblk
bash 复制代码
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1 11.8G  0 rom
nvme0n1     259:0    0   20G  0 disk
├─nvme0n1p1 259:1    0    1G  0 part /boot
└─nvme0n1p2 259:2    0   19G  0 part
  ├─rl-root 253:0    0   17G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
nvme0n2     259:3    0   20G  0 disk
nvme0n3     259:4    0   20G  0 disk
fdisk

对硬盘进行划分的命令:fdisk

输入 说明
n 创建新的分区
p 查看分区
Ctrl+C 取消
w 保存并退出
bash 复制代码
[root@localhost ~]# fdisk /dev/nvme0n2

欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x1f47a342 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):
分区步骤
n      新建分区
p      选择分区类型(最后一个分区要注意)
回车    分区号
回车    第一个扇区
+5G    设置分区容量,之间回车,会把剩下空间,全给它
p      查看,确认
w      保存,退出
bash 复制代码
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1 11.8G  0 rom
nvme0n1     259:0    0   20G  0 disk
├─nvme0n1p1 259:1    0    1G  0 part /boot
└─nvme0n1p2 259:2    0   19G  0 part
  ├─rl-root 253:0    0   17G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
nvme0n2     259:3    0   20G  0 disk
├─nvme0n2p1 259:7    0    3G  0 part
└─nvme0n2p2 259:8    0    6G  0 part
nvme0n3     259:4    0   20G  0 disk

刚刚对 nvme0n2 硬盘做了分区,分了两个区,nume0n2p1nume0n2p2

刷新分区表

partprobe

格式化(二选一)

赋予空间,文件系统的过程

bash 复制代码
[root@localhost ~]# mkfs.
mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.minix   mkfs.xfs

.ext46 系列的,适合单个数据比较小,数量多;

.xfs7 系列的,适合单个数据比较大,数量少

使用ext4文件系统
bash 复制代码
[root@localhost ~]# ls /dev/nvme0n2*
/dev/nvme0n2  /dev/nvme0n2p1  /dev/nvme0n2p2
[root@localhost ~]# mkfs.ext4 /dev/nvme0n2p1
mke2fs 1.45.6 (20-Mar-2020)
创建含有 786432 个块(每块 4k)和 196608 个inode的文件系统
文件系统UUID:5feedc43-6476-498a-bbc4-1382a385b51c
超级块的备份存储于下列块:
        32768, 98304, 163840, 229376, 294912

正在分配组表: 完成
正在写入inode表: 完成
创建日志(16384 个块)完成
写入超级块和文件系统账户统计信息: 已完成

格式化完成,就可以查看到UUID,以及TYPE可以看到类型

bash 复制代码
[root@localhost ~]# blkid /dev/nvme0n2p1
/dev/nvme0n2p1: UUID="5feedc43-6476-498a-bbc4-1382a385b51c" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="9cb4a00d-01"

如果想再次格式化,继续执行同样的命令,根据提示输入y

bash 复制代码
[root@localhost ~]# mkfs.ext4 /dev/nvme0n2p1
mke2fs 1.45.6 (20-Mar-2020)
 /dev/nvme0n2p1 有一个 ext4 文件系统
        创建于 Mon Oct 21 18:37:37 2024
Proceed anyway? (y,N) y
......
使用xfs文件系统
bash 复制代码
[root@localhost ~]# mkfs.xfs /dev/nvme0n2p2
meta-data=/dev/nvme0n2p2         isize=512    agcount=4, agsize=393216 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=1572864, 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
blkid
bash 复制代码
[root@localhost ~]# blkid /dev/nvme0n2p2
/dev/nvme0n2p2: UUID="abbe7b3a-ba8e-4c1c-8605-f2e9e68f5633" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="9cb4a00d-02"

如果想再次格式化,需加 -f 选项

bash 复制代码
[root@localhost ~]# mkfs.xfs -f /dev/nvme0n2p2

-f 强制格式化

挂载使用

bash 复制代码
[root@localhost ~]# mkdir mydvd1
[root@localhost ~]# mount /dev/nvme0n2p1 mydvd1/
查看 df -h
bash 复制代码
[root@localhost ~]# df -h mydvd1/
文件系统        容量  已用  可用 已用% 挂载点
/dev/nvme0n2p1  2.9G   24K  2.8G    1% /root/mydvd1
bash 复制代码
[root@localhost ~]# mkdir mydvd2
[root@localhost ~]# mount /dev/nvme0n2p2 mydvd2/
[root@localhost ~]# df -h mydvd2/
文件系统        容量  已用  可用 已用% 挂载点
/dev/nvme0n2p2  6.0G   76M  6.0G    2% /root/mydvd2

如果有挂载的硬件存储,就会存储在当前挂载的硬盘内,如果没有指定,就默认和/根分区放在同一个硬盘。

假设/opt这个目录,占用了太多的空间,我想用nvme0n2p2来存/opt的数据。

步骤

1,先创建一个目录

2,挂载nvme0n2p2

3,把/opt原来的数据全部移动到挂载目录

4,清空/opt

5,卸载nvme0n2p2

6,把nvme0n2p2,挂载到/opt目录

7,设置开机自动挂载

bash 复制代码
[root@localhost ~]# echo '测试数据,2024年10月21日18:18' > /opt/demo.txt
[root@localhost ~]# cat /opt/demo.txt
测试数据,2024年10月21日18:18
[root@localhost ~]# mv /opt/demo.txt mydvd2
[root@localhost ~]# cat mydvd2/demo.txt
测试数据,2024年10月21日18:18
[root@localhost ~]# rm -rf /opt/*
[root@localhost ~]# umount mydvd2
[root@localhost ~]# mount /dev/nvme0n2p2 /opt/
[root@localhost ~]# cat /opt/demo.txtf
测试数据,2024年10月21日18:18

开机自动挂载 /etc/fstab

设备路径              挂载点目录 文件系统类型 参数     备份标记  检查顺序
/dev/mapper/rl-root /         xfs       defaults 0       0
bash 复制代码
[root@localhost ~]# tail -2 /etc/fstab
/dev/nvme0n2p1  /root/mydvd1  ext4  defaults 0 0
/dev/nvme0n2p2  /root/mydvd2  xfs  defaults 0 0

验证,执行下面命令,没有报错,就表示成功

[root@localhost ~]# mount-a

[root@localhost ~]# df -h | grep mydvd
/dev/nvme0n2p1       4.9G   24K  4.6G    1% /root/mydvd1
/dev/nvme0n2p2       6.0G   76M  6.0G    2% /root/mydvd2

/etc/fstab文件错误,开机失败,修复

输入root密码

使用vim把写错的行,改正

保存之后,重启

把UUID改为决定路径(方便做镜像)
[root@localhost ~]# df -h /boot/
文件系统        容量  已用  可用 已用% 挂载点
/dev/nvme0n1p1 1014M  220M  795M   22% /boot
[root@localhost ~]# blkid /dev/nvme0n1p1
/dev/nvme0n1p1: UUID="1863454a-df9f-4d60-8d1d-60af5fcb575f" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="05e05c06-01"

通过查询得到 UUID 对应的 绝对路径是 /dev/nvme0n1p1

bash 复制代码
[root@localhost ~]# cat /etc/fstab
......
/dev/nvme0n1p1          /boot       xfs     defaults        0 0

MBR分区(逻辑分区)

bash 复制代码
[root@localhost ~]# fdisk /dev/nvme0n3
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x4f4fca4b 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):n
分区类型
   p   主分区 (0个主分区,0个扩展分区,4空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (1-4, 默认  1):
第一个扇区 (2048-41943039, 默认 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): +2G
创建了一个新分区 1,类型为"Linux",大小为 2 GiB。
命令(输入 m 获取帮助):n
分区类型
   p   主分区 (1个主分区,0个扩展分区,3空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (2-4, 默认  2):
第一个扇区 (4196352-41943039, 默认 4196352):
上个扇区,+sectors 或 +size{K,M,G,T,P} (4196352-41943039, 默认 41943039): +2G
创建了一个新分区 2,类型为"Linux",大小为 2 GiB。
命令(输入 m 获取帮助):n
分区类型
   p   主分区 (2个主分区,0个扩展分区,2空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (3,4, 默认  3):
第一个扇区 (8390656-41943039, 默认 8390656):
上个扇区,+sectors 或 +size{K,M,G,T,P} (8390656-41943039, 默认 41943039): +2G
创建了一个新分区 3,类型为"Linux",大小为 2 GiB。
命令(输入 m 获取帮助):n
分区类型
   p   主分区 (3个主分区,0个扩展分区,1空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 e):e  <--------------------
已选择分区 4
第一个扇区 (12584960-41943039, 默认 12584960):
上个扇区,+sectors 或 +size{K,M,G,T,P} (12584960-41943039, 默认 41943039):
创建了一个新分区 4,类型为"Extended",大小为 14 GiB。
命令(输入 m 获取帮助):n
所有主分区都在使用中。
添加逻辑分区 5
第一个扇区 (12587008-41943039, 默认 12587008):
上个扇区,+sectors 或 +size{K,M,G,T,P} (12587008-41943039, 默认 41943039): +2G  <---------
创建了一个新分区 5,类型为"Linux",大小为 2 GiB。
命令(输入 m 获取帮助):n
所有主分区都在使用中。
添加逻辑分区 6
第一个扇区 (16783360-41943039, 默认 16783360):
上个扇区,+sectors 或 +size{K,M,G,T,P} (16783360-41943039, 默认 41943039):
创建了一个新分区 6,类型为"Linux",大小为 12 GiB。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
bash 复制代码
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
......
nvme0n3     259:6    0   20G  0 disk
├─nvme0n3p1 259:9    0    2G  0 part
├─nvme0n3p2 259:10   0    2G  0 part
├─nvme0n3p3 259:11   0    2G  0 part
├─nvme0n3p4 259:12   0    1K  0 part
├─nvme0n3p5 259:13   0    2G  0 part
└─nvme0n3p6 259:14   0   12G  0 part
查看分区类型 parted /dev/** print
bash 复制代码
[root@localhost ~]# parted /dev/nvme0n3 print
Model: NVMe Device (nvme)
Disk /dev/nvme0n3: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type      File system  标志
 1      1049kB  2149MB  2147MB  primary
 2      2149MB  4296MB  2147MB  primary
 3      4296MB  6443MB  2147MB  primary
 4      6443MB  21.5GB  15.0GB  extended
 5      6445MB  8592MB  2147MB  logical
 6      8593MB  21.5GB  12.9GB  logical

GPT分区

最大支持128分区,最大支持18EB的容量

虚拟机还原快照,准备硬盘资源

bash 复制代码
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1 11.8G  0 rom
nvme0n1     259:0    0   20G  0 disk
├─nvme0n1p1 259:1    0    1G  0 part /boot
└─nvme0n1p2 259:2    0   19G  0 part
  ├─rl-root 253:0    0   17G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
nvme0n2     259:3    0   20G  0 disk

使用命令fdisk分区,进入之后输入g,就是GPT分区模式

bash 复制代码
[root@localhost ~]# fdisk /dev/nvme0n2
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0xf6a23c8c 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):g
已创建新的 GPT 磁盘标签(GUID: C0452C94-7A10-1F43-97A2-117515378953)。
命令(输入 m 获取帮助):n
分区号 (1-128, 默认  1):
第一个扇区 (2048-41943006, 默认 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943006, 默认 41943006): +3G
创建了一个新分区 1,类型为"Linux filesystem",大小为 3 GiB。
命令(输入 m 获取帮助):n
分区号 (2-128, 默认  2):
第一个扇区 (6293504-41943006, 默认 6293504):
上个扇区,+sectors 或 +size{K,M,G,T,P} (6293504-41943006, 默认 41943006): +4G
创建了一个新分区 2,类型为"Linux filesystem",大小为 4 GiB。
命令(输入 m 获取帮助):n
分区号 (3-128, 默认  3):
第一个扇区 (14682112-41943006, 默认 14682112):
上个扇区,+sectors 或 +size{K,M,G,T,P} (14682112-41943006, 默认 41943006):
创建了一个新分区 3,类型为"Linux filesystem",大小为 13 GiB。
命令(输入 m 获取帮助):p
Disk /dev/nvme0n2:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:C0452C94-7A10-1F43-97A2-117515378953
设备               起点     末尾     扇区 大小 类型
/dev/nvme0n2p1     2048  6293503  6291456   3G Linux 文件系统
/dev/nvme0n2p2  6293504 14682111  8388608   4G Linux 文件系统
/dev/nvme0n2p3 14682112 41943006 27260895  13G Linux 文件系统
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
格式化
bash 复制代码
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
......
nvme0n2     259:3    0   20G  0 disk
├─nvme0n2p1 259:4    0    3G  0 part
├─nvme0n2p2 259:5    0    4G  0 part
└─nvme0n2p3 259:6    0   13G  0 part
bash 复制代码
[root@localhost ~]# mkfs.xfs /dev/nvme0n2p1
meta-data=/dev/nvme0n2p1         isize=512    agcount=4, agsize=196608 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=786432, 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
开机自动挂载
bash 复制代码
[root@localhost ~]# mkdir mydvd1
[root@localhost ~]# tail -1 /etc/fstab
/dev/nvme0n2p1  /root/mydvd1    xfs     defaults        0 0

交换空间(虚拟内存)

缓解物理内存的压力,由硬盘提供一部分空间给内存使用

创建 mkswap
bash 复制代码
[root@localhost ~]# mkswap /dev/nvme0n2p2
正在设置交换空间版本 1,大小 = 4 GiB (4294963200  个字节)
无标签,UUID=b8065dfb-55ca-44e0-8be3-6d6fb917cf29
查看类型 blkid
bash 复制代码
[root@localhost ~]# blkid /dev/nvme0n2p2
/dev/nvme0n2p2: UUID="b8065dfb-55ca-44e0-8be3-6d6fb917cf29" TYPE="swap" PARTUUID="d60bdcb2-db3a-9644-afe7-4fd826371196"
启用 swapon
bash 复制代码
[root@localhost ~]# swapon /dev/nvme0n2p2
查看交换空间 swapon
bash 复制代码
[root@localhost ~]# swapon
NAME           TYPE      SIZE USED PRIO
/dev/dm-1      partition   2G   0B   -2
/dev/nvme0n2p2 partition   4G   0B   -3

swapon:查看交换空间组成员信息

swapon -a
查看内存大小 free -h
bash 复制代码
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          3.5Gi       250Mi       3.1Gi       8.0Mi       221Mi       3.1Gi
Swap:         6.0Gi          0B       6.0Gi
停用 swapoff
bash 复制代码
[root@localhost ~]# swapoff /dev/nvme0n2p2
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          3.5Gi       247Mi       3.1Gi       8.0Mi       221Mi       3.1Gi
Swap:         2.0Gi          0B       2.0Gi
[root@localhost ~]# swapon /dev/nvme0n2p2
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          3.5Gi       250Mi       3.1Gi       8.0Mi       221Mi       3.1Gi
Swap:         6.0Gi          0B       6.0Gi
开机自动挂载
bash 复制代码
[root@localhost ~]# tail -1 /etc/fstab
/dev/nvme0n2p2   swap   swap   defaults 0 0

使用parted命令进行分区(fdisk更好用)

bash 复制代码
[root@localhost ~]# parted /dev/nvme0n3
......
(parted) mktable gpt
(parted) mkpart
起始点? 0
结束点? 5G
忽略/Ignore/放弃/Cancel? Ignore
(parted) mkpart
分区名称?  []?
文件系统类型?  [ext2]?
起始点? 5G
结束点? 100%
(parted) quit
bash 复制代码
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
......
nvme0n3     259:7    0   20G  0 disk
├─nvme0n3p1 259:10   0  4.7G  0 part
└─nvme0n3p2 259:11   0 15.4G  0 part
格式化
挂载

逻辑卷管理

还原镜像,准备一块80G硬盘(MBR分区,3个10G主分区,2个20G逻辑分区)

bash 复制代码
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1 11.8G  0 rom
nvme0n1     259:0    0   20G  0 disk
└─ ......
nvme0n2     259:3    0   80G  0 disk
├─nvme0n2p1 259:4    0   10G  0 part
├─nvme0n2p2 259:5    0   10G  0 part
├─nvme0n2p3 259:6    0   10G  0 part
├─nvme0n2p4 259:7    0    1K  0 part
├─nvme0n2p5 259:8    0   20G  0 part
└─nvme0n2p6 259:9    0   20G  0 part

新建逻辑卷

逻辑卷:可以把分散的空间整合到一起

逻辑卷制作流程:将众多的物理卷(PV),组建成卷组(VG),再从卷组中划分出逻辑卷(LV)

功能 物理卷管理 卷组管理 逻辑卷管理
扫描 Scan pvs vgs lvs
创建 Create pvcreate vgcreate lvcreate
显示 Display pvdisplay bgdisplay lvdisplay
删除 Remove pvremove vgremove lvremove
扩展 Extend / vgextend lvextend
命令参考帮助
man vgcreate       // 查看帮助信息
/example   例子
按 q  退出
创建卷组

单位 PE(扩展单元) 4M

先创建物理卷,再创建逻辑卷,但是可以直接使用 vgcreate 既创建物理卷,也创建逻辑卷,类似git的-am选项

vgcreate systemvg /dev/nvme0n2p[1-2]
          卷组名    硬件设备路径
bash 复制代码
[root@localhost ~]# vgcreate systemvg /dev/nvme0n2p[1-2]
  Physical volume "/dev/nvme0n2p1" successfully created.
  Physical volume "/dev/nvme0n2p2" successfully created.
  Volume group "systemvg" successfully created
查看
pvs          // 查看所有物理卷信息
vgs          // 查看系统卷组信息
bash 复制代码
[root@localhost ~]# pvs
  PV             VG       Fmt  Attr PSize   PFree
  /dev/nvme0n1p2 rl       lvm2 a--  <19.00g      0
  /dev/nvme0n2p1 systemvg lvm2 a--  <10.00g <10.00g
  /dev/nvme0n2p2 systemvg lvm2 a--  <10.00g <10.00g
[root@localhost ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree
  rl         1   2   0 wz--n- <19.00g     0
  systemvg   2   0   0 wz--n-  19.99g 19.99g
创建逻辑卷
bash 复制代码
[root@localhost ~]# lvcreate -L 15G -n vo systemvg
  Logical volume "vo" created.

-L 指定逻辑卷大小

-l PE的数量

-n 逻辑卷名称

lvcreate -l 15 -n myvo systemvg
格式化
bash 复制代码
[root@localhost ~]# ls /dev/dm-*
/dev/dm-0  /dev/dm-1  /dev/dm-2
[root@localhost ~]# ls -l /dev/systemvg/vo
lrwxrwxrwx. 1 root root 7 10月 22 16:02 /dev/systemvg/vo -> ../dm-2

格式化为xfs文件系统类型

bash 复制代码
[root@localhost ~]# mkfs.xfs /dev/systemvg/vo

查看文件系统类型

bash 复制代码
[root@localhost ~]# blkid /dev/systemvg/vo
/dev/systemvg/vo: UUID="b24b772a-5c48-4e4d-ad68-2b3f7689b0f2" BLOCK_SIZE="512" TYPE="xfs"
开机自动挂载
bash 复制代码
[root@localhost ~]# mkdir myvg
[root@localhost ~]# tail  -1 /etc/fstab
/dev/systemvg/vo        /root/myvg   xfs  defaults 0 0
[root@localhost ~]# mount -a
bash 复制代码
[root@localhost ~]# df -h myvg/
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/systemvg-vo   15G  140M   15G    1% /root/myvg

逻辑卷扩展 lvextend

前提是卷组有剩余空间,如果卷组不够大,需要先准备硬盘空间,加入卷组

bash 复制代码
[root@localhost ~]# lvextend -L 16G /dev/systemvg/vo
  Size of logical volume systemvg/vo changed from 15.00 GiB (3840 extents) to 16.00 GiB (4096 extents).
  Logical volume systemvg/vo successfully resized.

-L 16G 扩展到16G

-L +1G 在原基础上加1G

格式扩展的文件系统 xfs_growfs

ext4:resize2f

xfs:xfs_growfs

bash 复制代码
[root@localhost ~]# xfs_growfs /dev/systemvg/vo
bash 复制代码
[root@localhost ~]# df -h | grep vo
/dev/mapper/systemvg-vo   16G  147M   16G    1% /root/myvg

扩展卷组 vgextend

将其余分区加入systemvg卷组

bash 复制代码
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
......
nvme0n2         259:3    0   80G  0 disk
├─nvme0n2p1     259:4    0   10G  0 part
│ └─systemvg-vo 253:2    0   16G  0 lvm  /root/myvg
├─nvme0n2p2     259:5    0   10G  0 part
│ └─systemvg-vo 253:2    0   16G  0 lvm  /root/myvg
├─nvme0n2p3     259:6    0   10G  0 part
├─nvme0n2p4     259:7    0    1K  0 part
├─nvme0n2p5     259:8    0   20G  0 part
└─nvme0n2p6     259:9    0   20G  0 part
[root@localhost ~]# vgextend systemvg /dev/nvme0n2p{3,5,6}
  Physical volume "/dev/nvme0n2p3" successfully created.
  Physical volume "/dev/nvme0n2p5" successfully created.
  Physical volume "/dev/nvme0n2p6" successfully created.
  Volume group "systemvg" successfully extended
bash 复制代码
[root@localhost ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree
  rl         1   2   0 wz--n- <19.00g     0
  systemvg   5   1   0 wz--n-  69.98g 53.98g

扩展逻辑卷

bash 复制代码
[root@localhost ~]# lvextend -L 25G /dev/systemvg/vo
  Size of logical volume systemvg/vo changed from 16.00 GiB (4096 extents) to 25.00 GiB (6400 extents).
  Logical volume systemvg/vo successfully resized.
[root@localhost ~]# xfs_growfs /dev/systemvg/vo
......
data blocks changed from 4194304 to 6553600
[root@localhost ~]# df -h | grep vo
/dev/mapper/systemvg-vo   25G  211M   25G    1% /root/myvg

修改逻辑卷PE的大小

此题曾经出现在红帽考试

卷组的单位,PE,默认大小是4M,但是可以改

vgchange -s 1M systemvg

如果现有的逻辑卷,可以整除,就可以改

vgdisplay systemvg
bash 复制代码
[root@localhost ~]# vgdisplay systemvg
  --- Volume group ---
  VG Name               systemvg
  System ID
  Format                lvm2
  Metadata Areas        5
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                5
  Act PV                5
  VG Size               69.98 GiB
  PE Size               4.00 MiB
  Total PE              17915
  Alloc PE / Size       6400 / 25.00 GiB
  Free  PE / Size       11515 / 44.98 GiB
  VG UUID               rdE9UM-298J-5nQ3-a3ws-jJlZ-Qjfc-GqiuC0
bash 复制代码
[root@localhost ~]# vgchange -s 1M systemvg
  Volume group "systemvg" successfully changed
[root@localhost ~]# vgdisplay systemvg
......
  PE Size               1.00 MiB
......

创建逻辑卷时 lvcreate -l 来指定PE的个数

删除逻辑卷 lvremove

1,卸载

2,删除

bash 复制代码
[root@localhost ~]# df -h myvg/
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/systemvg-vo   25G  211M   25G    1% /root/myvg
[root@localhost ~]# umount myvg/
[root@localhost ~]# lvremove /dev/mapper/systemvg-vo
Do you really want to remove active logical volume systemvg/vo? [y/n]: y
  Logical volume "vo" successfully removed.
[root@localhost ~]# lvs
  LV       VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root     rl       -wi-ao---- <17.00g
  swap     rl       -wi-ao----   2.00g

lvremove命令加上 -y 选项,就会直接删除,不再需要交互式输入y

删除开机自启文件

bash 复制代码
[root@localhost ~]# vim /etc/fstab

删除卷组 vgremove

bash 复制代码
[root@localhost ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree
  rl         1   2   0 wz--n- <19.00g     0
  systemvg   5   0   0 wz--n-  69.98g 69.98g
[root@localhost ~]# vgremove systemvg
  Volume group "systemvg" successfully removed
[root@localhost ~]# vgs
  VG #PV #LV #SN Attr   VSize   VFree
  rl   1   2   0 wz--n- <19.00g    0

删除物理卷 pvremove

[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1 11.8G  0 rom
nvme0n1     259:0    0   20G  0 disk
├─nvme0n1p1 259:1    0    1G  0 part /boot
└─nvme0n1p2 259:2    0   19G  0 part
  ├─rl-root 253:0    0   17G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
nvme0n2     259:3    0   80G  0 disk
├─nvme0n2p1 259:4    0   10G  0 part
├─nvme0n2p2 259:5    0   10G  0 part
├─nvme0n2p3 259:6    0   10G  0 part
├─nvme0n2p4 259:7    0    1K  0 part
├─nvme0n2p5 259:8    0   20G  0 part
└─nvme0n2p6 259:9    0   20G  0 part
[root@localhost ~]# pvremove /dev/nvme0n2p{1,2,3,5,6}
  Labels on physical volume "/dev/nvme0n2p1" successfully wiped.
  Labels on physical volume "/dev/nvme0n2p2" successfully wiped.
  Labels on physical volume "/dev/nvme0n2p3" successfully wiped.
  Labels on physical volume "/dev/nvme0n2p5" successfully wiped.
  Labels on physical volume "/dev/nvme0n2p6" successfully wiped.
[root@localhost ~]# pvs
  PV             VG Fmt  Attr PSize   PFree
  /dev/nvme0n1p2 rl lvm2 a--  <19.00g    0
[root@localhost ~]#

进程管理

进程:内存中正在运行的代码,占用CPU与内存的资源

PID:标识进程

bash 复制代码
[root@localhost ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─agetty
        ├─auditd───{auditd}
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─firewalld───{firewalld}
        ├─irqbalance───{irqbalance}
        ├─polkitd───7*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd─┬─sshd───sshd───bash───pstree
        │      └─sshd───sshd───sftp-server
        ├─systemd───(sd-pam)
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───3*[{vmtoolsd}]

systemd 上帝进程,PID 为1

查看进程
pstree

-p :列出对应的进程PID

-a:显示完整的命令

pstree -ap admin   // 显示用户admin的进程
bash 复制代码
[root@localhost ~]# useradd yunos   // 新开一个窗口登录
[root@localhost ~]# echo 123456 | passwd --stdin yunos
更改用户 yunos 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# pstree -pa yunos
sshd,2145
  └─bash,2147
      └─vim,2213 demo.txt
sshd,2159
  └─sftp-server,2181
systemd,2135 --user
  └─(sd-pam),2138
ps aux

列出正在运行的所有进程,显示非常详细的进程信息

bash 复制代码
[root@localhost ~]# ps aux
......
root        5723  0.0  0.0  47848  3700 pts/0    R+   10:54   0:00 ps aux
用户,进程ID,%CPU,%内存,虚拟内存,固定内存,终端,状态,起始时间,CPU时间,程序指令
ps -elf
bash 复制代码
[root@localhost ~]# ps -elf
0 R root        5741    3707  0  80   0 - 11962 -      11:01 pts/0    00:00:00 ps -elf

列出正在运行的所有进程,显示进程的父进程信息

PPID为进程的父进程PID

动态查看进程 top

-d 1 每隔一秒刷新

-P 按CPU排序

-M 按进程排序

查看进程 过滤进程名字
pgrep a

查找名字带a的进程,输出进程PID

-x 严格匹配

pgrep  -l  a

-l 输出更完整的信息,输出进程PID,以及进程名字

pgrep  -u  yunos

输出用户 yunos的进程PID

pgrep  -lu  yunos

输出用户 yunos的进程PID和进程名字

pstree -p yunos
bash 复制代码
[root@localhost ~]# pgrep -lu yunos
5782 systemd
5786 (sd-pam)
5793 sshd
5796 sshd
5797 bash
5806 sftp-server
[root@localhost ~]# pstree -p yunos
sshd(5793)───bash(5797)
sshd(5796)───sftp-server(5806)
systemd(5782)───(sd-pam)(5786)

睡觉 sleep

sleep 5 让当前的程序暂停5秒钟

进程前后台切换

Ctrl + Z 把当前运行的进程,暂停,放入后台

jobs

jobs:查看后台进程

bg 1

bg运行后台进程,bg 1运行后台编号为1的进程,进程编号,通过jobs命令查询

fg 1

fg 1 把后台编号为1的进程放回前台运行

Ctrl + C 结束运行

bash 复制代码
[root@localhost ~]# sleep 3000
^Z
[1]+  已停止               sleep 3000
[root@localhost ~]# jobs
[1]+  已停止               sleep 3000
[root@localhost ~]# bg 1
[1]+ sleep 3000 &
[root@localhost ~]# jobs
[1]+  运行中               sleep 3000 &
[root@localhost ~]# fg 1
sleep 3000
^C
[root@localhost ~]#
正在运行放入后台 &
bash 复制代码
[root@localhost ~]# sleep 3000 &
[1] 5872
[root@localhost ~]# jobs
[1]+  运行中               sleep 3000 &
[root@localhost ~]# fg 1
sleep 3000
^C
[root@localhost ~]#

杀死进程

Ctrl + C 结束当前命令程序

kill -9 PID

kill -9 %后台任务编号

killall -9 进程名

pkill -9 查找条件 // 包含就算,容易误杀

-9 选项是强制的意思,(比如电脑关机,不加-9 就是点关机,系统完成一些结束操作,就关机,加-9就好比拔电源)

bash 复制代码
[root@localhost ~]# sleep 3000&
[1] 6154
[root@localhost ~]# jobs
[1]+  运行中               sleep 3000 &
[root@localhost ~]# killall -9 sleep
[1]+  已杀死               sleep 3000
[root@localhost ~]# sleep 3000&
[1] 6157
[root@localhost ~]# jobs
[1]+  运行中               sleep 3000 &
[root@localhost ~]# killall  sleep
[1]+  已终止               sleep 3000

sudo提权

/etc/sudoers

使用vim编辑这个文件,没有语法检查,建议使用visudo编辑

让普通用户以root身份执行某些程序

查看当前用户的sudo提权 sudo -l
[yunos@localhost ~]$ sudo -l

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] yunos 的密码:
对不起,用户 yunos 不能在 localhost 上运行 sudo。
为用户设置提权
visudo
bash 复制代码
yunos     ALL=(root)      /usr/bin/mkdir,/usr/bin/cat
#用户名    主机名=变成的身份   可以执行的命令

ALL 表示所有的主机名

可以执行的命令,用逗号分隔,也可以写ALL,表示全部的命令

bash 复制代码
yunos     ALL=(root)      NOPASSWD:/usr/bin/mkdir,/usr/bin/cat
#用户名    主机名=变成的身份   免密:可以执行的命令

NOPASSWD: 使用sudo提权的时候,用户不需要再输入密码

%yunos     ALL=(root)      NOPASSWD:/usr/bin/mkdir,/usr/bin/cat
#用户名    主机名=变成的身份   免密:可以执行的命令

% 最前面加% 表示授权的是一个组

bash 复制代码
[yunos@localhost ~]$ sudo -l
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2
    QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

用户 yunos 可以在 localhost 上运行以下命令:
    (root) NOPASSWD: /usr/bin/mkdir, /usr/bin/cat

RAID磁盘阵列

RAID0

条带模式

至少2个盘,将文件分成两份,并行写入硬盘,可提高效率

如果是5块盘,数据就会分成5份

RAID0只是效率高,没有数据的冗余,随便坏一块,数据就损坏了

工作中,用来存放缓存数据,

RAID1

镜像模式

一个文档复制成多份,分别写入不同磁盘

多份拷贝,提高可靠性,效率无提升

RAID5

高性价比模式

相当于RAID0和RAID1的则中方案

至少需要一块磁盘来存校验数据

至少需3块盘

RAID6

至少需要4块盘,至少需要二块磁盘来存校验数据

金融行业

RAID0+1(RAID01)

现做RAID0 ,再做RAID1

RAID1+0(RAID10)

现做RAID1,再做RAID0

总结
对比项 RAID0 RAID1 RAID10 RAID5 RAID6
磁盘数 ≥2 ≥2 ≥4 ≥3 ≥4
存储利用率 100% ≤50% ≤50% n-1/n n-2/n
校验盘 1 2
容错性
IO性能 较高 较高

修改网卡命名规则

不同类型,不同品牌的网卡,命名规则可能不相同,改为统一的命名规则,eth0、eeh1、......

网卡的内核引导文件:/boot/grub2/grub.cfg

/etc/default/grub

bash 复制代码
[root@RockyLinux ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

修改后

bash 复制代码
[root@RockyLinux ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap rhgb quiet net.ifnames=0 biosdevname =0"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

添加的内容

net.ifnames=0 biosdevname =0

根据修改的文件,重新生成内核引导文件/boot/grub2/grub.cfg

bash 复制代码
[root@RockyLinux ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done

重启生效

reboot

IP地址的配置

三种方式:nmcli、nmtli、修改网卡配置文件

nmcli

nmcli connection show
nmcli connection delete 

添加新的网络命名

nmcli connection add type ethernet ifname eth0 con-name eth0

nmcli connection 添加 类型  以太网设备 设备名  eth0  外号名   eth0

网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0

配置IP地址
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.126.10/24 autoconnect yes

nmcli connection 修改 外号 ipv4.方法 手工配置 ipv4.地址 192.168.126.10/24  每次开机自动启用以上的所有参数

ipv4.网关

激活

nmcli connection up eth0

查看网关

route -n

nmtui

bash 复制代码
[root@RockyLinux ~]# nmtui

通过上下键移动,回车确认,红色代表选中

* 表示已连接,通过回车切换

添加临时ip

ip address add 192.168.126.15/24 dev eth0
简写:ip a a 192.168.126.15/24 dev eth0
查看临时ip
ip a s
删除临时ip
ip a d 192.168.126.15/24 dev eth0

远程管理

linux远程管理linux

SSH协议

需要安装的软件

bash 复制代码
[root@RockyLinux ~]# rpm -qa | grep openssh
openssh-clients-8.0p1-17.el8_7.x86_64
openssh-8.0p1-17.el8_7.x86_64
openssh-server-8.0p1-17.el8_7.x86_64

安装

yum -y install openssh* 

[root@RockyLinux ~]# rpm -qa | grep openssh
openssh-clients-8.0p1-17.el8_7.x86_64
openssh-cavs-8.0p1-17.el8_7.x86_64
openssh-8.0p1-17.el8_7.x86_64
openssh-server-8.0p1-17.el8_7.x86_64
openssh-askpass-8.0p1-17.el8_7.x86_64
openssh-ldap-8.0p1-17.el8_7.x86_64
openssh-keycat-8.0p1-17.el8_7.x86_64

如果没有安装,是可以远程管理别人,安装了openssh是可以被别人远程管理,如果不想被远程管理,可以卸载这些包,或者把这个进程杀了

pgrep -l sshd
远程的命令
ssh root@192.168.126.11
回答:yes
密码:*****

ssh 192.168.126.11  // 如果不写用户名,默认以当前登入系统的用户为准
bash 复制代码
[root@RockyLinux ~]# ssh root@192.168.126.11
The authenticity of host '192.168.126.11 (192.168.126.11)' can't be established.
ECDSA key fingerprint is SHA256:0/8hGvIvOZHJ2tEBKLpikWWIPwxBWYlJB4BOD67s4/A.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.126.11' (ECDSA) to the list of known hosts.
root@192.168.126.11's password:
Last login: Thu Oct 24 08:48:58 2024 from 192.168.126.1
[root@yunos ~]#

退出

exit
或者
Ctrl + D
bash 复制代码
[root@yunos ~]# exit
注销
Connection to 192.168.126.11 closed.
/root/.ssh/known_hosts

记录曾经远程管理过的机器

bash 复制代码
[root@RockyLinux ~]# cat /root/.ssh/known_hosts
192.168.126.11 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMzmAAFF5QeWl30yzPUrjWxMDq4N9OZnPANJQQFo/uVCEQQ+MO9KAcPUKnl0QOnOMUlBlE6BuszBDqvXskjQicY=

传递数据 scp

scp 本机文件  root@192.168.126.11:/root    // 传递文件到对方机器root目录下
scp -r 目录  root@192.168.126.11:/opt     // 将本机目录传递到对方机器opt目录下

-r 目录

scp  root@192.168.126.11:/etc/fstab /root   // 把对方机器/etc/fstab,拿到本机root目录下
scp -r root@192.168.126.10:/root/demo /opt  // 把对方机器/root/demo目录,拿到本机opt目录下

免密远程

bash 复制代码
[root@yunos opt]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 存放位置
Enter passphrase (empty for no passphrase):   是否加密
Enter same passphrase again:                  确认不加密?
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xNXtTfFCMhQR6VoSfK2Vsn8fdP8xNzaIvEW5T5vmKbo root@yunos
The key's randomart image is:
+---[RSA 3072]----+
|         ..oBB.o.|
|       . .o =+= o|
|        o  + *oo.|
|       .  . =o.oo|
|        S .+o.+ o|
|          .o +.O+|
|            o +.%|
|           . . =+|
|           Eo +o |
+----[SHA256]-----+
[root@yunos opt]#
[root@RockyLinux ~]# ls /root/.ssh/
id_rsa  id_rsa.pub  known_hosts

id_rsa           私钥
id_rsa.pub       公钥
known_hosts      记录曾经远程管理过的机器
authorized_keys  别人传递给我的公钥
传递公钥

ssh-copy-id root@192.168.126.11

bash 复制代码
[root@RockyLinux ~]# ssh-copy-id root@192.168.126.11
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.126.11's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.126.11'"
and check to make sure that only the key(s) you wanted were added.
[root@yunos opt]# ls /root/.ssh/
authorized_keys  known_hosts

authorized_keys 里面一行代表一个公钥

windows远程管理linux

MobaXtem

WindTerm

DNS服务器

将域名解析为对应的IP地址

寻找DNS服务器
1.使用dhcp服务器自动获取
2.手工指定,配置文件在:/etc/resolv.conf

ping -c 192.168.126.11

-c 指定ping的次数

日志管理

常见的日志文件

日志文件 主要用途
/var/log/messages 记录内核消息,各种服务公共消息
/var/log/dmesg 记录系统启动过程的各种消息
/var/log/cron 记录cron计划相关的消息
/var/log/maillog 记录邮件收发相关消息
/var/log/secure 记录与访问限制相关的安全消息
/var/log/lastlog 记录最近的用户登录事件
/var/log/wtmp 记录成功的用户登录/注销事件
/var/log/btmp 记录失败的用户登录事件
/var/run/utmp 记录当前登录的每个用户的相关信息

tail -f 时时更新显示,会占用前台

查看当前用户登录的信息
users  who   w
bash 复制代码
[root@RockyLinux ~]# users
root
[root@RockyLinux ~]# who
root     pts/1        2024-10-24 08:49 (192.168.126.1)
[root@RockyLinux ~]# w
 16:07:09 up  4:44,  1 user,  load average: 0.01, 0.02, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/1    192.168.126.1    08:49    5.00s  0.13s  0.00s w
last lastb
bash 复制代码
[root@RockyLinux ~]# last     // 成功输入对密码的
root     pts/0        192.168.126.12   Thu Oct 24 15:58 - 15:59  (00:00)
wtmp begins Thu Oct 17 12:28:31 2024
[root@RockyLinux ~]# lastb     // 输错密码的
root     ssh:notty    192.168.126.1    Thu Oct 24 08:48 - 08:48  (00:00)
btmp begins Thu Oct 24 08:48:35 2024

日志消息优先级

0 EMERG 紧急 会导致系统不可用的情况
1 ALERT 警告 必须马上采取措施解决问题
2 CRIT 严重 比较严重的情况
3 ERR 错误 运行出现错误
4 WARNING 提醒 可能会影响系统功能的事件
5 NOTICE 注意 不会影响系统但值得注意
6 INFO 信息 一般信息
7 DEBUG 调试 程序或系统调试信息等

SELinux

SELinux运行模式
enforcing 强制 1
permissive 宽松 0
disabled 彻底禁用 修改配置文件,重启

切换运行模式

临时修改:setenforce 0 或 1

固定配置:/etc/selinux/config

查看当前运行模式:getenforce

破解root密码

进入救援模式

通过上下键,选择第一个,再按 e

把光标移动到ro,o的下面,按Delete键,把o改成w,是可读可写的意思

空格 输入 rd.break

Ctrl + X 进入救援模式

chroot /sysroot 切换至硬盘操作系统环境

改密码 echo 123456 | passwd --stdin root

reboot -f 加上 -f 选项是强制重启的意思

如果SElinux是强制模式

在设置完密码。还需要执行

sh-4.4# touch /.autorelabel  

让SElinux失忆

设置救援模式的密码

grub2-setpassword

存放救援模式密码的地方

/boot/grub2/user.cfg

相关推荐
运维&陈同学26 分钟前
【zookeeper04】消息队列与微服务之zookeeper客户端访问
linux·后端·微服务·zookeeper·云原生·消息队列·云计算
Guofu_Liao1 小时前
Macos远程连接Linux桌面教程;Ubuntu配置远程桌面;Mac端远程登陆Linux桌面;可能出现的问题
linux·ubuntu·macos
Peter_chq2 小时前
【计算机网络】数据链路层
linux·c语言·开发语言·网络·c++·后端·网络协议
御风_212 小时前
Linux——Uboot命令使用
linux·ubuntu
人工糖精3 小时前
nfs服务器
linux·运维·服务器
for_syq3 小时前
Android res复制脚本
android·linux·服务器
xxjkkjjkj3 小时前
TCP socket api详解 续
linux·网络
WZF-Sang3 小时前
Linux—进程概念学习-03
linux·运维·服务器·c语言·开发语言·学习·vim
周雨濛3 小时前
通过shell脚本分析部署nginx网络服务
linux·服务器·nginx