CentOS Stream 入门指南:从零开始了解
序言
欢迎来到 Linux 世界!如果您是初学者,并且正在寻找一个稳定、强大且与企业级 Linux 紧密相关的发行版来学习、开发或部署,那么 CentOS Stream 值得您的关注。不同于它前辈 CentOS Linux 曾经的角色,CentOS Stream 在红帽企业 Linux (RHEL) 生态系统中扮演着一个独特的、面向未来的角色。
本指南旨在帮助您从零开始了解 CentOS Stream,包括它的定义、与 RHEL 的关系、安装过程以及一些基础的系统操作。无论您是想学习 Linux 命令行、部署服务器应用,还是仅仅对这个操作系统感到好奇,本文都将为您提供一个坚实的基础。
准备好了吗?让我们开始 CentOS Stream 的探索之旅!
第一部分:理解 CentOS Stream
在深入安装和使用之前,最重要的是要理解 CentOS Stream 是什么,以及它在更广泛的 Linux 生态系统中的位置。
1.1 什么是 CentOS Stream?
简单来说,CentOS Stream 是一个持续交付的 Linux 发行版,它位于 Fedora Linux 和红帽企业 Linux (RHEL) 之间。
- 持续交付 (Rolling Release): 这意味着 CentOS Stream 不像传统的稳定版那样每隔几年发布一个大版本,而是在上游项目(主要是 Fedora 以及部分 RHEL 特定的开发)有新功能和更新时,持续不断地接收并集成这些更新。它是一个“流”(Stream),总是保持相对较新。
- 位于 Fedora 和 RHEL 之间: 这是 CentOS Stream 最关键的定位。它可以被看作是 RHEL 未来版本的一个预览版或上游开发分支。红帽公司及其社区合作伙伴在开发 RHEL 的下一个小版本(例如 RHEL 8.5 之前的 8.4、8.3 等)或甚至未来的主版本(例如 RHEL 9 之前的 8)时,会先在 CentOS Stream 中进行测试、集成和稳定化。
可以这样理解它们的关系:
Fedora (前沿,快速创新)
↓ (一些功能和技术被采纳)
CentOS Stream (RHEL 的上游,持续预览未来 RHEL 版本的内容)
↓ (经过稳定化和测试)
Red Hat Enterprise Linux (RHEL) (企业级稳定版本,长期支持)
CentOS Stream 接收来自 Fedora 的新特性,以及直接为 RHEL 开发的功能,并在将这些内容打包进 RHEL 之前,在 Stream 中进行广泛的测试和社区反馈。因此,CentOS Stream 提供了比 RHEL 更新的软件包,但理论上比 Fedora 更稳定。
1.2 CentOS Stream 与 CentOS Linux 有什么不同?
这是许多初学者甚至有经验的用户容易混淆的地方。CentOS Stream 与我们熟知的、已停产的 CentOS Linux 是完全不同的东西。
- CentOS Linux: 过去,CentOS Linux 是 RHEL 的一个下游版本。它是在 RHEL 的源代码公开后,由 CentOS 社区移除红帽的商标和付费内容,然后重新编译形成的。因此,CentOS Linux 是 RHEL 的一个免费、社区支持的克隆版或复刻版,它追求与 RHEL 版本的二进制兼容性,并且是在 RHEL 版本发布之后才出现的。它的更新周期与对应的 RHEL 版本一致(例如,RHEL 8.x 发布后,才有 CentOS Linux 8.x)。它是一个相对稳定、变化较慢的发行版。
- CentOS Stream: 这是一个上游版本。它位于 RHEL 之前,是 RHEL 开发过程中的一个测试和预览平台。CentOS Stream 的更新是持续的,它总是包含比当前稳定 RHEL 版本更新的软件包。它不追求与已发布的 RHEL 版本的二进制兼容性,因为它包含的是 RHEL 未来版本的代码。
特性 | CentOS Linux (已停产) | CentOS Stream | Red Hat Enterprise Linux (RHEL) |
---|---|---|---|
定位 | RHEL 的下游克隆 | RHEL 的上游开发分支/预览版 | 企业级稳定版本 |
更新模式 | 接收已发布 RHEL 版本的更新 | 持续接收来自上游的最新开发和测试内容 | 接收经测试和稳定的更新 |
代码来源 | 基于已发布的 RHEL 源代码重新编译 | 接收 Fedora 和 RHEL 开发的代码 | 基于 CentOS Stream 等测试成果 |
稳定性 | 稳定,变化慢 (与对应 RHEL 版本一致) | 相对 RHEL 新且变化快,但比 Fedora 稳定 | 非常稳定,长期支持 |
二进制兼容 | 与对应 RHEL 版本追求二进制兼容 | 不追求与已发布 RHEL 版本的二进制兼容 | 内部版本间追求二进制兼容 |
发布周期 | RHEL 发布后才发布 | 持续交付,没有明确的大版本发布周期 | 定期发布主版本和次版本 |
支持 | 社区支持 (已停止) | 社区支持,红帽参与度高 | 红帽官方商业支持 |
总结: 如果您过去使用的是 CentOS Linux,并期望找到一个完全相同的免费替代品来运行已知的稳定负载,那么 CentOS Stream 可能不是您的最佳选择(其他选项如 AlmaLinux, Rocky Linux 等更接近过去 CentOS Linux 的定位)。但如果您希望使用一个免费、社区参与度高、能够提前接触未来 RHEL 技术、并且愿意接受相对 RHEL 略快更新节奏的系统,那么 CentOS Stream 是一个非常好的选择。
1.3 为什么选择 CentOS Stream?
对于初学者来说,CentOS Stream 有几个吸引人的地方:
- 免费: 像 CentOS Linux 一样,CentOS Stream 是完全免费使用和分发的。
- 接近企业级环境: 尽管它是一个开发分支,但它使用的工具、配置方式、核心组件(如 systemd, DNF 包管理器, firewalld 等)与 RHEL 高度一致。学习 CentOS Stream 意味着您正在学习如何管理一个企业级 Linux 系统。
- 更早接触新技术: 如果您对 Linux 的新特性感兴趣,CentOS Stream 让您可以在这些特性进入稳定 RHEL 版本之前就体验和测试它们。
- 社区参与: 您可以通过使用 CentOS Stream 并报告 Bug,或者参与社区讨论,来直接影响未来 RHEL 版本的内容,从而为企业级 Linux 的发展做出贡献。
- 学习平台: 作为一个学习和实验的平台,CentOS Stream 提供了 RHEL 的核心体验,而无需付费订阅。
1.4 谁不适合 CentOS Stream?
- 追求极致稳定、不想引入任何未知风险的生产环境: 如果您的核心业务要求系统环境极度稳定且几乎不发生意外变化,那么付费的 RHEL 或其他作为 RHEL 下游的稳定发行版可能更适合您。CentOS Stream 的持续更新可能会引入一些新问题(尽管概率不高,且很快会修复)。
- 需要与特定 RHEL 版本完全二进制兼容: 如果您的应用或硬件驱动严格依赖于某个特定 RHEL 版本的二进制库,那么 CentOS Stream(它包含未来版本的库)可能不兼容。
对于初学者和非关键生产环境来说,CentOS Stream 通常是一个优秀的起点。
第二部分:准备与安装 CentOS Stream
了解了 CentOS Stream 的基本概念后,接下来我们将进入实际操作环节:准备环境并安装操作系统。
2.1 系统要求
CentOS Stream 对硬件的要求通常不高,特别是如果您选择最小化安装。以下是一个大致的建议:
- 处理器: 64位 Intel 或 AMD 处理器 (x86-64)。CentOS Stream 不再支持 32 位架构。
- 内存: 最小 2GB,推荐 4GB 或更多,特别是如果您打算安装桌面环境或运行内存密集型应用。
- 硬盘空间: 最小 20GB,推荐 40GB 或更多。最小安装可能只需要 5-10GB,但考虑到后续的更新和软件安装,预留更多空间总是好的。如果您打算安装桌面环境,则需要更多空间。
- 网络: 网络连接(用于下载安装镜像、安装时下载软件包、安装后更新等)。
- 安装介质: U盘、DVD 或网络安装源。
2.2 下载 CentOS Stream ISO 镜像
- 访问 CentOS 官方网站:https://www.centos.org/
- 找到下载链接,通常会导航到镜像站点列表。
- 选择一个离您地理位置较近的镜像站点。
- 找到您需要的 CentOS Stream 版本(例如 CentOS Stream 9 或 CentOS Stream 8)。
- 下载 ISO 文件。通常会有不同版本的 ISO:
DVD ISO
: 包含大部分常用软件包,可以在没有网络连接的情况下完成基本安装。文件较大。Boot ISO
(或Minimal ISO
): 只包含引导和最基本的安装程序,安装过程中需要网络连接下载软件包。文件较小。Everything ISO
: 包含几乎所有仓库中的软件包,非常大,通常不推荐用于标准安装。
对于初学者,推荐下载 DVD ISO
,这样安装过程更顺畅,即使网络中断也能完成核心系统的安装。请确保下载对应您硬件架构的 ISO 文件,通常是 x86_64
。
2.3 创建可引导安装介质
下载了 ISO 文件后,您需要将其制作成一个可引导的 U盘或 DVD,以便从它启动计算机进行安装。
- Windows 用户: 可以使用 Rufus、Etcher (Balena Etcher) 等工具。选择您的 U盘,然后选择下载的 ISO 文件,按照软件提示制作。
- macOS 用户: 可以使用 Etcher,或者使用内置的
dd
命令(请小心使用dd
命令,错误的参数可能导致数据丢失)。 - Linux 用户: 可以使用 Etcher,或者使用
dd
命令。例如:
bash
# 假设你的U盘设备是 /dev/sdX (请务必替换为你的实际设备名!)
# 可以使用 lsblk 或 fdisk -l 查看设备名
sudo dd if=/path/to/your/CentOS-Stream.iso of=/dev/sdX bs=4M status=progress
sync
警告: 使用dd
命令时,of=/dev/sdX
中的sdX
必须是整个 U盘设备(例如/dev/sdb
),而不是某个分区(例如/dev/sdb1
)。错误的设备名会擦除错误设备的全部数据。请再三确认!
2.4 进行安装
制作好安装介质后,将 U盘/DVD 插入您要安装系统的计算机,并设置计算机从该介质启动。启动方式通常是在开机时按下特定的键(如 F2, F10, F12, Del 等)进入 BIOS/UEFI 设置或启动菜单。
以下是使用 Anaconda 安装程序进行图形化安装的主要步骤(DVD ISO):
- 启动安装程序: 从安装介质启动后,您会看到一个启动菜单。选择 “Install CentOS Stream 9” (或对应版本)。您还可以选择测试安装介质的完整性(推荐,但会花费一些时间)。
- 语言选择: 选择您在安装过程中和安装后希望使用的语言。选择中文通常比较友好。
-
安装信息摘要: 这是 Anaconda 安装程序的核心界面。您需要在此配置所有安装相关的选项。未完成配置的项目旁边会有警告图标。
- 本地化 (Localization):
- 键盘 (Keyboard): 确认或更改键盘布局。
- 语言支持 (Language Support): 确认或添加其他语言支持。
- 时间和日期 (Time & Date): 选择您的时区。如果您的计算机连接到互联网,通常可以自动同步时间。
- 软件 (Software):
- 安装源 (Installation Source): 默认通常是“本地介质”。如果您使用 Boot ISO 或需要从网络仓库安装特定内容,可以配置此处。
- 软件选择 (Software Selection): 非常重要。这里决定了安装哪些软件包组。
- Minimal Install (最小安装): 只安装最基本的系统,没有图形界面,适合服务器。如果您想专注于命令行学习,这是个好选择。
- Workstation (工作站): 包含图形界面(GNOME),适合桌面用户。
- Server (服务器): 包含基本的服务器工具,通常没有图形界面。
- 还有其他一些选项,如带有 GUI 的服务器等。
在右侧的“附加选项”中,您还可以进一步选择安装特定类别的软件包,如开发工具、系统管理工具等。
- 系统 (System):
- 安装目的地 (Installation Destination): 非常重要。选择安装 CentOS Stream 的硬盘。
- 自动分区 (Automatic partitioning): 安装程序会自动划分硬盘空间。对于新手来说这是最简单的方式。您可以选择“自动配置分区”并决定是使用 LVM (逻辑卷管理) 还是标准分区。
- 自定义 (Custom): 允许您手动创建、修改或删除分区。适合有经验的用户或需要特定分区布局(如单独的
/home
,/var
,/boot
分区)。如果您选择自定义,需要手动创建至少/
(根分区) 和swap
(交换分区) 分区。/boot
分区(通常 500MB – 1GB)也是推荐的,尤其是使用 UEFI 启动时。
- 网络和主机名 (Network & Host Name): 配置网络连接(有线、无线)和设置计算机的主机名。如果您有 DHCP 服务器,通常会自动获取 IP 地址。您可以点击“配置”按钮进行手动设置(静态 IP 地址、DNS 等)。请确保网络连接已启用,这样安装程序可以下载额外的软件包。
- 安全策略 (Security Policy): 默认为“无”,对于初学者或非敏感环境可以保持默认。
- KDump: 内核崩溃转储机制,用于故障排除。默认启用即可。
- 安装目的地 (Installation Destination): 非常重要。选择安装 CentOS Stream 的硬盘。
- 用户设置 (User Settings):
- Root 密码 (Root Password): 设置系统管理员(root 用户)的密码。务必设置一个强密码并牢记!
- 用户创建 (User Creation): 创建一个普通用户账号。建议创建一个普通用户进行日常操作,而不是直接使用 root 用户。您可以选择是否将此用户设置为管理员(即允许使用
sudo
命令)。
- 本地化 (Localization):
-
开始安装 (Begin Installation): 当所有带警告的项都配置完成后,“开始安装”按钮会变为可用。点击它,安装程序将开始复制文件并安装软件包。这个过程可能需要一些时间,具体取决于您的硬件性能、选择的软件包以及网络速度(如果需要下载)。
- 配置用户和 root 密码 (安装过程中): 在安装进行时,您需要在“用户设置”区域设置 root 密码和创建普通用户。请不要跳过这一步。
- 安装完成: 安装完成后,屏幕会提示您重启系统。点击“重启系统”按钮。
- 移除安装介质: 在系统重启时,及时移除安装的 U盘或 DVD,以免再次从它启动。
- 首次启动: 系统将从硬盘启动,进入您刚刚安装的 CentOS Stream 系统。如果您安装了图形界面,会看到登录屏幕;如果安装了最小系统,会看到命令行登录提示符。
第三部分:首次启动与基本操作
系统安装完成后,您将首次进入 CentOS Stream 环境。对于初学者来说,掌握一些基本的登录方式和命令行操作至关重要。
3.1 登录系统
取决于您的安装选项,您可能会看到:
- 图形登录界面 (GUI): 如果您安装了桌面环境 (如 GNOME)。输入您创建的普通用户名和密码登录。
- 命令行登录界面 (TTY): 如果您安装了最小系统或服务器版。屏幕上会显示类似
hostname login:
的提示符。输入您的用户名(普通用户或 root),然后按回车,再输入密码按回车。
建议: 除非必要,日常操作请使用您创建的普通用户账号登录。需要管理员权限时,可以使用 sudo
命令(如果您的用户被添加到 sudoers 列表中,通常在创建用户时选择“使此用户成为管理员”即可)。直接使用 root 用户操作风险很高,尤其是在不熟悉命令的情况下。
3.2 初识命令行界面 (CLI)
Linux 的强大之处很大程度上体现在其命令行界面(CLI)。尽管有图形界面,掌握 CLI 仍然是必不可少的,尤其对于系统管理和自动化任务。
在命令行界面(或者在图形界面中打开终端模拟器,如 GNOME Terminal),您会看到一个提示符,通常长这样:
bash
[username@hostname ~]$
或者对于 root 用户:
bash
[root@hostname ~]#
username
: 当前登录的用户名。hostname
: 计算机的主机名。~
: 当前所在的目录,~
代表当前用户的家目录(例如/home/your_username
或/root
)。$
: 普通用户的提示符。#
: root 用户的提示符。
您可以在这个提示符后面输入命令并按回车执行。
3.3 一些基本且常用的命令
以下是一些您会经常用到的基本命令:
pwd
: Print Working Directory。显示当前所在的目录路径。
bash
pwd
# 输出示例: /home/your_usernamels
: List files and directories。列出当前目录下的文件和子目录。
bash
ls # 列出当前目录内容
ls -l # 以长格式显示,包含文件权限、所有者、大小、修改日期等详细信息
ls -a # 显示包括隐藏文件(以 . 开头的文件)在内的所有文件
ls -lh # 以人类可读的格式显示文件大小 (e.g., 1.2K, 3.5M)cd
: Change Directory。切换当前工作目录。
bash
cd /path/to/directory # 切换到指定路径
cd ~ # 切换到当前用户的家目录 (等同于 cd 或 cd $HOME)
cd - # 切换回上一次所在的目录
cd .. # 切换到上级目录mkdir
: Make Directory。创建新目录。
bash
mkdir mynewdir
mkdir -p /path/to/non/existent/parent/newdir # 创建多级目录rmdir
: Remove Directory。删除空目录。
bash
rmdir mynewdir # 只能删除空目录touch
: 创建空文件或更新文件的时间戳。
bash
touch myfile.txtcat
: Concatenate and display files。显示文件内容。
bash
cat myfile.txtless
: 逐屏查看文件内容,适合查看大文件。
bash
less largefile.log
# 在 less 中,按空格翻页,按 b 向上翻页,按 q 退出。cp
: Copy files and directories。复制文件或目录。
bash
cp file1.txt file2.txt # 复制 file1.txt 到 file2.txt (在当前目录)
cp file.txt /path/to/dest/ # 复制文件到指定目录
cp -r dir1 dir2 # 递归复制目录及其内容mv
: Move or rename files and directories。移动或重命名文件或目录。
bash
mv oldname.txt newname.txt # 重命名文件
mv file.txt /path/to/dest/ # 移动文件到指定目录rm
: Remove files and directories。删除文件或目录。此命令非常危险,删除后很难恢复!使用前请三思!
bash
rm myfile.txt # 删除文件 (通常会提示确认)
rm -f myfile.txt # 强制删除,不提示确认 (更危险!)
rm -r mydir # 递归删除目录及其内容 (会提示确认)
rm -rf mydir # 强制递归删除目录及其内容 (极度危险! 慎用!)man
: Manual。查看命令的帮助手册页。
bash
man ls # 查看 ls 命令的帮助
man dnf # 查看 dnf 命令的帮助
# 在 man 页面中,按空格翻页,按 b 向上翻页,按 / 搜索,按 q 退出。
3.4 包管理器:DNF(或 Yum)
在 CentOS Stream (以及 RHEL 8/9+) 中,主要的包管理器是 DNF (Dandified YUM)。它是 YUM (Yellowdog Updater Modified) 的下一代版本,提供了更好的性能和依赖解析能力。您可以使用 DNF 来安装、更新、删除和管理软件包。
以下是一些常用的 DNF 命令:
- 更新系统: 强烈建议在安装后立即运行此命令,以确保系统是最新的。
bash
sudo dnf update
# 或者使用旧的命令,但 DNF 更推荐:
# sudo yum update
输入此命令后,系统会检查可用的更新,列出将要更新的软件包,并询问您是否继续。输入y
并按回车确认。 - 安装软件包:
bash
sudo dnf install package_name # 安装指定的软件包
# 示例:安装一个文本编辑器 nano
sudo dnf install nano - 删除软件包:
bash
sudo dnf remove package_name # 删除指定的软件包
# 示例:删除 nano
sudo dnf remove nano - 搜索软件包:
bash
dnf search search_term # 搜索包含指定关键词的软件包
# 示例:搜索关于 web 服务器的软件包
dnf search web server - 查看软件包信息:
bash
dnf info package_name # 显示指定软件包的详细信息
# 示例:查看 nano 软件包的信息
dnf info nano - 列出已安装的软件包:
bash
dnf list installed # 列出所有已安装的软件包 - 检查是否有可用更新:
bash
dnf check-update # 检查是否有可以更新的软件包
使用 DNF 时,由于需要修改系统文件,通常需要 sudo
命令来获取管理员权限。
第四部分:用户与权限管理
理解 Linux 中的用户、组和文件权限对于系统安全和管理至关重要。
4.1 用户和组
- 用户 (Users): 每个登录到系统的个体都对应一个用户账号。用户通过用户名和密码进行身份验证。
- 组 (Groups): 用户可以被组织到组中。权限可以分配给组,组中的所有成员都拥有这些权限。这简化了权限管理,特别是当有很多用户需要访问同一组资源时。
- Root 用户: 特殊的用户,拥有系统上最高的权限,可以执行任何操作。其用户ID (UID) 永远是 0。也称为超级用户。
- 普通用户: 权限受到限制的用户,只能在自己的家目录或被授权的目录下进行操作。其 UID 通常从 1000 开始。
4.2 sudo
命令
sudo
(Superuser Do) 允许普通用户以另一个用户(默认为 root)的身份执行命令。这是推荐的获取管理员权限的方式,因为它提供了更好的审计日志,并且不需要您一直以 root 身份登录。
“`bash
sudo command_to_execute
示例:以 root 身份更新系统
sudo dnf update
“`
当您第一次使用 sudo
时,系统会提示您输入您自己的密码(不是 root 密码)。如果密码正确且您的用户被允许使用 sudo
,命令就会以 root 权限执行。
您在安装时创建的普通用户通常被自动添加到 wheel
组,该组默认被配置为可以使用 sudo
。
4.3 基本用户和组管理命令(需要 root 或 sudo 权限)
- 创建新用户:
bash
sudo adduser new_username
# 默认会在 /home 目录下创建与用户名同名的家目录,并创建一个同名的主组。 - 设置/更改用户密码:
bash
sudo passwd username
# 然后会提示您输入新密码两次
# 示例:为新用户设置密码
sudo passwd new_username - 修改用户信息:
bash
sudo usermod -aG group_name username # 将用户添加到指定组 (不移除其现有组)
# 示例:将用户 new_username 添加到 wheel 组
sudo usermod -aG wheel new_username - 删除用户:
bash
sudo userdel username # 删除用户账号
sudo userdel -r username # 删除用户账号及其家目录和邮件池 (更常用) - 创建新组:
bash
sudo groupadd new_groupname - 删除组:
bash
sudo groupdel groupname
4.4 文件权限
在 Linux 中,每个文件和目录都有相关的权限,控制谁可以访问它们以及如何访问。使用 ls -l
命令可以查看权限信息。
“`bash
ls -l /etc/passwd
输出示例:
-rw-r–r–. 1 root root 2535 Apr 25 10:00 /etc/passwd
“`
输出的第一列 -rw-r--r--.
就是权限信息。这 10 个字符的含义是:
- 第一个字符 (
-
):表示文件类型。-
: 普通文件d
: 目录l
: 符号链接 (symbolic link)c
: 字符设备文件b
: 块设备文件p
: 命名管道 (pipe)s
: Socket 文件
- 接下来的 9 个字符 (
rw-r--r--
):分为三组,每组三个字符,分别表示:- 所有者 (Owner) 的权限 (
rw-
):表示文件的所有者对文件有什么权限。 - 组 (Group) 的权限 (
r--
):表示拥有该文件组的成员对文件有什么权限。 - 其他用户 (Others) 的权限 (
r--
):表示不属于所有者也不属于拥有该文件组的其他用户对文件有什么权限。
- 所有者 (Owner) 的权限 (
每组中的三个字符分别代表:
r
: Read (读) 权限。对于文件,表示可以查看文件内容;对于目录,表示可以列出目录中的文件列表。w
: Write (写) 权限。对于文件,表示可以修改或删除文件内容;对于目录,表示可以在目录中创建、删除或重命名文件。x
: Execute (执行) 权限。对于文件,表示可以将文件作为程序执行;对于目录,表示可以进入该目录 (cd
命令)。-
: 表示没有该权限。
所以,上面的示例 rw-r--r--
意味着:
* 文件所有者有读和写权限 (rw-
)
* 文件的组用户只有读权限 (r--
)
* 其他用户也只有读权限 (r--
)
后面的点 (.
) 表示存在 SELinux 上下文,暂时可以忽略。
修改权限:chmod
命令
chmod
命令用于修改文件或目录的权限。可以使用数字表示法或符号表示法。
-
数字表示法: 将 r, w, x 的权限值相加。
r
= 4w
= 2x
= 1-
= 0
所以,rwx
= 4+2+1 = 7,rw-
= 4+2+0 = 6,r--
= 4+0+0 = 4。
chmod
后面跟三位数字,分别代表所有者、组、其他用户的权限总和。
bash
chmod 755 myfile # 所有者 rwx (7), 组 r-x (5), 其他 r-x (5)。这是一个很常见的设置,特别是对于可执行脚本或公共目录。
chmod 644 myfile # 所有者 rw- (6), 组 r-- (4), 其他 r-- (4)。适用于普通配置文件。
-
符号表示法: 使用
u
(所有者),g
(组),o
(其他用户),a
(所有用户) 加上+
(添加权限),-
(移除权限),=
(设置权限)。
bash
chmod u+x myfile # 给所有者添加执行权限
chmod g-w myfile # 移除组的写权限
chmod chmod o=r myfile # 设置其他用户只有读权限
chmod a+rw file1 file2 # 给所有用户添加读写权限
chmod -R ug+w mydir # 递归地给所有者和组添加写权限到 mydir 及其子目录文件
修改所有者和组:chown
和 chgrp
命令
chown
: Change Owner。修改文件或目录的所有者。
bash
sudo chown new_owner myfile # 将 myfile 的所有者改为 new_owner
sudo chown new_owner:new_group myfile # 将 myfile 的所有者改为 new_owner,组改为 new_group
sudo chown -R new_owner mydir # 递归修改 mydir 及其子文件所有者chgrp
: Change Group。修改文件或目录的组。
bash
sudo chgrp new_group myfile # 将 myfile 的组改为 new_group
sudo chgrp -R new_group mydir # 递归修改 mydir 及其子文件组
第五部分:网络配置
系统安装后,网络连接通常会自动配置(通过 DHCP)。但有时您可能需要手动配置静态 IP 地址或检查网络状态。
5.1 检查网络状态
ip addr show
(推荐,新式命令): 显示所有网络接口的 IP 地址信息。
bash
ip addr show
# 查找 eth0, ensXX, enpXXsX 等接口名,查看 inet 后面的 IP 地址。ifconfig
(旧式命令,可能需要安装net-tools
): 功能类似ip addr show
。
bash
ifconfignmcli
: NetworkManager CLI。NetworkManager 是 CentOS Stream (以及 RHEL) 默认的网络管理服务,nmcli
是其命令行工具,功能强大。
bash
nmcli device status # 查看网络设备状态
nmcli connection show # 查看已配置的网络连接
5.2 配置网络(使用 nmcli)
nmcli
是配置网络的推荐方式。
- 查看当前连接名:
nmcli connection show
- 修改连接使用静态 IP:
假设您的有线连接名叫Wired connection 1
,希望设置 IP 为192.168.1.100
,网关为192.168.1.1
,DNS 为192.168.1.1
和8.8.8.8
。
bash
sudo nmcli connection modify "Wired connection 1" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "192.168.1.1,8.8.8.8" autoconnect yes
sudo nmcli connection up "Wired connection 1" # 激活连接以应用更改 - 修改连接使用 DHCP:
bash
sudo nmcli connection modify "Wired connection 1" ipv4.method auto autoconnect yes
sudo nmcli connection up "Wired connection 1" # 激活连接以应用更改 - 启用/禁用网络接口:
bash
sudo nmcli device connect eth0 # 启用 eth0 接口
sudo nmcli device disconnect eth0 # 禁用 eth0 接口
5.3 测试网络连接
ping
: 测试到指定 IP 地址或域名的连通性。
bash
ping google.com # 测试到 google.com 的连通性 (按 Ctrl+C 停止)
ping -c 4 8.8.8.8 # 测试到 8.8.8.8 的连通性,只发送 4 个包
第六部分:远程连接 (SSH)
在服务器环境中,通常通过 SSH (Secure Shell) 进行远程管理。CentOS Stream 默认通常会安装并启动 SSH 服务器。
6.1 检查 SSH 服务状态
SSH 服务由 sshd
进程提供,由 systemd 进行管理。
bash
sudo systemctl status sshd
如果服务没有运行,可以使用以下命令启动:
bash
sudo systemctl start sshd
并设置为开机自启:
bash
sudo systemctl enable sshd
6.2 防火墙配置
CentOS Stream 默认使用 firewalld
作为防火墙。SSH 服务使用 TCP 22 端口。您需要确保防火墙允许 SSH 连接。
bash
sudo firewall-cmd --permanent --add-service=ssh # 永久允许 ssh 服务
sudo firewall-cmd --reload # 重新加载防火墙规则以应用更改
您也可以直接允许端口:
bash
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
6.3 从客户端连接
在另一台计算机上(Windows 可以用 PuTTY 或 OpenSSH 客户端,macOS/Linux 直接用终端),使用以下命令连接:
bash
ssh your_username@centostream_server_ip
第一次连接时会提示您确认服务器的指纹,输入 yes
。然后输入您的密码。
注意: 默认情况下,SSH 服务器可能禁止 root 用户直接通过密码登录,这是出于安全考虑。推荐使用普通用户登录后再通过 sudo
获取权限。
第七部分:系统维护与更新
保持系统更新是确保安全性和稳定性的重要步骤。
7.1 更新系统
bash
sudo dnf update
定期运行此命令,尤其是在重要的安全公告发布后。更新完成后,有时建议重启系统(特别是当内核、核心库等重要组件更新后)。
7.2 管理服务 (systemd)
CentOS Stream 使用 systemd 作为其初始化系统和服务管理器。
bash
sudo systemctl start service_name # 启动服务
sudo systemctl stop service_name # 停止服务
sudo systemctl restart service_name # 重启服务
sudo systemctl enable service_name # 设置服务开机自启
sudo systemctl disable service_name # 取消服务开机自启
sudo systemctl status service_name # 查看服务状态 (是否运行,是否有错误)
sudo systemctl is-active service_name # 检查服务是否正在运行 (输出 active 或 inactive)
sudo systemctl is-enabled service_name # 检查服务是否已设置为开机自启 (输出 enabled 或 disabled)
示例:
bash
sudo systemctl status network # 查看网络服务状态
sudo systemctl restart httpd # 重启 Apache Web 服务器 (如果已安装)
7.3 查看系统日志
系统日志对于故障排除非常有用。systemd 将日志统一管理,可以使用 journalctl
命令查看。
“`bash
sudo journalctl # 查看所有日志 (按 PageUp/PageDown 翻页,q 退出)
sudo journalctl -f # 实时跟踪最新日志
sudo journalctl -u service_name # 查看特定服务的日志
示例:
sudo journalctl -u sshd # 查看 SSH 服务的日志
sudo journalctl -xe # 显示详细日志,并显示错误信息
“`
第八部分:资源与社区
学习 Linux 是一个持续的过程。当您遇到问题或想深入学习时,以下资源将非常有用:
- CentOS Stream 官方网站: https://www.centos.org/ – 获取官方信息、下载链接和文档。
- CentOS Stream 文档: 查找特定版本或主题的官方文档。
- CentOS 社区论坛/邮件列表: 与其他用户交流,提问和解答问题。这些通常是解决疑难杂症的好地方。
- Red Hat Documentation: 由于 CentOS Stream 是 RHEL 的上游,许多 RHEL 的官方文档(关于系统管理、配置等)也适用于 CentOS Stream,虽然内容可能略有差异(因为 Stream 更新)。
- 在线教程和课程: 许多网站提供 Linux 命令行和系统管理方面的教程。
记住,Linux 社区通常非常乐于助人。在寻求帮助时,请清晰地描述您的问题,提供相关的系统信息(如 CentOS Stream 版本)、您执行的命令以及任何错误信息。
结论
恭喜您完成了这份 CentOS Stream 入门指南!我们从理解 CentOS Stream 的独特地位开始,经历了下载、安装的全过程,并初步学习了登录、基本命令行操作、软件包管理、用户和权限、网络配置、远程连接以及系统维护的基础知识。
CentOS Stream 作为 RHEL 的上游开发平台,为您提供了一个免费且强大的环境来学习企业级 Linux。它的持续更新特性让您可以接触到最新的技术,同时也要求您保持一定的学习和适应能力。
这只是 CentOS Stream 世界的冰山一角。Linux 的强大之处在于其灵活性和庞大的生态系统。继续探索命令行、学习 Shell 脚本、了解文件系统结构、掌握更多系统服务和配置等等。实践是最好的老师,多动手尝试,多查阅资料,您将不断进步。
祝您在 CentOS Stream 的学习和使用旅程中一切顺利!