RHEL9部署实战与Linux常用命令实验指南

发布时间:2026/10/10 3:35:10

RHEL9部署实战与Linux常用命令实验指南 最近折腾了一轮RHEL9从下载ISO到装完系统再把Linux常用命令从头到尾过了一遍前后花了大概两天。这个实验报告原本是给自己做记录用的整理完之后觉得对正在准备企业Linux部署、或者刚接触RHEL系想系统刷一遍命令行操作的人应该挺有价值就发出来共享一下。先把结论放前面RHEL9延续了RHEL8的很多设计但仔细看会发现不少细节变化。比如默认文件系统虽然还是XFS但安装器、软件仓库、systemd服务管理都升级了SELinux默认enforcing很多人装完第一件事就是想把它关掉这个做法越来越不可取另一个明显变化是对老硬件和驱动的兼容性要求变严了虚拟机里部署比老物理机顺利很多。如果你之前只玩过Ubuntu或者CentOS 7刚切到RHEL9时至少有这几个点需要重新适应。这篇实验报告会覆盖两部分内容一部分是RHEL9系统部署包括版本选型、安装配置、初始化运维另一部分是Linux命令操作实验包括文件管理、用户权限、进程系统管理、软件安装等。适合正在准备企业Linux部署、或者想系统梳理一下命令操作的人参考。1. RHEL9部署前的准备版本怎么选、镜像怎么拿、虚拟机怎么配1.1 RHEL9与其他发行版的差异以及替代方案怎么选先纠正一个常见误区RHEL9不是CentOS 7那种装完就能直接用yum的老路子。它继承了RHEL8的dnf架构默认仓库分成BaseOS和AppStream两块很多应用包需要单独启用模块流。从企业角度看RHEL9的安全基线、SELinux策略、OpenSCAP审计这些都是亮点尤其适合合规要求高的场景比如等保、金融、政务这些领域RHEL9的认证体系和文档完整性很成熟。如果你没有商业订阅可以用Red Hat开发者订阅个人开发者可以免费注册有效期一年用于实验环境完全够。也可以考虑Rocky Linux 9、AlmaLinux 9这些重建版它们和RHEL二进制兼容命令操作几乎一样。但既然是RHEL9系统部署实验我个人建议直接用官方ISO把订阅注册的过程也走一遍因为企业部署时你大概率需要处理订阅或离线repo的问题提前踩一遍心里有底。1.2 实验环境搭建与安装介质准备我的实验环境是VMware Workstation虚拟机分配4核CPU、8GB内存、60GB硬盘网卡用的NAT模式。物理机装RHEL9也不复杂但虚拟机方便做快照后面做命令实验出错可以回滚这对学习阶段特别友好。从Red Hat官网下载RHEL9.3的二进制DVD ISO大约10GB如果只做最小安装可以下Boot ISO但实验环境建议用完整DVD离线安装软件很方便。VMware直接挂载ISO就行不用额外做启动盘。启动引导界面里默认是Install or upgrade RHEL 9.x如果选Test this media before installation会先校验镜像完整性速度比较慢从可信来源下载的ISO建议跳过。一个小经验虚拟机装系统前先确认CPU虚拟化特性已经开启RHEL9的安装器对虚拟化支持要求更高否则后面启用某些软件包或跑Podman容器时会出现莫名其妙的性能问题。还有60GB磁盘对RHEL9完整安装来说不算宽裕尤其是如果你打算装桌面环境加一堆开发包建议给到80GB以上。2. 从安装界面到首次登录分区、软件包选择与重启后的坑2.1 分区方案设计与LVM逻辑安装过程的安装目的地窗口RHEL9默认是自动分区LVM对实验来说够用。但如果想搞清楚系统盘结构建议选自定义手动分区。我这次实验的60GB磁盘划分如下挂载点大小文件系统说明/50Gxfs根分区放系统和应用/boot1Gxfs引导分区/boot/efi512MvfatUEFI引导swap4Gswap交换分区/home剩余约4.5Gxfs用户数据其实RHEL9安装器默认会自动创建lvm卷组把/和/home放到逻辑卷里。我的实验手工分区没有用LVM目的是测试纯XFS分区在后续扩容时的限制纯分区扩容只能用growpart加xfs_growfs而LVM逻辑卷扩容明显更灵活。对生产环境我仍然建议使用LVM尤其是数据盘。分区这块有个容易忽略的点RHEL9默认引导方式是UEFI如果是Legacy BIOS模式需要确保/boot分区可引导分区表选择MBR或GPT要匹配。实验中有一次我忘了创建/boot/efi重启后直接进了GRUB命令行折腾了半天才搞清楚。UEFI模式下没有/boot/efi分区GRUB根本找不到引导文件。2.2 软件选择策略最小化还是带图形软件选择按需来。我后面要测搜狗输入法和桌面命令所以选了带GUI的服务器Server with GUI。如果只想做纯命令行实验选最小化安装就行装完只有几百个包干净还能避免图形组件引入的依赖问题。选完软件包后设置root密码和普通用户。RHEL9对密码强度有要求root密码太简单会提示弱密码确认。实验环境密码可以弱一点但生产环境务必用强密码并配置sudo审计。我习惯用普通用户日常操作需要提权时再sudo这样所有命令都有审计记录排查问题非常有用。2.3 首次重启后的初始化问题安装完成后重启RHEL9首次进入会有一段初始化过程。如果你在安装时选择了订阅注册系统会提示登录Red Hat订阅没有账号就选稍后注册实验功能基本不受影响。我第一次装完进入了图形登录界面输入root密码却登不进去。排查后发现不是密码错误而是RHEL9的GNOME默认不允许root直接图形登录需要在/etc/gdm/custom.conf里加AllowRoottrue。为了安全我改用普通用户登录后再su -这更符合实际运维习惯。还有个细节装完系统后kdump服务默认启用会预留一部分内存。如果虚拟机内存本来就小可以停掉kdump并把crashkernel参数去掉能省下不少内存。3. 系统初始化网络、SELinux、防火墙与更新策略3.1 用nmcli把网络从DHCP切到静态IP装系统时网卡如果用的DHCP装完IP是动态的服务器场景肯定要改成静态。RHEL9的网络管理依然是NetworkManager命令行工具是nmcli。操作步骤nmcli connection show nmcli con mod ens160 ipv4.addresses 192.168.56.110/24 nmcli con mod ens160 ipv4.gateway 192.168.56.1 nmcli con mod ens160 ipv4.dns 8.8.8.8 nmcli con mod ens160 ipv4.method manual nmcli con up ens160这里有个细节修改网络时最好先备份/etc/NetworkManager/system-connections/下的配置文件。RHEL9的网卡配置文件实际都在这个目录nmcli修改后会自动重写文件。如果你手动编辑配置文件记得执行nmcli con reload重新加载否则NetworkManager会用内存里的旧配置覆盖你的改动。3.2 SELinux别急着disabledRHEL9默认SELinux是enforcing。很多教程上来就说装完先把SELinux关了这个思路在RHEL9上不可取。系统的很多策略已经按SELinux enforcing设计比如Podman容器和某些服务关闭后反而会出现奇怪的行为。我这次实验分了三步走先用getenforce查看当前状态需要暂时关闭时用setenforce 0不重启生效属于临时permissive如果要永久改编辑/etc/selinux/config文件把SELINUXenforcing改为permissive或disabled。但注意永久改成permissive是调试阶段的首选验证完了要恢复enforcing最后执行restorecon -Rv重新打标签。对于Nginx、PHP-FPM这些服务如果遇到Permission denied优先使用ausearch -m avc -ts recent看SELinux审计日志而不是直接关闭SELinux。我在实验里专门制造了一个服务读不到文件的场景最后在审计日志里找到了端口和目录的布尔值问题这种处理思路比关SELinux健康得多。3.3 firewalld与订阅/源配置防火墙方面RHEL9默认启用firewalld。改动策略用firewall-cmdfirewall-cmd --state firewall-cmd --list-all firewall-cmd --permanent --add-servicehttp firewall-cmd --reload注意--permanent参数不加的话重启后失效。还有RHEL9的firewalld默认区是public如果网卡被划到internal区放行规则完全不同配置前先确认当前区域。更新源配置有订阅就dnf update没订阅就挂载DVD ISO配置本地repomount /dev/cdrom /mnt dnf config-manager --add-repofile:///mnt/AppStream dnf config-manager --add-repofile:///mnt/BaseOS这里有个经验RHEL9的ISO里BaseOS和AppStream是两个独立仓库必须分别添加不然有些包比如python3会找不到依赖。配好仓库后dnf repolist能看到两个repo再dnf install就顺畅了。4. 文件与目录命令实验删除、查找、批量并行执行4.1 删除文件夹命令的坑与正确姿势很多搜索词里都带linux删除文件夹命令说明这是新手高频问题。删除文件夹主要有三个命令rmdir只能删空目录rm -r递归删除rm -rf强制递归删除。我强烈建议在交互环境下少用rm -rf尤其不要和根目录、通配符组合使用。实验时我模拟了一个事故场景在/tmp/test目录下想删掉所有.log文件结果手误写成rm -rf *.log *通配符后面多敲了一个空格瞬间把当前目录其他文件全删了。这个案例很适合做命令实验——通过这次事故我总结出几条经验删除前先cd到明确目录再用pwd确认当前位置用find先列出要删的内容确认无误再-exec删除重要数据用trash-cli或者先把目录改名备份而不是直接rm。安全删除演示find /tmp/test -name *.log -exec ls -l {} \; find /tmp/test -name *.log -delete4.2 常用文件操作命令与通配符文件操作的基本命令不多ls、cd、cp、mv、mkdir、touch、find、locate。实验里我比较推荐掌握通配符和引用规则比如*匹配任意字符、?匹配单个字符、[]匹配字符集。特别是find命令按时间、按大小、按权限查找是系统管理命令中最值得花时间学的。举个例子找出/var/log下7天内修改过的、大于10M的文件find /var/log -type f -mtime -7 -size 10M -exec ls -lh {} \;-type f是普通文件-mtime -7表示7天内修改-size 10M表示大于10M。这种组合在生产环境非常常用比如日志目录膨胀时用这条命令直接定位大文件再配合日志轮转策略处理。4.3 并行执行Linux命令的实验xargs -P与GNU parallel并行执行linux命令是最近被问得比较多的话题实测下来效率提升确实明显。RHEL9默认带xargs用-P参数指定并行度。比如把/opt/data下的所有.txt文件压缩成gz串行方式find /opt/data -name *.txt -exec gzip {} \;并行方式find /opt/data -name *.txt -print0 | xargs -0 -P 4 gzip-print0和-0配合能正确处理带空格的文件名这个细节很多老手都会忽略。如果你愿意装GNU parallel并行处理更灵活但RHEL9默认不带需要从EPEL仓库安装。我做了一个对比实验压缩100个50MB的文件串行耗时46秒4路并行耗时15秒提升接近3倍。CPU密集型的任务在虚拟机里并行效果明显I/O密集型的任务反而可能因为争抢磁盘变慢这点要区分使用场景。4.4 关于linux常用100个命令的一点看法网上经常有linux常用100个命令这样的整理帖我建议别去背核心命令不超过30个就够应付绝大多数运维场景。按照我的经验把命令分成几类文件类ls、cd、cp、mv、rm、find、tar文本类cat、grep、sed、awk、vim权限类chmod、chown、usermod、groupadd系统类ps、top、ss、systemctl、journalctl软件类dnf、rpm把这些命令的man文档过一遍比背200个常用命令更有用。实验报告中我把这些常见命令挨个跑了跑像awk和sed这种文本处理工具平时看着用不上真到分析日志的时候就显出价值了。比如统计日志里某个IP出现次数awk {print $1} /var/log/nginx/access.log | sort | uniq -c | sort -rn | head5. 用户权限与安全命令实验5.1 用户、组、sudo权限的完整试验RHEL9管理用户的核心文件是/etc/passwd、/etc/shadow、/etc/group。实验里我新建了一个用户testops并加入wheel组useradd -m -G wheel testops passwd testops加入wheel组后这个用户默认就有sudo权限sudo执行时会记录审计日志。如果不想给sudo就不要加wheel组或者编辑/etc/sudoers.d/下的文件做精细化授权。这里有个技巧用visudo而不是直接vim /etc/sudoers因为visudo在保存时会检查语法避免因为写错一行导致sudo全部不能用。我记得第一次操作时在sudoers文件里漏了一个逗号导致所有命令执行报错还好visudo提示了语法错误不然整个系统的sudo都会瘫痪。5.2 用gpg和openssl加密文件与文件夹linux password加密文件夹命令这个需求很常见不想让其他人直接读取某个目录。Linux没有直接的加密文件夹命令通常有两种思路。一是用openssl对文件加密比如加密一个tar包tar czf - /path/to/secret | openssl enc -aes-256-cbc -salt -pbkdf2 -out secret.tar.gz.enc解密openssl enc -d -aes-256-cbc -pbkdf2 -in secret.tar.gz.enc | tar xzf -注意openssl命令的-pbkdf2参数在RHEL9的OpenSSL 3.x里是推荐写法老的-salt模式在新版里会有安全性警告实验时我踩过这个坑。二是用GPG对称加密gpg --symmetric --cipher-algo AES256 secret.tar.gz gpg --decrypt secret.tar.gz.gpg secret.tar.gzGPG加密时会提示输入密码shell脚本自动化时建议用gpg-agent的方式管理密码避免密码出现在命令历史里。对于真正的目录级透明加密生产环境更常用的是dm-crypt/LUKS。实验里先用openssl和gpg把流程跑通理解加密原理再上LUKS就顺理成章了。加密文件夹这件事理解先打包再加密的思路比记命令更重要。5.3 权限位与ACL的测试权限位实验chmod 755、chmod 644、chmod ux这些基础操作要熟练。RHEL9还支持ACL访问控制列表可以给某个用户单独授权而不改属主setfacl -m u:testops:rwx /data/share getfacl /data/shareACL在企业文件共享场景里非常实用。比如多个部门共用一台服务器每个部门只让自己成员访问用传统权限位很难表达ACL一行搞定。特殊权限setuid、setgid、sticky位也值得实验。比如/tmp目录的sticky位权限1777普通用户可以在里面创建文件但不能删除其他用户的文件这个机制在多人共用临时目录的场景里很关键。6. 系统管理与软件安装命令实验6.1 systemd服务管理与journalctl日志排查RHEL9所有服务都用systemd管理。实验里我写了一个简单的测试服务创建/etc/systemd/system/demo.service[Unit] DescriptionDemo Service Afternetwork.target [Service] ExecStart/usr/bin/python3 -m http.server 8080 Restarton-failure [Install] WantedBymulti-user.target然后执行systemctl daemon-reload systemctl start demo systemctl enable demo systemctl status demo如果服务起不来查看日志用journalctl -u demo -f。journalctl是查看系统日志的核心工具常用参数有journalctl -xe看最近错误、journalctl -u服务名看某个服务日志、journalctl --since配合日期过滤时间范围。这里的坑是RHEL9默认journal日志并没有持久化日志存在内存的/run/log/journal重启就没了。要持久化需要创建/var/log/journal目录或者改/etc/systemd/journald.conf的Storagepersistent。做实验做到一半发现历史日志全丢了有点尴尬记录下来给其他人提个醒。6.2 dnf包管理、SQLite部署与搜狗输入法尝试dnf是RHEL9的包管理主力。实验里重点测了几个命令dnf search sqlite dnf install -y sqlite sqlite-devel sqlite3 --version在RHEL9上安装SQLite就是这么简单。需要注意如果之前没有注册订阅或配置本地源dnf install会提示没有匹配的包这时候优先检查repo配置而不是怀疑命令写错。关于linux安装搜狗输入法命令实测下来在RHEL9上并不顺利。搜狗输入法for Linux官方主要提供Ubuntu系的deb包RHEL9默认的输入法框架是IBus搜狗输入法依赖fcitx框架。简单说RHEL9上装搜狗输入法需要先把输入法框架换成fcitx5然后从官网下载fcitx版安装包解包后重新打包过程繁琐。新版GNOME在Wayland会话下兼容性也一般。实验后我的结论是在RHEL9上用系统自带的IBus智能拼音或者装fcitx5加中州韵体验更稳定。这也说明很多一键命令只在特定发行版上有效不能盲抄。6.3 企业部署视角自动化与国产系统部署的一点延伸最后从企业linux部署系统的角度补充一点。单台装系统可以用上述手动流程但企业环境往往是几十台上百台机器这时候要用Kickstart自动安装配合PXE/DHCP或者用Cobbler这类工具。RHEL9安装器支持自动生成KS文件装完系统后会生成/root/anaconda-ks.cfg保存好这个文件就可以作为自动化安装的模板。另外国内很多单位在推统信UOS桌面系统的安装部署其实底层是Linux生态很多命令文件管理、权限、服务管理和RHEL系是共通的只是包管理器和桌面环境不同。做过RHEL9实验之后再去碰UOS会顺手很多。这里不是要展开国产系统对比只是提醒大家命令实验的底层逻辑通了发行版只是表象。整个实验做下来最深的体会是RHEL9的部署链路非常成熟但它默认开启的东西SELinux、firewalld、kdump一开始会觉得多余时间久了才知道都是防止你踩坑的。命令操作方面我强烈建议别收藏一堆常用100个命令而是拿一台虚拟机把文件、权限、进程、网络、服务、日志这几类命令各跑一遍跑完基本就能应付日常工作了。最后分享一个我自己的习惯每做完一个实验我会把关键命令和踩坑过程记到自己的笔记里比如openssl新版要加-pbkdf2、journalctl默认日志不持久化、visudo比vim /etc/sudoers安全这种碎知识点在真正排障的时候比任何教程都管用。下次如果有时间我再把RHEL9的Podman容器操作和Pacemaker集群部署单独整理一篇。
延伸阅读

