教程

在 Fedora 和 RHEL 上使用 CLI

一份面向 Fedora 与 RHEL 命令行的实践指南:dnf、SELinux 基础、systemd,以及 Red Hat 生态工具链。

终端入口

在 Fedora 和 RHEL 上,默认终端通常是 GNOME Terminal 或 Konsole。服务器通过 SSH 访问,默认 shell 通常是 Bash。

# 查看当前 shell
$ echo $SHELL
/bin/bash

# 查看发行版信息
$ cat /etc/os-release

# 查看内核版本
$ uname -a

dnf 基础

dnf 是 Fedora、RHEL 及其衍生版的包管理器,替代了早期的 yum

# 刷新软件源索引
$ sudo dnf check-update

# 安装常用工具
$ sudo dnf install git curl tmux ripgrep

# 搜索软件包
$ dnf search tmux

# 升级已安装软件
$ sudo dnf upgrade

# 卸载软件包
$ sudo dnf remove tmux
  • 系统层包 用 dnf 管理 shell 工具、编译器和底层依赖。

  • 语言层包 进入具体语言生态后,再用 npm、pip、cargo、uv 等工具管理项目依赖。

SELinux 概览

Fedora 和 RHEL 默认启用 SELinux。它实施强制访问控制,可能影响文件权限、服务端口绑定和容器行为。

# 查看 SELinux 状态
$ getenforce
Enforcing

# 查看文件的 SELinux 上下文
$ ls -Z script.sh

# 临时设为宽容模式(需要 sudo)
$ sudo setenforce 0

# 查看 SELinux 拒绝记录
$ sudo ausearch -m avc -ts recent

在 Fedora/RHEL 上遇到 "permission denied" 时,除了检查传统权限(ls -l),还要检查 SELinux 上下文(ls -Z)。

文件系统与权限

Linux 采用以 / 为根的 Unix 风格文件系统。理解 home 目录、隐藏文件、可执行位和归属关系至关重要。

命令用途示例
pwd显示当前目录$ pwd
ls -la列出文件(含隐藏)$ ls -la ~/.config
chmod修改权限$ chmod +x script.sh
chown修改所有者/组$ sudo chown user:user file.txt
sudo以更高权限执行$ sudo systemctl restart nginx
# 查看文件权限
$ ls -l deploy.sh
-rwxr-xr-x 1 stone stone 914 Mar 20 09:14 deploy.sh

# 添加执行权限
$ chmod +x deploy.sh

服务与日志

现代 Fedora 和 RHEL 使用 systemd 管理服务。systemctljournalctl 成为日常工具。

# 查看正在运行的进程
$ ps aux | head

# 查看服务状态
$ systemctl status sshd

# 查看近期日志
$ journalctl -u sshd --since today

# 设置开机自启
$ sudo systemctl enable nginx

开发工具链

熟悉 dnf 和权限后,安装常用开发栈。

# 常见基础工具
$ sudo dnf install git curl tmux jq ripgrep fd-find

# Git 身份
$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"

# 查看语言运行时
$ python3 --version
$ node --version

下一步

  1. dnfchmodchown 练熟。
  2. 理解 SELinux 基础以及如何读取审计日志。
  3. 练习 SSH 和远程服务器管理。
  4. 用 Git、Podman 或 shell 脚本固化一条自己的开发流程。