1. 为什么我建议学习从 RockyLinux 8.6 开始
这几年 Linux 发行版市场的变动,其实比很多人想象中要大。CentOS 8 停止维护之后,大量服务器运维人员、实验室管理员和自学入门的开发者都面临一个现实问题:生产环境到底用什么系统?我自己的答案是 RockyLinux 8.6,而且带新人入门我也推荐从它开始。
先解释一下 RockyLinux 是什么。它是 CentOS 停止维护后,由原 CentOS 核心团队成员发起的一个社区发行版,目标是做 RHEL(Red Hat Enterprise Linux)的兼容重建版。什么意思?就是它和红帽企业级 Linux 的源代码保持一致,稳定性、安全补丁节奏、软件生态都向商业发行版看齐,但完全免费、完全开源、没有授权费用。对于需要长期稳定运行、又不想在系统软件上花钱的场景,这是非常务实的选择。
8.6 这个版本号也值得说两句。它是 RockyLinux 在 8.x 生命周期内的一个重要版本,内核是 4.18,配套的 GCC、OpenSSL、Python 等核心组件经过长时间生产验证,整体非常成熟。相比 9.x 系列,8.6 的软件包兼容面更广,很多第三方商业软件、数据库中间件在 8 系列上的支持文档最完善,踩坑概率低。
这篇文章是系列的第一部分,核心解决两件事:第一,从零完成 RockyLinux 8.6 的安装,不管是装在虚拟机还是物理机上;第二,掌握安装完成后你最常用的一批 Linux 核心命令,包括目录操作、文件管理、权限控制、文本处理和进程查看。这些命令不是背出来的,是在实际敲击和排错中逐渐形成肌肉记忆的,我会把每个命令的典型用法和为什么这么用一起讲清楚。
不管你是刚接触 Linux 的学生、准备转行运维的开发者,还是已经在用 Windows 服务器想迁移到 Linux 的工程师,这套流程都适用。安装部分我尽量把每一步的选项都讲透,避免你对着安装界面犹豫半天;命令部分则挑最刚需的讲,不搞大而全的字典式罗列。
2. 安装前的准备:镜像选择、启动盘制作与硬件规划
2.1 认清两个不同安装场景的镜像差异
拿到 RockyLinux 8.6 安装这件事,第一关其实是下载哪个镜像。官网提供好几个版本,很多人会直接选 DVD,但其实不同场景的诉求完全不一样。
如果你是要装一台物理服务器,或者跑在 VMware、VirtualBox、KVM 这类虚拟化平台上,我建议直接用 DVD 镜像。它的体积大概在 8GB 左右,包含了安装所需的全部软件包,离线安装也能顺利完成,不需要安装过程中联网拉取软件源。对于内网环境、机房网络受限的服务器,DVD 镜像是少给自己找麻烦的选择。
如果你只是为了快速体验、做实验、或者电脑配置比较紧张,那 Minimal ISO 更合适,只有 1GB 左右,启动快,安装过程短。但要注意,Minimal 镜像在安装阶段只能选择最小化安装环境,很多常用工具(比如网络排查命令、文本编辑器)装完系统之后还需要自己用 dnf 补装。这一点新手要心里有数,不然装完会发现 ifconfig 都没有,容易误以为自己装失败了。
还有一个容易被忽略的点:下载完镜像之后,最好校验一下 SHA256 校验值。官网每个镜像文件都提供了校验和,用下面的命令在 Linux 或 macOS 终端里可以快速核对:
# Linux / macOS sha256sum Rocky-8.6-x86_64-dvd1.iso # Windows 下可以用 certutil certutil -hashfile Rocky-8.6-x86_64-dvd1.iso SHA256对比输出的哈希值和官网公布的值,完全一致再使用。这个习惯很多人不重视,但镜像在传输过程中损坏的概率不是零,宁可多花这一分钟,也不要装到一半报错然后怀疑人生。
2.2 制作U盘启动盘的具体操作
物理机安装离不开启动介质,最常规的做法是用 U 盘。准备一个至少 16GB 的 U 盘,注意里面如果有数据先备份,制作过程会清空整个盘。
RHEL 系发行版官方推荐的写盘工具是 Fedora Media Writer,图形界面操作,选择 ISO 文件后自动写入,对新手非常友好。如果你习惯命令行,Linux 下用 dd 命令也一样可靠:
# 先查看U盘设备名,不要搞错盘符 lsblk # 假设U盘是 /dev/sdb,写入镜像 sudo dd if=Rocky-8.6-x86_64-dvd1.iso of=/dev/sdb bs=4M status=progressdd 写入完成后,系统不会自动提示“写入成功”,你需要手动执行 sync 确保数据落盘。
Windows 下很多人用第三方工具写盘,其实官方工具完全够用,没必要再用其他软件。有一点务必记住:写盘完成后不要马上格式化 U 盘,直接拿去目标机器上启动就行。
2.3 硬件配置的最低标准与规划思路
安装 RockyLinux 8.6 的最低硬件要求是:2GB 内存、20GB 磁盘空间、支持 64 位指令集的 CPU。但“最低要求能装”和“用起来舒服”是两码事。以我自己的经验,做实验环境建议内存至少给 4GB,磁盘至少 40GB,这个体量下跑图形界面、装几个开发工具、开几个虚拟机都觉得宽松。
磁盘规划这块,新手容易忽略分区方案。安装器默认的自动分区其实很合理——它会把 /boot 独立分区、根分区使用 LVM(逻辑卷管理)、还会自动创建 swap 交换分区。如果不是有明确需求(比如要单独挂载 /home 或 /data),我建议就用自动分区,等对 LVM 有足够理解之后,再在新机器上做手工分区也不迟。
还有一个小提醒:如果你是在虚拟机上安装,记得虚拟机设置里选择操作系统类型为 Red Hat Enterprise Linux 8 64-bit,这会直接影响虚拟机的 BIOS/EFI 引导能力和网卡驱动模板。选错了,有时候会出现安装界面都进不去的情况。
3. 安装全程实操:从开机引导到首次登录的每个选项
3.1 进入引导菜单与安装语言选择
U 盘启动之后,会看到一个图形化引导菜单,通常包含几个选项:Install RockyLinux 8.6、Test this media & install RockyLinux 8.6、Troubleshooting。如果你已经验证过镜像校验值,直接选第一项,没必要再花几分钟做介质测试。
进入安装欢迎界面后,第一件事就是选择语言。这里直接用 English 就行。你可能会问,为什么不用中文?因为服务器系统默认语言保持英文,后续排查日志、阅读文档、执行脚本时能减少编码和翻译上的干扰。安装完成之后系统界面是英文的,但对使用没有影响。真正需要中文环境的话,装完后可以随时安装中文语言包,不用在一开始纠结。
3.2 安装信息摘要页面的关键配置
语言选择之后进入的是整个安装过程最核心的界面:安装信息摘要。所有关键配置都在这一页完成,别急着点“开始安装”,先把下面这几项挨个过一遍。
时间日期(Time & Date):区域选 Asia/Shanghai,时间会自动同步。服务器时钟是否准确会影响日志时间戳和定时任务执行,安装时就设置好,避免后面排查问题时对不上日志时间。
软件源(Installation Source):如果你用的是 DVD 镜像,这一步通常是自动识别本地源的,显示 “media://” 开头的源地址,不需要改动。如果你网络环境好,也可以改成在线源,但没必要,DVD 已经包圆了。
软件选择(Software Selection):这一步决定了系统安装哪些组件,也是很多新手迷惑的地方。经验上分两种情况:图形界面日常办公/学习选 “Server with GUI”;做服务器使用选 “Minimal Install”。我的建议是:就算你是纯新手,也尽量选 Minimal Install。为什么?因为服务器运维的核心能力是在命令行环境下练出来的,图形界面是锦上添花,不是必需品。装完系统后想加什么组件随时可以用 dnf 安装,一开始保持最小化最干净。
安装目的地(Installation Destination):确认要安装的磁盘被选中,默认自动分区方案即可。如果要手动分区,可以在这里点 “Custom”,但分区方案需要自己规划好 /boot、/、/home、swap 的大小分配,新手不推荐。截图留存分区方案是不少老手的习惯,后面做系统维护、扩容时能对照参考。
网络和主机名(Network & Host Name):打开右上角的网络开关,让网卡自动获取 IP。主机名建议安装时就规划好,比如你在做某跨平台系统的测试环境,主机名叫 dev-node1 就比默认的 localhost 直观得多。主机名格式不要带特殊字符,小写字母、数字、连字符是最稳妥的。
安全策略(Security Policy):新手保持默认不启用;生产环境如果公司有安全基线要求,再按策略模板配置。这一步涉及的安全配置项比较细,建议先跑通系统,再逐步加固。
3.3 ROOT密码、创建用户与开始安装
以上配置完成后,点 “Begin Installation” 进入真正的安装流程页面。这里一定要先设置 root 密码,再创建一个普通用户,然后才开始等待系统安装。
root 是 Linux 系统的超级管理员,拥有最高权限。给 root 设置密码时注意强度,至少 12 位以上,混合大小写字母、数字和特殊字符。别设置成 admin123、root123 这类弱口令,服务器暴露在网络中之后,弱口令是最容易被暴力破解的攻击面。
创建普通用户时,勾选 “Make this user administrator” 可以让这个用户拥有 sudo 提权权限。日常操作用普通用户登录,需要执行管理员命令时再通过 sudo 临时提权,这是 Linux 服务器使用的基本原则。安全层面的好处是:即使普通用户账号被攻破,攻击者拿到的也不是完整 root 权限,多一层防御纵深。
安装过程一般需要 5 到 15 分钟,取决于磁盘速度和软件包数量。等待期间可以顺手做一件事:观察安装日志。安装界面里有查看日志的选项,可以通过日志了解系统安装到哪个阶段,对底层机制感兴趣的话这是一个非常好的学习窗口。
3.4 首次启动、接受许可与完成初始化
安装完成后系统会自动重启,拔掉 U 盘,进入 RockyLinux 8.6 的首次启动界面。接下来需要做的操作是接受许可协议(License Information),如果你是第一次进入系统,还要确认时间日期和网络设置。之后系统会跳到登录界面,用刚才创建的普通用户登录,或者用 root 登录。
到这里,系统安装层面就算完成了。但别急着兴奋,一个刚装完的 Linux 系统还处于“裸奔”状态,距离能干活还差几步关键的初始化配置,这也是接下来要处理的事情。
4. 装完必做的初始化配置四板斧
4.1 配置网络:静态IP还是DHCP
安装时如果开启了网络,DHCP 模式下系统已经能联网了。但服务器场景下,DHCP 分配的 IP 地址可能会因为租约过期而变动,这会让 SSH 连接、服务调试变得很不方便,所以我建议给服务器配置静态 IP。
在 RockyLinux 8.6 上,推荐使用 nmcli 命令配置网络,这是 NetworkManager 的命令行工具。
# 查看当前网络连接名称,通常叫 ens33 或 eth0 nmcli connection show # 配置静态IP、网关、DNS sudo nmcli connection modify ens33 ipv4.method manual \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "223.5.5.5 119.29.29.29" # 重启网络连接使配置生效 sudo nmcli connection up ens33这里的 DNS 地址,我建议使用国内公共 DNS 或者你们公司的内网 DNS。不同的网络环境 DNS 可达性差异很大,配置时先 ping 一下试试延迟,选延迟低的。
配置完成后用ip addr确认 IP 生效,用ping -c 4 baidu.com验证外网连通性。如果 ping 不通,可以先 ping 网关,判断是网卡问题、路由问题还是 DNS 问题,这个排查逻辑后面还会详细讲。
4.2 更换 DNF 软件源:国内镜像加速
RockyLinux 8.6 默认的软件源在官方服务器上,国内访问速度不稳定。建议把 baseos、appstream、extras 这几个核心仓库切换成国内镜像源。以阿里云镜像为例:
# 首先备份原有源配置 sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \ -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \ -i.bak \ /etc/yum.repos.d/rocky*.repo # 清理缓存并重新生成 sudo dnf clean all sudo dnf makecache换源之后你会明显感受到 dnf install 的下载速度提升了一个数量级。这类操作在文档里描述得都很简单,但实际操作时容易出现 sed 匹配失败的问题。如果换源后 dnf update 报错,最简单的方法是用 vi 编辑 /etc/yum.repos.d/ 下的 repo 文件,手动把 baseurl 改成镜像地址,把 mirrorlist 那行注释掉。不要怕手动改,repo 文件的结构就几个字段,看一遍就能懂。
4.3 系统更新与基础工具补齐
初始化最后一步,执行一次全量更新:
sudo dnf update -y这一步会把内核、关键安全补丁、软件包全部升级到 8.6 版本下的最新状态。刚装完系统做一次全量更新,相当于给系统做了一次“打疫苗”,之后长期使用过程中出安全性问题的概率会低很多。
更新完成后,我习惯顺手装几个常用工具,这些是 Minimal 安装下不会预装的:
sudo dnf install -y vim bash-completion net-tools lsof unzip wget tree如果你后面要编译安装软件,还需要装开发工具组:
sudo dnf group install -y "Development Tools"这些工具属于“早装早省心”的类型,等真正用到再装也不是不行,但提前装好能避免很多“命令不存在”的中断体验。
4.4 关闭或放行 SELinux 与防火墙
RockyLinux 8.6 默认启用 SELinux,这是一种强制访问控制系统,相比传统的 Linux 权限机制更严格。新手第一次接触 SELinux 时,经常会遇到“明明权限配置对了但服务就是起不来”的情况,十有八九是 SELinux 在拦截。
我的建议是:初期先别关闭它,但要学会看它的状态。
# 查看SELinux当前模式 getenforce # Enforcing 表示强制开启;Permissive 表示允许但只记录日志;Disabled 表示关闭如果你搭的服务反复起不来,通过ausearch -m avc -ts recent可以查看最近被 SELinux 拒绝的日志,确认是不是 SELinux 的原因。如果你确实想临时放行,可以执行:
sudo setenforce 0这个操作是把 SELinux 临时切换为 Permissive 模式,重启后就恢复。永久关闭需要修改配置文件 /etc/selinux/config,把 SELINUX=enforcing 改成 SELINUX=permissive。但修改配置前务必想清楚:生产环境关闭 SELinux 是降低了系统安全性,除非有明确兼容性要求,否则不推荐永久关闭。
防火墙 firewalld 是另一个“默认开启”的机制,远程 SSH 连接默认放行 22 端口,但如果要跑 Web 服务(80/443)、数据库(3306/5432)等,你需要显式放行端口:
# 放行指定端口 sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp # 重新加载配置 sudo firewall-cmd --reload # 查看所有已放行规则 sudo firewall-cmd --list-all在排查外网无法访问服务的问题时,我踩过最多的坑就是防火墙规则没放行。你 HTML 页面代码写得再对,防火墙把端口一拦,服务就是不通。所以安装配置阶段顺手把防火墙规则理顺,后面能省大量时间。
5. 核心命令实战:从目录导航到进程管理
5.1 目录导航与文件管理命令的肌肉记忆
进入命令行操作阶段,先用最基础的目录导航建立手感。Linux 里的所有操作都是围绕文件展开的,这是理解它一切行为的关键线索。
pwd— 显示当前所在目录的绝对路径。刚登录系统后执行,你会看到类似 /home/你的用户名 的输出。这个命令没啥技术含量,但它是让你“知道自己在哪”的锚点,尤其在目录层级很深的时候,先用它定位是避免迷路的第一步。
ls— 列出目录内容。基础用法是ls,查看详细信息用ls -l,显示隐藏文件用ls -a,两个组合起来就是ls -la。隐藏文件在 Linux 里就是文件名以 . 开头的文件,很多配置文件(比如 .bashrc)都是隐藏的。我建议你从第一天起就习惯用ls -lh,这个 h 参数会把文件大小转换成人类可读的格式(K、M、G),比堆砌字节数直观得多。
cd— 切换目录。cd /etc切到 etc 目录,cd ..返回上一级,cd ~回到当前用户的家目录,cd -切换到上一次所在的目录。这里有个实用技巧:使用 Tab 键自动补全路径,输入 cd /et 然后按 Tab,系统会自动补全为 cd /etc/。如果路径下有多个匹配项,连续按两次 Tab 会给出所有候选列表。这个习惯能极大提升输入效率。
mkdir和rmdir— 创建与删除空目录。mkdir -p /data/logs/nginx会一次性创建多级目录,不存在则自动创建,这是最常用的写法。由于服务器高可用和负载均衡的设计习惯,top 输出里会看到多个进程,这时候就要配合后面的 ps 命令按需查看。
rm— 删除文件或目录。rm file.txt删除单个文件,rm -r dir递归删除目录,rm -f file强制删除(不提醒)。这个命令要特别警惕:rm -rf / 是毁灭性操作,一定不要在生产环境执行,尤其是 root 身份下。我自己的习惯是,删除重要数据之前先ls -l确认路径没有拼错,再用相对路径而不是绝对路径。
cp和mv— 复制与移动。cp source.txt /backup/把文件复制到 backup 目录,复制目录加 -r 参数。mv old.txt new.txt就是重命名,mv file.txt /tmp/是移动文件。日常运维中最常用的备份方式就是用 cp 加时间戳后缀做快照式备份,比如cp app.conf app.conf.bak-20250120。
5.2 文件内容查看与文本处理三剑客
文件查看命令里,最有实战价值的排序是:less、tail、grep。
less是查看大文件的首选工具。less /var/log/messages打开日志文件,按空格向下翻页,按 b 向上翻,按 / 输入关键词搜索,按 q 退出。它的核心优势是可以随意前后翻阅而不需要把整个文件加载进内存,几百兆的日志文件也能流畅打开。建议不要用 cat 查看大文件,cat 会把整个文件输出到屏幕,刷屏刷到你怀疑人生。
tail是日志跟踪神器。tail -f /var/log/messages可以实时滚动输出日志文件新追加的内容,按 Ctrl+C 停止。这个命令在做故障排查时几乎是必用的,比如你在调试某服务的启动失败,往往需要一边启动服务一边盯日志输出。tail -n 50可以看文件末尾最后 50 行。
grep是文本搜索的核心工具。它的典型用法是:从命令输出中过滤关键信息,或者从日志文件中查找相关错误。
# 查看网卡配置里的IP信息 ip addr show ens33 | grep "inet " # 在日志中搜索包含"error"的行,不区分大小写 grep -i "error" /var/log/messages # 在 /etc 下递归搜索包含password关键字的文件 grep -r "password" /etc/ # 输出匹配行的行号 grep -n "timeout" app.conf初学者很容易忽略的是 grep 与管道符的组合用法。管道符 | 把左边命令的输出作为右侧命令的输入,这是 Linux 命令组合的核心思想。简单理解就是:一条命令的结果交给下一条命令处理。比如history | grep "dnf",可以快速查看自己执行过的所有 dnf 相关命令,这个用法在排查“我上次是怎么配置的”时能救命。
awk和sed是文本处理的进阶利器。awk 按列处理文本,最常用的是取指定字段:
# 查看系统中所有用户名(冒号分割取第一列) awk -F: '{print $1}' /etc/passwd # 查看TCP连接数统计 ss -t | awk '{print $1}' | sort | uniq -csed 按行处理文本替换是最常用的场景:
# 把 app.conf 中所有的timeout值从30替换为60,并直接修改文件 sed -i 's/timeout=30/timeout=60/g' app.conf命令组合起来,处理文本的效率是几何级提升。比如把日志中出现次数最多的IP地址找出来,一条命令就能完成:
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10这一条命令综合运用了 awk 取列、排序、统计、降序排列、取前10行五个环节,是典型的高效运维姿势。理解每个环节的作用,并且能根据需求调整,比背十多个独立命令有用得多。
5.3 权限管理:看懂 rwx 与拥有者关系
Linux 权限体系是很多初学者最早遇到的概念瓶颈。我用一句话概括它:Linux 里每个文件都记录着自己的拥有者(user)、所属组(group)和其他人(others)分别能对文件干什么。
执行ls -l查看一个文件时,权限信息长这样:
-rw-r--r--. 1 root root 2048 Jan 20 10:30 app.conf开头第一个字符表示文件类型(- 是普通文件,d 是目录,l 是软链接),后面九个字符分三组,每组三位:第一组 rw- 表示拥有者权限(可读可写不可执行),第二组 r-- 表示所属组权限(只读),第三组 r-- 表示其他人权限(只读)。英文缩写含义分别是:r(read 读)、w(write 写)、x(execute 执行)。
数字表示法更常用:r=4、w=2、x=1,权限数值就是这些数字相加。chmod 644的含义就是拥有者 6(4+2,可读可写),组和其他人是 4(只读)。一套常用权限组合:
- 644 — 普通文件默认权限,拥有者可读写,其他人只读
- 755 — 目录或脚本常见权限,拥有者可读写执行,其他人可读执行
- 600 — 配置文件隐私保护,仅拥有者可读写
- 700 — 目录私有权限,仅拥有者可读写执行
修改文件拥有者用 chown:
# 把app.conf的拥有者改为nginx用户,组改为nginx组 sudo chown nginx:nginx app.conf修改权限时我还要强调一点:目录的 x 权限含义和文件不同,目录的 x 权限决定你是否能进入这个目录。所以一个权限为 666 的目录是没有实际价值的,你既不能 cd 进去也不能访问里面的文件。目录常用权限是 755 或 700,需要让 Web 服务能访问时还要加属组等精细配置。
5.4 系统状态与进程管理基础命令
安装完成之后,最常被用到的系统状态命令有四个:ss、ps、top、df。
ss是查端口监听和网络连接状态的首选命令,替代了旧版 ifconfig 和 netstat 的某些功能。常用姿势:
# 查看当前所有监听端口 ss -tlnp # 查看指定端口是否被监听 ss -tlnp | grep 8080-t 表示 TCP,-l 表示监听状态,-n 用数字显示端口不解析服务名,-p 显示进程信息。你经常要确认某服务是否启动成功,本质就是确认它的端口是否已经进入监听状态。
ps是查看进程快照的工具:
# 查看当前用户所有进程 ps -ef # 查找指定进程的pid ps -ef | grep nginx # 显示进程的父子关系 ps -ef --foresttop是实时资源监控工具。执行 top 后,第一行显示系统负载和运行时长,第二行是任务数,第三行是 CPU 使用率,第四行是内存使用率。按 q 退出,按 1 显示每个 CPU 核心的单独使用率。重点看 CPU 使用率列和内存使用率列,哪个进程占资源最多一眼就能看到。结合top -o %MEM可以按内存占比排序。
df是磁盘空间查看命令。常用写法df -h,以人类可读格式显示磁盘分区使用情况。排查磁盘满导致服务写入失败的问题时,第一个命令就是它。磁盘使用率达到 90% 以上时很多服务会出异常,及时清理日志或用 LVM 扩容是常用的解决手段。
系统信息的快速获取也很重要。uname -r查看内核版本,uname -a查看完整系统信息,hostnamectl查看主机名和操作系统版本。入门阶段用hostnamectl就够,一条命令把系统版本、内核版本、虚拟化类型全列出来。
6. 新手最常踩的坑:问题排查速查表
这一节我把实际带人过程中遇到频率最高的几个问题整理成速查表,每一个都是真实场景,排查思路也是经过验证的弯路避让。
| 问题现象 | 可能原因 | 排查与解决方法 |
|---|---|---|
| 虚拟机启动后黑屏光标闪烁 | ISO镜像写入不完整或引导方式不对 | 校验镜像 SHA256;确保虚拟机选择 UEFI 还是 BIOS 与实际引导模式匹配 |
| ping 外网 IP 通但域名不通 | DNS 配置错误 | cat /etc/resolv.conf 查看DNS;确认 dnf 源的域名能否解析;换公共 DNS 测试 |
| SSH 连接不上 | 防火墙拦截或 sshd 未启动 | systemctl status sshd 查看服务状态;firewall-cmd --list-all 查看 22 端口是否放行 |
| 输入 dnf 命令提示没有该命令 | Minimal 安装下 dnf 正常在,提示 command not found 通常是输入错误 | 确认命令拼写为 dnf 而不是 yum(8系列兼容yum命令);用 which dnf 查看路径 |
| 安装软件提示 Requires 依赖冲突 | 软件源版本不匹配,混用了多个仓库 | 优先 dnf update 到最新;检查 /etc/yum.repos.d/ 下启用的仓库是否都是同一版本系列 |
| 修改了配置文件但服务行为没变化 | 配置文件格式错误导致服务没加载新配置 | 用nginx -t、sshd -t等自带语法检查命令验证配置;systemctl restart 确认服务真的重启了 |
| 程序启动报 Permission denied | SELinux 拦截或文件权限不足 | 先看 ls -Z 的 SELinux 上下文;ausearch -m avc -ts recent 查拦截日志;必要时调整权限或用 chcon 适配策略 |
以上每个案例背后都有更细的排查分支,但对新手来说,先按表格里的思路走一遍,大概率能解决九成问题。排查这类问题的通用方法论是:先确认能跑通的最底层能力,再逐步向上排查。比如 SSH 连不上,先 ping 服务器 IP,通了说明网络层正常;再 telnet 22 端口,通了说明防火墙放行;再检查 sshd 状态,进程在说明服务本身可能没问题,那就是认证或配置的范畴了。
这个“从底层往上层一层层剥”的排查思路,是比所有命令使用方法更重要的一种能力。遇到问题不要慌,不要凭感觉乱改配置,每次只改一处,改完立刻验证。我见过太多自己把服务器折腾到连不上 SSH 的案例,基本都是几个问题叠加后心态崩了,然后越改越乱。
7. 安装后的学习方法建议与下一部分预告
回到系列的主题:这个标题是“RockyLinux 8.6安装与Linux核心命令掌握(1/2)”,第一部分的核心在我看来并不是“安装完成”这个结果,而是通过亲手完成安装,把 Linux 系统的结构、启动逻辑、配置体系有一个整体性的第一印象。
我给正在学这套内容的朋友几个实操层面的建议:
第一,别看完就关掉。建议你亲手至少安装一遍,哪怕是虚拟机重复装两三次都好。第一次按教程逐步走,第二次尝试不打开教程直接操作,第三次可以故意选不同的选项(比如自定义分区、更改软件源),观察系统状态的变化。这种“破坏性实验”式的学习效率比单纯看操作高得多。
第二,把上面第 4 节的初始化步骤拆开做,不要复制粘贴一整段命令。每执行一条命令,想想它的作用是什么,如果去掉某个参数会怎样。命令执行的输出也是一种反馈,多观察输出信息,你会逐渐形成一种“系统的哪些地方正在发生什么”的感觉。
第三,用好history命令和 Bash 的历史记录功能。你敲过的每条命令系统都记录着,通过history查看,用!981执行历史中第 981 条命令,这些操作能帮你快速回忆起“我当时是怎么解决的”。不用刻意背命令,多用、多查、多写,自然就内化了。
第四,学习期间给自己创造“出问题的机会”。比如故意写错路径、故意把文件权限改成 000、故意在防火墙里禁掉 SSH 端口,再想办法排查和恢复。这个阶段碰到的每个问题,解决后带来的经验积累远大于顺风顺水安装 10 次。
下一部分我计划重点讲三块内容:一是 DNF 包管理器的深入使用,包括仓库配置、依赖解析、卸载与历史回滚;二是用户与权限管理的进阶实践,包括 sudoers 配置、ACL 扩展权限、SELinux 布尔值调整;三是如何用 systemd 管理系统服务、任务计划 crontab、日志持久化配置 journald。这三块内容是你在 RockyLinux 上搭建任何实际应用服务(比如 Nginx、MySQL、Redis)之前必须打牢的地基。
我自己刚开始学 Linux 的时候,对着黑底白字的终端窗口也觉得陌生,从安装系统到连上 SSH 再到部署第一个网站,走过的弯路不比任何人少。但踩坑的过程回头看是最珍贵的——只有自己亲手解决了安装失败、依赖冲突、磁盘满、防火墙拦端口这一连串问题,才能真正理解这台机器是怎么运转起来的。
希望这篇文章能让你少走几步冤枉路,也欢迎在实际操作中遇到卡壳时,带着具体报错信息回来对照本文的排查思路。Linux 这条路没有任何捷径,但走的每一步都算数。