更多相关文章

2026/10/10 3:35:10

SpringBoot+Vue+MyBatis校园一卡通系统源码解析与部署指南

校园一卡通这类系统,我在高校和园区项目里接触过不少。它表面上是个“发卡、扣费、查余额”的工具,真做起来却要同时处理账户资金、交易流水、卡状态流转、多角色权限这些事,还要保证每一笔钱都对得上。所以当我看到这套基于 SpringBoot Vue…

2026/10/10 3:35:10

Node.js项目Docker容器化部署与CI/CD自动化实践指南

先说个我上周刚经历的事:一个朋友在服务器上部署他的 Node.js 项目,本地跑得好好的代码,到服务器上一会儿连不上数据库,一会儿环境变量读不到,折腾两天最后还是回退到他电脑上继续手工维护。这种事我见太多了&#xff…

2026/10/10 3:35:10

WinCC历史数据自动生成Excel报表:从SQL查询到脚本落地

很多做自动化项目的朋友,找我聊得最多的一个问题就是:“现场WinCC系统跑得好好的,但领导天天要日报、周报、月报,数据都在WinCC里,怎么才能自动出来一张Excel报表?”说实话,WinCC本身就是一个带…

2026/10/10 5:30:15

Node.js内存溢出?深入解析V8堆与FATAL ERROR的根治方案

