灬小肥狗灬
1
灬小肥狗之家灬

【原创】智汇云校RHCSA培训笔记整理

终端提示符

[root@localhost ~]#

  • root:当前登录的用户
  • @:at,在……
  • localhost:当前登录的主机名
  • ~:当前的目录
  • #:当前登录的用户是root
  • $:当前登录的用户是普通用户

快捷键

  • ctrl+c 废弃当前编辑的命令行(结束正在运行的命令)
  • Esc+.Alt+. 粘贴上一个命令的参数
  • ctrl+l 清空整个屏幕
  • ctrl+u 清空至行首
  • ctrl+w 往回删除一部分(以空格界定)
  • ctrl+shift+t 新开一个终端
  • ctrl+shift++ 放大
  • ctrl+- 缩小

常用命令

颜色区分文件类型:

  • 白色:文本文件
  • 蓝色:目录
  • 绿色:可执行文件
  • 蓝绿色:软链接
  • 红色:归档文件
  • 黄色:设备文件

cd:切换工作路径

cd -    # 返回上一次所处的目录
cd ..   # 返回上级目录
cd ~    # 切换当前用户的家目录

rm:删除文件或目录

选项:

  • -r 递归删除目录
  • -f 强制删除,不出现提示

cat: 查看文本

touch:创建空白文件

mkdir:创建空白目录

选项:

  • -p 递归创建目录

获取系统帮助

  1. help帮助
    • 命令 –help
  2. man手册
    • man 命令
    • 交互:
      1. 方向键滚动屏幕
      2. /关键词 搜索,n下一个,N上一个
      3. 放大字体 Ctrl + Shift + +
      4. 缩小字体Ctrl –
      5. q退出

vim:文本编辑器,不支持鼠标操作

vim 文件
若文件存在则编辑,否则创建后编辑
vim打开文件后默认进入“命令模式”
命令模式下“i”进入插入模式,“:”进入末行模式
wq或:x保存并退出
q!不保存强制退出

管道符 | :前面的命令的输出结果,交由后面的命令处理(只适用于单一参数的命令)

head [-n] 文件:显示前n行,默认10行

head -2 /etc/passwd # 显示/etc/passwd文件的前2行

tail [-n] 文件:显示后n行,默认10行

tail -3 /etc/passwd # 显示/etc/passwd文件的后3行

查看/etc/passwd的第8~12行

head -12 /etc/passwd | tail -5

grep:文本过滤

grep [选项] 过滤条件 文本

  • 选项
    • -n 显示行号
    • -v 取反
    • -i 忽略大小写
    • -c 统计匹配行数
  • 过滤条件
    • 关键词 显示有关键词的行
    • ^关键词 显示开头是关键词的行
    • 关键词$ 显示结尾是关键词的行
    • ^$ 显示出空行
grep root /etc/passwd
grep ^root /etc/passwd
grep shell$ /etc/passwd
grep -v  ^$ /etc/chrony.conf    # 过滤出非空行
grep -i shell$ /etc/passwd      # 忽略大小写过滤出shell
grep -c  ^$ /etc/chrony.conf    # 统计空行数

