Red Hat Enterprise Linux 速查表

通过动手实验学习 Red Hat Enterprise Linux

通过动手实验和真实场景学习 Red Hat Enterprise Linux。LabEx 提供全面的 RHEL 课程,涵盖基本的系统管理、包管理、服务管理、网络配置、存储管理和安全。掌握企业级 Linux 操作和系统管理技术。

系统信息与监控

系统版本:cat /etc/redhat-release

显示 RHEL 版本和发行信息。

# 显示 RHEL 版本
cat /etc/redhat-release
# 替代方法
cat /etc/os-release
# 显示内核版本
uname -r
# 显示系统架构
uname -m

系统性能:top / htop

显示正在运行的进程和系统资源使用情况。

# 实时进程监视器
top
# 增强型进程查看器 (如果已安装)
htop
# 显示进程树
pstree
# 显示所有进程
ps aux

内存信息:free / cat /proc/meminfo

显示内存使用情况和可用性。

# 以人类可读的格式显示内存使用情况
free -h
# 显示详细内存信息
cat /proc/meminfo
# 显示交换空间使用情况
swapon --show

磁盘使用率:df / du

监控文件系统和目录的使用情况。

# 显示文件系统使用情况
df -h
# 显示目录大小
du -sh /var/log/*
# 显示最大的目录
du -h --max-depth=1 / | sort -hr

系统正常运行时间:uptime / who

检查系统运行时间和已登录用户。

# 显示系统运行时间和负载
uptime
# 显示已登录用户
who
# 显示当前用户
whoami
# 显示最近登录
last

硬件信息:lscpu / lsblk

显示硬件组件和配置。

# 显示 CPU 信息
lscpu
# 显示块设备
lsblk
# 显示 PCI 设备
lspci
# 显示 USB 设备
lsusb

包管理

包安装:dnf install / yum install

安装软件包和依赖项。

# 安装一个包 (RHEL 8+)
sudo dnf install package-name
# 安装一个包 (RHEL 7)
sudo yum install package-name
# 安装本地 RPM 文件
sudo rpm -i package.rpm
# 从特定仓库安装
sudo dnf install --enablerepo=repo-
name package
测验

登录后即可答题并追踪学习进度

dnfyum 在 RHEL 中有什么区别?
dnf 是 RHEL 8+ 的较新包管理器,yum 用于 RHEL 7
dnf 用于开发包,yum 用于生产环境
没有区别,它们是相同的
dnf 已弃用,应始终使用 yum

包更新:dnf update / yum update

将包更新到最新版本。

# 更新所有包
sudo dnf update
# 更新特定包
sudo dnf update package-name
# 检查可用更新
dnf check-update
# 仅更新安全补丁
sudo dnf update --security

包信息:dnf info / rpm -q

查询包信息和依赖项。

# 显示包信息
dnf info package-name
# 列出已安装的包
rpm -qa
# 搜索包
dnf search keyword
# 显示包依赖项
dnf deplist package-name

文件和目录操作

导航:cd / pwd / ls

导航文件系统并列出内容。

# 更改目录
cd /path/to/directory
# 显示当前目录
pwd
# 列出文件和目录
ls -la
# 带文件大小列表
ls -lh
# 显示隐藏文件
ls -a

文件操作:cp / mv / rm

复制、移动和删除文件及目录。

# 复制文件
cp source.txt destination.txt
# 递归复制目录
cp -r /source/dir/ /dest/dir/
# 移动/重命名文件
mv oldname.txt newname.txt
# 删除文件
rm filename.txt
# 递归删除目录
rm -rf directory/
测验

登录后即可答题并追踪学习进度

cp -r 的作用是什么?
仅复制文件
递归复制目录,包括所有子目录和文件
删除文件
重命名文件

文件内容:cat / less / head / tail

查看和检查文件内容。

# 显示文件内容
cat filename.txt
# 分页查看文件
less filename.txt
# 显示前 10 行
head filename.txt
# 显示后 10 行
tail filename.txt
# 实时跟踪日志文件
tail -f /var/log/messages
测验

登录后即可答题并追踪学习进度

tail -f /var/log/messages 的作用是什么?
仅显示前 10 行
删除日志文件
显示最后 10 行并实时跟踪新条目
归档日志文件

文件权限:chmod / chown / chgrp

管理文件权限和所有权。

# 更改文件权限
chmod 755 script.sh
# 更改文件所有权
sudo chown user:group filename.txt
# 更改组所有权
sudo chgrp newgroup filename.txt
# 递归更改权限
sudo chmod -R 644 /path/to/directory/

文件搜索:find / locate / grep

搜索文件和文件中的内容。

# 按名称查找文件
find /path -name "*.txt"
# 按大小查找文件
find /path -size +100M
# 在文件中搜索文本
grep "pattern" filename.txt
# 递归文本搜索
grep -r "pattern" /path/to/directory/

归档与压缩:tar / gzip

创建和提取压缩归档。

# 创建 tar 归档
tar -czf archive.tar.gz /path/to/directory/
# 提取 tar 归档
tar -xzf archive.tar.gz
# 创建 zip 归档
zip -r archive.zip /path/to/directory/
# 提取 zip 归档
unzip archive.zip

服务管理

服务控制:systemctl

使用 systemd 管理系统服务。

# 启动一个服务
sudo systemctl start service-name
# 停止一个服务
sudo systemctl stop service-name
# 重启一个服务
sudo systemctl restart service-name
# 检查服务状态
systemctl status service-name
# 在启动时启用服务
sudo systemctl enable service-name
# 在启动时禁用服务
sudo systemctl disable service-name

服务信息:systemctl list-units

列出和查询系统服务。

# 列出所有活动服务
systemctl list-units --type=service
# 列出所有已启用的服务
systemctl list-unit-files --type=service --state=enabled
# 显示服务依赖项
systemctl list-dependencies service-name

系统日志:journalctl

使用 journald 查看和分析系统日志。

# 查看所有日志
journalctl
# 查看特定服务的日志
journalctl -u service-name
# 实时跟踪日志
journalctl -f
# 查看上次启动的日志
journalctl -b
# 按时间范围查看日志
journalctl --since "2024-01-01" --until "2024-01-31"

进程管理:ps / kill / killall

监控和控制正在运行的进程。

# 显示正在运行的进程
ps aux
# 按 PID 终止进程
kill 1234
# 按名称终止进程
killall process-name
# 强制终止进程
kill -9 1234
# 显示进程层次结构
pstree

用户与组管理

用户管理:useradd / usermod / userdel

创建、修改和删除用户账户。

# 添加新用户
sudo useradd -m username
# 设置用户密码
sudo passwd username
# 修改用户账户
sudo usermod -aG groupname
username
# 删除用户账户
sudo userdel -r username
# 锁定用户账户
sudo usermod -L username

组管理:groupadd / groupmod / groupdel

创建、修改和删除组。

# 添加新组
sudo groupadd groupname
# 将用户添加到组
sudo usermod -aG groupname
username
# 从组中删除用户
sudo gpasswd -d username
groupname
# 删除组
sudo groupdel groupname
# 列出用户所属的组
groups username

访问控制:su / sudo

切换用户和以提升的权限执行命令。

# 切换到 root 用户
su -
# 切换到特定用户
su - username
# 以 root 身份执行命令
sudo command
# 编辑 sudoers 文件
sudo visudo
# 检查 sudo 权限
sudo -l

网络配置

网络信息:ip / nmcli

显示网络接口和配置详情。

# 显示网络接口
ip addr show
# 显示路由表
ip route show
# 显示网络管理器连接
nmcli connection show
# 显示设备状态
nmcli device status

网络配置:nmtui / nmcli

使用 NetworkManager 配置网络设置。

# 基于文本的网络配置
sudo nmtui
# 添加新连接
sudo nmcli connection add type ethernet con-name
"eth0" ifname eth0
# 修改连接
sudo nmcli connection modify "eth0" ipv4.addresses
192.168.1.100/24
# 激活连接
sudo nmcli connection up "eth0"

网络测试:ping / curl / wget

测试网络连通性和下载文件。

# 测试连通性
ping google.com
# 测试特定端口
telnet hostname 80
# 下载文件
wget http://example.com/file.txt
# 测试 HTTP 请求
curl -I http://example.com

防火墙管理:firewall-cmd

使用 firewalld 配置防火墙规则。

# 显示防火墙状态
sudo firewall-cmd --state
# 列出活动区域
sudo firewall-cmd --get-active-zones
# 向防火墙添加服务
sudo firewall-cmd --permanent --add-service=http
# 重新加载防火墙规则
sudo firewall-cmd --reload

存储管理

磁盘管理:fdisk / parted

创建和管理磁盘分区。

# 列出磁盘分区
sudo fdisk -l
# 交互式分区编辑器
sudo fdisk /dev/sda
# 创建分区表
sudo parted /dev/sda mklabel gpt
# 创建新分区
sudo parted /dev/sda mkpart primary ext4 1MiB 100GiB

文件系统管理:mkfs / mount

创建文件系统并挂载存储设备。

# 创建 ext4 文件系统
sudo mkfs.ext4 /dev/sda1
# 挂载文件系统
sudo mount /dev/sda1 /mnt/data
# 卸载文件系统
sudo umount /mnt/data
# 检查文件系统
sudo fsck /dev/sda1

LVM 管理:pvcreate / vgcreate / lvcreate

管理逻辑卷管理器 (LVM) 存储。

# 创建物理卷
sudo pvcreate /dev/sdb
# 创建卷组
sudo vgcreate vg_data /dev/sdb
# 创建逻辑卷
sudo lvcreate -L 10G -n lv_data vg_data
# 扩展逻辑卷
sudo lvextend -L +5G /dev/vg_data/lv_data

挂载配置:/etc/fstab

配置永久挂载点。

# 编辑 fstab 文件
sudo vi /etc/fstab
# 测试 fstab 条目
sudo mount -a
# 显示已挂载的文件系统
mount | column -t

安全与 SELinux

SELinux 管理:getenforce / setenforce

控制 SELinux 的强制执行和策略。

# 检查 SELinux 状态
getenforce
# 将 SELinux 设置为宽容模式
sudo setenforce 0
# 将 SELinux 设置为强制模式
sudo setenforce 1
# 检查 SELinux 上下文
ls -Z filename
# 更改 SELinux 上下文
sudo chcon -t httpd_exec_t /path/to/file

SELinux 工具:sealert / ausearch

分析 SELinux 拒绝和审计日志。

# 检查 SELinux 警报
sudo sealert -a /var/log/audit/audit.log
# 搜索审计日志
sudo ausearch -m avc -ts recent
# 生成 SELinux 策略
sudo audit2allow -M mypolicy < /var/log/audit/audit.log

SSH 配置:/etc/ssh/sshd_config

配置 SSH 守护进程以实现安全的远程访问。

# 编辑 SSH 配置文件
sudo vi /etc/ssh/sshd_config
# 重启 SSH 服务
sudo systemctl restart sshd
# 测试 SSH 连接
ssh user@hostname
# 复制 SSH 密钥
ssh-copy-id user@hostname

系统更新:dnf update

通过定期更新保持系统安全。

# 更新所有包
sudo dnf update
# 仅更新安全补丁
sudo dnf update --security
# 检查可用更新
dnf check-update --security
# 启用自动更新
sudo systemctl enable dnf-automatic.timer

性能监控

系统监控:iostat / vmstat

监控系统性能和资源使用情况。

# 显示 I/O 统计信息
iostat -x 1
# 显示虚拟内存统计信息
vmstat 1
# 显示网络统计信息
ss -tuln
# 显示磁盘 I/O
iotop

资源使用:sar / top

分析历史和实时的系统指标。

# 系统活动报告
sar -u 1 3
# 内存使用报告
sar -r
# 网络活动报告
sar -n DEV
# 负载平均监控
uptime

进程分析:strace / lsof

调试进程和文件访问。

# 跟踪系统调用
strace -p 1234
# 列出打开的文件
lsof
# 显示进程打开的文件
lsof -p 1234
# 显示网络连接
lsof -i

性能调优:tuned

针对特定工作负载优化系统性能。

# 列出可用配置文件
tuned-adm list
# 显示活动配置文件
tuned-adm active
# 设置性能配置文件
sudo tuned-adm profile throughput-performance
# 创建自定义配置文件
sudo tuned-adm profile_mode

RHEL 安装与设置

系统注册:subscription-manager

将系统注册到 Red Hat 客户门户。

# 注册系统
sudo subscription-manager
register --username
your_username
# 自动附加订阅
sudo subscription-manager
attach --auto
# 列出可用订阅
subscription-manager list --
available
# 显示系统状态
subscription-manager status

仓库管理:dnf config-manager

管理软件仓库。

# 列出已启用的仓库
dnf repolist
# 启用仓库
sudo dnf config-manager --
enable repository-name
# 禁用仓库
sudo dnf config-manager --
disable repository-name
# 添加新仓库
sudo dnf config-manager --add-
repo https://example.com/repo

系统配置:hostnamectl / timedatectl

配置基本系统设置。

# 设置主机名
sudo hostnamectl set-hostname
new-hostname
# 显示系统信息
hostnamectl
# 设置时区
sudo timedatectl set-timezone
America/New_York
# 显示时间设置
timedatectl

故障排除与诊断

系统日志:/var/log/

检查系统日志文件以查找问题。

# 查看系统消息
sudo tail -f /var/log/messages
# 查看认证日志
sudo tail -f /var/log/secure
# 查看启动日志
sudo journalctl -b
# 查看内核消息
dmesg | tail

硬件诊断:dmidecode / lshw

检查硬件信息和健康状况。

# 显示硬件信息
sudo dmidecode -t system
# 列出硬件组件
sudo lshw -short
# 检查内存信息
sudo dmidecode -t memory
# 显示 CPU 信息
lscpu

网络故障排除:netstat / ss

网络诊断工具和实用程序。

# 显示网络连接
ss -tuln
# 显示路由表
ip route show
# 测试 DNS 解析
nslookup google.com
# 跟踪网络路径
traceroute google.com

恢复与救援:systemctl rescue

系统恢复和紧急程序。

# 进入救援模式
sudo systemctl rescue
# 进入紧急模式
sudo systemctl emergency
# 重置失败的服务
sudo systemctl reset-failed
# 重新配置引导加载程序
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

自动化与脚本编写

Cron 作业:crontab

安排自动化任务和维护。

# 编辑用户 crontab
crontab -e
# 列出用户 crontab
crontab -l
# 删除用户 crontab
crontab -r
# 示例:每天凌晨 2 点运行脚本
0 2 * * * /path/to/script.sh

Shell 脚本编写:bash

创建和执行 shell 脚本以实现自动化。

#!/bin/bash
# 简单备份脚本
DATE=$(date +%Y%m%d)
tar -czf backup_$DATE.tar.gz /home/user/documents
echo "Backup completed: backup_$DATE.tar.gz"

环境变量:export / env

管理环境变量和 shell 设置。

# 设置环境变量
export MY_VAR="value"
# 显示所有环境变量
env
# 显示特定变量
echo $PATH
# 添加到 PATH
export PATH=$PATH:/new/directory

系统自动化:systemd timers

创建基于 systemd 的定时任务。

# 创建 timer 单元文件
sudo vi /etc/systemd/system/backup.timer
# 启用并启动 timer
sudo systemctl enable backup.timer
sudo systemctl start backup.timer
# 列出活动 timer
systemctl list-timers

相关链接