RHCE
- 一、复习RHCSA
- 1.1 系统安装
- 1.1.1 安装虚拟机
- 1.1.2 第一个快照
- 1.1.3 第二个快照
- vi编辑器
- 1.1.4 看网关网卡
- 1.2 文件管理
- 1.3 目录管理
- 1.4 用户管理
- 1.5 权限管理
- 1.6 存储管理
- 1.6.1 标准分区管理实验:
- 1.6.2 逻辑卷管理实验:
- 1.6.3 交换空间管理实验
- 1.7 软件管理
- 1.8 服务进程
- 1.9 网络管理
- 二、
一、复习RHCSA
系统安装
文件管理
文件创建
touch vim nano echo 重定向>
文件查看
cat tac more less head tail
修改
vim nano echo >>>> 追加、覆盖
移动
mv a b
复制
cp a b
删除
rm -r:递归删除,-f:强制
目录管理
目录创建 mkdir
目录删除 rmdir
rm -d:删除空目录 rm -f:强制删除 rm -r:递归删除
用户管理
用户管理
用户添加 useradd adduser
删除 userdel -r 递归
修改 usermod USERNAME
查看 id USERNAME
用户组管理
添加 groupadd
删除 groupdel
修改 groupmod
查看 grep GROUPNAME /etc/group
涉及到的文件
/etc/passwd 存储系统中所有用户的基本信息
/etc/shadow 保存用户密码
/etc/group 储存用户组信息
/etc/gshadow 保存组的密码信息
/etc/skel 用户家目录下的相关隐藏文件
/etc/default/useradd 创建用户的相关信息
/etc/login.defs
/var/spool/mail
权限管理
标准权限管理
文件 目录
r 可以读取 列出目录
w 可以修改 创建删除目录中的文件
x 可执行 可切换
chmod(修改权限) u g o a
+ - =
扩展权限
文件访问控制列表
setfacl
getfacl
特殊权限
suid 实现目标可执行程序在运行之后形成的进程的所有者为可执行程序的所有者,而不是发起者
sgid 实现目录中创建的文件默认所属组为目标所属组
sticky 实现目录中的文件只有创建者可以删除
权限掩码
umask
0022
1234
1:特殊权限的权限掩码
234:标准权限的权限掩码
文件属性
i a
chattr
lsattr
文件所有者和所属组
chown
chgrp
存储管理
标准的存储管理
主分区 1-4
扩展分区
逻辑分区 5....
硬盘sata sda sda1 sda2 sdb sdc
硬盘nvme nvme0n1 nvme0n1p1 nvme0n1p2 nvme0n2
光盘sr0
逻辑卷管理
交换空间管理
自动挂载
软件管理
服务进程
网络管理
1.1 系统安装
1.1.1 安装虚拟机
创建一个虚拟机,密码:redhat
1.1.2 第一个快照
关机命令:
systemctl poweroff
1.1.3 第二个快照
vi编辑器
在 windows 中我们有记事本,word 等可视化的文本编辑工具可以使用,但在 Linux 中给我们内置的就只有 vi 编辑器,它的作用就类似于 windows 中的记事本。
使用 vim 来进行文件的编辑(包括创建、修改)。
在Vim编辑器中设置了三种模式:命令模式、末行模式 和 编辑模式
进入vim模式后,即可编辑内容。退出时,点击wsc,输入冒号+命令即可退出
:q 退出
:q!强制退出
:wq 保存退出
命令模式:
这是 vim 进入后的默认模式。在这个模式下,可以执行如下的命令:
- 光标跳转:
1. 通过上下左右键来进行移动
2. gg 用于回到文件开头(连续按两次 g 键)
3. G 用于回到文件的结尾(shift + g)
4. 将当前光标所在位置移动到行首和行尾按^(行首)和$(行尾)
5. 按单词进行向后移动,按 w,如果希望按单词几前则按 b - 复制:
1. yy表示复制,nyy表示复制 n 行(从光标所以位置向后计算)
2. p表示粘贴所复制的内容 - 删除:
1. u表示撤销当前的操作
2. dd表示删除光标所在行,ndd表示删除从光标所在行向后计算 n 行,dG 表示从当前光标删除后最后,dgg表示从当前光标删除到最前
编辑模式:
编辑模式也叫插入模式,当我们在命令模式下按 aios 或者 AIOS 这几个键时,就会从命令模式转换为编辑模式。
i:表示在将前插入
a:表示在光标后插入
I:表示在非空行前插入
A:表示在非空行后插入
o:表示在光标所在行的下一行插入
O:表示在光标所在行的上一行插入
s:表示删除插入
S:表示删除行插入
末行模式:
- 文档保存并退出 :wq shift+zz
- 文件保存 :w
- 退出 :q :q!
- 另存为 :w 文件路径
- 将指定的文件写入到该文件中 :r 文件路径
- 执行关键字搜索 /输入要搜索的关键字 找到后按 n 向后查找,按 N 向前查找
- 搜索替换 :%s/被替换的关键字/替换的内容/gi g表示全局替换,i表示不区分大小写
- 只替换某一行 :3,12s/root/admin/g 表示替换3到 12 行所有 root 为 admin
- 显示行号 :set nu
- 关闭行号 :set nonu
- 取消高亮 :noh
安装仓库:
cd /etc/yum.repos.d/
vim rpm.repo
[baseos]
name=baseos
baseurl=/mnt/BaseOS
gpgcheck=0
[appstream]
name=appstream
baseurl=/mnt/AppStream
gpgcheck=0
输入完命令,esc退出输入模式,进入命令模式输入:wq回车,保存退出
mount /dev/sr0 /mnt
安装一个软件测试是否安装仓库成功
dnf install httpd -y
成功后删除软件
[root@localhost yum.repos.d]# dnf remove httpd -y
关机
init 0
1.1.4 看网关网卡
DNS
GATEWAY
nmcli connection show ens160 | grep DNS
nmcli connection show ens160 | grep GATEWAY
1.2 文件管理
文件管理
文件创建
touch vim nano echo 重定向>
文件查看
cat tac more less head tail
修改
vim nano echo >>>> 追加、覆盖
移动
mv a b
复制
cp a b
删除
rm -r:递归删除,-f:强制
文件类型:
-f 普通文件,它是使用短横线(-)表示
-d 目录文件,它是使用(d)表示
-l 链接文件,它是使用(l)表示
-s 套接字文件,它是使用(s)表示
-b 块设备文件,它是使用(b)表示
-c 字符设备文件,它是使用(c)表示
-p 管道文件,它是使用(p)表示
1.3 目录管理
目录管理
目录创建 mkdir
目录删除 rmdir
rm -d:删除空目录 rm -f:强制删除 rm -r:递归删除
1.4 用户管理
用户管理
用户管理
用户添加 useradd adduser
删除 userdel -r 递归
修改 usermod USERNAME
查看 id USERNAME
用户组管理
添加 groupadd
删除 groupdel
修改 groupmod
查看 grep GROUPNAME /etc/group
涉及到的文件
/etc/passwd 存储系统中所有用户的基本信息
/etc/shadow 保存用户密码
/etc/group 储存用户组信息
/etc/gshadow 保存组的密码信息
/etc/skel 用户家目录下的相关隐藏文件
/etc/default/useradd 创建用户的相关信息
/etc/login.defs
MAIL_DIR /var/spool/mall 普通账号、root账号,以及所有账号的邮箱都在这个路径底下,路径是由MAIL_DIR这个变量进行控制,即指定了创建的账号的邮箱所在地
UMASK 022 权限掩码
HOME MODE 0700 当创建用户的时候,会自动创建这个用户的家目录,这个用户默认的家目录的权限是0700 0(特殊权限)700(所属组及其他人都没有权限)
PASS_MAX_DAYS 9999 密码最大使用时间
PASS_MIN_DAYS 0 即随时都可以用
PASS_WARN_AGE 7 密码有效警告时间(在最大值-7天之后不改密码就警告)
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
ENCRYPT_METHOD SHA512 密码加密方式SHA512
USERGROUPS_ENAB yes 在删除某个账号以后,如果这个组内没有其他成员了,就用这个功能启用
....
/var/spool/mail
/etc/passwd :存储系统中 所有用户的基本信息
/etc/shadow :保存 用户密码
/etc/group :储存 用户组信息
/etc/gshadow: 保存 组的密码 信息
/etc/skel :用户家目录下的相关隐藏文件
/etc/default/useradd :创建 用户的相关信息
/etc/login.defs:
/var/spool/mail:
/etc/skel :用户家目录下的相关隐藏文件
当创建一个账号,就会从这个目录将这些文件拷贝到用户的家目录里面
这个普通账号redhat中有三个文件一个目录,来自于/etc/skel
如果想给某些新创建的用户发布一些文件,就可把文件放到/etc/skel中去,当用户创建完成后,即可在该账号的家目录下看见这些文件
/etc/default/useradd :创建 用户的相关信息
里面有些参数在使用useradd创建用户的时候需要遵守的规则
组
家目录所在地
账号有限期
过期时间
默认shell
默认从哪里拷文件
要不要创建CREATE_MAIL_SPOOL
1.5 权限管理
权限管理
标准权限管理
文件 目录
r 可以读取 列出目录
w 可以修改 创建删除目录中的文件
x 可执行 可切换
chmod(修改权限) u g o a
+ - =
扩展权限
文件访问控制列表
setfacl
getfacl
特殊权限
suid 实现目标可执行程序在运行之后形成的进程的所有者为可执行程序的所有者,而不是发起者
sgid 实现目录中创建的文件默认所属组为目标所属组
sticky 实现目录中的文件只有创建者可以删除
权限掩码
umask
0022
1234
1:特殊权限的权限掩码
234:标准权限的权限掩码
文件属性
i a
chattr
lsattr
文件所有者和所属组
chown
chgrp
chmod 命令是用于给文件或目录设置权限
如果是目录,我们需要使用 -R 选项,表示递归修改指定目录下所有文件及其子目录的权限,如果是文件这个选项可以不用指定。使用这个命令我们可以使用 rwx 或者数字来表示权限,还可以通过 u、g、o、a 来表示对那个部分设置权限。
chown 命令是用于给文件或目录修改所属者和所属组权限
如果只修改所属者则使用 chown新所属者 文件或目录… ,如果只修改所属组则使用 chown :新所属组 文件或目录…`。
u表示所属者 ueser
g表示所属组 group
o表示其他用户 other
a表示(u+g+o) all
1.6 存储管理
存储管理
标准的存储管理
主分区 1-4
扩展分区
逻辑分区 5....
硬盘sata sda sda1 sda2 sdb sdc
硬盘nvme nvme0n1 nvme0n1p1 nvme0n1p2 nvme0n2
光盘sr0
逻辑卷管理
交换空间管理
自动挂载
1.6.1 标准分区管理实验:
查看磁盘信息: lsblk
分区格式化: mkfs
查看分区 id 号: blkid
分区挂载: mount
卸载:umount
分区挂载实例:
# 将 /dev/sda1 设备挂载到 /guazai1 目录
[root@bogon ~]# mount /dev/sda1 /guazai1
1.6.2 逻辑卷管理实验:
逻辑卷由以下几个部分组成:
- 物理设备,一般指的是系统存储设备,如:/dev/sda1、/dev/sda2等
- 物理卷(physical volume, PV),它是由多个分区或整个硬盘组成
- 卷组(Volume Group),简称 VG,它可以看成单独的逻辑磁盘,一个卷组中至少包括一个 PV,
- 在卷组创建好后,可以动态添加 PV 到卷组中。
- 逻辑卷(Logical Volume),简称 LV,相当于物理分区,它是建立在卷组之上。
[root@localhost ~]# ll /dev/sda*
brw-rw----. 1 root disk 8, 0 Oct 13 16:27 /dev/sda
brw-rw----. 1 root disk 8, 1 Oct 13 16:27 /dev/sda1
brw-rw----. 1 root disk 8, 2 Oct 13 16:27 /dev/sda2
[root@localhost ~]# ll /dev/nvme0n2
brw-rw----. 1 root disk 259, 3 Oct 13 16:05 /dev/nvme0n2
[root@localhost ~]# vgcreate vgtest /dev/sda /dev/nvme0n2
Cannot use /dev/sda: device is partitioned
Command requires all devices to be found.
[root@localhost ~]# lvcreate -n lvtest -L 30G vgtest
Volume group "vgtest" not found
Cannot process volume group vgtest
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel -wi-ao---- 44.17g
swap rhel -wi-ao---- 4.82g
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rhel 1 2 0 wz--n- <49.00g 0
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rhel lvm2 a-- <49.00g 0
[root@localhost ~]# mkfs.xfs /dev/mapper/vgtest-lvtest
Error accessing specified device /dev/mapper/vgtest-lvtest: No such file or directory
Usage: mkfs.xfs
/* blocksize */ [-b size=num]
/* config file */ [-c options=xxx]
/* metadata */ [-m crc=0|1,finobt=0|1,uuid=xxx,rmapbt=0|1,reflink=0|1,
inobtcount=0|1,bigtime=0|1]
/* data subvol */ [-d agcount=n,agsize=n,file,name=xxx,size=num,
(sunit=value,swidth=value|su=num,sw=num|noalign),
sectsize=num
/* force overwrite */ [-f]
/* inode size */ [-i perblock=n|size=num,maxpct=n,attr=0|1|2,
projid32bit=0|1,sparse=0|1,nrext64=0|1]
/* no discard */ [-K]
/* log subvol */ [-l agnum=n,internal,size=num,logdev=xxx,version=n
sunit=value|su=num,sectsize=num,lazy-count=0|1]
/* label */ [-L label (maximum 12 characters)]
/* naming */ [-n size=num,version=2|ci,ftype=0|1]
/* no-op info only */ [-N]
/* prototype file */ [-p fname]
/* quiet */ [-q]
/* realtime subvol */ [-r extsize=num,size=num,rtdev=xxx]
/* sectorsize */ [-s size=num]
/* version */ [-V]
devicename
<devicename> is required unless -d name=xxx is given.
<num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),
xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).
<value> is xxx (512 byte blocks).
[root@localhost ~]# mkdir /lvm
[root@localhost ~]# mount /dev/mapper/vgtest-lvtest /lvm
mount: /lvm: special device /dev/mapper/vgtest-lvtest does not exist.
[root@localhost ~]# df -f /lvm
1.6.3 交换空间管理实验
[root@localhost ~]# umount /lvm
umount: /lvm: not mounted.
[root@localhost ~]# lvremove /dev/vgtest/lvtest
Volume group "vgtest" not found
Cannot process volume group vgtest
[root@localhost ~]# vgremove vgtest
Volume group "vgtest" not found
Cannot process volume group vgtest
[root@localhost ~]# pvremove /dev/sda
Cannot use /dev/sda: device is not in devices file
[root@localhost ~]# pvremove /dev/nvme0n2
Cannot use /dev/nvme0n2: device is not in devices file
[root@localhost ~]# vgcreate vgswap /dev/sda /dev/nvme0n2
Cannot use /dev/sda: device is partitioned
Command requires all devices to be found.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rhel 1 2 0 wz--n- <49.00g 0
[root@localhost ~]# lvreate -n lvswap -L 30G vgswap
bash: lvreate: command not found...
Failed to search for file: /mnt/BaseOS was not found
[root@localhost ~]# mkswap /dev/mapper/vgswap-lvswap
mkswap: cannot open /dev/mapper/vgswap-lvswap: No such file or directory
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 9492 1509 7514 21 741 7982
Swap: 4939 0 4939
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 5058556 0 -2
[root@localhost ~]# swapon /dev/mapper/vgswap-lvswap
swapon: cannot open /dev/mapper/vgswap-lvswap: No such file or directory
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 5058556 0 -2
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 9492 1510 7513 21 741 7981
Swap: 4939 0 4939
[root@localhost ~]# blkid
/dev/mapper/rhel-swap: UUID="ef4e9ee5-c40b-4cc7-a08e-f1e8e92f1d0b" TYPE="swap"
/dev/nvme0n1p1: UUID="3b867212-e739-4c55-9edb-07a4c6133743" TYPE="xfs" PARTUUID="73c546dd-01"
/dev/nvme0n1p2: UUID="MHxLRQ-Iyzk-5di3-AMT0-gYYU-kKbb-g8DeFQ" TYPE="LVM2_member" PARTUUID="73c546dd-02"
/dev/sr0: UUID="2023-10-25-09-17-25-00" LABEL="RHEL-9-3-0-BaseOS-x86_64" TYPE="iso9660" PTUUID="ece57f7f" PTTYPE="dos"
/dev/mapper/rhel-root: UUID="4274fde4-921f-4120-8d07-feb52d4e3503" TYPE="xfs"
/dev/sda2: PARTUUID="c130813b-02"
/dev/sda1: PARTUUID="c130813b-01"
[root@localhost ~]# vim etc/fstab
[root@localhost ~]# reboot
[root@localhost ~]# Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(192.168.30.128:22) at 16:51:07.
Type `help' to learn how to use Xshell prompt.
[C:\~]$ ssh root@192.168.30.128
Connecting to 192.168.30.128:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Activate the web console with: systemctl enable --now cockpit.socket
Register this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Sun Oct 13 16:06:09 2024 from 192.168.30.1
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 5058556 0 -2
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 9492 1018 8223 15 513 8474
Swap: 4939 0 4939
1.7 软件管理
在 Linux 中安装软件分为以下三种方式:
- 源码安装
- rpm包安装
- yum/dnf安装
vim redhat.repo
在这里插入代码片
vim bendi.repo
name=baseos
baseurl=/rpm/BaseOS
gpgcheck=0
[appstream]
name=appstream
baseurl=/rpm/AppStream
gpgcheck=o
vim wangluo.repo
[baseos]
name=baseos
baseurl=http://47.108.86.156/rhel9.0/x86_64/dvd/BaseOS/
gpgcheck=0
[appstream]
name=appstream
baseurl=http://47.108.86.156/rhel9.0/x86_64/dvd/AppStream
gpgcheck=0
mount /dev/sro/mnt 挂载 /mnt 软件
mkdir /rpm 创建目录
cp /mnt/Appstream//rpm/-r 复制镜像中的软件目录
cp /mnt/BaseOS//rpm/-r 复制镜像中的软件目录 -r:递归
cd /etc/yum.repos.d/ 切换目录