看到 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 这行报错,相信不少用 Node.js 跑服务、写脚本或者做前端构建的朋友都头皮发麻过。这串英文翻译过来就是典型的堆内存分配失败,V8 引擎…

2026/10/10 5:30:15

基于FlexLM日志与Grafana的开源SolidWorks授权监控看板搭建指南

做企业CAD/PLM管理的朋友,肯定都有过这个尴尬时刻:老板站在工位旁边问,“今年SolidWorks的授权到底够不够用?明年要不要增购?能不能把闲置的许可收回来?”你打开SolidNetWork License Manager,对…

2026/10/10 5:30:15

功能测试实战方法:用例设计、缺陷管理与工程实践

做了十年测试,接手过的项目从几万行的内部管理后台到几千万用户量的线上交易系统都有,如果要给新人培训,我从来不讲那些花哨的自动化框架、性能压测流程。第一课永远是功能测试。理由很简单:不管技术栈怎么变,测试这个…

2026/10/10 5:25:15

claude-mem:为 Claude 对话补上持久记忆的本地工具

开门见山地说:claude-mem 是给 Claude 对话补上"长期记忆"的本地工具。我把它接入日常的终端工作流之后,最大的感受是——终于不用每次新开会话都把项目背景、技术选型、踩坑记录从头讲一遍了。这个东西解决的是很多人忽略的一个痛点&#xff…

2026/10/8 10:03:18

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/9 20:15:56

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 0:04:53

从逻辑门到计算机:数字电路核心原理与全加器搭建实战

如果你拆过一台旧电脑的主板,盯着那些黑乎乎的小芯片看上一会儿,可能会冒出同一个疑问:这堆引脚密集的元件,到底是怎么“变”出那么复杂的应用的?答案并不在某个神秘的部件里,而是在所有芯片内部都在反复使…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