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

相关推荐
眠修42 分钟前
Kuberrnetes 服务发布
linux·运维·服务器
即将头秃的程序媛4 小时前
centos 7.9安装tomcat,并实现开机自启
linux·运维·centos
fangeqin4 小时前
ubuntu源码安装python3.13遇到Could not build the ssl module!解决方法
linux·python·ubuntu·openssl
爱奥尼欧5 小时前
【Linux 系统】基础IO——Linux中对文件的理解
linux·服务器·microsoft
超喜欢下雨天6 小时前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2
tan77º6 小时前
【Linux网络编程】网络基础
linux·服务器·网络
笑衬人心。7 小时前
Ubuntu 22.04 + MySQL 8 无密码登录问题与 root 密码重置指南
linux·mysql·ubuntu
chanalbert8 小时前
CentOS系统新手指导手册
linux·运维·centos
星宸追风9 小时前
Ubuntu更换Home目录所在硬盘的过程
linux·运维·ubuntu
热爱生活的猴子9 小时前
Poetry 在 Linux 和 Windows 系统中的安装步骤
linux·运维·windows