教程
在 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 管理服务。systemctl 和 journalctl 成为日常工具。
# 查看正在运行的进程
$ 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
下一步
- 把
dnf、chmod、chown练熟。 - 理解 SELinux 基础以及如何读取审计日志。
- 练习 SSH 和远程服务器管理。
- 用 Git、Podman 或 shell 脚本固化一条自己的开发流程。