过滤出/etc/chrony.conf文件中的有效配置(不包含空行和以#开头的注释)

grep -v ^$ /etc/chrony.conf | grep -v ^#

修改网络配置

配置文件修改

vim /etc/sysconfig/network-script/ens160

### 以下是文件内容样例 ###

TYPE=Ethernet               # 类型:以太网  
BOOTPROTO=none              # IP地址配置类型:静态  
NAME=ens160                 # 网卡配置名称  
DEVICE=ens160               # 设备名字  
ONBOOT=yes                  # 是否开机自动联网  
IPADDR=172.25.0.11          # IP地址  
PREFIX=24                   # 子网掩码  
GATEWAY=172.25.0.254        # 网关  
DNS1=172.25.254.254         # DNS服务器

激活网卡

nmcli connection up 'ens160'

命令修改

nmcli(network management command line interface)

nmcli connect modify 'ens160' ipv4.method manual ipv4.adresses 172.25.0.11/24 ipv4.gateway 172.25.0.254 ipv4.dns 172.25.254.254 connetcion.autoconnect yes

激活网卡

nmcli connection up 'ens160'

检查是否配置成功

IP和掩码

ifconfig

网关

route -n

DNS

cat /etc/resolv.conf

伪图形界面修改

nmtui

压缩与解压缩

tar包的常见格式

tar.gz–>gzip,gunzip(速度最快,压缩比例最小)
tar.bz2–>bzip2,bunzip2
tar.xz–>xz,unxz(速度最慢,压缩比例最大)

打包tar包

tar -格式选项cf /路径/tar包名 /路径/源文档

  • 选项:
    • -c # 创建tar包(crate)
    • -f # 指定压缩文档(file),必须放在所有选项最后
    • -P # 压缩保留源文档的绝对路径,解包时可以用同样的选项,解包到保留的目录中
    • -v # 可视化压缩(visitable),显示压缩的过程
    • 格式选项:
      • -z # 用于.gz格式,记:zaiGuangZhou(在广州)
      • -j # 用于.bz2格式,记:小j BuxiZao(小鸡不洗澡)
      • -J # 用于.xz格式,记:大J XiZao(大鸡洗澡)

解包tar包

tar -xf /路径/tar包名 [-C 解包路径]

  • 选项:
    • -x # 解包
    • -f # 指定压缩文档(file),必须放在所有选项的最后
    • -P # 解包到打包时使用-P选项保留的绝对路径,若不使用则默认解包到当前路径
    • -C # 指定解包路径

查看tar包

tar -tf /路径

  • 选项:
    • -t # 查看tar包
    • -f # 指定压缩文档(file),必须放在所有选项的最后

ssh:远程连接

ssh [选项] [用户名@]远程主机 # 不写用户默认以当前登录的用户名登录

  • 选项:
    • -X # 远程登录主机调用远程主机的图形工具(Windows环境默认无法调用)
    • -p # 指定端口号

      scp:远程传输

scp [-r] /本地文件 用户名@远程主机:/目标路径  # 本地到远程
scp [-r] 用户名@远程主机:/远程文件 /本地路径  # 远程到本地
  • 选项:
    • -r # 递归传输

配置时间同步服务

确认软件包是否安装

rpm -q chrony

修改配置文件

vim /etc/chrony.conf

修改时间同步服务器
pool 【2.rhel.pool.ntp.org】 iburst—>pool 【classroom.example.com】 iburst

重启服务,使配置生效

systemctl restart chronyd

检验

chronyc sources -v

配置tuned性能调优

检查是否安装

rpm -q tuned

检查服务是否处于启动活跃状态

systemctl is-active tuned

查看tuned建议

tuned-adm recommend

根据推荐切换模式

tuned-adm profile virtual-guest

查看当前活跃配置

tuned-adm active

关闭调优

tuned-adm off

查看tuned状态

tuned-adm active

调优配置

周期性计划任务

编辑周期性计划任务

crontab -e -u 用户名
分 时 日 月 周 命令的绝对路径

  • 数字:匹配单位范围
  • *:匹配范围内任意时间
  • ,:分割多个不连续的时间点
  • -:指定连续时间范围
  • /n:代表频率

    查看周期性计划任务

crontab -l -u 用户名

软连接与硬链接:为了安全,一般使用软链接

软连接

特点

  • 源文件删除,软链接失效
  • 修改软链接,源文件也会修改;源文件修改,软链接也修改
  • 可以在与源文件不同的分区上建立软连接
  • 创建

ln -s /源文档 /软链接名

硬链接

特点

  • 源文件删除,硬链接不会失效
  • 修改硬链接,源文件也会修改;源文件修改,硬链接也修改
  • 硬链接和源文件必须放在同个分区中

创建

ln /源文档 /硬链接名

yum源装软件包

yum是一种自动解决依赖关系的工具

配置yum源

备份原有repo仓库文件

mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
mv /etc/yum.repos.d/{*.repo,bak}        # 等效于上面那条

编写配置文件

vim /etc/yum.repos.d/yum.repo

### 以下是文件内容 ###

[app]                           # 标识符  
name=this is app repo           # 仓库名  
baseurl=file:///dvd/AppStream   # yum源路径  
enabled=1                       # 是否启用仓库  
gpgcheck=0                      # 是否启用GPG签名  

[base]                          # 标识符  
name=this is base repo          # 仓库名  
baseurl=file:///dvd/BaseOS      # yum源路径  
enabled=1                       # 是否启用仓库  
gpgcheck=0                      # 是否启用GPG签名  

检验yum源

清空缓存

yum clean all

列出仓库报告

yum repolist

装软件包验证

yum -y install httpd

卸载软件包

yum remove httpd

autofs:实现一个来源于网络共享的目录只有在使用的时候才挂载,闲置时自动卸载

需求:现在有来自classroom上面通过NFS共享的本地用户user1的家目录,user1用户的目录在172.25.0.254:/rhel8/user1,通过autofs在本地把user1的家目录挂载到/home/rhel8/user1

安装软件包

yum -y install autofs

修改主配置文件

vim /etc/auto.master

### 最后一行加上 ###

/home/rhel8 /etc/auto.rule

用于容纳挂载目录的父目录 规则文件路径

创建规则文件,并写入规则

vim /etc/auto.rule

### 以下是文件内容 ###

user1 -rw 172.15.0.254:/rhel8/user1

启动服务并设置开机自启

systemctl enabled autofs --now

vim的高级使用技巧

命令模式

移动光标

方向键、Home键和End键

行间跳转

gg或1G跳转至第1行
G跳转到最后1行
10G跳转到第10行

复制粘贴

yy复制1行
3yy复制3行
p粘贴到光标之前
P粘贴到光标之后

剪切

dd剪切1行
3dd剪切3行
d^剪切到行首
d$剪切到行尾

删除

xDelete

查找关键字

/word,n向下搜索,N向上搜索

撤销

u撤销最近的操作
Ctrl+r撤销撤销操作

命令模式进插入模式

C删除光标之后的字符,并进入插入模式

i跳到光标所在字符前进入插入模式

a跳到光标所在字符前进入插入模式

s删除光标所在字符并进入插入模式

o跳到最后一行并进入插入模式

末行模式

保存/退出文件

:w保存当前文件
q!放弃编辑并退出
wq或:x保存并退出

字符串替换

:s/old/new将当前行第一个old替换为new
s/old/new/g将当前行所有old替换为new
n,m s/old/new将n-m行的第一个old替换为new
n,m s/old/new/g将n-m行所有的old替换为new
% s/old/new/g将全文所有的old替换为new

开关参数控制

:set nu打开行号显示
set nonu关闭行号显示
set ai打开自动缩进
set noai关闭自动缩进

破解密码

第一步:重启

重启,进入引导界面后选择默认内核,按下E

第二步:修改内核启动参数并进入救援模式

跳至第三行(Linux开头的那行)末尾,加入两个参数rd.break console=tty0,Ctrl+X执行启动

第三步:重新挂载根目录

mount -o remount,rw / /sysroot

第四步:切换到挂载的目录

chroot /sysroot

第五步:修改密码

echo 123 | passwd root --stdin

第六步:对SElinux重新打标签

touch /.autorelabel

第七步:退出挂载的目录

exit

第八步:退出救援模式

exit

第九步:较长时间的等待

因系统重新打标签需要时间,根据电脑配置不同,会比正常开机时间要长,是正常现象,稍等片刻即可

系统服务管理

systemctl 子命令 服务名

常用子命令:

restart重启服务
start启动服务
enable设置开机自启
disable设置开机不自启
status查看服务状态

systemctl enable --now 服务名设置开机自启并立刻启动服务(仅RHEL8支持)

systemctl status 服务名

两种颜色
绿色:服务启动成功,正常运行
红色:服务启动失败,服务未能正常启动

systemd目标:运行级别

graphical.target多用户模式,图形界面
multi-user.target多用户模式,文本界面
rescue.target单用户模式
emergency.target紧急shell模式

临时切换systemd目标

systemctl isolate graphical.target
systemctl isolate multi-user.target
systemctl isolate rescue.target
systemctl isolate emergency.target

查看systemd目标

systemctl get-default

修改默认的systemd的目标

systemctl set-default graphical.target

硬盘分区

查看硬盘

lsblk

查看分区列表

fdisk -l 设备名

为新磁盘分区

fdisk 设备名

创建主分区

进入fdisk后
N选择新建分区
Enter确定
P分为主分区
1选择1号分区
Enter选择起始扇区
+1G选择终止扇区,为1G大小
W保存退出

格式化

mkfs.xfs 分区设备名格式化为xfs文件系统
blkid 分区设备名显示分区信息,含有UUID和文件系统等信息

挂载

新建挂载点

mkdir 挂载点目录

临时挂载

mount 设备名 挂载点

启动时自动挂载

vim /etc/fstab

设备名 挂载点 文件系统 参数 备份标记 检测顺序

参数一般只有defaults,备份标记一般是0,检测顺序一般是0

检查fstab文件是否正确

mount 挂载点mount 设备名

查看是否挂载成功

df -Th列出磁盘空间情况和挂载点

卸载

umount 设备名umount 挂载点

设备命名规则

设备命名规则
sdb1:第二块SCSI或者SATA接口磁盘的第一个分区
s: SCSI或者SATA接口
d: disk磁盘
b: 第二块
1: 磁盘上面的第一个分区

交换分区(swap分区):虚拟内存

添加分区

参照前文的方法分区

格式化成swap分区

mkswap 设备名将分区格式化为swap分区

检查是否格式化成功

blkid 设备名

临时启动交换分区

swapon 设备名

检查是否启动成功

swapon -s

停用交换分区

swapoff 设备名

设置开机自动启动swap分区

vim /etc/fstab

设备名 swap swap defaults 0 0

检查fstab是否配置正确

swapon -a开启所有swap分区
swapon -s确认所有swap分区开启

LVM分区

物理的P(physical)
卷V(volume)
组G(group)
逻辑的L(logical)

创建LVM卷

先创建物理卷,然后创建卷组,最后从卷组创建逻辑卷。

创建物理卷

pvcreate 设备名

创建卷组

vgcreate 卷组名 要加入卷组的物理卷1 要加入卷组的物理卷2 ……

创建逻辑卷

lvcreate -L 逻辑卷大小 -n 逻辑卷名 卷组名
lvcreate -l PE个数 -n逻辑卷名 卷组名

格式化

mkfs.xfs 逻辑卷

挂载

扩展逻辑卷

卷组有空余

直接扩展逻辑卷

lvextend -L +50M 逻辑卷名将逻辑卷增加50M大小
lvextend -L 50M 逻辑卷名 将逻辑卷扩展到50M大小
lvextend -l PE个数 逻辑卷名 将逻辑卷大小扩展到指定PE个数的大小
lvextend -l +PE个数 逻辑卷名 将逻辑卷大小增加指定PE个数的大小
lvextend -l +100%FREE 逻辑卷名(全路径)将卷组所有剩余PE扩展给逻辑卷

刷新文件系统

若不刷新文件系统,在df -Th下看不到可用空间。
resize2fs 逻辑卷名ext文件系统使用
xfs_growfs 挂载点xfs文件系统使用

卷组没空余空间

先扩展卷组

将物理卷加入到卷组

vgextend 卷组名 物理卷

按照卷组有空余操作

设置卷组PE大小

PE大小规则

  1. 必须是2的次幂
  2. 新的PE能被逻辑卷整除,同时能被卷组剩余空间整除

修改现有卷组PE大小

vgchange -s PE大小 卷组名

创建卷组时指定PE大小

vgcreate -s PE大小 卷组名 物理卷

配置Stratis

安装软件包

yum -y install stratis-cli stratisd

设置开机自启服务并立刻启动

systemctl enable --now stratisd

创建存储池

stratis pool create 存储池名 设备名

查看已有存储池

stratis pool list

为已有的存储池添加块设备

stratis pool add-data 存储池名 块设备名

查看存储池内的块设备

stratis blockdev list 存储池名

基于存储池建立文件系统

stratis filesystem create 存储池名 文件系统名

查看文件系统

stratis filesystem list列出现有文件系统名

查查看文件系统类型

blkid 文件系统名

挂载文件系统

创建挂载点并设置开机自动挂载

mkdir 挂载点创建挂载点

vim /etc/fstab

UUID="blkid里查到的UUID,要用双引号引起来" 挂载点 文件系统类型 defaults,x-systemd.requires=stratisd.service 0 0

x-systemd.requires=stratisd.service是要求在这个服务启动之后再尝试挂载,否则可能会导致系统启动失败。

创建及使用快照

stratis filesystem snapshot 存储池 文件系统名 快照名创建快照
stratis filesystem list列出所有快照

用快照恢复文件

mount 快照名 挂载点将快照挂载到一个挂载点,从里面拷贝文件,还原文件

创建VDO卷

配置并检查yum源是否可用

yum clean all
yum repolist

安装软件包

yum -y install vdo kmod-kvdo

创建VDO卷,指定大小50GB

vdo create -n vdo1 --device /dev/sdb --vdoLogicalSize 50G

查看所有的VDO

vdo list

查看VDO状态

vdo status -n vdo1 | grep Dedu  # Deduplication: enabled 开启去重
vdo status -n vdo1 | grep Com  # Compression: enabled 开启压缩

启动/停止VDO

vdo start -n vdo1
vdo stop -n vdo1

格式化

mkfs.xfs /dev/mapper/vdo1
vdostats /dev/mapper/vdo1

挂载

创建挂载点

mkdir /vdo-test

设置开机自动挂载

blkid /dev/mapper/vdo1

# 得到UUID为bf9b6c29-15a3-427b-b6ca-03b1a4c55662

vim /etc/fstab

# 以下是文件内容

UUID="bf9b6c29-15a3-427b-b6ca-03b1a4c55662"   /vdo-test   xfs  defaults,x-systemd.requires=vdo.service 0 0

测试VDO卷

创建测试文件

dd if=/dev/urandom of=/mnt/test1 bs=1M count=500  # 生成一个500M的随机文件

测试

终端一:

watch -n 1 vdostats --human-readable

终端二:

cp /mnt/test1 /vdo-test/file1
cp /mnt/test1 /vdo-test/file2
cp /mnt/test1 /vdo-test/file3

防火墙

预设安全区

  • public:仅允许访问本机的ssh,dhcp,cockpit这3个服务及ping本机
  • trusted:允许任何访问
  • block:阻塞任何访问请求,明确拒绝
  • drop:丢弃任何来访的数据包,直接丢弃

访问拦截匹配规则

  1. 查看预设安全区中是否有包含关于来源IP地址的规则
  2. 匹配默认区域

查看防火墙服务是否激活

systemctl is-active firewalld.service

查看和防火墙的默认区域

firewall-cmd --get-default-zone 

永久修改防火墙的默认区域

firewall-cmd --set-default-zone=trusted  # 修改默认防火墙区域为trusted

为区域添加可访问的服务

firewall-cmd --permanent --zone=public --add-service=snmp  # 永久为public区域添加snmp服务的访问权限
firewall-cmd --zone=public --list-all  # 查看public区域的状态信息
firewall-cmd --reload  # 重载防火墙策略

为区域添加IP或网段

firewall-cmd --permanent --zone=block --add-source=10.1.1.1  # 将10.1.1.1添加到block区域
firewall-cmd --permanent --zone=block --add-source=10.1.1.0/8  # 将10.1.1.0/8添加到block区域

端口转发(映射)

firewall-cmd --permanent --zone=trusted --add-forward-port=port=80:proto=tcp:toport=8080  # 将trusted区域访问TCP协议80端口的流量全部转发到8080端口

SELinux(Security-Enhanced Linux)

SELinux的三种模式

  • enforcing 强制模式:禁止触发SELinux的操作
  • permissive 宽松模式:允许触发SELinux的操作,但会记录在日志中
  • disalbed 禁用模式:关闭SELinux

临时切换SELinux模式(重启后恢复配置文件中的模式)

setenforce 1  # 强制模式
setenforce 0  # 宽松模式

永久切换SELinux模式(修改配置文件,重启生效)

vim /etc/sysconfig/selinux

# 修改以下行

SELINUX=permissive

SELinux安全上下文

SELiux布尔值

在开启SELinux的服务器上架设SMB服务器时,由于SELinux的限制,会遇到客户端无法读写文件的问题,此时需要启用samba_export_all_rw这个sebool。

getsebool -a | grep samba  # 查询所有的sebool,过滤出samba相关的sebool
setsebool -P samba_export_all_rw on  # 设置samba_export_all_rw为启用

SELinux白名单限制

在开启SELinux的服务器上架设Web服务器(httpd),并非监听默认端口时,由于SELinux的限制,httpd服务会无法启动,此时需要添加这个端口到SELinux的白名单中。

semanage port -l | grep http  # 查询所有的端口上下文限制,过滤出http相关的上下文
semanage port -a -t http_port_t -p tcp 8909  # 设置http_port_t的上下文添加TCP协议8909端口

SELinux文件安全上下文

在开启SELinux的服务器上架设Web服务器(httpd),使用非默认目录作为网页文件的存放目录时,由于SELinux的限制,主页目录无法读取,无法展示主页目录到浏览器,此时需要修改这个目录的SELinux上下文。

ls -Zd /var/www/html/  # 查看/var/www/html的安全上下文
system_u:object_r:httpd_sys_content_t:s0 /var/www/html/

chcon -R --reference=/var/www/html /test  # 参照/var/www/html的安全上下文递归修改/test的安全上下文  

灬小肥狗灬

文章作者

发表回复

textsms
account_circle
email

9 + 12 =

灬小肥狗之家灬

【原创】智汇云校RHCSA培训笔记整理
终端提示符 [root@localhost ~]# root:当前登录的用户 @:at,在…… localhost:当前登录的主机名 ~:当前的目录 #:当前登录的用户是root $:当前登录的用户是普通用户 快捷键 ctrl+c…
扫描二维码继续阅读
2022-07-26