ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RHCSA第一次作业实操指南:从基础命令到容器应用

RHCSA第一次作业实操指南:从基础命令到容器应用 RHCSA作为红帽认证体系里的入门级证书是很多Linux从业者规划里的第一站。第一次作业听起来简单但它往往决定了你后续整个备考节奏的顺滑程度——毕竟后面要练的SELinux、逻辑卷管理、容器部署全都建立在最基础的命令行操作和文件系统理解之上。这篇文章把我做RHCSA第一次作业的完整思路、实操命令、踩坑记录都整理出来给正在起步的同行一个可以直接照做的参考。1. 第一次作业到底在练什么——作业内容与考试大纲的对应关系RHCSA的考试大纲翻来覆去就那么几块文件与目录操作、用户与权限管理、存储配置、SELinux、防火墙、软件包管理、systemd服务管理、网络配置以及最近几年加入的容器基础。都说RHCSA是“入门级”但这个入门级覆盖的面其实很宽第一次作业就是把考试大纲里最基础、最容易被忽略的那部分先打一遍底。很多人在第一次作业时容易犯一个心态上的错误觉得命令会敲、能出结果就完事了。RHCSA考试的题目是“操作题”不是选择题它考察的不是你“知道”某个命令而是你在规定时间内能不能稳定、准确、可复现地完成一套操作。第一次作业的真正目标不是做完而是让你建立一套“拿到题目→分析需求→选择命令→执行验证”的完整思维链路。以红帽官方RHCSA 9.X版本的考试范围为例第一次作业通常覆盖这些点文件与目录的基础操作创建、复制、移动、删除、查找文本文件的查看、过滤与编辑grep、sed、awk、vim用户与组的管理创建用户、设置密码、管理组成员文件权限与归属chmod、chown、umask压缩打包与归档tar、gzipsystemd服务的基本管理systemctl start、enable、status软件包安装dnf、yum、rpm容器基础操作podman的search、pull、run、login这里面的每一项单独拿出来都不难但合在一起就是一场对基础功的全面检视。我的建议是做作业别急着动手先把每道题要考察的知识点圈出来再去想命令。下面我按我自己做第一次作业的顺序把每一步的实操过程写出来。2. 环境准备——虚拟机、系统安装与快照的那些事做RHCSA练习的第一步是准备一个可以反复折腾的练习环境。除非你手上有现成的红帽服务器否则最实际的做法就是本地虚拟机。我选的是VMware Workstation装Red Hat Enterprise Linux 9.x或者Rocky Linux 9行为和RHEL几乎一致而且可以免费下载。如果你只有Windows电脑VirtualBox也是可以的只是VMware在虚拟机配置和快照管理上顺手一些。系统安装阶段有几个细节值得注意。分区方案直接用“自动配置”是可以的但如果你想让后续的LVM练习更贴近考试环境建议在安装时手动配置分区——划一个/boot剩下的空间全部交给LVM挂载到/然后留出部分volume group的空闲空间。原因很简单RHCSA考试里有一道题就是“把新增的磁盘加入现有的卷组并扩展逻辑卷”如果你从一开始就留好了VG空闲空间后面练起来会顺手很多。安装完成后有两件事必须做。第一创建快照。快照是练习环境最重要的安全网做坏了一个快照恢复回去就能重新来过。做RHCSA练习的理想节奏是每完成一个主题的练习就拍一个快照这样万一后续实验把系统搞得起不来也不用从头重装。第二配置好普通用户环境——考试要求用普通用户登录然后通过su或sudo切换到root执行管理操作。第一次作业就养成这个习惯后面考试时会轻松很多。提示安装系统时给root设密码同时再创建一个普通用户并加入wheel组。RHCSA考试明确规定“root不允许直接通过SSH登录”平时练习至少要用sudo -i进入root环境这个习惯越早养成越好。还有一个容易忽略但很重要的小事练习机的网络配置。考试不会给你DHCP网络卡配置全靠manual。我第一次作业就被这个坑了——感觉网络怎么都不通排了半天才发现是配置文件里BOOTPROTO写成了dhcp。第一次作业期间建议强制自己用手动方式配置IP多为后面考试攒点手感。3. 文件与目录操作——最基础却也最考验细节文件与目录操作占据了RHCSA考试题目量的相当比重这部分题目考验的是“准不准”和“快不快”。题目给什么样的路径你就得在什么路径下创建写错一个字符就是零分。第一次作业里我给自己定了几个固定的练习套路照着这个套路反复练形成肌肉记忆。首先是路径的理解。练习时把绝对路径和相对路径分清楚。比如题目说“在/tmp目录下创建一个名为testdir的目录”你既可以cd /tmp然后mkdir testdir也可以直接mkdir /tmp/testdir。两种方式没有对错之分但考试时最好养成全路径操作的习惯这样就算你切到了其他目录命令也不会走偏。文件操作的命令就那几个ls、cp、mv、rm、touch、mkdir、ln。真正值得花时间的是组合使用。举例来说练习“复制目录并保留属性”的题目时命令是cp -a /var/log /tmp/log_backup-a参数等价于dR --preserveall即保留链接、权限、时间戳等所有属性。单纯用cp -r会把符号链接的原始属性丢掉这在考试里是会扣分的点。同理移动文件的时候要注意mv在同一个文件系统内是“改个名字”的操作不会重新写数据而跨文件系统移动会涉及复制再删除。理解这个区别对判断“移动大目录时为什么这么慢”和“为什么mv之后属性变了”非常有帮助。查找文件这块find是重点尤其是按条件组合查找。第一次作业我给自己出的练习是“在/usr/share/doc下找出所有大于500K的普通文件并复制到/mnt/findresult目录”。实际命令find /usr/share/doc -type f -size 500k -exec cp {} /mnt/findresult/ \;这里有几个容易被新手卡住的点。第一-size 500k的加号表示“大于”没有加号表示“精确等于”减号表示“小于”第二-exec后面的大括号{}会被替换为查找到的每个文件名而末尾的;是执行命令的结束标记——很多人漏掉这个转义分号导致命令报错。这个报错我在练习时至少遇到三次写下来提醒大家。还有一个高频考点是硬链接和符号链接。第一次作业阶段搞明白“硬链接是同一个inode的两个目录项符号链接是一个指向路径的快捷方式”就足够了。实操验证方式很简单ln /etc/hosts /tmp/hosts_hard ln -s /etc/hosts /tmp/hosts_soft ls -li /etc/hosts /tmp/hosts_hard /tmp/hosts_soft-i参数能显示inode号你会看到hosts和hosts_hard的inode号相同而hosts_soft的inode不同且文件类型显示为l。考试里经常会让“为某个文件创建链接”用软链接还是硬链接取决于题目描述比如“创建一个名为xxx的符号链接指向xxx”所以看清题目是关键。4. 文本处理与vim——RHCSA练习里最容易被低估的部分文本处理在RHCSA考试中的占比不像文件操作那么显眼但几乎每一道题都离不开它——改配置文件要用vim查看日志要用grep和tail提取字段要用awk和cut批量替换要用sed。第一次作业如果能把文本处理的几个核心工具练熟后面的SELinux和systemd练习会顺畅很多。grep是文本过滤的基础。备考时要熟练掌握的基本用法包括-v反向匹配、-i忽略大小写、-r递归目录搜索、-c统计行数、-A和-B显示匹配行的后几行和前几行。我在第一次作业中给自己练的一个场景是“从/var/log/messages中查找所有包含error类型的日志行并统计条数”grep -i error /var/log/messages | wc -l这里有必要解释一下管道符的用法整个命令行由grep、|和wc三个部分组成。竖线管道把grep的输出结果交给wc -l去统计行数这是Linux“一个小工具干好一件事再用管道组合”哲学的最典型体现。第一次作业就应该把这种组合命令的思路刻进脑子里。awk和sed是文本处理的两把大刀。第一次作业阶段不要求把awk的所有功能记熟但必须掌握最常用的模式打印指定列、按分隔符分割、条件过滤。awk -F: {print $1, $3} /etc/passwd这句话的意思是用冒号作为分隔符打印/etc/passwd文件中的第一列用户名和第三列UID。RHCSA考试里有很多操作组合都需要这个能力比如统计用户、修改配置文件字段等等。sed的典型场景是流式替换。比如替换一个配置文件中的所有旧IP为新IPsed -i s/192.168.1.10/192.168.1.20/g /etc/some.conf-i表示直接修改文件s是替换命令g是全局替换。s命令后面的分隔符并不一定得是斜杠如果路径里有很多斜杠可以换成s旧新g这是个小技巧很多资料里不会特意说明。至于vim我的建议是不要在第一次作业阶段追求花哨操作。把“打开文件→编辑→保存退出”这几个基本操作练成条件反射就够了。具体来说打开文件vim /etc/hosts进入插入模式按i回到命令模式按Esc保存退出输入:wq强制不保存退出输入:q!不保存退出输入:q有一个vim高频头疼问题值得单独说当你用vim打开文件后不小心按了CtrlS终端会像“冻结”了一样。这不是死机是XON/XOFF流控把输出暂停了按CtrlQ就能恢复。我第一次遇到时以为是虚拟机卡死直接强制重启了后来才知道有这个机制。提示调整/etc/sudoers文件时千万别直接用vim改这个文件的语法错误会导致sudo命令全部失效。正确的做法是用visudo命令打开它在退出保存前会做语法检查比vim安全得多。这也是RHCSA考试中的一个隐含考察点。5. 用户与权限——从“知道命令”到“懂原理”的分水岭用户与权限管理是RHCSA考试的重头戏分值占比不低而且最容易因为“理解不深”而丢分。第一次作业这一块我建议不要光背命令把原理搞明白后面做题会轻松很多尤其是sudo配置、umask继承、特殊权限这些个环节。用户管理的基础命令是useradd、usermod、userdel、passwd、groupadd、groupmod、groupdel。第一次作业至少要掌握这些useradd -m -G wheel -s /bin/bash alice passwd alice usermod -aG apache alice对命令里的参数这里需要展开说一下。-m表示创建用户的同时创建家目录-G表示添加附加组-s指定登录shell。以后用usermod添加附加组时记得加-aappend参数否则会把用户从其他附加组中移除——这个细节很容易被忽略。很多人在练习时输入usermod -G group user结果用户原有的附加组权限莫名其妙丢失就是漏了-a。正确的做法是usermod -aG这个a不要丢。这在很多运维事故复盘里都能看到类似的影子虽然是基础但它重要到值得反复强调。权限部分chmod和chown是核心。新手学权限时最容易犯的错是只知道chmod 755、chmod 777这种数字写法但遇到“给某个组加上写权限”这种题目时就直接懵了。所以我都建议第一次作业就掌握符号模式即用u所有者、g组、o其他人、a所有人加上、-、来设定权限。chmod gw /data/share chown root:apache /data/share两个命令放在一起说是因为它们经常是一套操作先改文件所有者再修权限。考试里会涉及部署一个web服务目录要求owner是某个特定用户、group是某个特定组、其他用户只有读权限——这种题目基本就是chown加chmod的组合拳。umask这个点很容易被忽略但考试确确实实会考。umask决定新建文件和目录的默认权限文件的默认权限从666里减去umask的值目录从777里减。我举个例子系统默认umask是022那么新建文件权限就是666-022644新建目录是777-022755。第一次作业时我特意算了一遍并验证这个理解对后面判断“为什么新建出来的文件权限总跟预期不对”非常有帮助。还有一个关键点是特殊权限setuid4、setgid2、sticky bit1。第一次作业至少要理解sticky bit的作用——在/tmp这类共享目录里文件的所有者或root才能删除这就是sticky bit的措施。用chmod 1777 /tmp的方式设置第4位上的1表示sticky bit。如果你查看/tmp的权限看到的drwxrwxrwt最后的t就是sticky bit的标记。RHCSA考试中会让你在一个共享目录上设置特殊权限确保用户只能删自己的文件考的就是这个点。6. 软件包与服务管理——从dnf到systemd的一次完整过招RHCSA考试的软件包管理主要考dnf和rpm——查找、安装、删除软件包当然还有配置本地repo源。第一次作业里我给自己设计了一套“一条龙”练习配置一个本地软件仓库、用dnf安装一个服务、启动它、设置开机自启、验证状态。整套流程走下来软件包和服务管理这两块的基本能力就都练到了。dnf的常用操作很简单需要记忆的无非是dnf search nginx dnf install nginx dnf remove nginx dnf repolist如果是离线环境或内网环境还需要配置本地仓库源。配置本地repo的方法是在/etc/yum.repos.d/目录下新建一个.repo文件内容结构大致是[localrepo] nameLocal Repository baseurlfile:///mnt/cdrom/AppStream enabled1 gpgcheck0这里的关键点有两个。第一baseurl的路径必须和挂载点一致如果不一致的话dnf就会报找不到仓库的错第二gpgcheck0表示关闭GPG签名校验在练习环境里可以这样配置生产环境不建议关闭。我第一次搞这段的时候把baseurl写成了/mnt/cdrom却忘了先mount光盘镜像结果dnf repolist直接列表为空后来检查才发现挂载都没做白折腾了半天。systemd服务管理这一块同样重要也是RHCSA的新宠。考试中需要掌握的核心命令systemctl start httpd systemctl enable httpd systemctl status httpd systemctl restart httpd systemctl daemon-reload这里请着重注意start和enable的区别——前者表示“立即启动服务但重启机器后会失效”后者表示“设置开机自启但不会立即启动”。两个命令的语义正好正交第一次作业时一定得把这对关系理清楚。实际考试常用的组合是systemctl enable --now httpd一条命令同时干完两件事。systemd的unit文件管理也会考到比如“为某服务创建一个unit文件并设置开机自启”。此时你需要的文件路径是/etc/systemd/system/myapp.service内容大致为[Unit] DescriptionMy Custom Application Afternetwork.target [Service] Typesimple ExecStart/usr/local/bin/myapp Restarton-failure [Install] WantedBymulti-user.target写完后执行systemctl daemon-reload让它生效然后systemctl enable --now myapp。如果服务起不来优先去查systemctl status的输出看有没有提示ExecStart路径写错或权限不对。每次写完unit文件都要记得daemon-reload这是新手最容易漏掉的一步。7. 容器基础入门——RHCSA考试里新增的重量级考点从RHCSA 8.0开始容器技术就正式被纳入考试大纲而且权重还在持续上升。第一次作业如果只练命令不练概念到后期会觉得有点不踏实所以我把podman的基础操作也放进了第一次作业的范围。podman和docker的命令高度相似但它有两点明显不同第一podman是daemonless不需要后台守护进程第二podman默认以rootless模式运行普通用户也能管理容器这点相较于docker更贴近考试环境。RHCSA考试要求的容器操作并不深基本是这几项查找镜像、拉取镜像、运行容器、查看容器状态、删除容器。一套标准的podman练习流程podman search nginx podman pull nginx podman run -d --name web1 -p 8080:80 nginx podman ps podman stop web1 podman rm web1这里相对核心的参数是-d后台运行、--name给容器命名、-p端口映射。-p 8080:80的意思是把宿主机的8080端口映射到容器内的80端口这样访问宿主机IP:8080就能到达容器内的nginx服务。如果题目要求做端口映射这是固定套路直接按这个结构写即可。容器相关的官方推荐镜像仓库是registry.access.redhat.com但练习时不一定能连上可以直接用docker.io的镜像。第一次作业阶段最重要的不是镜像来源而是把容器生命周期管理的概念理清楚镜像image是只读模板容器container是运行中的实例podman run是通过镜像创建并启动容器的过程。还要注意一个RHCSA考试特有的点容器相关的题目可能会要求用普通用户完成。因为podman rootless设计普通用户确实可以运行容器但需要配置subuid和subgid映射否则容器启动可能报错“could not get runtime”或权限问题。第一次作业阶段如果遇到这种报错优先检查cat /etc/subuid和cat /etc/subgid里有没有该用户的条目。8. 常见问题与排查技巧实录——第一次作业的实用避坑手册做第一次作业时我和大多数学习者一样几乎每一步都踩过坑。有些坑来自命令参数记不牢有些坑来自对系统机制的误解这些都很正常。所以把第一轮练习里碰到过的典型问题集中写出来当作一份速查小抄哪条对上了就照着排查。权限拒绝Permission denied。操作一个文件报Permission denied时先别急着用sudo先ls -l看文件和目录权限。Linux权限检查的顺序是先看是不是所有者再看是不是组成员最后看其他人。如果目录没有执行权限即便文件可读也没法进去访问。考试里很多权限题都是在这个逻辑上挖坑。命令“找不到”command not found。如果你敲了systemctl却提示未找到通常是软件包没装systemd本身肯定装了但可能你用的发行版没有systemctl或者PATH有问题。同理解压tar包提示没有tar命令直接dnf install tar就能解决。第一次作业时遇到命令不存在先检查包是否安装不要上来就怀疑系统坏了。使用rm删除了不该删的东西。第一次作业最容易出现的事故就是rm使用不当——比如rm -rf /var/tmp/写到一半路径写错或者变量没展开直接删了根目录的一部分内容。我的建议是在生产式练习中凡是执行rm -rf前都先用echo打印一下完整命令来检查确认无误后再执行。练习环境有快照可以恢复但养成这个检查习惯对日后的工作有百利无一害。systemd服务启动失败。服务启动失败时的固定排查路径先systemctl status查看详细错误信息再journalctl -u 服务名查看日志-u指的是unit按unit过滤日志最后检查unit文件里的ExecStart路径是否存在、可执行权限是否到位。大概率是路径写错或权限不对这两点覆盖了八成问题。SELinux导致服务无法访问。第一次作业阶段如果你在后来的练习中配了Web服务但怎么都无法访问不要急着关闭SELinux。先用getenforce查看当前状态然后去看审计日志/var/log/audit/audit.log用ausearch -m avc查有没有typeAVC的拒绝记录。SELinux本身是RHCSA的独立考点别用setenforce 0来回避问题。我在第一次作业过程中把以上问题都整理成了一个自查清单每次做错一道操作题都会对照一下是命令记错了、参数写漏了还是原理没理解。这种复盘方式看起来简单但对提升备考效率很有帮助比盲目重做一遍题要有用得多。第一次作业是RHCSA备考的第一步也是最容易被人忽视的一步。很多人在这个阶段只追求“把命令敲完”却没意识到这个阶段真正该打磨的是稳定性和准确性——考试没有给你重敲一遍的机会。把上面这些实操内容踏实过一遍你会明显感觉到后面做综合实验时顺手很多。当然如果某条命令实在记不住也不用强求死背多用自然就熟了。我在后面的RHCSA备考里还会继续分享SELinux、LVM、网络配置这些大头的心得也欢迎正在备考的朋友交流自己的练习体会。
返回列表